From 13a05eecbd3bd2be757103b0312eaa330b6c3e8e Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Mon, 25 Dec 2023 19:01:51 -0800 Subject: [PATCH 01/44] master + weak BC enforcement. --- autotest/baseline.out | 526 ++ autotest/test.sh | 75 + data/convex.mesh | 69 + data/cube_gmsh_19.msh | 11207 +++++++++++++++++++++++++++++++++++++ data/disc-nurbs.mesh | 110 + data/refined.mesh | 69 + data/trapezoid_quad.mesh | 61 + laghos.cpp | 36 +- laghos_assembly.hpp | 49 +- laghos_solver.cpp | 181 +- laghos_solver.hpp | 22 +- 11 files changed, 12391 insertions(+), 14 deletions(-) create mode 100644 autotest/baseline.out create mode 100755 autotest/test.sh create mode 100644 data/convex.mesh create mode 100644 data/cube_gmsh_19.msh create mode 100644 data/disc-nurbs.mesh create mode 100644 data/refined.mesh create mode 100644 data/trapezoid_quad.mesh diff --git a/autotest/baseline.out b/autotest/baseline.out new file mode 100644 index 000000000..589e82ef5 --- /dev/null +++ b/autotest/baseline.out @@ -0,0 +1,526 @@ +mpirun -np X laghos -m data/trapezoid_quad.mesh -tf 1.5 -rs 1 + + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ + +Options used: + --dimension 3 + --mesh data/trapezoid_quad.mesh + --refine-serial 1 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 2 + --order-thermo 1 + --order-intrule -1 + --ode-solver 7 + --t-final 1.5 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 16 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 3 5 +Number of kinematic (position, velocity) dofs: 162 +Number of specific internal energy dofs: 64 +Repeating step 11 +Repeating step 26 +Repeating step 41 +step 50, t = 0.3704, dt = 0.005729, |e| = 7.9356590849e+00 +Repeating step 59 +Repeating step 61 +Repeating step 63 +Repeating step 64 +Repeating step 65 +Repeating step 66 +Repeating step 68 +Repeating step 70 +Repeating step 72 +Repeating step 79 +Repeating step 89 +step 100, t = 0.5082, dt = 0.001542, |e| = 7.1849903144e+00 +step 150, t = 0.5869, dt = 0.001636, |e| = 6.8605869051e+00 +step 200, t = 0.6687, dt = 0.001636, |e| = 6.5796490985e+00 +step 250, t = 0.7510, dt = 0.001669, |e| = 6.3419949788e+00 +step 300, t = 0.8394, dt = 0.001880, |e| = 6.1214363408e+00 +step 350, t = 0.9419, dt = 0.002202, |e| = 5.9002366993e+00 +step 400, t = 1.0520, dt = 0.002247, |e| = 5.6955733646e+00 +step 450, t = 1.1651, dt = 0.002384, |e| = 5.5167267410e+00 +step 500, t = 1.3071, dt = 0.003338, |e| = 5.3299133588e+00 +Repeating step 505 +Repeating step 519 +Repeating step 540 +step 550, t = 1.4333, dt = 0.002050, |e| = 5.1918518846e+00 +Repeating step 553 +Repeating step 576 +Repeating step 577 +Repeating step 577 +Repeating step 578 +step 599, t = 1.5000, dt = 0.000836, |e| = 5.1280144682e+00 + +CG (H1) total time: 0.8104044760 +CG (H1) rate (megadofs x cg_iterations / second): 34.2393024986 + +CG (L2) total time: 0.0034025740 +CG (L2) rate (megadofs x cg_iterations / second): 5.8402844435 + +Forces total time: 0.0450997310 +Forces rate (megadofs x timesteps / second): 6.2238065234 + +UpdateQuadData total time: 0.1341821530 +UpdateQuadData rate (megaquads x timesteps / second): 2.4134357123 + +Major kernels total time (seconds): 0.9665720920 +Major kernels total rate (megadofs x time steps / second): 29.3327484154 + +Energy diff: 2.56e-09 + +mpirun -np X laghos -m data/refined.mesh -tf 0.4 -rs 2 + + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ + +Options used: + --dimension 3 + --mesh data/refined.mesh + --refine-serial 2 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 2 + --order-thermo 1 + --order-intrule -1 + --ode-solver 7 + --t-final 0.4 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 64 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 16 16 +Number of kinematic (position, velocity) dofs: 576 +Number of specific internal energy dofs: 256 +step 50, t = 0.0870, dt = 0.001779, |e| = 2.4251235295e+01 +Repeating step 64 +Repeating step 83 +Repeating step 91 +step 100, t = 0.1601, dt = 0.001093, |e| = 2.0424240125e+01 +Repeating step 128 +Repeating step 136 +Repeating step 141 +step 150, t = 0.2117, dt = 0.000818, |e| = 1.8715722763e+01 +Repeating step 166 +Repeating step 175 +step 200, t = 0.2493, dt = 0.000827, |e| = 1.7751066144e+01 +Repeating step 219 +Repeating step 223 +step 250, t = 0.2845, dt = 0.000673, |e| = 1.7066329939e+01 +Repeating step 276 +Repeating step 287 +Repeating step 298 +step 300, t = 0.3193, dt = 0.000494, |e| = 1.6573105801e+01 +Repeating step 318 +Repeating step 322 +step 350, t = 0.3398, dt = 0.000357, |e| = 1.6326887606e+01 +Repeating step 367 +Repeating step 397 +step 400, t = 0.3556, dt = 0.000258, |e| = 1.6131565499e+01 +step 450, t = 0.3685, dt = 0.000258, |e| = 1.5961746334e+01 +Repeating step 453 +Repeating step 487 +Repeating step 495 +Repeating step 498 +step 500, t = 0.3791, dt = 0.000161, |e| = 1.5825105291e+01 +Repeating step 501 +step 550, t = 0.3861, dt = 0.000148, |e| = 1.5740216854e+01 +step 600, t = 0.3937, dt = 0.000157, |e| = 1.5653880319e+01 +Repeating step 613 +step 641, t = 0.4000, dt = 0.000081, |e| = 1.5588910706e+01 + +CG (H1) total time: 1.3691227860 +CG (H1) rate (megadofs x cg_iterations / second): 87.7755371752 + +CG (L2) total time: 0.0119968820 +CG (L2) rate (megadofs x cg_iterations / second): 7.0845074579 + +Forces total time: 0.1376031190 +Forces rate (megadofs x timesteps / second): 8.0295854340 + +UpdateQuadData total time: 0.4728397010 +UpdateQuadData rate (megaquads x timesteps / second): 2.9279436500 + +Major kernels total time (seconds): 1.9758756710 +Major kernels total rate (megadofs x time steps / second): 62.0812502529 + +Energy diff: 2.39e-11 + +mpirun -np X laghos -m data/refined.mesh -tf 0.8 -rs 1 -ok 3 -ot 2 + + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ + +Options used: + --dimension 3 + --mesh data/refined.mesh + --refine-serial 1 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 3 + --order-thermo 2 + --order-intrule -1 + --ode-solver 7 + --t-final 0.8 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 16 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 4 4 +Number of kinematic (position, velocity) dofs: 336 +Number of specific internal energy dofs: 144 +step 50, t = 0.1902, dt = 0.004435, |e| = 1.3124098067e+01 +Repeating step 51 +Repeating step 58 +Repeating step 74 +Repeating step 86 +Repeating step 88 +Repeating step 90 +Repeating step 93 +Repeating step 98 +step 100, t = 0.3422, dt = 0.001444, |e| = 1.1153585219e+01 +Repeating step 110 +Repeating step 117 +Repeating step 123 +Repeating step 135 +Repeating step 139 +Repeating step 142 +Repeating step 147 +step 150, t = 0.3902, dt = 0.000463, |e| = 1.0787292121e+01 +step 200, t = 0.4133, dt = 0.000463, |e| = 1.0598946447e+01 +step 250, t = 0.4365, dt = 0.000463, |e| = 1.0439590872e+01 +step 300, t = 0.4611, dt = 0.000532, |e| = 1.0324140035e+01 +step 350, t = 0.4893, dt = 0.000587, |e| = 1.0252490890e+01 +Repeating step 382 +Repeating step 382 +step 400, t = 0.5186, dt = 0.000656, |e| = 1.0237017438e+01 +Repeating step 405 +step 450, t = 0.5498, dt = 0.000693, |e| = 1.0266298395e+01 +step 500, t = 0.5845, dt = 0.000693, |e| = 1.0329364257e+01 +step 550, t = 0.6191, dt = 0.000693, |e| = 1.0404029116e+01 +Repeating step 576 +step 600, t = 0.6517, dt = 0.000613, |e| = 1.0472982985e+01 +Repeating step 635 +Repeating step 636 +step 650, t = 0.6799, dt = 0.000479, |e| = 1.0524538066e+01 +step 700, t = 0.7057, dt = 0.000519, |e| = 1.0562315097e+01 +step 750, t = 0.7317, dt = 0.000519, |e| = 1.0590770048e+01 +Repeating step 797 +step 800, t = 0.7573, dt = 0.000441, |e| = 1.0608296551e+01 +step 850, t = 0.7794, dt = 0.000441, |e| = 1.0614503933e+01 +Repeating step 882 +step 900, t = 0.8000, dt = 0.000206, |e| = 1.0612158294e+01 + +CG (H1) total time: 1.7539920820 +CG (H1) rate (megadofs x cg_iterations / second): 34.7234771611 + +CG (L2) total time: 0.0051643120 +CG (L2) rate (megadofs x cg_iterations / second): 5.7192516641 + +Forces total time: 0.2709946540 +Forces rate (megadofs x timesteps / second): 3.2697323985 + +UpdateQuadData total time: 0.4927314770 +UpdateQuadData rate (megaquads x timesteps / second): 2.1860182478 + +Major kernels total time (seconds): 2.4693193520 +Major kernels total rate (megadofs x time steps / second): 25.4596085148 + +Energy diff: 1.23e-11 + +mpirun -np X laghos -m data/disc-nurbs.mesh -tf 5.0 -rs 2 + + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ + +Options used: + --dimension 3 + --mesh data/disc-nurbs.mesh + --refine-serial 2 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 2 + --order-thermo 1 + --order-intrule -1 + --ode-solver 7 + --t-final 5 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 80 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 20 20 +Number of kinematic (position, velocity) dofs: 674 +Number of specific internal energy dofs: 320 +Repeating step 3 +Repeating step 5 +Repeating step 10 +Repeating step 48 +Repeating step 49 +step 50, t = 2.2836, dt = 0.034191, |e| = 8.0841244798e-01 +Repeating step 51 +step 100, t = 3.7890, dt = 0.033384, |e| = 6.8577525144e-01 +Repeating step 104 +Repeating step 105 +Repeating step 106 +step 150, t = 4.9204, dt = 0.023550, |e| = 6.3632879715e-01 +step 154, t = 5.0000, dt = 0.008689, |e| = 6.3356639142e-01 + +CG (H1) total time: 0.3888873590 +CG (H1) rate (megadofs x cg_iterations / second): 92.7408391282 + +CG (L2) total time: 0.0035654420 +CG (L2) rate (megadofs x cg_iterations / second): 7.3146611276 + +Forces total time: 0.0358676950 +Forces rate (megadofs x timesteps / second): 9.0344249888 + +UpdateQuadData total time: 0.1404389280 +UpdateQuadData rate (megaquads x timesteps / second): 3.0623987674 + +Major kernels total time (seconds): 0.5642913130 +Major kernels total rate (megadofs x time steps / second): 65.2497445056 + +Energy diff: 5.49e-12 + +mpirun -np X laghos -m data/convex.mesh -tf 0.1 -rs 2 + + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ + +Options used: + --dimension 3 + --mesh data/convex.mesh + --refine-serial 2 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 2 + --order-thermo 1 + --order-intrule -1 + --ode-solver 7 + --t-final 0.1 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 64 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 16 16 +Number of kinematic (position, velocity) dofs: 576 +Number of specific internal energy dofs: 256 +Repeating step 42 +step 50, t = 0.0585, dt = 0.001024, |e| = 5.1668713215e+01 +Repeating step 65 +step 96, t = 0.1000, dt = 0.000179, |e| = 4.3862262944e+01 + +CG (H1) total time: 0.1867480800 +CG (H1) rate (megadofs x cg_iterations / second): 90.7483064886 + +CG (L2) total time: 0.0017315280 +CG (L2) rate (megadofs x cg_iterations / second): 7.2444684695 + +Forces total time: 0.0194407860 +Forces rate (megadofs x timesteps / second): 8.3881382162 + +UpdateQuadData total time: 0.0661514630 +UpdateQuadData rate (megaquads x timesteps / second): 3.0804458550 + +Major kernels total time (seconds): 0.2708007110 +Major kernels total rate (megadofs x time steps / second): 63.9360212020 + +Energy diff: 2.61e-12 + +mpirun -np X laghos -m data/cube01_hex.mesh -tf 0.25 -rs 1 + + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ + +Options used: + --dimension 3 + --mesh data/cube01_hex.mesh + --refine-serial 1 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 2 + --order-thermo 1 + --order-intrule -1 + --ode-solver 7 + --t-final 0.25 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 64 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 16 16 +Number of kinematic (position, velocity) dofs: 2187 +Number of specific internal energy dofs: 512 +Repeating step 33 +Repeating step 34 +Repeating step 35 +Repeating step 50 +step 50, t = 0.1720, dt = 0.002192, |e| = 4.9859113418e+01 +Repeating step 72 +Repeating step 77 +step 91, t = 0.2500, dt = 0.000526, |e| = 4.3152920230e+01 + +CG (H1) total time: 0.2802593920 +CG (H1) rate (megadofs x cg_iterations / second): 34.1870683856 + +CG (L2) total time: 0.0020680030 +CG (L2) rate (megadofs x cg_iterations / second): 6.0038597623 + +Forces total time: 0.4019293110 +Forces rate (megadofs x timesteps / second): 1.3027315642 + +UpdateQuadData total time: 0.6963818660 +UpdateQuadData rate (megaquads x timesteps / second): 1.1822479019 + +Major kernels total time (seconds): 1.3444451610 +Major kernels total rate (megadofs x time steps / second): 8.1283709570 + +Energy diff: 1.44e-12 + diff --git a/autotest/test.sh b/autotest/test.sh new file mode 100755 index 000000000..977ed3a92 --- /dev/null +++ b/autotest/test.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# execute with +# ./test.sh n -- to run on n tasks, getting test_n.out + +if [ "$1" = "" ]; then + ntask=1; +else + ntask=$1; +fi + +if [ $ntask = 0 ]; then + ntask=1; +fi + +cd .. +file="autotest/run_"$((ntask))".out" +rm -f $file + +command="mpirun -np "$((ntask))" laghos -p 1 -s 7 -vs 50 -fa" +comment="mpirun -np X laghos" + + +# 2D trapezoid. +params="-m data/trapezoid_quad.mesh -tf 1.5 -rs 1" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + +# 2D circular hole. +params="-m data/refined.mesh -tf 0.4 -rs 2" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + +# 2D circular hole Q3Q2. +params="-m data/refined.mesh -tf 0.8 -rs 1 -ok 3 -ot 2" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + +# 2D disc (inside). +params="-m data/disc-nurbs.mesh -tf 5.0 -rs 2" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + +# 2D disc (outside). +params="-m data/convex.mesh -tf 0.1 -rs 2" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + +# 3D cube. +params="-m data/cube01_hex.mesh -tf 0.25 -rs 1" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + +tkdiff autotest/baseline.out $file & + +cd autotest +exit 0 diff --git a/data/convex.mesh b/data/convex.mesh new file mode 100644 index 000000000..04a6ac0c2 --- /dev/null +++ b/data/convex.mesh @@ -0,0 +1,69 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# PRISM = 6 +# PYRAMID = 7 +# + +dimension +2 + +elements +4 +1 3 0 1 5 4 +1 3 1 2 6 5 +1 3 2 3 7 6 +1 3 3 0 4 7 + +boundary +8 +1 1 0 1 +1 1 1 2 +1 1 2 3 +1 1 3 0 +1 1 5 4 +1 1 6 5 +1 1 7 6 +1 1 4 7 + +vertices +8 + +nodes +FiniteElementSpace +FiniteElementCollection: H1_2D_P2 +VDim: 2 +Ordering: 1 + +0 0 +1 0 +1 1 +0 1 +0.35857864 0.35857864 +0.64142136 0.35857864 +0.64142136 0.64142136 +0.35857864 0.64142136 +0.5 0 +0.83535534 0.16464466 +0.5 0.3 +0.16464466 0.16464466 +1 0.5 +0.83535534 0.83535534 +0.7 0.5 +0.5 1 +0.16464466 0.83535534 +0.5 0.7 +0 0.5 +0.3 0.5 +0.5 0.13453718 +0.86546282 0.5 +0.5 0.86546282 +0.13453718 0.5 diff --git a/data/cube_gmsh_19.msh b/data/cube_gmsh_19.msh new file mode 100644 index 000000000..27a1a8c12 --- /dev/null +++ b/data/cube_gmsh_19.msh @@ -0,0 +1,11207 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +4880 +1 0.1154700538379251 0.1154700538379252 -0.1154700538379251 +2 -0.1154700538379251 0.1154700538379252 -0.1154700538379251 +3 0.1154700538379251 -0.1154700538379252 -0.1154700538379251 +4 -0.1154700538379251 -0.1154700538379252 -0.1154700538379251 +5 0.1154700538379251 0.1154700538379252 0.1154700538379251 +6 -0.1154700538379251 0.1154700538379252 0.1154700538379251 +7 0.1154700538379251 -0.1154700538379252 0.1154700538379251 +8 -0.1154700538379251 -0.1154700538379252 0.1154700538379251 +9 -0.5 -0.5 -0.5 +10 0.5 -0.5 -0.5 +11 0.5 0.5 -0.5 +12 -0.5 0.5 -0.5 +13 -0.5 -0.5 0.5 +14 0.5 -0.5 0.5 +15 0.5 0.5 0.5 +16 -0.5 0.5 0.5 +17 -0.1255243965008303 0.1255243965008303 0.09212628162584596 +18 -0.1332342217474402 0.1332342217474402 0.06706179471731949 +19 -0.1384555271304614 0.1384555271304614 0.04074474216450662 +20 -0.1410907902387499 0.14109079023875 0.01366666819711884 +21 -0.1410907902094608 0.1410907902094609 -0.01366666880186362 +22 -0.1384555270664701 0.1384555270664701 -0.040744742599407 +23 -0.1332342216719025 0.1332342216719026 -0.06706179501746637 +24 -0.1255243964527009 0.1255243964527009 -0.09212628175700117 +25 -0.09212628162584596 0.1255243965008303 -0.1255243965008303 +26 -0.06706179471731949 0.1332342217474402 -0.1332342217474402 +27 -0.04074474216450662 0.1384555271304614 -0.1384555271304614 +28 -0.01366666819711884 0.14109079023875 -0.1410907902387499 +29 0.01366666880186362 0.1410907902094609 -0.1410907902094608 +30 0.040744742599407 0.1384555270664701 -0.1384555270664701 +31 0.06706179501746637 0.1332342216719026 -0.1332342216719025 +32 0.09212628175700117 0.1255243964527009 -0.1255243964527009 +33 0.1255243965008303 0.1255243965008303 -0.09212628162584596 +34 0.1332342217474402 0.1332342217474402 -0.06706179471731949 +35 0.1384555271304614 0.1384555271304614 -0.04074474216450662 +36 0.1410907902387499 0.14109079023875 -0.01366666819711884 +37 0.1410907902094608 0.1410907902094609 0.01366666880186362 +38 0.1384555270664701 0.1384555270664701 0.040744742599407 +39 0.1332342216719025 0.1332342216719026 0.06706179501746637 +40 0.1255243964527009 0.1255243964527009 0.09212628175700117 +41 0.09212628162584596 0.1255243965008303 0.1255243965008303 +42 0.06706179471731949 0.1332342217474402 0.1332342217474402 +43 0.04074474216450662 0.1384555271304614 0.1384555271304614 +44 0.01366666819711884 0.14109079023875 0.1410907902387499 +45 -0.01366666880186362 0.1410907902094609 0.1410907902094608 +46 -0.040744742599407 0.1384555270664701 0.1384555270664701 +47 -0.06706179501746637 0.1332342216719026 0.1332342216719025 +48 -0.09212628175700117 0.1255243964527009 0.1255243964527009 +49 0.1255243964955581 0.09212628164021289 0.1255243964955581 +50 0.1332342217420428 0.06706179473876556 0.1332342217420428 +51 0.1384555271279426 0.04074474218162495 0.1384555271279426 +52 0.1410907902392385 0.01366666818703113 0.1410907902392385 +53 0.1410907902087966 -0.0136666688155784 0.1410907902087966 +54 0.1384555270637764 -0.04074474261771427 0.1384555270637764 +55 0.1332342216736595 -0.06706179501048519 0.1332342216736595 +56 0.1255243964535317 -0.09212628175473717 0.1255243964535317 +57 0.1255243965008303 -0.1255243965008303 0.09212628162584596 +58 0.1332342217474402 -0.1332342217474402 0.06706179471731949 +59 0.1384555271304614 -0.1384555271304614 0.04074474216450662 +60 0.1410907902387499 -0.14109079023875 0.01366666819711884 +61 0.1410907902094608 -0.1410907902094609 -0.01366666880186362 +62 0.1384555270664701 -0.1384555270664701 -0.040744742599407 +63 0.1332342216719025 -0.1332342216719026 -0.06706179501746637 +64 0.1255243964527009 -0.1255243964527009 -0.09212628175700117 +65 0.1255243964955581 -0.09212628164021289 -0.1255243964955581 +66 0.1332342217420428 -0.06706179473876556 -0.1332342217420428 +67 0.1384555271279426 -0.04074474218162495 -0.1384555271279426 +68 0.1410907902392385 -0.01366666818703113 -0.1410907902392385 +69 0.1410907902087966 0.0136666688155784 -0.1410907902087966 +70 0.1384555270637764 0.04074474261771427 -0.1384555270637764 +71 0.1332342216736595 0.06706179501048519 -0.1332342216736595 +72 0.1255243964535317 0.09212628175473717 -0.1255243964535317 +73 0.09212628162584596 -0.1255243965008303 0.1255243965008303 +74 0.06706179471731949 -0.1332342217474402 0.1332342217474402 +75 0.04074474216450662 -0.1384555271304614 0.1384555271304614 +76 0.01366666819711884 -0.14109079023875 0.1410907902387499 +77 -0.01366666880186362 -0.1410907902094609 0.1410907902094608 +78 -0.040744742599407 -0.1384555270664701 0.1384555270664701 +79 -0.06706179501746637 -0.1332342216719026 0.1332342216719025 +80 -0.09212628175700117 -0.1255243964527009 0.1255243964527009 +81 0.09212628162584596 -0.1255243965008303 -0.1255243965008303 +82 0.06706179471731949 -0.1332342217474402 -0.1332342217474402 +83 0.04074474216450662 -0.1384555271304614 -0.1384555271304614 +84 0.01366666819711884 -0.14109079023875 -0.1410907902387499 +85 -0.01366666880186362 -0.1410907902094609 -0.1410907902094608 +86 -0.040744742599407 -0.1384555270664701 -0.1384555270664701 +87 -0.06706179501746637 -0.1332342216719026 -0.1332342216719025 +88 -0.09212628175700117 -0.1255243964527009 -0.1255243964527009 +89 -0.1255243964955581 -0.09212628164021289 0.1255243964955581 +90 -0.1332342217420428 -0.06706179473876556 0.1332342217420428 +91 -0.1384555271279426 -0.04074474218162495 0.1384555271279426 +92 -0.1410907902392385 -0.01366666818703113 0.1410907902392385 +93 -0.1410907902087966 0.0136666688155784 0.1410907902087966 +94 -0.1384555270637764 0.04074474261771427 0.1384555270637764 +95 -0.1332342216736595 0.06706179501048519 0.1332342216736595 +96 -0.1255243964535317 0.09212628175473717 0.1255243964535317 +97 -0.1255243964955581 -0.09212628164021289 -0.1255243964955581 +98 -0.1332342217420428 -0.06706179473876556 -0.1332342217420428 +99 -0.1384555271279426 -0.04074474218162495 -0.1384555271279426 +100 -0.1410907902392385 -0.01366666818703113 -0.1410907902392385 +101 -0.1410907902087966 0.0136666688155784 -0.1410907902087966 +102 -0.1384555270637764 0.04074474261771427 -0.1384555270637764 +103 -0.1332342216736595 0.06706179501048519 -0.1332342216736595 +104 -0.1255243964535317 0.09212628175473717 -0.1255243964535317 +105 -0.1255243965008303 -0.1255243965008303 -0.09212628162584596 +106 -0.1332342217474402 -0.1332342217474402 -0.06706179471731949 +107 -0.1384555271304614 -0.1384555271304614 -0.04074474216450662 +108 -0.1410907902387499 -0.14109079023875 -0.01366666819711884 +109 -0.1410907902094608 -0.1410907902094609 0.01366666880186362 +110 -0.1384555270664701 -0.1384555270664701 0.040744742599407 +111 -0.1332342216719025 -0.1332342216719026 0.06706179501746637 +112 -0.1255243964527009 -0.1255243964527009 0.09212628175700117 +113 0.3888888888891969 -0.5 -0.5 +114 0.2777777777783941 -0.5 -0.5 +115 0.1666666666675909 -0.5 -0.5 +116 0.05555555555678765 -0.5 -0.5 +117 -0.05555555555432368 -0.5 -0.5 +118 -0.1666666666657427 -0.5 -0.5 +119 -0.2777777777771617 -0.5 -0.5 +120 -0.3888888888885809 -0.5 -0.5 +121 -0.5 -0.3888888888891969 -0.5 +122 -0.5 -0.2777777777783941 -0.5 +123 -0.5 -0.1666666666675909 -0.5 +124 -0.5 -0.05555555555678765 -0.5 +125 -0.5 0.05555555555432368 -0.5 +126 -0.5 0.1666666666657427 -0.5 +127 -0.5 0.2777777777771617 -0.5 +128 -0.5 0.3888888888885809 -0.5 +129 -0.3888888888891969 0.5 -0.5 +130 -0.2777777777783941 0.5 -0.5 +131 -0.1666666666675909 0.5 -0.5 +132 -0.05555555555678765 0.5 -0.5 +133 0.05555555555432368 0.5 -0.5 +134 0.1666666666657427 0.5 -0.5 +135 0.2777777777771617 0.5 -0.5 +136 0.3888888888885809 0.5 -0.5 +137 0.5 0.3888888888891969 -0.5 +138 0.5 0.2777777777783941 -0.5 +139 0.5 0.1666666666675909 -0.5 +140 0.5 0.05555555555678765 -0.5 +141 0.5 -0.05555555555432368 -0.5 +142 0.5 -0.1666666666657427 -0.5 +143 0.5 -0.2777777777771617 -0.5 +144 0.5 -0.3888888888885809 -0.5 +145 0.5 -0.5 -0.3888888888891969 +146 0.5 -0.5 -0.2777777777783941 +147 0.5 -0.5 -0.1666666666675909 +148 0.5 -0.5 -0.05555555555678765 +149 0.5 -0.5 0.05555555555432368 +150 0.5 -0.5 0.1666666666657427 +151 0.5 -0.5 0.2777777777771617 +152 0.5 -0.5 0.3888888888885809 +153 -0.5 -0.5 -0.3888888888891969 +154 -0.5 -0.5 -0.2777777777783941 +155 -0.5 -0.5 -0.1666666666675909 +156 -0.5 -0.5 -0.05555555555678765 +157 -0.5 -0.5 0.05555555555432368 +158 -0.5 -0.5 0.1666666666657427 +159 -0.5 -0.5 0.2777777777771617 +160 -0.5 -0.5 0.3888888888885809 +161 -0.5 0.5 -0.3888888888891969 +162 -0.5 0.5 -0.2777777777783941 +163 -0.5 0.5 -0.1666666666675909 +164 -0.5 0.5 -0.05555555555678765 +165 -0.5 0.5 0.05555555555432368 +166 -0.5 0.5 0.1666666666657427 +167 -0.5 0.5 0.2777777777771617 +168 -0.5 0.5 0.3888888888885809 +169 0.5 0.5 -0.3888888888891969 +170 0.5 0.5 -0.2777777777783941 +171 0.5 0.5 -0.1666666666675909 +172 0.5 0.5 -0.05555555555678765 +173 0.5 0.5 0.05555555555432368 +174 0.5 0.5 0.1666666666657427 +175 0.5 0.5 0.2777777777771617 +176 0.5 0.5 0.3888888888885809 +177 0.3888888888891969 0.5 0.5 +178 0.2777777777783941 0.5 0.5 +179 0.1666666666675909 0.5 0.5 +180 0.05555555555678765 0.5 0.5 +181 -0.05555555555432368 0.5 0.5 +182 -0.1666666666657427 0.5 0.5 +183 -0.2777777777771617 0.5 0.5 +184 -0.3888888888885809 0.5 0.5 +185 -0.5 0.3888888888891969 0.5 +186 -0.5 0.2777777777783941 0.5 +187 -0.5 0.1666666666675909 0.5 +188 -0.5 0.05555555555678765 0.5 +189 -0.5 -0.05555555555432368 0.5 +190 -0.5 -0.1666666666657427 0.5 +191 -0.5 -0.2777777777771617 0.5 +192 -0.5 -0.3888888888885809 0.5 +193 -0.3888888888891969 -0.5 0.5 +194 -0.2777777777783941 -0.5 0.5 +195 -0.1666666666675909 -0.5 0.5 +196 -0.05555555555678765 -0.5 0.5 +197 0.05555555555432368 -0.5 0.5 +198 0.1666666666657427 -0.5 0.5 +199 0.2777777777771617 -0.5 0.5 +200 0.3888888888885809 -0.5 0.5 +201 0.5 -0.3888888888891969 0.5 +202 0.5 -0.2777777777783941 0.5 +203 0.5 -0.1666666666675909 0.5 +204 0.5 -0.05555555555678765 0.5 +205 0.5 0.05555555555432368 0.5 +206 0.5 0.1666666666657427 0.5 +207 0.5 0.2777777777771617 0.5 +208 0.5 0.3888888888885809 0.5 +209 0.1581956034114103 0.1581956034114103 0.1581956034114103 +210 0.2009211529848485 0.2009211529848485 0.2009211529848485 +211 0.2436467025582866 0.2436467025582866 0.2436467025582866 +212 0.2863722521317247 0.2863722521317247 0.2863722521317247 +213 0.3290978017053489 0.3290978017053489 0.3290978017053489 +214 0.3718233512789746 0.3718233512789746 0.3718233512789746 +215 0.4145489008526907 0.4145489008526907 0.4145489008526907 +216 0.4572744504263819 0.4572744504263818 0.4572744504263819 +217 0.1581956034114103 0.1581956034114103 -0.1581956034114103 +218 0.2009211529848485 0.2009211529848485 -0.2009211529848485 +219 0.2436467025582866 0.2436467025582866 -0.2436467025582866 +220 0.2863722521317247 0.2863722521317247 -0.2863722521317247 +221 0.3290978017053489 0.3290978017053489 -0.3290978017053489 +222 0.3718233512789746 0.3718233512789746 -0.3718233512789746 +223 0.4145489008526907 0.4145489008526907 -0.4145489008526907 +224 0.4572744504263819 0.4572744504263818 -0.4572744504263819 +225 0.1581956034114103 -0.1581956034114103 0.1581956034114103 +226 0.2009211529848485 -0.2009211529848485 0.2009211529848485 +227 0.2436467025582866 -0.2436467025582866 0.2436467025582866 +228 0.2863722521317247 -0.2863722521317247 0.2863722521317247 +229 0.3290978017053489 -0.3290978017053489 0.3290978017053489 +230 0.3718233512789746 -0.3718233512789746 0.3718233512789746 +231 0.4145489008526907 -0.4145489008526907 0.4145489008526907 +232 0.4572744504263819 -0.4572744504263818 0.4572744504263819 +233 0.1581956034114103 -0.1581956034114103 -0.1581956034114103 +234 0.2009211529848485 -0.2009211529848485 -0.2009211529848485 +235 0.2436467025582866 -0.2436467025582866 -0.2436467025582866 +236 0.2863722521317247 -0.2863722521317247 -0.2863722521317247 +237 0.3290978017053489 -0.3290978017053489 -0.3290978017053489 +238 0.3718233512789746 -0.3718233512789746 -0.3718233512789746 +239 0.4145489008526907 -0.4145489008526907 -0.4145489008526907 +240 0.4572744504263819 -0.4572744504263818 -0.4572744504263819 +241 -0.1581956034114103 0.1581956034114103 0.1581956034114103 +242 -0.2009211529848485 0.2009211529848485 0.2009211529848485 +243 -0.2436467025582866 0.2436467025582866 0.2436467025582866 +244 -0.2863722521317247 0.2863722521317247 0.2863722521317247 +245 -0.3290978017053489 0.3290978017053489 0.3290978017053489 +246 -0.3718233512789746 0.3718233512789746 0.3718233512789746 +247 -0.4145489008526907 0.4145489008526907 0.4145489008526907 +248 -0.4572744504263819 0.4572744504263818 0.4572744504263819 +249 -0.1581956034114103 0.1581956034114103 -0.1581956034114103 +250 -0.2009211529848485 0.2009211529848485 -0.2009211529848485 +251 -0.2436467025582866 0.2436467025582866 -0.2436467025582866 +252 -0.2863722521317247 0.2863722521317247 -0.2863722521317247 +253 -0.3290978017053489 0.3290978017053489 -0.3290978017053489 +254 -0.3718233512789746 0.3718233512789746 -0.3718233512789746 +255 -0.4145489008526907 0.4145489008526907 -0.4145489008526907 +256 -0.4572744504263819 0.4572744504263818 -0.4572744504263819 +257 -0.1581956034114103 -0.1581956034114103 0.1581956034114103 +258 -0.2009211529848485 -0.2009211529848485 0.2009211529848485 +259 -0.2436467025582866 -0.2436467025582866 0.2436467025582866 +260 -0.2863722521317247 -0.2863722521317247 0.2863722521317247 +261 -0.3290978017053489 -0.3290978017053489 0.3290978017053489 +262 -0.3718233512789746 -0.3718233512789746 0.3718233512789746 +263 -0.4145489008526907 -0.4145489008526907 0.4145489008526907 +264 -0.4572744504263819 -0.4572744504263818 0.4572744504263819 +265 -0.1581956034114103 -0.1581956034114103 -0.1581956034114103 +266 -0.2009211529848485 -0.2009211529848485 -0.2009211529848485 +267 -0.2436467025582866 -0.2436467025582866 -0.2436467025582866 +268 -0.2863722521317247 -0.2863722521317247 -0.2863722521317247 +269 -0.3290978017053489 -0.3290978017053489 -0.3290978017053489 +270 -0.3718233512789746 -0.3718233512789746 -0.3718233512789746 +271 -0.4145489008526907 -0.4145489008526907 -0.4145489008526907 +272 -0.4572744504263819 -0.4572744504263818 -0.4572744504263819 +273 -0.1020602882528486 0.1384463617947501 -0.1020602883963328 +274 -0.1101047992523383 0.1489176251385085 -0.07550148412255848 +275 -0.1157927359458161 0.1563250804123012 -0.04641671612975299 +276 -0.1187441380170836 0.160169875451145 -0.0156665466694002 +277 -0.1187441380579097 0.1601698754736462 0.01566654612991526 +278 -0.1157927360464593 0.1563250804534671 0.04641671574004386 +279 -0.1101047993911565 0.1489176251762273 0.07550148384572233 +280 -0.1020602883963328 0.1384463617947501 0.1020602882528486 +281 -0.07550148384572236 0.1489176251762273 -0.1101047993911564 +282 -0.08267205046186739 0.1622672613516093 -0.08267205069356248 +283 -0.08795105863602951 0.1721085934643622 -0.05141248234155413 +284 -0.09076576792111422 0.177360193948022 -0.01746244474323255 +285 -0.09076576797874061 0.1773601939608687 0.01746244431322421 +286 -0.08795105879135923 0.1721085934787219 0.05141248202776186 +287 -0.08267205069356248 0.1622672613516093 0.08267205046186739 +288 -0.07550148412255844 0.1489176251385085 0.1101047992523383 +289 -0.0464167157400439 0.1563250804534672 -0.1157927360464593 +290 -0.05141248202776186 0.1721085934787219 -0.08795105879135921 +291 -0.05520960320438156 0.1841298438749005 -0.05520960340936635 +292 -0.05727992366964756 0.1906924657171119 -0.01885189282611839 +293 -0.05727992374232549 0.190692465722842 0.01885189254733048 +294 -0.05520960340936637 0.1841298438749005 0.0552096032043815 +295 -0.0514124823415541 0.1721085934643622 0.08795105863602948 +296 -0.04641671612975298 0.1563250804123011 0.1157927359458162 +297 -0.01566654612991527 0.1601698754736462 -0.1187441380579097 +298 -0.0174624443132242 0.1773601939608687 -0.09076576797874053 +299 -0.01885189254733049 0.190692465722842 -0.05727992374232546 +300 -0.01961920623651423 0.1980660836425445 -0.01961920633343004 +301 -0.01961920633343005 0.1980660836425445 0.01961920623651422 +302 -0.0188518928261184 0.1906924657171119 0.0572799236696476 +303 -0.01746244474323254 0.177360193948022 0.09076576792111424 +304 -0.0156665466694002 0.1601698754511451 0.1187441380170836 +305 0.0156665466694002 0.160169875451145 -0.1187441380170836 +306 0.01746244474323252 0.177360193948022 -0.09076576792111418 +307 0.0188518928261184 0.1906924657171119 -0.05727992366964758 +308 0.01961920633343006 0.1980660836425445 -0.01961920623651419 +309 0.01961920623651423 0.1980660836425445 0.01961920633343004 +310 0.01885189254733048 0.190692465722842 0.05727992374232552 +311 0.01746244431322418 0.1773601939608687 0.0907657679787406 +312 0.01566654612991526 0.1601698754736462 0.1187441380579097 +313 0.04641671612975301 0.1563250804123012 -0.1157927359458161 +314 0.05141248234155416 0.1721085934643622 -0.08795105863602941 +315 0.05520960340936633 0.1841298438749005 -0.05520960320438154 +316 0.05727992374232552 0.190692465722842 -0.01885189254733048 +317 0.05727992366964756 0.1906924657171119 0.0188518928261184 +318 0.0552096032043815 0.1841298438749005 0.05520960340936636 +319 0.05141248202776188 0.1721085934787219 0.08795105879135921 +320 0.0464167157400439 0.1563250804534672 0.1157927360464593 +321 0.07550148412255846 0.1489176251385085 -0.1101047992523383 +322 0.08267205069356248 0.1622672613516093 -0.08267205046186739 +323 0.08795105879135923 0.1721085934787219 -0.05141248202776186 +324 0.09076576797874057 0.1773601939608687 -0.0174624443132242 +325 0.09076576792111418 0.177360193948022 0.01746244474323259 +326 0.08795105863602948 0.1721085934643622 0.05141248234155407 +327 0.08267205046186737 0.1622672613516093 0.08267205069356248 +328 0.07550148384572235 0.1489176251762273 0.1101047993911565 +329 0.1020602883963327 0.1384463617947501 -0.1020602882528486 +330 0.1101047993911564 0.1489176251762273 -0.07550148384572236 +331 0.1157927360464592 0.1563250804534672 -0.04641671574004389 +332 0.1187441380579097 0.1601698754736461 -0.01566654612991527 +333 0.1187441380170836 0.1601698754511451 0.0156665466694002 +334 0.1157927359458162 0.1563250804123012 0.04641671612975298 +335 0.1101047992523383 0.1489176251385085 0.07550148412255848 +336 0.1020602882528486 0.1384463617947501 0.1020602883963328 +337 0.1384463617949523 0.102060288395903 -0.1020602882530041 +338 0.1489176251398488 0.07550148411841388 -0.1101047992533676 +339 0.1563250804084367 0.04641671615016912 -0.1157927359428494 +340 0.1601698754503552 0.01566654668207001 -0.1187441380164774 +341 0.1601698754741772 -0.01566654612139671 -0.1187441380583173 +342 0.1563250804497993 -0.04641671575942127 -0.1157927360436434 +343 0.1489176251698154 -0.0755014838655504 -0.110104799386232 +344 0.1384463617886643 -0.1020602882657808 -0.102060288391656 +345 0.1489176251753601 0.110104799392649 -0.07550148384525618 +346 0.1622672613519132 0.08267205069280294 -0.08267205046203049 +347 0.1721085934591727 0.05141248236368592 -0.08795105863324729 +348 0.1773601939471929 0.0174624447539633 -0.09076576792066993 +349 0.177360193961341 -0.01746244430711299 -0.09076576797899355 +350 0.1721085934737223 -0.05141248204908352 -0.08795105878867888 +351 0.1622672613446857 -0.08267205047917288 -0.08267205068984652 +352 0.1489176251320454 -0.1101047992634622 -0.07550148411908403 +353 0.1563250804511599 0.1157927360498672 -0.04641671573931271 +354 0.1721085934773472 0.08795105879430326 -0.05141248202732732 +355 0.1841298438685151 0.05520960343267737 -0.05520960320236631 +356 0.1906924657163951 0.01885189283405546 -0.05727992366942158 +357 0.1906924657231091 -0.01885189254437354 -0.0572799237424097 +358 0.1841298438686564 -0.05520960322717677 -0.05520960340739567 +359 0.172108593457766 -0.08795105865015637 -0.05141248233946887 +360 0.1563250804060941 -0.1157927359549845 -0.0464167161277859 +361 0.1601698754697555 0.1187441380632115 -0.01566654612950821 +362 0.1773601939574417 0.09076576798550584 -0.01746244431286667 +363 0.190692465715754 0.05727992376616536 -0.01885189254659258 +364 0.1980660836421055 0.0196192063379074 -0.01961920623646856 +365 0.1980660836424757 -0.01961920623721547 -0.01961920633342292 +366 0.1906924657100765 -0.05727992369331043 -0.01885189282538588 +367 0.1773601939426803 -0.09076576793165941 -0.01746244474267524 +368 0.1601698754458522 -0.118744138024296 -0.01566654666884643 +369 0.1601698754458522 0.118744138024296 0.01566654666884643 +370 0.1773601939426803 0.09076576793165941 0.01746244474267524 +371 0.1906924657100765 0.05727992369331034 0.01885189282538597 +372 0.1980660836424757 0.01961920623721546 0.01961920633342291 +373 0.1980660836421055 -0.01961920633790742 0.01961920623646851 +374 0.190692465715754 -0.05727992376616536 0.01885189254659253 +375 0.1773601939574417 -0.09076576798550583 0.01746244431286667 +376 0.1601698754697554 -0.1187441380632115 0.0156665461295082 +377 0.1563250804060941 0.1157927359549845 0.04641671612778593 +378 0.172108593457766 0.08795105865015641 0.05141248233946878 +379 0.1841298438686564 0.05520960322717677 0.05520960340739567 +380 0.1906924657231091 0.01885189254437362 0.05727992374240971 +381 0.1906924657163951 -0.01885189283405549 0.05727992366942153 +382 0.1841298438685152 -0.05520960343267737 0.05520960320236627 +383 0.1721085934773472 -0.08795105879430322 0.05141248202732732 +384 0.1563250804511599 -0.1157927360498672 0.04641671573931273 +385 0.1489176251320453 0.1101047992634622 0.07550148411908411 +386 0.1622672613446857 0.08267205047917286 0.08267205068984651 +387 0.1721085934737223 0.05141248204908351 0.08795105878867891 +388 0.177360193961341 0.01746244430711296 0.09076576797899355 +389 0.1773601939471929 -0.01746244475396331 0.09076576792066993 +390 0.1721085934591727 -0.05141248236368593 0.08795105863324729 +391 0.1622672613519132 -0.08267205069280292 0.08267205046203051 +392 0.1489176251753601 -0.1101047993926491 0.07550148384525618 +393 0.1384463617886643 0.1020602882657808 0.102060288391656 +394 0.1489176251698154 0.07550148386555039 0.110104799386232 +395 0.1563250804497993 0.04641671575942124 0.1157927360436434 +396 0.1601698754741772 0.01566654612139671 0.1187441380583173 +397 0.1601698754503552 -0.01566654668206994 0.1187441380164774 +398 0.1563250804084367 -0.04641671615016914 0.1157927359428494 +399 0.1489176251398488 -0.0755014841184139 0.1101047992533676 +400 0.1384463617949523 -0.102060288395903 0.1020602882530041 +401 0.1020602882759028 -0.1384463618514233 0.1020602882964006 +402 0.07550148383328729 -0.1489176252320513 0.110104799324181 +403 0.04641671569551041 -0.156325080494497 0.115792736008919 +404 0.0156665460541682 -0.1601698754894979 0.1187441380465216 +405 -0.0156665467451473 -0.1601698754352934 0.1187441380284717 +406 -0.04641671617428645 -0.1563250803712714 0.1157927359833565 +407 -0.07550148413499354 -0.1489176250826845 0.1101047993193137 +408 -0.1020602883732785 -0.138446361738077 0.1020602883527808 +409 0.1101047992848184 -0.1489176252380109 0.07550148387893574 +410 0.08267205042652877 -0.1622672614584446 0.08267205051920685 +411 0.05141248192664583 -0.1721085935616502 0.08795105868818762 +412 0.01746244414417352 -0.1773601939943109 0.09076576794591687 +413 -0.01746244491228322 -0.1773601939145799 0.0907657679539379 +414 -0.05141248244267019 -0.1721085933814339 0.08795105873920106 +415 -0.08267205072890113 -0.1622672612447741 0.08267205063622302 +416 -0.1101047993586763 -0.1489176250767249 0.07550148408934512 +417 0.115792735955603 -0.1563250805149778 0.04641671575953762 +418 0.08795105855521136 -0.1721085935889854 0.05141248206262025 +419 0.05520960303201872 -0.1841298439782632 0.05520960323700356 +420 0.01885189227255421 -0.1906924657671022 0.05727992368541146 +421 -0.01885189310089468 -0.1906924656728517 0.05727992372656161 +422 -0.05520960358172914 -0.1841298437715377 0.05520960337674437 +423 -0.08795105887217736 -0.1721085933540987 0.05141248230669578 +424 -0.1157927360366724 -0.1563250803507905 0.04641671611025929 +425 0.1187441379825704 -0.1601698755289342 0.01566654613569992 +426 0.09076576777918975 -0.1773601940619525 0.01746244432376951 +427 0.05727992341834569 -0.1906924658191672 0.01885189255735939 +428 0.01961920585374256 -0.1980660836895748 0.01961920624140586 +429 -0.0196192067162017 -0.1980660835955141 0.01961920632853844 +430 -0.05727992399362741 -0.1906924656207868 0.01885189281608949 +431 -0.09076576812066507 -0.1773601938469382 0.01746244473268719 +432 -0.1187441380924229 -0.160169875395857 0.01566654666361554 +433 0.1187441379568121 -0.1601698754953755 -0.01566654667402794 +434 0.09076576776147352 -0.1773601940288891 -0.01746244475166879 +435 0.05727992341046376 -0.190692465794172 -0.0188518928341415 +436 0.0196192058527642 -0.1980660836801688 -0.01961920633734337 +437 -0.01961920671718004 -0.1980660836049202 -0.01961920623260092 +438 -0.05727992400150936 -0.1906924656457819 -0.01885189253930738 +439 -0.09076576813838122 -0.1773601938800017 -0.01746244430478792 +440 -0.1187441381181811 -0.1601698754294158 -0.01566654612528754 +441 0.115792735900388 -0.1563250804430565 -0.04641671613949987 +442 0.08795105851795548 -0.1721085935194939 -0.05141248235898337 +443 0.05520960301570772 -0.1841298439265819 -0.05520960342567735 +444 0.0188518922705484 -0.1906924657478372 -0.05727992375020744 +445 -0.01885189310290048 -0.1906924656921167 -0.05727992366176565 +446 -0.05520960359804017 -0.1841298438232191 -0.05520960318807051 +447 -0.0879510589094331 -0.1721085934235901 -0.05141248201033272 +448 -0.1157927360918874 -0.1563250804227118 -0.04641671573029704 +449 0.110104799221956 -0.148917625156161 -0.07550148413204796 +450 0.08267205038557202 -0.1622672613821337 -0.08267205070994518 +451 0.0514124819092166 -0.1721085935065184 -0.08795105880626158 +452 0.01746244414206446 -0.1773601939740941 -0.09076576798582706 +453 -0.01746244491439226 -0.1773601939347966 -0.0907657679140277 +454 -0.05141248246009936 -0.1721085934365656 -0.08795105862112715 +455 -0.08267205076985779 -0.162267261321085 -0.0826720504454847 +456 -0.1101047994215388 -0.1489176251585748 -0.07550148383623281 +457 0.1020602882377949 -0.1384463618018342 -0.1020602884017767 +458 0.07550148380956351 -0.1489176251879201 -0.1101047994001368 +459 0.04641671568576355 -0.1563250804637416 -0.1157927360543471 +460 0.0156665460530113 -0.1601698754784403 -0.1187441380615895 +461 -0.01566654674630421 -0.1601698754463509 -0.1187441380134038 +462 -0.04641671618403337 -0.1563250804020267 -0.1157927359379283 +463 -0.07550148415871742 -0.1489176251268157 -0.1101047992433579 +464 -0.1020602884113865 -0.138446361787666 -0.1020602882474046 +465 -0.1384463617948501 -0.102060288252636 0.1020602883964097 +466 -0.1489176251474595 -0.1101047992369325 0.07550148412737029 +467 -0.1563250804329495 -0.1157927359153169 0.04641671613629685 +468 -0.160169875484474 -0.1187441379716672 0.01566654667288735 +469 -0.1601698755180327 -0.1187441379974255 -0.01566654613455934 +470 -0.1563250805048709 -0.1157927359705318 -0.04641671575633455 +471 -0.1489176252293094 -0.110104799299795 -0.07550148387425798 +472 -0.1384463618444391 -0.1020602882907439 -0.1020602882910335 +473 -0.1489176251804008 -0.07550148383281612 0.1101047993943618 +474 -0.1622672613723191 -0.08267205041010357 0.08267205070467759 +475 -0.1721085935076762 -0.08795105854326538 0.05141248235524726 +476 -0.1773601940158883 -0.09076576778713846 0.01746244475031252 +477 -0.1773601940489518 -0.09076576780485468 -0.01746244432241325 +478 -0.1721085935771676 -0.08795105858052117 -0.05141248205888419 +479 -0.1622672614486299 -0.08267205045106034 -0.08267205051393926 +480 -0.148917625224532 -0.07550148385653993 -0.1101047993184061 +481 -0.1563250804601019 -0.04641671570499253 0.1157927360515529 +482 -0.1721085935015949 -0.05141248193021419 0.08795105880362197 +483 -0.1841298439204791 -0.05520960303798721 0.05520960342375127 +484 -0.1906924657873473 -0.05727992343341796 0.01885189283343098 +485 -0.1906924658123424 -0.05727992344129987 -0.01885189255664884 +486 -0.1841298439721605 -0.0552096030542982 -0.05520960323507741 +487 -0.1721085935567267 -0.05141248194764338 -0.08795105868554802 +488 -0.1563250804908572 -0.04641671571473945 -0.1157927360061247 +489 -0.16016987547916 -0.01566654604146581 0.1187441380621419 +490 -0.1773601939750869 -0.01746244412921651 0.09076576798635899 +491 -0.190692465749088 -0.01885189225669751 0.05727992375060186 +492 -0.1980660836815809 -0.0196192058383613 0.01961920633749023 +493 -0.1980660836909869 -0.01961920583933963 -0.01961920624155274 +494 -0.190692465768353 -0.01885189225870332 -0.05727992368580592 +495 -0.1773601939953036 -0.01746244413132558 -0.09076576794644885 +496 -0.1601698754902176 -0.01566654604262274 -0.1187441380470741 +497 -0.1601698754453724 0.01566654676200082 0.1187441380126528 +498 -0.177360193933447 0.01746244493185977 0.0907657679133045 +499 -0.1906924656904162 0.01885189312173159 0.05727992366122936 +500 -0.1980660836030003 0.01961920673676158 0.01961920623240121 +501 -0.1980660835935942 0.01961920673578333 -0.01961920632833875 +502 -0.1906924656711511 0.01885189311972581 -0.05727992372602538 +503 -0.1773601939132302 0.01746244492975071 -0.09076576795321467 +504 -0.1601698754343148 0.01566654676084401 -0.1187441380277206 +505 -0.1563250803981341 0.04641671620459786 0.1157927359349399 +506 -0.1721085934313001 0.05141248248255521 0.08795105861830418 +507 -0.1841298438166925 0.05520960362186697 0.0552096031860107 +508 -0.1906924656384832 0.05727992402605775 0.01885189253854748 +509 -0.1906924656134881 0.05727992401817583 -0.01885189281532958 +510 -0.1841298437650112 0.05520960360555598 -0.05520960337468452 +511 -0.1721085933761684 0.05141248246512607 -0.08795105873637815 +512 -0.1563250803673788 0.04641671619485102 -0.1157927359803681 +513 -0.1489176251292634 0.07550148415114813 0.1101047992452378 +514 -0.1622672613242799 0.08267205076187231 0.0826720504471994 +515 -0.1721085934274371 0.08795105890119424 0.0514124820115489 +516 -0.1773601938842337 0.09076576813002678 0.01746244430522941 +517 -0.1773601938511702 0.09076576811231056 -0.01746244473312875 +518 -0.1721085933579456 0.08795105886393845 -0.0514124823079119 +519 -0.162267261247969 0.08267205072091555 -0.08267205063793773 +520 -0.1489176250851322 0.07550148412742433 -0.1101047993211935 +521 -0.1384463617887665 0.1020602884090479 0.1020602882482504 +522 -0.148917625159946 0.1101047994191788 0.07550148383696993 +523 -0.1563250804243045 0.115792736089535 0.04641671573080179 +524 -0.1601698754311336 0.1187441381158403 0.01566654612546727 +525 -0.1601698753975749 0.118744138090082 -0.01566654666379529 +526 -0.1563250803523831 0.11579273603432 -0.04641671611076405 +527 -0.1489176250780961 0.1101047993563163 -0.07550148409008228 +528 -0.1384463617391775 0.1020602883709399 -0.1020602883536266 +529 0.3888888888891285 -0.5 -0.388888888889197 +530 0.2777777777782572 -0.5 -0.3888888888891969 +531 0.1666666666673855 -0.5 -0.388888888889197 +532 0.05555555555651387 -0.5 -0.3888888888891969 +533 -0.05555555555459746 -0.5 -0.3888888888891969 +534 -0.166666666665948 -0.5 -0.3888888888891969 +535 -0.2777777777772987 -0.5 -0.3888888888891969 +536 -0.3888888888886494 -0.5 -0.3888888888891969 +537 0.38888888888906 -0.5 -0.2777777777783941 +538 0.2777777777781202 -0.5 -0.2777777777783941 +539 0.1666666666671802 -0.5 -0.2777777777783941 +540 0.05555555555624009 -0.5 -0.2777777777783941 +541 -0.05555555555487124 -0.5 -0.2777777777783941 +542 -0.1666666666661534 -0.5 -0.2777777777783941 +543 -0.2777777777774355 -0.5 -0.2777777777783941 +544 -0.3888888888887178 -0.5 -0.2777777777783941 +545 0.3888888888889915 -0.5 -0.1666666666675909 +546 0.2777777777779833 -0.5 -0.1666666666675909 +547 0.1666666666669748 -0.5 -0.1666666666675909 +548 0.05555555555596631 -0.5 -0.1666666666675909 +549 -0.05555555555514502 -0.5 -0.1666666666675909 +550 -0.1666666666663588 -0.5 -0.1666666666675909 +551 -0.2777777777775725 -0.5 -0.1666666666675909 +552 -0.3888888888887863 -0.5 -0.1666666666675909 +553 0.3888888888889231 -0.5 -0.05555555555678765 +554 0.2777777777778464 -0.5 -0.05555555555678765 +555 0.1666666666667695 -0.5 -0.05555555555678766 +556 0.05555555555569258 -0.5 -0.05555555555678765 +557 -0.05555555555541876 -0.5 -0.05555555555678765 +558 -0.1666666666665641 -0.5 -0.05555555555678762 +559 -0.2777777777777095 -0.5 -0.05555555555678768 +560 -0.3888888888888548 -0.5 -0.05555555555678762 +561 0.3888888888888546 -0.5 0.05555555555432368 +562 0.2777777777777095 -0.5 0.05555555555432368 +563 0.1666666666665641 -0.5 0.05555555555432368 +564 0.0555555555554188 -0.5 0.05555555555432368 +565 -0.05555555555569255 -0.5 0.05555555555432368 +566 -0.1666666666667695 -0.5 0.05555555555432365 +567 -0.2777777777778463 -0.5 0.0555555555543237 +568 -0.3888888888889231 -0.5 0.05555555555432368 +569 0.3888888888887863 -0.5 0.1666666666657427 +570 0.2777777777775725 -0.5 0.1666666666657427 +571 0.1666666666663588 -0.5 0.1666666666657427 +572 0.05555555555514502 -0.5 0.1666666666657427 +573 -0.05555555555596631 -0.5 0.1666666666657427 +574 -0.1666666666669748 -0.5 0.1666666666657427 +575 -0.2777777777779833 -0.5 0.1666666666657427 +576 -0.3888888888889915 -0.5 0.1666666666657427 +577 0.3888888888887178 -0.5 0.2777777777771617 +578 0.2777777777774356 -0.5 0.2777777777771617 +579 0.1666666666661534 -0.5 0.2777777777771617 +580 0.05555555555487124 -0.5 0.2777777777771617 +581 -0.05555555555624009 -0.5 0.2777777777771617 +582 -0.1666666666671802 -0.5 0.2777777777771617 +583 -0.2777777777781203 -0.5 0.2777777777771617 +584 -0.38888888888906 -0.5 0.2777777777771617 +585 0.3888888888886494 -0.5 0.3888888888885809 +586 0.2777777777772986 -0.5 0.3888888888885809 +587 0.166666666665948 -0.5 0.3888888888885809 +588 0.05555555555459746 -0.5 0.3888888888885809 +589 -0.05555555555651387 -0.5 0.3888888888885809 +590 -0.1666666666673855 -0.5 0.3888888888885809 +591 -0.2777777777782571 -0.5 0.3888888888885808 +592 -0.3888888888891285 -0.5 0.3888888888885809 +593 0.5 -0.3888888888886494 -0.3888888888891969 +594 0.5 -0.2777777777772987 -0.3888888888891969 +595 0.5 -0.1666666666659481 -0.3888888888891969 +596 0.5 -0.05555555555459746 -0.3888888888891969 +597 0.5 0.05555555555651387 -0.3888888888891969 +598 0.5 0.1666666666673856 -0.3888888888891969 +599 0.5 0.2777777777782572 -0.3888888888891969 +600 0.5 0.3888888888891284 -0.3888888888891969 +601 0.5 -0.3888888888887178 -0.277777777778394 +602 0.5 -0.2777777777774355 -0.2777777777783941 +603 0.5 -0.1666666666661534 -0.2777777777783941 +604 0.5 -0.05555555555487127 -0.2777777777783941 +605 0.5 0.05555555555624009 -0.2777777777783941 +606 0.5 0.1666666666671802 -0.2777777777783941 +607 0.5 0.2777777777781202 -0.2777777777783941 +608 0.5 0.38888888888906 -0.2777777777783941 +609 0.5 -0.3888888888887863 -0.1666666666675909 +610 0.5 -0.2777777777775725 -0.1666666666675909 +611 0.5 -0.1666666666663588 -0.1666666666675909 +612 0.5 -0.05555555555514502 -0.1666666666675909 +613 0.5 0.05555555555596633 -0.1666666666675909 +614 0.5 0.1666666666669748 -0.1666666666675909 +615 0.5 0.2777777777779833 -0.1666666666675909 +616 0.5 0.3888888888889915 -0.1666666666675909 +617 0.5 -0.3888888888888547 -0.05555555555678762 +618 0.5 -0.2777777777777095 -0.05555555555678767 +619 0.5 -0.1666666666665642 -0.05555555555678764 +620 0.5 -0.05555555555541881 -0.05555555555678765 +621 0.5 0.05555555555569254 -0.05555555555678765 +622 0.5 0.1666666666667695 -0.05555555555678765 +623 0.5 0.2777777777778464 -0.05555555555678765 +624 0.5 0.3888888888889231 -0.05555555555678765 +625 0.5 -0.3888888888889231 0.05555555555432365 +626 0.5 -0.2777777777778463 0.05555555555432368 +627 0.5 -0.1666666666667694 0.05555555555432366 +628 0.5 -0.05555555555569257 0.05555555555432369 +629 0.5 0.05555555555541877 0.05555555555432368 +630 0.5 0.1666666666665641 0.05555555555432368 +631 0.5 0.2777777777777095 0.05555555555432368 +632 0.5 0.3888888888888546 0.05555555555432368 +633 0.5 -0.3888888888889916 0.1666666666657427 +634 0.5 -0.2777777777779833 0.1666666666657427 +635 0.5 -0.1666666666669748 0.1666666666657427 +636 0.5 -0.05555555555596632 0.1666666666657427 +637 0.5 0.05555555555514502 0.1666666666657427 +638 0.5 0.1666666666663588 0.1666666666657426 +639 0.5 0.2777777777775725 0.1666666666657427 +640 0.5 0.3888888888887863 0.1666666666657427 +641 0.5 -0.3888888888890601 0.2777777777771617 +642 0.5 -0.2777777777781203 0.2777777777771617 +643 0.5 -0.1666666666671802 0.2777777777771617 +644 0.5 -0.05555555555624009 0.2777777777771617 +645 0.5 0.05555555555487124 0.2777777777771617 +646 0.5 0.1666666666661534 0.2777777777771617 +647 0.5 0.2777777777774356 0.2777777777771617 +648 0.5 0.3888888888887178 0.2777777777771617 +649 0.5 -0.3888888888891286 0.3888888888885809 +650 0.5 -0.2777777777782571 0.3888888888885809 +651 0.5 -0.1666666666673855 0.388888888888581 +652 0.5 -0.05555555555651387 0.3888888888885809 +653 0.5 0.05555555555459746 0.3888888888885809 +654 0.5 0.166666666665948 0.3888888888885809 +655 0.5 0.2777777777772986 0.3888888888885809 +656 0.5 0.3888888888886493 0.3888888888885809 +657 -0.3888888888891284 0.5 -0.3888888888891969 +658 -0.38888888888906 0.5 -0.2777777777783941 +659 -0.3888888888889916 0.5 -0.1666666666675909 +660 -0.3888888888889231 0.5 -0.05555555555678765 +661 -0.3888888888888546 0.5 0.05555555555432368 +662 -0.3888888888887861 0.5 0.1666666666657427 +663 -0.3888888888887178 0.5 0.2777777777771617 +664 -0.3888888888886494 0.5 0.3888888888885809 +665 -0.277777777778257 0.5 -0.3888888888891969 +666 -0.2777777777781203 0.5 -0.2777777777783941 +667 -0.2777777777779833 0.5 -0.1666666666675909 +668 -0.2777777777778464 0.5 -0.05555555555678768 +669 -0.2777777777777095 0.5 0.05555555555432368 +670 -0.2777777777775725 0.5 0.1666666666657427 +671 -0.2777777777774356 0.5 0.2777777777771617 +672 -0.2777777777772986 0.5 0.3888888888885809 +673 -0.1666666666673855 0.5 -0.3888888888891969 +674 -0.1666666666671802 0.5 -0.2777777777783941 +675 -0.1666666666669748 0.5 -0.1666666666675909 +676 -0.1666666666667695 0.5 -0.05555555555678765 +677 -0.1666666666665641 0.5 0.05555555555432368 +678 -0.1666666666663588 0.5 0.1666666666657427 +679 -0.1666666666661534 0.5 0.2777777777771617 +680 -0.166666666665948 0.5 0.3888888888885809 +681 -0.05555555555651384 0.5 -0.3888888888891969 +682 -0.05555555555624012 0.5 -0.2777777777783941 +683 -0.05555555555596632 0.5 -0.1666666666675909 +684 -0.05555555555569255 0.5 -0.05555555555678766 +685 -0.05555555555541877 0.5 0.05555555555432366 +686 -0.05555555555514501 0.5 0.1666666666657427 +687 -0.05555555555487124 0.5 0.2777777777771617 +688 -0.05555555555459746 0.5 0.3888888888885809 +689 0.05555555555459743 0.5 -0.3888888888891969 +690 0.05555555555487123 0.5 -0.2777777777783941 +691 0.05555555555514498 0.5 -0.1666666666675909 +692 0.05555555555541879 0.5 -0.05555555555678764 +693 0.05555555555569255 0.5 0.05555555555432368 +694 0.05555555555596632 0.5 0.1666666666657427 +695 0.05555555555624009 0.5 0.2777777777771617 +696 0.05555555555651387 0.5 0.3888888888885809 +697 0.1666666666659481 0.5 -0.388888888889197 +698 0.1666666666661534 0.5 -0.2777777777783941 +699 0.1666666666663588 0.5 -0.1666666666675909 +700 0.1666666666665642 0.5 -0.05555555555678766 +701 0.1666666666667695 0.5 0.05555555555432368 +702 0.1666666666669748 0.5 0.1666666666657427 +703 0.1666666666671802 0.5 0.2777777777771617 +704 0.1666666666673855 0.5 0.3888888888885809 +705 0.2777777777772986 0.5 -0.3888888888891969 +706 0.2777777777774356 0.5 -0.2777777777783941 +707 0.2777777777775725 0.5 -0.1666666666675909 +708 0.2777777777777095 0.5 -0.05555555555678765 +709 0.2777777777778463 0.5 0.05555555555432368 +710 0.2777777777779833 0.5 0.1666666666657427 +711 0.2777777777781203 0.5 0.2777777777771617 +712 0.2777777777782572 0.5 0.3888888888885809 +713 0.3888888888886494 0.5 -0.388888888889197 +714 0.3888888888887178 0.5 -0.2777777777783941 +715 0.3888888888887863 0.5 -0.1666666666675909 +716 0.3888888888888546 0.5 -0.05555555555678765 +717 0.3888888888889231 0.5 0.05555555555432368 +718 0.3888888888889915 0.5 0.1666666666657427 +719 0.38888888888906 0.5 0.2777777777771617 +720 0.3888888888891284 0.5 0.3888888888885809 +721 0.3888888888886494 0.3888888888891284 -0.5 +722 0.2777777777772987 0.38888888888906 -0.5 +723 0.1666666666659481 0.3888888888889916 -0.5 +724 0.05555555555459746 0.3888888888889231 -0.5 +725 -0.05555555555651387 0.3888888888888546 -0.5 +726 -0.1666666666673856 0.3888888888887861 -0.5 +727 -0.2777777777782572 0.3888888888887178 -0.5 +728 -0.3888888888891284 0.3888888888886494 -0.5 +729 0.3888888888887178 0.277777777778257 -0.5 +730 0.2777777777774355 0.2777777777781203 -0.5 +731 0.1666666666661534 0.2777777777779833 -0.5 +732 0.05555555555487127 0.2777777777778464 -0.5 +733 -0.05555555555624009 0.2777777777777095 -0.5 +734 -0.1666666666671802 0.2777777777775725 -0.5 +735 -0.2777777777781202 0.2777777777774356 -0.5 +736 -0.38888888888906 0.2777777777772986 -0.5 +737 0.3888888888887863 0.1666666666673855 -0.5 +738 0.2777777777775725 0.1666666666671802 -0.5 +739 0.1666666666663588 0.1666666666669748 -0.5 +740 0.05555555555514502 0.1666666666667695 -0.5 +741 -0.05555555555596633 0.1666666666665641 -0.5 +742 -0.1666666666669748 0.1666666666663588 -0.5 +743 -0.2777777777779833 0.1666666666661534 -0.5 +744 -0.3888888888889915 0.166666666665948 -0.5 +745 0.3888888888888547 0.05555555555651384 -0.5 +746 0.2777777777777095 0.05555555555624012 -0.5 +747 0.1666666666665642 0.05555555555596632 -0.5 +748 0.05555555555541881 0.05555555555569255 -0.5 +749 -0.05555555555569254 0.05555555555541877 -0.5 +750 -0.1666666666667695 0.05555555555514501 -0.5 +751 -0.2777777777778464 0.05555555555487124 -0.5 +752 -0.3888888888889231 0.05555555555459746 -0.5 +753 0.3888888888889231 -0.05555555555459743 -0.5 +754 0.2777777777778463 -0.05555555555487123 -0.5 +755 0.1666666666667694 -0.05555555555514498 -0.5 +756 0.05555555555569257 -0.05555555555541879 -0.5 +757 -0.05555555555541877 -0.05555555555569255 -0.5 +758 -0.1666666666665641 -0.05555555555596632 -0.5 +759 -0.2777777777777095 -0.05555555555624009 -0.5 +760 -0.3888888888888546 -0.05555555555651387 -0.5 +761 0.3888888888889916 -0.1666666666659481 -0.5 +762 0.2777777777779833 -0.1666666666661534 -0.5 +763 0.1666666666669748 -0.1666666666663588 -0.5 +764 0.05555555555596632 -0.1666666666665642 -0.5 +765 -0.05555555555514502 -0.1666666666667695 -0.5 +766 -0.1666666666663588 -0.1666666666669748 -0.5 +767 -0.2777777777775725 -0.1666666666671802 -0.5 +768 -0.3888888888887863 -0.1666666666673855 -0.5 +769 0.3888888888890601 -0.2777777777772986 -0.5 +770 0.2777777777781203 -0.2777777777774356 -0.5 +771 0.1666666666671802 -0.2777777777775725 -0.5 +772 0.05555555555624009 -0.2777777777777095 -0.5 +773 -0.05555555555487124 -0.2777777777778463 -0.5 +774 -0.1666666666661534 -0.2777777777779833 -0.5 +775 -0.2777777777774356 -0.2777777777781203 -0.5 +776 -0.3888888888887178 -0.2777777777782572 -0.5 +777 0.3888888888891286 -0.3888888888886494 -0.5 +778 0.2777777777782571 -0.3888888888887178 -0.5 +779 0.1666666666673855 -0.3888888888887863 -0.5 +780 0.05555555555651387 -0.3888888888888546 -0.5 +781 -0.05555555555459746 -0.3888888888889231 -0.5 +782 -0.166666666665948 -0.3888888888889915 -0.5 +783 -0.2777777777772986 -0.38888888888906 -0.5 +784 -0.3888888888886493 -0.3888888888891284 -0.5 +785 0.3888888888886494 -0.3888888888891284 0.5 +786 0.2777777777772987 -0.38888888888906 0.5 +787 0.1666666666659481 -0.3888888888889916 0.5 +788 0.05555555555459746 -0.3888888888889231 0.5 +789 -0.05555555555651387 -0.3888888888888546 0.5 +790 -0.1666666666673856 -0.3888888888887861 0.5 +791 -0.2777777777782572 -0.3888888888887178 0.5 +792 -0.3888888888891284 -0.3888888888886494 0.5 +793 0.3888888888887178 -0.277777777778257 0.5 +794 0.2777777777774355 -0.2777777777781203 0.5 +795 0.1666666666661534 -0.2777777777779833 0.5 +796 0.05555555555487127 -0.2777777777778464 0.5 +797 -0.05555555555624009 -0.2777777777777095 0.5 +798 -0.1666666666671802 -0.2777777777775725 0.5 +799 -0.2777777777781202 -0.2777777777774356 0.5 +800 -0.38888888888906 -0.2777777777772986 0.5 +801 0.3888888888887863 -0.1666666666673855 0.5 +802 0.2777777777775725 -0.1666666666671802 0.5 +803 0.1666666666663588 -0.1666666666669748 0.5 +804 0.05555555555514502 -0.1666666666667695 0.5 +805 -0.05555555555596633 -0.1666666666665641 0.5 +806 -0.1666666666669748 -0.1666666666663588 0.5 +807 -0.2777777777779833 -0.1666666666661534 0.5 +808 -0.3888888888889915 -0.166666666665948 0.5 +809 0.3888888888888547 -0.05555555555651384 0.5 +810 0.2777777777777095 -0.05555555555624012 0.5 +811 0.1666666666665642 -0.05555555555596632 0.5 +812 0.05555555555541881 -0.05555555555569255 0.5 +813 -0.05555555555569254 -0.05555555555541877 0.5 +814 -0.1666666666667695 -0.05555555555514501 0.5 +815 -0.2777777777778464 -0.05555555555487124 0.5 +816 -0.3888888888889231 -0.05555555555459746 0.5 +817 0.3888888888889231 0.05555555555459743 0.5 +818 0.2777777777778463 0.05555555555487123 0.5 +819 0.1666666666667694 0.05555555555514498 0.5 +820 0.05555555555569257 0.05555555555541879 0.5 +821 -0.05555555555541877 0.05555555555569255 0.5 +822 -0.1666666666665641 0.05555555555596632 0.5 +823 -0.2777777777777095 0.05555555555624009 0.5 +824 -0.3888888888888546 0.05555555555651387 0.5 +825 0.3888888888889916 0.1666666666659481 0.5 +826 0.2777777777779833 0.1666666666661534 0.5 +827 0.1666666666669748 0.1666666666663588 0.5 +828 0.05555555555596632 0.1666666666665642 0.5 +829 -0.05555555555514502 0.1666666666667695 0.5 +830 -0.1666666666663588 0.1666666666669748 0.5 +831 -0.2777777777775725 0.1666666666671802 0.5 +832 -0.3888888888887863 0.1666666666673855 0.5 +833 0.3888888888890601 0.2777777777772986 0.5 +834 0.2777777777781203 0.2777777777774356 0.5 +835 0.1666666666671802 0.2777777777775725 0.5 +836 0.05555555555624009 0.2777777777777095 0.5 +837 -0.05555555555487124 0.2777777777778463 0.5 +838 -0.1666666666661534 0.2777777777779833 0.5 +839 -0.2777777777774356 0.2777777777781203 0.5 +840 -0.3888888888887178 0.2777777777782572 0.5 +841 0.3888888888891286 0.3888888888886494 0.5 +842 0.2777777777782571 0.3888888888887178 0.5 +843 0.1666666666673855 0.3888888888887863 0.5 +844 0.05555555555651387 0.3888888888888546 0.5 +845 -0.05555555555459746 0.3888888888889231 0.5 +846 -0.166666666665948 0.3888888888889915 0.5 +847 -0.2777777777772986 0.38888888888906 0.5 +848 -0.3888888888886493 0.3888888888891284 0.5 +849 -0.5 0.3888888888886494 -0.3888888888891969 +850 -0.5 0.2777777777772987 -0.3888888888891969 +851 -0.5 0.1666666666659481 -0.3888888888891969 +852 -0.5 0.05555555555459746 -0.3888888888891969 +853 -0.5 -0.05555555555651387 -0.3888888888891969 +854 -0.5 -0.1666666666673856 -0.3888888888891969 +855 -0.5 -0.2777777777782572 -0.3888888888891969 +856 -0.5 -0.3888888888891284 -0.3888888888891969 +857 -0.5 0.3888888888887178 -0.277777777778394 +858 -0.5 0.2777777777774355 -0.2777777777783941 +859 -0.5 0.1666666666661534 -0.2777777777783941 +860 -0.5 0.05555555555487127 -0.2777777777783941 +861 -0.5 -0.05555555555624009 -0.2777777777783941 +862 -0.5 -0.1666666666671802 -0.2777777777783941 +863 -0.5 -0.2777777777781202 -0.2777777777783941 +864 -0.5 -0.38888888888906 -0.2777777777783941 +865 -0.5 0.3888888888887863 -0.1666666666675909 +866 -0.5 0.2777777777775725 -0.1666666666675909 +867 -0.5 0.1666666666663588 -0.1666666666675909 +868 -0.5 0.05555555555514502 -0.1666666666675909 +869 -0.5 -0.05555555555596633 -0.1666666666675909 +870 -0.5 -0.1666666666669748 -0.1666666666675909 +871 -0.5 -0.2777777777779833 -0.1666666666675909 +872 -0.5 -0.3888888888889915 -0.1666666666675909 +873 -0.5 0.3888888888888547 -0.05555555555678762 +874 -0.5 0.2777777777777095 -0.05555555555678767 +875 -0.5 0.1666666666665642 -0.05555555555678764 +876 -0.5 0.05555555555541881 -0.05555555555678765 +877 -0.5 -0.05555555555569254 -0.05555555555678765 +878 -0.5 -0.1666666666667695 -0.05555555555678765 +879 -0.5 -0.2777777777778464 -0.05555555555678765 +880 -0.5 -0.3888888888889231 -0.05555555555678765 +881 -0.5 0.3888888888889231 0.05555555555432365 +882 -0.5 0.2777777777778463 0.05555555555432368 +883 -0.5 0.1666666666667694 0.05555555555432366 +884 -0.5 0.05555555555569257 0.05555555555432369 +885 -0.5 -0.05555555555541877 0.05555555555432368 +886 -0.5 -0.1666666666665641 0.05555555555432368 +887 -0.5 -0.2777777777777095 0.05555555555432368 +888 -0.5 -0.3888888888888546 0.05555555555432368 +889 -0.5 0.3888888888889916 0.1666666666657427 +890 -0.5 0.2777777777779833 0.1666666666657427 +891 -0.5 0.1666666666669748 0.1666666666657427 +892 -0.5 0.05555555555596632 0.1666666666657427 +893 -0.5 -0.05555555555514502 0.1666666666657427 +894 -0.5 -0.1666666666663588 0.1666666666657426 +895 -0.5 -0.2777777777775725 0.1666666666657427 +896 -0.5 -0.3888888888887863 0.1666666666657427 +897 -0.5 0.3888888888890601 0.2777777777771617 +898 -0.5 0.2777777777781203 0.2777777777771617 +899 -0.5 0.1666666666671802 0.2777777777771617 +900 -0.5 0.05555555555624009 0.2777777777771617 +901 -0.5 -0.05555555555487124 0.2777777777771617 +902 -0.5 -0.1666666666661534 0.2777777777771617 +903 -0.5 -0.2777777777774356 0.2777777777771617 +904 -0.5 -0.3888888888887178 0.2777777777771617 +905 -0.5 0.3888888888891286 0.3888888888885809 +906 -0.5 0.2777777777782571 0.3888888888885809 +907 -0.5 0.1666666666673855 0.388888888888581 +908 -0.5 0.05555555555651387 0.3888888888885809 +909 -0.5 -0.05555555555459746 0.3888888888885809 +910 -0.5 -0.166666666665948 0.3888888888885809 +911 -0.5 -0.2777777777772986 0.3888888888885809 +912 -0.5 -0.3888888888886493 0.3888888888885809 +913 0.1020602882712261 0.1020602883093327 0.1384463618453375 +914 0.1101047992798939 0.07550148389876368 0.1489176252315991 +915 0.1157927359527872 0.04641671577891501 0.15632508051131 +916 0.1187441379829781 0.01566654612718136 0.1601698755294652 +917 0.118744137956206 -0.01566654668669769 0.1601698754945856 +918 0.1157927358974213 -0.04641671615991599 0.156325080439192 +919 0.1101047992229853 -0.0755014841279034 0.1489176251575013 +920 0.1020602882379503 -0.1020602884013469 0.1384463618020365 +921 0.07550148382981288 0.1101047993353051 0.1489176252255881 +922 0.08267205042281281 0.08267205053651236 0.1622672614515209 +923 0.08795105855253099 0.05141248208394186 0.1721085935839859 +924 0.09076576777944276 0.01746244431765838 0.1773601940624247 +925 0.09076576776102925 -0.01746244476239958 0.1773601940280599 +926 0.08795105851517332 -0.05141248238111506 0.1721085935143045 +927 0.08267205038573511 -0.0826720507091856 0.1622672613824376 +928 0.07550148380909731 -0.1101047994016294 0.1489176251870529 +929 0.04641671569354328 0.1157927360180874 0.1563250804882899 +930 0.05141248192456053 0.08795105870231452 0.172108593555054 +931 0.05520960303004805 0.05520960325979877 0.1841298439720192 +932 0.05727992341842988 0.01885189255440252 0.1906924658194342 +933 0.05727992341023772 -0.01885189284207862 0.1906924657934552 +934 0.05520960301369247 -0.05520960344898843 0.1841298439201965 +935 0.05141248190878211 -0.08795105880920558 0.1721085935051438 +936 0.04641671568503236 -0.1157927360577551 0.1563250804614344 +937 0.0156665460536144 0.118744138053734 0.1601698754842051 +938 0.0174624441436162 0.09076576795646205 0.1773601939889692 +939 0.01885189227182178 0.05727992370907423 0.1906924657600668 +940 0.01961920585373536 0.01961920624210715 0.1980660836895061 +941 0.01961920585271861 -0.0196192063418207 0.1980660836797298 +942 0.01885189226981049 -0.05727992377404729 0.1906924657407492 +943 0.01746244414170696 -0.09076576799259228 0.1773601939706672 +944 0.01566654605260414 -0.1187441380668912 0.1601698754745496 +945 -0.01566654674474022 0.1187441380337734 0.1601698754314026 +946 -0.01746244491192569 0.09076576796070317 0.1773601939111529 +947 -0.01885189310015674 0.0572799237504015 0.1906924656657637 +948 -0.01961920671615607 0.01961920633301579 0.1980660835950752 +949 -0.01961920671717291 -0.01961920623330219 0.1980660836048514 +950 -0.01885189310216796 -0.05727992368542844 0.1906924656850814 +951 -0.01746244491383499 -0.09076576792457294 0.1773601939294549 +952 -0.01566654674575043 -0.1187441380206162 0.1601698754410581 +953 -0.04641671617355531 0.1157927359867643 0.1563250803689641 +954 -0.05141248244223556 0.08795105874214507 0.1721085933800592 +955 -0.05520960357971394 0.0552096034000554 0.1841298437651524 +956 -0.05727992399340139 0.0188518928240266 0.19069246562007 +957 -0.05727992400159358 -0.01885189253635045 0.1906924656460489 +958 -0.05520960359606943 -0.05520960321086581 0.1841298438169751 +959 -0.05141248245801408 -0.0879510586352541 0.1721085934299694 +960 -0.04641671618206625 -0.1157927359470967 0.1563250803958196 +961 -0.0755014841345274 0.1101047993208062 0.1489176250818173 +962 -0.08267205072906418 0.08267205063546348 0.1622672612450781 +963 -0.08795105886939514 0.05141248232882759 0.1721085933489092 +964 -0.09076576812022072 0.01746244474341793 0.1773601938461091 +965 -0.0907657681386343 -0.01746244429867672 0.1773601938804739 +966 -0.08795105890675282 -0.05141248203165427 0.1721085934185906 +967 -0.08267205076614183 -0.08267205046279021 0.1622672613141614 +968 -0.07550148415524292 -0.1101047992544819 0.1489176251203525 +969 -0.102060288373434 0.102060288352351 0.1384463617382792 +970 -0.1101047993597056 0.07550148408520053 0.1489176250780652 +971 -0.1157927360337055 0.04641671613067544 0.156325080346926 +972 -0.1187441380918166 0.0156665466762853 0.1601698753950672 +973 -0.1187441381185887 -0.01566654611676896 0.1601698754299468 +974 -0.1157927360890715 -0.04641671574967439 0.1563250804190439 +975 -0.1101047994166144 -0.07550148385606081 0.148917625152163 +976 -0.1020602884067097 -0.1020602882603368 0.1384463617815802 +977 0.1020602882910335 -0.1020602882907439 -0.1384463618444391 +978 0.1101047993184061 -0.07550148385653993 -0.148917625224532 +979 0.1157927360061247 -0.04641671571473943 -0.1563250804908572 +980 0.1187441380470741 -0.01566654604262275 -0.1601698754902176 +981 0.1187441380277206 0.01566654676084401 -0.1601698754343148 +982 0.1157927359803681 0.04641671619485099 -0.1563250803673788 +983 0.1101047993211935 0.07550148412742433 -0.1489176250851322 +984 0.1020602883536266 0.1020602883709399 -0.1384463617391775 +985 0.07550148387425799 -0.110104799299795 -0.1489176252293093 +986 0.08267205051393922 -0.08267205045106034 -0.1622672614486299 +987 0.08795105868554803 -0.05141248194764339 -0.1721085935567266 +988 0.09076576794644886 -0.01746244413132562 -0.1773601939953036 +989 0.09076576795321467 0.01746244492975072 -0.1773601939132302 +990 0.08795105873637811 0.05141248246512607 -0.1721085933761684 +991 0.08267205063793776 0.08267205072091556 -0.162267261247969 +992 0.07550148409008221 0.1101047993563163 -0.1489176250780961 +993 0.04641671575633456 -0.1157927359705318 -0.1563250805048709 +994 0.05141248205888421 -0.08795105858052116 -0.1721085935771676 +995 0.0552096032350775 -0.05520960305429822 -0.1841298439721605 +996 0.0572799236858059 -0.01885189225870332 -0.1906924657683531 +997 0.05727992372602533 0.01885189311972581 -0.1906924656711511 +998 0.05520960337468455 0.055209603605556 -0.1841298437650111 +999 0.05141248230791199 0.08795105886393845 -0.1721085933579456 +1000 0.04641671611076405 0.1157927360343199 -0.1563250803523831 +1001 0.01566654613455933 -0.1187441379974255 -0.1601698755180327 +1002 0.01746244432241324 -0.09076576780485468 -0.1773601940489518 +1003 0.01885189255664888 -0.05727992344129987 -0.1906924658123424 +1004 0.01961920624155272 -0.01961920583933968 -0.1980660836909869 +1005 0.01961920632833875 0.01961920673578326 -0.1980660835935943 +1006 0.01885189281532959 0.05727992401817586 -0.1906924656134881 +1007 0.01746244473312871 0.09076576811231057 -0.1773601938511702 +1008 0.01566654666379529 0.118744138090082 -0.1601698753975749 +1009 -0.01566654667288735 -0.1187441379716672 -0.160169875484474 +1010 -0.01746244475031251 -0.09076576778713845 -0.1773601940158883 +1011 -0.01885189283343101 -0.05727992343341801 -0.1906924657873473 +1012 -0.01961920633749024 -0.0196192058383613 -0.1980660836815809 +1013 -0.0196192062324012 0.01961920673676166 -0.1980660836030003 +1014 -0.01885189253854747 0.05727992402605776 -0.1906924656384832 +1015 -0.0174624443052294 0.09076576813002676 -0.1773601938842337 +1016 -0.01566654612546728 0.1187441381158403 -0.1601698754311336 +1017 -0.04641671613629685 -0.1157927359153169 -0.1563250804329495 +1018 -0.0514124823552472 -0.08795105854326536 -0.1721085935076762 +1019 -0.05520960342375127 -0.05520960303798721 -0.1841298439204791 +1020 -0.0572799237506019 -0.01885189225669756 -0.190692465749088 +1021 -0.05727992366122937 0.01885189312173159 -0.1906924656904162 +1022 -0.05520960318601068 0.05520960362186697 -0.1841298438166925 +1023 -0.05141248201154887 0.08795105890119428 -0.172108593427437 +1024 -0.04641671573080178 0.1157927360895349 -0.1563250804243045 +1025 -0.0755014841273703 -0.1101047992369325 -0.1489176251474594 +1026 -0.08267205070467759 -0.08267205041010352 -0.1622672613723191 +1027 -0.08795105880362197 -0.05141248193021415 -0.1721085935015949 +1028 -0.09076576798635898 -0.01746244412921653 -0.1773601939750869 +1029 -0.0907657679133045 0.01746244493185977 -0.1773601939334469 +1030 -0.08795105861830418 0.05141248248255523 -0.1721085934313001 +1031 -0.08267205044719937 0.08267205076187231 -0.1622672613242798 +1032 -0.07550148383696992 0.1101047994191788 -0.148917625159946 +1033 -0.1020602883964097 -0.102060288252636 -0.1384463617948501 +1034 -0.1101047993943618 -0.07550148383281609 -0.1489176251804008 +1035 -0.1157927360515529 -0.04641671570499254 -0.1563250804601019 +1036 -0.1187441380621419 -0.01566654604146581 -0.16016987547916 +1037 -0.1187441380126528 0.01566654676200088 -0.1601698754453724 +1038 -0.11579273593494 0.04641671620459788 -0.1563250803981341 +1039 -0.1101047992452377 0.07550148415114817 -0.1489176251292634 +1040 -0.1020602882482504 0.1020602884090479 -0.1384463617887665 +1041 -0.1671327968873684 0.1671327968873684 0.1250999046337148 +1042 -0.173985974883019 0.1739859748830191 0.09047468167761784 +1043 -0.1786271352236342 0.1786271352236342 0.05473606703697248 +1044 -0.1809695913218738 0.1809695913218738 0.0183209889266839 +1045 -0.180969591298729 0.1809695912987289 -0.01832098964777257 +1046 -0.1786271351730667 0.1786271351730667 -0.05473606755887169 +1047 -0.1739859748233279 0.1739859748233279 -0.09047468204262424 +1048 -0.1671327968493354 0.1671327968493354 -0.1250999047966438 +1049 -0.2087411972744063 0.2087411972744063 0.1580735276468631 +1050 -0.2147377280194329 0.214737728019433 0.1138875686494674 +1051 -0.2187987433176049 0.218798743317605 0.06872739192744547 +1052 -0.2208483924053004 0.2208483924053004 0.02297530967821724 +1053 -0.2208483923875772 0.2208483923875772 -0.02297531046983374 +1054 -0.2187987432788829 0.2187987432788828 -0.06872739250256447 +1055 -0.214737727973725 0.214737727973725 -0.1138875690548151 +1056 -0.2087411972452824 0.2087411972452824 -0.1580735278299963 +1057 -0.2503495976619895 0.2503495976619895 0.1910471506653271 +1058 -0.2554894811567268 0.2554894811567266 0.1373004556328938 +1059 -0.258970351412418 0.2589703514124179 0.08271871683594104 +1060 -0.2607271934890734 0.2607271934890734 0.02762963045172398 +1061 -0.2607271934760494 0.2607271934760494 -0.02762963126805233 +1062 -0.2589703513839626 0.2589703513839626 -0.08271871743050098 +1063 -0.2554894811231384 0.2554894811231384 -0.1373004560540649 +1064 -0.2503495976405877 0.2503495976405877 -0.1910471508570952 +1065 -0.2919579980501183 0.2919579980501183 0.2240207736891071 +1066 -0.2962412342949003 0.2962412342949003 0.1607133426278972 +1067 -0.2991419595080728 0.2991419595080728 0.09671004176245909 +1068 -0.3006059945731928 0.3006059945731928 0.03228395124720411 +1069 -0.3006059945641457 0.3006059945641457 -0.0322839520424284 +1070 -0.2991419594883062 0.2991419594883062 -0.09671004234268113 +1071 -0.2962412342715685 0.2962412342715685 -0.1607133430403737 +1072 -0.2919579980352514 0.2919579980352514 -0.2240207738779403 +1073 -0.3335663984389737 0.3335663984389738 0.2569943967183464 +1074 -0.3369929874341311 0.3369929874341311 0.1841262296345793 +1075 -0.3393135676047448 0.3393135676047448 0.1107013667070606 +1076 -0.3404847956578324 0.3404847956578324 0.03693827206467784 +1077 -0.3404847956520396 0.3404847956520396 -0.03693827279298215 +1078 -0.3393135675920885 0.3393135675920886 -0.1107013672391657 +1079 -0.3369929874191923 0.3369929874191923 -0.184126230013843 +1080 -0.3335663984294542 0.3335663984294543 -0.2569943968926752 +1081 -0.3751747988283757 0.3751747988283757 0.2899680197529027 +1082 -0.3777447405742433 0.3777447405742433 0.2075391166528392 +1083 -0.3794851757022606 0.3794851757022606 0.1246926916696851 +1084 -0.3803635967428201 0.3803635967428201 0.04159259290412521 +1085 -0.3803635967395591 0.3803635967395591 -0.0415925935196933 +1086 -0.3794851756951358 0.3794851756951358 -0.1246926921198944 +1087 -0.3777447405658341 0.3777447405658341 -0.2075391169743721 +1088 -0.3751747988230172 0.3751747988230172 -0.2899680199011578 +1089 -0.4167831992184118 0.4167831992184117 0.3229416427928445 +1090 -0.4184964937153214 0.4184964937153213 0.2309520036827258 +1091 -0.4196567838007034 0.4196567838007034 0.138684016650362 +1092 -0.4202423978282384 0.4202423978282384 0.04624691376555573 +1093 -0.4202423978267869 0.4202423978267869 -0.04624691422257193 +1094 -0.419656783797532 0.419656783797532 -0.1386840169848963 +1095 -0.4184964937115787 0.4184964937115787 -0.2309520039220098 +1096 -0.4167831992160266 0.4167831992160265 -0.3229416429034563 +1097 -0.4583915996089686 0.4583915996089685 0.3559152658380828 +1098 -0.4592482468572556 0.4592482468572556 0.2543648907241752 +1099 -0.459828391899965 0.4598283918999649 0.1526753416490529 +1100 -0.46012119891398 0.4601211989139799 0.05090123464895696 +1101 -0.4601211989136156 0.4601211989136157 -0.05090123490160518 +1102 -0.4598283918991685 0.4598283918991685 -0.1526753418341338 +1103 -0.459248246856316 0.4592482468563159 -0.2543648908566926 +1104 -0.4583915996083696 0.4583915996083694 -0.3559152658994815 +1105 -0.1250999046337357 0.1671327968873637 -0.1671327968873635 +1106 -0.1580735276469167 0.2087411972743977 -0.2087411972743977 +1107 -0.1910471506654255 0.2503495976619785 -0.2503495976619785 +1108 -0.224020773689262 0.2919579980501061 -0.2919579980501061 +1109 -0.2569943967185697 0.3335663984389613 -0.3335663984389613 +1110 -0.2899680197532064 0.3751747988283649 -0.3751747988283649 +1111 -0.3229416427932405 0.4167831992184032 -0.4167831992184032 +1112 -0.355915265838583 0.4583915996089638 -0.4583915996089639 +1113 -0.09047468167766132 0.1739859748830119 -0.1739859748830119 +1114 -0.1138875686495776 0.2147377280194205 -0.2147377280194205 +1115 -0.1373004556330942 0.2554894811567107 -0.2554894811567108 +1116 -0.1607133426282111 0.2962412342948825 -0.2962412342948825 +1117 -0.1841262296350302 0.3369929874341132 -0.3369929874341132 +1118 -0.2075391166534504 0.377744740574227 -0.3777447405742271 +1119 -0.2309520036835205 0.4184964937153089 -0.4184964937153089 +1120 -0.2543648907251771 0.4592482468572484 -0.4592482468572485 +1121 -0.05473606703703926 0.1786271352236277 -0.1786271352236277 +1122 -0.06872739192761372 0.2187987433175936 -0.2187987433175935 +1123 -0.08271871683624535 0.2589703514124032 -0.2589703514124032 +1124 -0.0967100417629342 0.2991419595080567 -0.2991419595080567 +1125 -0.1107013667077411 0.3393135676047286 -0.3393135676047286 +1126 -0.1246926916706056 0.379485175702246 -0.379485175702246 +1127 -0.138684016651557 0.419656783800692 -0.419656783800692 +1128 -0.1526753416505574 0.4598283918999585 -0.4598283918999585 +1129 -0.01832098892677411 0.1809695913218709 -0.180969591321871 +1130 -0.0229753096784435 0.2208483924052952 -0.2208483924052953 +1131 -0.02762963045213222 0.2607271934890668 -0.2607271934890668 +1132 -0.0322839512478403 0.3006059945731857 -0.3006059945731856 +1133 -0.03693827206558771 0.3404847956578252 -0.3404847956578252 +1134 -0.04159259290535483 0.3803635967428134 -0.3803635967428136 +1135 -0.04624691376715089 0.4202423978282335 -0.4202423978282333 +1136 -0.05090123465096363 0.4601211989139771 -0.4601211989139771 +1137 0.01832098964768233 0.1809695912987318 -0.1809695912987319 +1138 0.02297531046960751 0.2208483923875822 -0.2208483923875822 +1139 0.02762963126764417 0.2607271934760559 -0.2607271934760559 +1140 0.03228395204179224 0.300605994564153 -0.3006059945641529 +1141 0.03693827279207218 0.3404847956520469 -0.3404847956520469 +1142 0.0415925935184637 0.3803635967395657 -0.3803635967395657 +1143 0.04624691422097672 0.420242397826792 -0.420242397826792 +1144 0.05090123489959833 0.4601211989136183 -0.4601211989136184 +1145 0.05473606755880488 0.1786271351730732 -0.1786271351730732 +1146 0.06872739250239621 0.2187987432788941 -0.2187987432788941 +1147 0.08271871743019669 0.2589703513839772 -0.2589703513839772 +1148 0.09671004234220597 0.2991419594883225 -0.2991419594883225 +1149 0.1107013672384852 0.3393135675921046 -0.3393135675921046 +1150 0.1246926921189741 0.3794851756951505 -0.3794851756951505 +1151 0.1386840169837012 0.4196567837975433 -0.4196567837975433 +1152 0.1526753418326297 0.4598283918991749 -0.4598283918991751 +1153 0.09047468204258086 0.1739859748233351 -0.173985974823335 +1154 0.1138875690547049 0.2147377279737374 -0.2147377279737374 +1155 0.1373004560538645 0.2554894811231544 -0.2554894811231544 +1156 0.1607133430400596 0.2962412342715862 -0.2962412342715861 +1157 0.1841262300133922 0.33699298741921 -0.33699298741921 +1158 0.207539116973761 0.3777447405658501 -0.3777447405658501 +1159 0.230952003921215 0.4184964937115911 -0.4184964937115912 +1160 0.2543648908556906 0.459248246856323 -0.459248246856323 +1161 0.1250999047966228 0.1671327968493403 -0.1671327968493403 +1162 0.1580735278299426 0.208741197245291 -0.208741197245291 +1163 0.1910471508569968 0.2503495976405987 -0.2503495976405987 +1164 0.2240207738777855 0.2919579980352635 -0.2919579980352635 +1165 0.2569943968924518 0.3335663984294666 -0.3335663984294664 +1166 0.2899680199008539 0.3751747988230283 -0.3751747988230283 +1167 0.3229416429030603 0.416783199216035 -0.416783199216035 +1168 0.3559152658989815 0.4583915996083744 -0.4583915996083746 +1169 0.1671327968873635 0.1671327968873636 -0.1250999046337357 +1170 0.1739859748830119 0.173985974883012 -0.09047468167766129 +1171 0.1786271352236277 0.1786271352236277 -0.05473606703703927 +1172 0.1809695913218709 0.180969591321871 -0.01832098892677407 +1173 0.1809695912987319 0.1809695912987319 0.01832098964768242 +1174 0.1786271351730732 0.1786271351730732 0.05473606755880484 +1175 0.173985974823335 0.173985974823335 0.09047468204258081 +1176 0.1671327968493403 0.1671327968493403 0.1250999047966228 +1177 0.2087411972743977 0.2087411972743978 -0.1580735276469168 +1178 0.2147377280194205 0.2147377280194205 -0.1138875686495776 +1179 0.2187987433175936 0.2187987433175936 -0.06872739192761379 +1180 0.2208483924052952 0.2208483924052952 -0.02297530967844353 +1181 0.2208483923875823 0.2208483923875823 0.0229753104696075 +1182 0.2187987432788941 0.2187987432788942 0.06872739250239629 +1183 0.2147377279737374 0.2147377279737374 0.1138875690547049 +1184 0.2087411972452909 0.2087411972452909 0.1580735278299427 +1185 0.2503495976619785 0.2503495976619785 -0.1910471506654255 +1186 0.2554894811567107 0.2554894811567107 -0.1373004556330942 +1187 0.2589703514124033 0.2589703514124034 -0.08271871683624532 +1188 0.2607271934890669 0.2607271934890669 -0.02762963045213225 +1189 0.2607271934760559 0.260727193476056 0.02762963126764406 +1190 0.2589703513839773 0.2589703513839772 0.08271871743019661 +1191 0.2554894811231544 0.2554894811231544 0.1373004560538645 +1192 0.2503495976405986 0.2503495976405986 0.1910471508569968 +1193 0.291957998050106 0.291957998050106 -0.224020773689262 +1194 0.2962412342948825 0.2962412342948825 -0.1607133426282112 +1195 0.2991419595080567 0.2991419595080567 -0.09671004176293417 +1196 0.3006059945731856 0.3006059945731856 -0.03228395124784025 +1197 0.3006059945641529 0.300605994564153 0.03228395204179224 +1198 0.2991419594883224 0.2991419594883224 0.09671004234220602 +1199 0.2962412342715861 0.2962412342715862 0.1607133430400596 +1200 0.2919579980352636 0.2919579980352636 0.2240207738777854 +1201 0.3335663984389614 0.3335663984389614 -0.2569943967185697 +1202 0.3369929874341132 0.3369929874341133 -0.1841262296350303 +1203 0.3393135676047287 0.3393135676047287 -0.110701366707741 +1204 0.3404847956578252 0.3404847956578252 -0.03693827206558775 +1205 0.3404847956520469 0.3404847956520469 0.0369382727920722 +1206 0.3393135675921046 0.3393135675921046 0.1107013672384853 +1207 0.33699298741921 0.33699298741921 0.184126230013392 +1208 0.3335663984294664 0.3335663984294666 0.2569943968924518 +1209 0.3751747988283649 0.375174798828365 -0.2899680197532064 +1210 0.3777447405742271 0.3777447405742271 -0.2075391166534503 +1211 0.3794851757022462 0.3794851757022462 -0.1246926916706056 +1212 0.3803635967428134 0.3803635967428134 -0.04159259290535483 +1213 0.3803635967395656 0.3803635967395656 0.04159259351846391 +1214 0.3794851756951503 0.3794851756951503 0.124692692118974 +1215 0.37774474056585 0.37774474056585 0.2075391169737609 +1216 0.3751747988230281 0.3751747988230282 0.2899680199008539 +1217 0.4167831992184032 0.4167831992184032 -0.3229416427932406 +1218 0.418496493715309 0.4184964937153089 -0.2309520036835205 +1219 0.4196567838006921 0.4196567838006922 -0.138684016651557 +1220 0.4202423978282334 0.4202423978282335 -0.04624691376715093 +1221 0.420242397826792 0.420242397826792 0.04624691422097672 +1222 0.4196567837975433 0.4196567837975433 0.1386840169837014 +1223 0.4184964937115912 0.4184964937115911 0.2309520039212148 +1224 0.416783199216035 0.416783199216035 0.3229416429030602 +1225 0.4583915996089639 0.4583915996089639 -0.355915265838583 +1226 0.4592482468572485 0.4592482468572485 -0.2543648907251773 +1227 0.4598283918999584 0.4598283918999584 -0.1526753416505573 +1228 0.4601211989139772 0.4601211989139772 -0.05090123465096374 +1229 0.4601211989136186 0.4601211989136186 0.05090123489959835 +1230 0.4598283918991751 0.4598283918991751 0.1526753418326295 +1231 0.459248246856323 0.459248246856323 0.2543648908556906 +1232 0.4583915996083746 0.4583915996083746 0.3559152658989815 +1233 0.1250999046337357 0.1671327968873636 0.1671327968873635 +1234 0.09047468167766129 0.173985974883012 0.1739859748830119 +1235 0.05473606703703927 0.1786271352236277 0.1786271352236277 +1236 0.01832098892677407 0.180969591321871 0.1809695913218709 +1237 -0.01832098964768242 0.1809695912987319 0.1809695912987319 +1238 -0.05473606755880484 0.1786271351730732 0.1786271351730732 +1239 -0.09047468204258081 0.173985974823335 0.173985974823335 +1240 -0.1250999047966228 0.1671327968493403 0.1671327968493403 +1241 0.1580735276469168 0.2087411972743978 0.2087411972743977 +1242 0.1138875686495776 0.2147377280194205 0.2147377280194205 +1243 0.06872739192761379 0.2187987433175936 0.2187987433175936 +1244 0.02297530967844353 0.2208483924052952 0.2208483924052952 +1245 -0.0229753104696075 0.2208483923875823 0.2208483923875823 +1246 -0.06872739250239629 0.2187987432788942 0.2187987432788941 +1247 -0.1138875690547049 0.2147377279737374 0.2147377279737374 +1248 -0.1580735278299427 0.2087411972452909 0.2087411972452909 +1249 0.1910471506654255 0.2503495976619785 0.2503495976619785 +1250 0.1373004556330942 0.2554894811567107 0.2554894811567107 +1251 0.08271871683624532 0.2589703514124034 0.2589703514124033 +1252 0.02762963045213225 0.2607271934890669 0.2607271934890669 +1253 -0.02762963126764406 0.260727193476056 0.2607271934760559 +1254 -0.08271871743019661 0.2589703513839772 0.2589703513839773 +1255 -0.1373004560538645 0.2554894811231544 0.2554894811231544 +1256 -0.1910471508569968 0.2503495976405986 0.2503495976405986 +1257 0.224020773689262 0.291957998050106 0.291957998050106 +1258 0.1607133426282112 0.2962412342948825 0.2962412342948825 +1259 0.09671004176293417 0.2991419595080567 0.2991419595080567 +1260 0.03228395124784025 0.3006059945731856 0.3006059945731856 +1261 -0.03228395204179224 0.300605994564153 0.3006059945641529 +1262 -0.09671004234220602 0.2991419594883224 0.2991419594883224 +1263 -0.1607133430400596 0.2962412342715862 0.2962412342715861 +1264 -0.2240207738777854 0.2919579980352636 0.2919579980352636 +1265 0.2569943967185697 0.3335663984389614 0.3335663984389614 +1266 0.1841262296350303 0.3369929874341133 0.3369929874341132 +1267 0.110701366707741 0.3393135676047287 0.3393135676047287 +1268 0.03693827206558775 0.3404847956578252 0.3404847956578252 +1269 -0.0369382727920722 0.3404847956520469 0.3404847956520469 +1270 -0.1107013672384853 0.3393135675921046 0.3393135675921046 +1271 -0.184126230013392 0.33699298741921 0.33699298741921 +1272 -0.2569943968924518 0.3335663984294666 0.3335663984294664 +1273 0.2899680197532064 0.375174798828365 0.3751747988283649 +1274 0.2075391166534503 0.3777447405742271 0.3777447405742271 +1275 0.1246926916706056 0.3794851757022462 0.3794851757022462 +1276 0.04159259290535483 0.3803635967428134 0.3803635967428134 +1277 -0.04159259351846391 0.3803635967395656 0.3803635967395656 +1278 -0.124692692118974 0.3794851756951503 0.3794851756951503 +1279 -0.2075391169737609 0.37774474056585 0.37774474056585 +1280 -0.2899680199008539 0.3751747988230282 0.3751747988230281 +1281 0.3229416427932406 0.4167831992184032 0.4167831992184032 +1282 0.2309520036835205 0.4184964937153089 0.418496493715309 +1283 0.138684016651557 0.4196567838006922 0.4196567838006921 +1284 0.04624691376715093 0.4202423978282335 0.4202423978282334 +1285 -0.04624691422097672 0.420242397826792 0.420242397826792 +1286 -0.1386840169837014 0.4196567837975433 0.4196567837975433 +1287 -0.2309520039212148 0.4184964937115911 0.4184964937115912 +1288 -0.3229416429030602 0.416783199216035 0.416783199216035 +1289 0.355915265838583 0.4583915996089639 0.4583915996089639 +1290 0.2543648907251773 0.4592482468572485 0.4592482468572485 +1291 0.1526753416505573 0.4598283918999584 0.4598283918999584 +1292 0.05090123465096374 0.4601211989139772 0.4601211989139772 +1293 -0.05090123489959835 0.4601211989136186 0.4601211989136186 +1294 -0.1526753418326295 0.4598283918991751 0.4598283918991751 +1295 -0.2543648908556906 0.459248246856323 0.459248246856323 +1296 -0.3559152658989815 0.4583915996083746 0.4583915996083746 +1297 0.1671327968832028 0.12509990465156 0.1671327968832028 +1298 0.1739859748787545 0.09047468170369517 0.1739859748787545 +1299 0.178627135221644 0.05473606705751257 0.178627135221644 +1300 0.1809695913222599 0.01832098891465701 0.1809695913222599 +1301 0.1809695912982041 -0.01832098966412386 0.1809695912982041 +1302 0.1786271351709383 -0.05473606758083836 0.1786271351709383 +1303 0.1739859748247161 -0.09047468203413546 0.1739859748247161 +1304 0.1671327968499918 -0.1250999047938317 0.1671327968499918 +1305 0.2087411972712169 0.1580735276669179 0.2087411972712169 +1306 0.2147377280161679 0.1138875686784225 0.2147377280161679 +1307 0.2187987433160812 0.06872739195007642 0.2187987433160812 +1308 0.2208483924055959 0.02297530966501622 0.2208483924055959 +1309 0.2208483923871754 -0.02297531048778138 0.2208483923871754 +1310 0.2187987432772533 -0.06872739252676725 0.2187987432772533 +1311 0.2147377279747877 -0.1138875690453897 0.2147377279747877 +1312 0.208741197245785 -0.158073527826836 0.208741197245785 +1313 0.2503495976596463 0.1910471506863229 0.2503495976596463 +1314 0.2554894811543279 0.137300455662973 0.2554894811543279 +1315 0.2589703514112984 0.0827187168593318 0.2589703514112984 +1316 0.2607271934892904 0.02762963043811373 0.2607271934892904 +1317 0.2607271934757542 -0.02762963128655641 0.2607271934757542 +1318 0.2589703513827655 -0.0827187174555164 0.2589703513827655 +1319 0.2554894811239192 -0.1373004560442735 0.2554894811239192 +1320 0.2503495976409568 -0.1910471508537865 0.2503495976409568 +1321 0.2919579980484912 0.2240207737097753 0.2919579980484912 +1322 0.2962412342932345 0.1607133426573469 0.2962412342932345 +1323 0.2991419595072954 0.09671004178527869 0.2991419595072954 +1324 0.3006059945733436 0.03228395123394963 0.3006059945733436 +1325 0.3006059945639407 -0.03228395206044855 0.3006059945639407 +1326 0.2991419594874749 -0.0967100423670858 0.2991419594874749 +1327 0.2962412342721107 -0.1607133430307871 0.2962412342721107 +1328 0.2919579980355078 -0.2240207738746835 0.2919579980355078 +1329 0.3335663984379322 0.2569943967374181 0.3335663984379322 +1330 0.3369929874330649 0.1841262296616462 0.3369929874330649 +1331 0.3393135676042474 0.1107013667279782 0.3393135676042474 +1332 0.3404847956579289 0.03693827205254426 0.3404847956579289 +1333 0.3404847956519085 -0.03693827280947851 0.3404847956519085 +1334 0.3393135675915564 -0.1107013672615363 0.3393135675915564 +1335 0.3369929874195393 -0.1841262300050322 0.3369929874195393 +1336 0.3335663984296184 -0.2569943968896699 0.3335663984296184 +1337 0.3751747988277901 0.2899680197691094 0.3751747988277901 +1338 0.3777447405736436 0.2075391166757697 0.3777447405736436 +1339 0.3794851757019808 0.1246926916873699 0.3794851757019808 +1340 0.3803635967428743 0.04159259289387744 0.3803635967428743 +1341 0.3803635967394854 -0.04159259353362581 0.3803635967394854 +1342 0.3794851756948366 -0.1246926921388074 0.3794851756948366 +1343 0.3777447405660294 -0.2075391169669079 0.3777447405660294 +1344 0.3751747988231095 -0.2899680198986036 0.3751747988231095 +1345 0.4167831992181513 0.3229416428049177 0.4167831992181513 +1346 0.4184964937150549 0.230952003699766 0.4184964937150549 +1347 0.419656783800579 0.1386840166634825 0.419656783800579 +1348 0.4202423978282625 0.04624691375795897 0.4202423978282625 +1349 0.4202423978267542 -0.04624691423290025 0.4202423978267542 +1350 0.4196567837973988 -0.1386840169989285 0.4196567837973988 +1351 0.4184964937116655 -0.2309520039164627 0.4184964937116655 +1352 0.4167831992160675 -0.3229416429015535 0.4167831992160675 +1353 0.4583915996089036 0.3559152658447537 0.4583915996089036 +1354 0.459248246857189 0.2543648907335723 0.459248246857189 +1355 0.4598283918999339 0.1526753416562788 0.4598283918999339 +1356 0.4601211989139861 0.05090123464477604 0.4601211989139861 +1357 0.4601211989136074 -0.0509012349072893 0.4601211989136074 +1358 0.4598283918991353 -0.1526753418418615 0.4598283918991353 +1359 0.4592482468563376 -0.2543648908536336 0.4592482468563376 +1360 0.4583915996083799 -0.3559152658984303 0.4583915996083799 +1361 -0.1250999047966228 -0.1671327968493403 -0.1671327968493403 +1362 -0.09047468204258084 -0.173985974823335 -0.1739859748233351 +1363 -0.05473606755880485 -0.1786271351730732 -0.1786271351730732 +1364 -0.01832098964768237 -0.1809695912987319 -0.1809695912987319 +1365 0.01832098892677408 -0.180969591321871 -0.180969591321871 +1366 0.05473606703703934 -0.1786271352236278 -0.1786271352236277 +1367 0.09047468167766129 -0.173985974883012 -0.1739859748830119 +1368 0.1250999046337357 -0.1671327968873636 -0.1671327968873635 +1369 -0.1580735278299427 -0.2087411972452909 -0.2087411972452909 +1370 -0.1138875690547049 -0.2147377279737374 -0.2147377279737373 +1371 -0.06872739250239626 -0.2187987432788941 -0.2187987432788941 +1372 -0.02297531046960751 -0.2208483923875822 -0.2208483923875822 +1373 0.02297530967844349 -0.2208483924052953 -0.2208483924052952 +1374 0.06872739192761373 -0.2187987433175936 -0.2187987433175935 +1375 0.1138875686495776 -0.2147377280194205 -0.2147377280194205 +1376 0.1580735276469168 -0.2087411972743977 -0.2087411972743977 +1377 -0.1910471508569969 -0.2503495976405987 -0.2503495976405987 +1378 -0.1373004560538645 -0.2554894811231544 -0.2554894811231545 +1379 -0.08271871743019665 -0.2589703513839773 -0.2589703513839772 +1380 -0.02762963126764415 -0.260727193476056 -0.2607271934760559 +1381 0.02762963045213222 -0.2607271934890668 -0.2607271934890668 +1382 0.08271871683624529 -0.2589703514124032 -0.2589703514124032 +1383 0.1373004556330942 -0.2554894811567107 -0.2554894811567107 +1384 0.1910471506654254 -0.2503495976619785 -0.2503495976619785 +1385 -0.2240207738777854 -0.2919579980352636 -0.2919579980352636 +1386 -0.1607133430400597 -0.2962412342715862 -0.2962412342715862 +1387 -0.09671004234220604 -0.2991419594883224 -0.2991419594883224 +1388 -0.03228395204179223 -0.300605994564153 -0.3006059945641529 +1389 0.03228395124784028 -0.3006059945731855 -0.3006059945731856 +1390 0.09671004176293407 -0.2991419595080567 -0.2991419595080567 +1391 0.1607133426282112 -0.2962412342948826 -0.2962412342948825 +1392 0.224020773689262 -0.291957998050106 -0.291957998050106 +1393 -0.2569943968924521 -0.3335663984294667 -0.3335663984294667 +1394 -0.1841262300133922 -0.33699298741921 -0.33699298741921 +1395 -0.1107013672384852 -0.3393135675921046 -0.3393135675921046 +1396 -0.03693827279207219 -0.340484795652047 -0.340484795652047 +1397 0.03693827206558775 -0.3404847956578252 -0.3404847956578252 +1398 0.1107013667077411 -0.3393135676047286 -0.3393135676047286 +1399 0.1841262296350302 -0.3369929874341132 -0.3369929874341132 +1400 0.2569943967185698 -0.3335663984389613 -0.3335663984389613 +1401 -0.289968019900854 -0.3751747988230282 -0.3751747988230281 +1402 -0.207539116973761 -0.3777447405658502 -0.3777447405658502 +1403 -0.124692692118974 -0.3794851756951505 -0.3794851756951505 +1404 -0.0415925935184638 -0.3803635967395657 -0.3803635967395657 +1405 0.0415925929053549 -0.3803635967428136 -0.3803635967428136 +1406 0.1246926916706056 -0.379485175702246 -0.379485175702246 +1407 0.2075391166534504 -0.3777447405742271 -0.3777447405742271 +1408 0.2899680197532064 -0.3751747988283649 -0.3751747988283649 +1409 -0.3229416429030602 -0.4167831992160348 -0.416783199216035 +1410 -0.230952003921215 -0.4184964937115912 -0.4184964937115912 +1411 -0.1386840169837014 -0.4196567837975433 -0.4196567837975433 +1412 -0.04624691422097671 -0.420242397826792 -0.4202423978267921 +1413 0.04624691376715086 -0.4202423978282333 -0.4202423978282334 +1414 0.1386840166515569 -0.419656783800692 -0.419656783800692 +1415 0.2309520036835205 -0.4184964937153089 -0.4184964937153091 +1416 0.3229416427932404 -0.4167831992184032 -0.4167831992184033 +1417 -0.3559152658989813 -0.4583915996083743 -0.4583915996083743 +1418 -0.2543648908556906 -0.4592482468563231 -0.4592482468563231 +1419 -0.1526753418326295 -0.4598283918991748 -0.459828391899175 +1420 -0.05090123489959839 -0.4601211989136183 -0.4601211989136185 +1421 0.05090123465096366 -0.4601211989139772 -0.4601211989139772 +1422 0.1526753416505573 -0.4598283918999584 -0.4598283918999584 +1423 0.2543648907251773 -0.4592482468572484 -0.4592482468572484 +1424 0.3559152658385832 -0.4583915996089638 -0.4583915996089639 +1425 -0.1671327968499967 0.1250999047938108 -0.1671327968499967 +1426 -0.1739859748247232 0.09047468203409205 -0.1739859748247232 +1427 -0.1786271351709448 0.05473606758077153 -0.1786271351709448 +1428 -0.180969591298207 0.01832098966403363 -0.180969591298207 +1429 -0.1809695913222569 -0.0183209889147472 -0.1809695913222569 +1430 -0.1786271352216376 -0.05473606705757939 -0.1786271352216376 +1431 -0.1739859748787474 -0.0904746817037386 -0.1739859748787474 +1432 -0.1671327968831979 -0.1250999046515808 -0.1671327968831979 +1433 -0.2087411972457935 0.1580735278267824 -0.2087411972457935 +1434 -0.2147377279748002 0.1138875690452795 -0.2147377279748002 +1435 -0.2187987432772646 0.06872739252659898 -0.2187987432772646 +1436 -0.2208483923871803 0.02297531048755521 -0.2208483923871803 +1437 -0.2208483924055908 -0.02297530966524235 -0.2208483924055908 +1438 -0.2187987433160699 -0.06872739195024466 -0.2187987433160699 +1439 -0.2147377280161555 -0.1138875686785326 -0.2147377280161555 +1440 -0.2087411972712084 -0.1580735276669716 -0.2087411972712084 +1441 -0.2503495976409678 0.1910471508536883 -0.2503495976409678 +1442 -0.2554894811239352 0.1373004560440731 -0.2554894811239352 +1443 -0.25897035138278 0.08271871745521205 -0.25897035138278 +1444 -0.2607271934757607 0.02762963128614815 -0.2607271934757607 +1445 -0.260727193489284 -0.02762963043852187 -0.260727193489284 +1446 -0.2589703514112838 -0.08271871685963608 -0.2589703514112838 +1447 -0.2554894811543119 -0.1373004556631734 -0.2554894811543119 +1448 -0.2503495976596354 -0.1910471506864214 -0.2503495976596354 +1449 -0.2919579980355201 0.2240207738745286 -0.2919579980355201 +1450 -0.2962412342721285 0.1607133430304731 -0.2962412342721285 +1451 -0.2991419594874911 0.09671004236661065 -0.2991419594874911 +1452 -0.300605994563948 0.03228395205981248 -0.300605994563948 +1453 -0.3006059945733363 -0.03228395123458579 -0.3006059945733363 +1454 -0.2991419595072793 -0.09671004178575382 -0.2991419595072793 +1455 -0.2962412342932166 -0.160713342657661 -0.2962412342932166 +1456 -0.2919579980484789 -0.2240207737099303 -0.2919579980484789 +1457 -0.3335663984296307 0.2569943968894466 -0.3335663984296307 +1458 -0.3369929874195571 0.1841262300045813 -0.3369929874195571 +1459 -0.3393135675915725 0.1107013672608557 -0.3393135675915725 +1460 -0.3404847956519159 0.03693827280856854 -0.3404847956519159 +1461 -0.3404847956579217 -0.03693827205345422 -0.3404847956579217 +1462 -0.3393135676042311 -0.1107013667286587 -0.3393135676042311 +1463 -0.3369929874330472 -0.1841262296620971 -0.3369929874330472 +1464 -0.33356639843792 -0.2569943967376415 -0.33356639843792 +1465 -0.3751747988231205 0.2899680198983001 -0.3751747988231205 +1466 -0.3777447405660453 0.2075391169662967 -0.3777447405660453 +1467 -0.3794851756948512 0.1246926921378869 -0.3794851756948512 +1468 -0.3803635967394918 0.04159259353239618 -0.3803635967394918 +1469 -0.3803635967428676 -0.04159259289510712 -0.3803635967428676 +1470 -0.3794851757019662 -0.1246926916882902 -0.3794851757019662 +1471 -0.3777447405736274 -0.2075391166763809 -0.3777447405736274 +1472 -0.3751747988277792 -0.2899680197694132 -0.3751747988277792 +1473 -0.416783199216076 0.3229416429011576 -0.416783199216076 +1474 -0.418496493711678 0.2309520039156677 -0.418496493711678 +1475 -0.4196567837974103 0.1386840169977334 -0.4196567837974103 +1476 -0.4202423978267592 0.04624691423130507 -0.4202423978267592 +1477 -0.4202423978282576 -0.04624691375955399 -0.4202423978282576 +1478 -0.4196567838005677 -0.1386840166646776 -0.4196567838005677 +1479 -0.4184964937150424 -0.2309520037005609 -0.4184964937150424 +1480 -0.4167831992181429 -0.3229416428053137 -0.4167831992181429 +1481 -0.4583915996083847 0.3559152658979301 -0.4583915996083847 +1482 -0.4592482468563447 0.2543648908526315 -0.4592482468563447 +1483 -0.4598283918991418 0.1526753418403572 -0.4598283918991418 +1484 -0.4601211989136104 0.05090123490528266 -0.4601211989136104 +1485 -0.4601211989139833 -0.05090123464678269 -0.4601211989139833 +1486 -0.4598283918999275 -0.1526753416577831 -0.4598283918999275 +1487 -0.4592482468571819 -0.2543648907345741 -0.4592482468571819 +1488 -0.4583915996088986 -0.3559152658452541 -0.4583915996088986 +1489 -0.1671327968832028 -0.12509990465156 0.1671327968832028 +1490 -0.2087411972712169 -0.1580735276669178 0.2087411972712169 +1491 -0.2503495976596464 -0.1910471506863229 0.2503495976596464 +1492 -0.2919579980484911 -0.2240207737097752 0.2919579980484911 +1493 -0.3335663984379321 -0.256994396737418 0.3335663984379321 +1494 -0.3751747988277901 -0.2899680197691094 0.3751747988277901 +1495 -0.4167831992181514 -0.3229416428049176 0.4167831992181514 +1496 -0.4583915996089037 -0.355915265844754 0.4583915996089037 +1497 -0.1739859748787545 -0.09047468170369513 0.1739859748787545 +1498 -0.2147377280161679 -0.1138875686784223 0.2147377280161679 +1499 -0.2554894811543279 -0.1373004556629729 0.2554894811543279 +1500 -0.2962412342932345 -0.1607133426573469 0.2962412342932345 +1501 -0.3369929874330649 -0.1841262296616462 0.3369929874330649 +1502 -0.3777447405736435 -0.2075391166757697 0.3777447405736435 +1503 -0.4184964937150549 -0.2309520036997661 0.4184964937150549 +1504 -0.4592482468571891 -0.2543648907335723 0.4592482468571891 +1505 -0.178627135221644 -0.05473606705751257 0.178627135221644 +1506 -0.2187987433160812 -0.06872739195007642 0.2187987433160812 +1507 -0.2589703514112983 -0.08271871685933177 0.2589703514112983 +1508 -0.2991419595072955 -0.09671004178527877 0.2991419595072955 +1509 -0.3393135676042474 -0.1107013667279782 0.3393135676042474 +1510 -0.3794851757019808 -0.1246926916873699 0.3794851757019808 +1511 -0.419656783800579 -0.1386840166634827 0.419656783800579 +1512 -0.4598283918999339 -0.1526753416562788 0.4598283918999339 +1513 -0.1809695913222599 -0.018320988914657 0.1809695913222599 +1514 -0.2208483924055958 -0.02297530966501608 0.2208483924055958 +1515 -0.2607271934892904 -0.02762963043811362 0.2607271934892904 +1516 -0.3006059945733437 -0.03228395123394966 0.3006059945733437 +1517 -0.3404847956579289 -0.03693827205254413 0.3404847956579289 +1518 -0.3803635967428743 -0.04159259289387737 0.3803635967428743 +1519 -0.4202423978282626 -0.04624691375795886 0.4202423978282626 +1520 -0.460121198913986 -0.05090123464477603 0.460121198913986 +1521 -0.1809695912982041 0.01832098966412384 0.1809695912982041 +1522 -0.2208483923871754 0.02297531048778145 0.2208483923871754 +1523 -0.2607271934757542 0.02762963128655636 0.2607271934757542 +1524 -0.3006059945639408 0.0322839520604486 0.3006059945639408 +1525 -0.3404847956519085 0.03693827280947841 0.3404847956519085 +1526 -0.3803635967394854 0.04159259353362565 0.3803635967394854 +1527 -0.4202423978267543 0.04624691423290014 0.4202423978267543 +1528 -0.4601211989136074 0.0509012349072894 0.4601211989136074 +1529 -0.1786271351709383 0.05473606758083835 0.1786271351709383 +1530 -0.2187987432772532 0.06872739252676725 0.2187987432772532 +1531 -0.2589703513827655 0.0827187174555164 0.2589703513827655 +1532 -0.2991419594874748 0.09671004236708571 0.2991419594874748 +1533 -0.3393135675915563 0.1107013672615361 0.3393135675915563 +1534 -0.3794851756948365 0.1246926921388074 0.3794851756948365 +1535 -0.419656783797399 0.1386840169989283 0.419656783797399 +1536 -0.4598283918991354 0.1526753418418614 0.4598283918991354 +1537 -0.1739859748247161 0.09047468203413546 0.1739859748247161 +1538 -0.2147377279747878 0.1138875690453896 0.2147377279747878 +1539 -0.2554894811239192 0.1373004560442735 0.2554894811239192 +1540 -0.2962412342721106 0.1607133430307871 0.2962412342721106 +1541 -0.3369929874195394 0.1841262300050321 0.3369929874195394 +1542 -0.3777447405660292 0.2075391169669079 0.3777447405660292 +1543 -0.4184964937116655 0.2309520039164628 0.4184964937116655 +1544 -0.4592482468563375 0.2543648908536336 0.4592482468563375 +1545 -0.1671327968499918 0.1250999047938317 0.1671327968499918 +1546 -0.208741197245785 0.1580735278268361 0.208741197245785 +1547 -0.250349597640957 0.1910471508537867 0.250349597640957 +1548 -0.2919579980355078 0.2240207738746834 0.2919579980355078 +1549 -0.3335663984296184 0.25699439688967 0.3335663984296184 +1550 -0.3751747988231096 0.2899680198986036 0.3751747988231096 +1551 -0.4167831992160675 0.3229416429015537 0.4167831992160675 +1552 -0.4583915996083799 0.3559152658984302 0.4583915996083799 +1553 -0.1671327968873635 -0.1671327968873637 -0.1250999046337357 +1554 -0.2087411972743977 -0.2087411972743977 -0.1580735276469167 +1555 -0.2503495976619785 -0.2503495976619785 -0.1910471506654255 +1556 -0.2919579980501061 -0.2919579980501061 -0.224020773689262 +1557 -0.3335663984389613 -0.3335663984389613 -0.2569943967185697 +1558 -0.3751747988283649 -0.3751747988283649 -0.2899680197532064 +1559 -0.4167831992184032 -0.4167831992184032 -0.3229416427932405 +1560 -0.4583915996089639 -0.4583915996089638 -0.355915265838583 +1561 -0.1739859748830119 -0.1739859748830119 -0.09047468167766132 +1562 -0.2147377280194205 -0.2147377280194205 -0.1138875686495776 +1563 -0.2554894811567108 -0.2554894811567107 -0.1373004556330942 +1564 -0.2962412342948825 -0.2962412342948825 -0.1607133426282111 +1565 -0.3369929874341132 -0.3369929874341132 -0.1841262296350302 +1566 -0.3777447405742271 -0.377744740574227 -0.2075391166534504 +1567 -0.4184964937153089 -0.4184964937153089 -0.2309520036835205 +1568 -0.4592482468572485 -0.4592482468572484 -0.2543648907251771 +1569 -0.1786271352236277 -0.1786271352236277 -0.05473606703703926 +1570 -0.2187987433175935 -0.2187987433175936 -0.06872739192761372 +1571 -0.2589703514124032 -0.2589703514124032 -0.08271871683624535 +1572 -0.2991419595080567 -0.2991419595080567 -0.0967100417629342 +1573 -0.3393135676047286 -0.3393135676047286 -0.1107013667077411 +1574 -0.379485175702246 -0.379485175702246 -0.1246926916706056 +1575 -0.419656783800692 -0.419656783800692 -0.138684016651557 +1576 -0.4598283918999585 -0.4598283918999585 -0.1526753416505574 +1577 -0.180969591321871 -0.1809695913218709 -0.01832098892677411 +1578 -0.2208483924052953 -0.2208483924052952 -0.0229753096784435 +1579 -0.2607271934890668 -0.2607271934890668 -0.02762963045213222 +1580 -0.3006059945731856 -0.3006059945731857 -0.0322839512478403 +1581 -0.3404847956578252 -0.3404847956578252 -0.03693827206558771 +1582 -0.3803635967428136 -0.3803635967428134 -0.04159259290535483 +1583 -0.4202423978282333 -0.4202423978282335 -0.04624691376715089 +1584 -0.4601211989139771 -0.4601211989139771 -0.05090123465096363 +1585 -0.1809695912987319 -0.1809695912987318 0.01832098964768233 +1586 -0.2208483923875822 -0.2208483923875822 0.02297531046960751 +1587 -0.2607271934760559 -0.2607271934760559 0.02762963126764417 +1588 -0.3006059945641529 -0.300605994564153 0.03228395204179224 +1589 -0.3404847956520469 -0.3404847956520469 0.03693827279207218 +1590 -0.3803635967395657 -0.3803635967395657 0.0415925935184637 +1591 -0.420242397826792 -0.420242397826792 0.04624691422097672 +1592 -0.4601211989136184 -0.4601211989136183 0.05090123489959833 +1593 -0.1786271351730732 -0.1786271351730732 0.05473606755880488 +1594 -0.2187987432788941 -0.2187987432788941 0.06872739250239621 +1595 -0.2589703513839772 -0.2589703513839772 0.08271871743019669 +1596 -0.2991419594883225 -0.2991419594883225 0.09671004234220597 +1597 -0.3393135675921046 -0.3393135675921046 0.1107013672384852 +1598 -0.3794851756951505 -0.3794851756951505 0.1246926921189741 +1599 -0.4196567837975433 -0.4196567837975433 0.1386840169837012 +1600 -0.4598283918991751 -0.4598283918991749 0.1526753418326297 +1601 -0.173985974823335 -0.1739859748233351 0.09047468204258086 +1602 -0.2147377279737374 -0.2147377279737374 0.1138875690547049 +1603 -0.2554894811231544 -0.2554894811231544 0.1373004560538645 +1604 -0.2962412342715861 -0.2962412342715862 0.1607133430400596 +1605 -0.33699298741921 -0.33699298741921 0.1841262300133922 +1606 -0.3777447405658501 -0.3777447405658501 0.207539116973761 +1607 -0.4184964937115912 -0.4184964937115911 0.230952003921215 +1608 -0.459248246856323 -0.459248246856323 0.2543648908556906 +1609 -0.1671327968493403 -0.1671327968493403 0.1250999047966228 +1610 -0.208741197245291 -0.208741197245291 0.1580735278299426 +1611 -0.2503495976405987 -0.2503495976405987 0.1910471508569968 +1612 -0.2919579980352635 -0.2919579980352635 0.2240207738777855 +1613 -0.3335663984294664 -0.3335663984294666 0.2569943968924518 +1614 -0.3751747988230283 -0.3751747988230283 0.2899680199008539 +1615 -0.416783199216035 -0.416783199216035 0.3229416429030603 +1616 -0.4583915996083746 -0.4583915996083744 0.3559152658989815 +1617 0.1671327968873684 -0.1671327968873684 0.1250999046337147 +1618 0.2087411972744062 -0.2087411972744062 0.158073527646863 +1619 0.2503495976619895 -0.2503495976619895 0.1910471506653272 +1620 0.2919579980501183 -0.2919579980501183 0.2240207736891071 +1621 0.3335663984389736 -0.3335663984389736 0.2569943967183464 +1622 0.3751747988283759 -0.3751747988283759 0.2899680197529027 +1623 0.4167831992184117 -0.4167831992184117 0.3229416427928447 +1624 0.4583915996089688 -0.4583915996089687 0.355915265838083 +1625 0.173985974883019 -0.1739859748830191 0.09047468167761782 +1626 0.2147377280194329 -0.2147377280194329 0.1138875686494673 +1627 0.2554894811567268 -0.2554894811567268 0.1373004556328938 +1628 0.2962412342949002 -0.2962412342949002 0.1607133426278972 +1629 0.336992987434131 -0.336992987434131 0.1841262296345793 +1630 0.3777447405742432 -0.3777447405742431 0.2075391166528392 +1631 0.4184964937153213 -0.4184964937153213 0.2309520036827255 +1632 0.4592482468572557 -0.4592482468572557 0.2543648907241753 +1633 0.1786271352236342 -0.1786271352236342 0.05473606703697247 +1634 0.218798743317605 -0.218798743317605 0.06872739192744549 +1635 0.2589703514124178 -0.2589703514124179 0.08271871683594104 +1636 0.2991419595080729 -0.2991419595080729 0.09671004176245912 +1637 0.3393135676047448 -0.3393135676047448 0.1107013667070606 +1638 0.3794851757022606 -0.3794851757022606 0.1246926916696851 +1639 0.4196567838007034 -0.4196567838007034 0.1386840166503619 +1640 0.459828391899965 -0.4598283918999649 0.152675341649053 +1641 0.1809695913218738 -0.1809695913218738 0.01832098892668391 +1642 0.2208483924053004 -0.2208483924053003 0.02297530967821723 +1643 0.2607271934890734 -0.2607271934890734 0.02762963045172398 +1644 0.3006059945731928 -0.3006059945731928 0.03228395124720414 +1645 0.3404847956578324 -0.3404847956578324 0.03693827206467776 +1646 0.38036359674282 -0.3803635967428199 0.04159259290412522 +1647 0.4202423978282384 -0.4202423978282385 0.0462469137655557 +1648 0.46012119891398 -0.46012119891398 0.05090123464895702 +1649 0.1809695912987289 -0.1809695912987289 -0.01832098964777253 +1650 0.2208483923875771 -0.2208483923875772 -0.02297531046983376 +1651 0.2607271934760494 -0.2607271934760494 -0.02762963126805244 +1652 0.3006059945641458 -0.3006059945641458 -0.03228395204242841 +1653 0.3404847956520397 -0.3404847956520397 -0.03693827279298212 +1654 0.3803635967395591 -0.3803635967395591 -0.0415925935196933 +1655 0.420242397826787 -0.4202423978267869 -0.04624691422257193 +1656 0.4601211989136154 -0.4601211989136154 -0.05090123490160497 +1657 0.1786271351730667 -0.1786271351730666 -0.05473606755887164 +1658 0.2187987432788829 -0.2187987432788828 -0.06872739250256454 +1659 0.2589703513839626 -0.2589703513839626 -0.08271871743050099 +1660 0.2991419594883062 -0.2991419594883064 -0.09671004234268098 +1661 0.3393135675920884 -0.3393135675920885 -0.1107013672391658 +1662 0.3794851756951358 -0.3794851756951358 -0.1246926921198944 +1663 0.4196567837975321 -0.4196567837975321 -0.1386840169848964 +1664 0.4598283918991685 -0.4598283918991685 -0.1526753418341338 +1665 0.1739859748233279 -0.1739859748233279 -0.09047468204262435 +1666 0.2147377279737249 -0.2147377279737249 -0.1138875690548151 +1667 0.2554894811231384 -0.2554894811231384 -0.1373004560540649 +1668 0.2962412342715683 -0.2962412342715684 -0.1607133430403737 +1669 0.3369929874191923 -0.3369929874191923 -0.184126230013843 +1670 0.3777447405658341 -0.377744740565834 -0.2075391169743723 +1671 0.4184964937115787 -0.4184964937115787 -0.2309520039220097 +1672 0.459248246856316 -0.4592482468563159 -0.2543648908566924 +1673 0.1671327968493354 -0.1671327968493354 -0.1250999047966438 +1674 0.2087411972452824 -0.2087411972452824 -0.1580735278299963 +1675 0.2503495976405877 -0.2503495976405877 -0.1910471508570952 +1676 0.2919579980352513 -0.2919579980352513 -0.2240207738779403 +1677 0.3335663984294542 -0.3335663984294543 -0.2569943968926752 +1678 0.3751747988230172 -0.3751747988230172 -0.2899680199011576 +1679 0.4167831992160265 -0.4167831992160264 -0.3229416429034564 +1680 0.4583915996083697 -0.4583915996083696 -0.3559152658994815 +1681 -0.3559152658994816 -0.4583915996083696 0.4583915996083696 +1682 -0.3229416429034562 -0.4167831992160265 0.4167831992160265 +1683 -0.2899680199011578 -0.3751747988230172 0.3751747988230172 +1684 -0.2569943968926753 -0.3335663984294543 0.3335663984294543 +1685 -0.2240207738779404 -0.2919579980352515 0.2919579980352515 +1686 -0.1910471508570952 -0.2503495976405877 0.2503495976405877 +1687 -0.1580735278299963 -0.2087411972452823 0.2087411972452823 +1688 -0.1250999047966438 -0.1671327968493354 0.1671327968493354 +1689 -0.2543648908566926 -0.4592482468563159 0.4592482468563159 +1690 -0.2309520039220097 -0.4184964937115787 0.4184964937115786 +1691 -0.2075391169743722 -0.3777447405658341 0.3777447405658341 +1692 -0.184126230013843 -0.3369929874191922 0.3369929874191923 +1693 -0.1607133430403737 -0.2962412342715686 0.2962412342715685 +1694 -0.137300456054065 -0.2554894811231385 0.2554894811231385 +1695 -0.1138875690548151 -0.2147377279737249 0.2147377279737248 +1696 -0.09047468204262424 -0.1739859748233279 0.1739859748233279 +1697 -0.1526753418341339 -0.4598283918991685 0.4598283918991685 +1698 -0.1386840169848964 -0.4196567837975321 0.4196567837975321 +1699 -0.1246926921198945 -0.3794851756951359 0.3794851756951359 +1700 -0.1107013672391657 -0.3393135675920884 0.3393135675920884 +1701 -0.0967100423426811 -0.2991419594883064 0.2991419594883064 +1702 -0.08271871743050099 -0.2589703513839626 0.2589703513839627 +1703 -0.06872739250256449 -0.2187987432788828 0.2187987432788828 +1704 -0.05473606755887163 -0.1786271351730667 0.1786271351730667 +1705 -0.05090123490160504 -0.4601211989136156 0.4601211989136156 +1706 -0.0462469142225718 -0.4202423978267871 0.420242397826787 +1707 -0.04159259351969331 -0.3803635967395592 0.3803635967395592 +1708 -0.03693827279298212 -0.3404847956520397 0.3404847956520397 +1709 -0.03228395204242842 -0.3006059945641458 0.3006059945641458 +1710 -0.02762963126805244 -0.2607271934760494 0.2607271934760494 +1711 -0.02297531046983377 -0.2208483923875772 0.2208483923875772 +1712 -0.01832098964777252 -0.180969591298729 0.1809695912987289 +1713 0.05090123464895699 -0.46012119891398 0.46012119891398 +1714 0.04624691376555574 -0.4202423978282384 0.4202423978282385 +1715 0.04159259290412514 -0.38036359674282 0.38036359674282 +1716 0.03693827206467776 -0.3404847956578324 0.3404847956578324 +1717 0.03228395124720412 -0.3006059945731929 0.3006059945731929 +1718 0.02762963045172401 -0.2607271934890734 0.2607271934890734 +1719 0.02297530967821722 -0.2208483924053003 0.2208483924053003 +1720 0.0183209889266839 -0.1809695913218738 0.1809695913218738 +1721 0.1526753416490529 -0.4598283918999649 0.4598283918999649 +1722 0.138684016650362 -0.4196567838007035 0.4196567838007034 +1723 0.1246926916696851 -0.3794851757022606 0.3794851757022606 +1724 0.1107013667070606 -0.3393135676047448 0.3393135676047448 +1725 0.09671004176245909 -0.2991419595080729 0.2991419595080729 +1726 0.08271871683594097 -0.2589703514124178 0.2589703514124179 +1727 0.06872739192744545 -0.2187987433176048 0.2187987433176048 +1728 0.05473606703697248 -0.1786271352236342 0.1786271352236342 +1729 0.2543648907241753 -0.4592482468572556 0.4592482468572556 +1730 0.2309520036827254 -0.4184964937153215 0.4184964937153215 +1731 0.2075391166528393 -0.3777447405742432 0.3777447405742432 +1732 0.1841262296345793 -0.336992987434131 0.336992987434131 +1733 0.1607133426278972 -0.2962412342949003 0.2962412342949003 +1734 0.1373004556328938 -0.2554894811567266 0.2554894811567268 +1735 0.1138875686494673 -0.2147377280194329 0.2147377280194329 +1736 0.09047468167761781 -0.1739859748830191 0.173985974883019 +1737 0.3559152658380831 -0.4583915996089687 0.4583915996089687 +1738 0.3229416427928446 -0.4167831992184117 0.4167831992184117 +1739 0.2899680197529026 -0.375174798828376 0.375174798828376 +1740 0.2569943967183464 -0.3335663984389736 0.3335663984389736 +1741 0.2240207736891071 -0.2919579980501183 0.2919579980501183 +1742 0.1910471506653273 -0.2503495976619896 0.2503495976619896 +1743 0.1580735276468631 -0.2087411972744063 0.2087411972744062 +1744 0.1250999046337148 -0.1671327968873684 0.1671327968873685 +1745 0.1671327968499917 0.1250999047938317 -0.1671327968499917 +1746 0.1739859748247161 0.09047468203413546 -0.1739859748247161 +1747 0.1786271351709383 0.05473606758083833 -0.1786271351709383 +1748 0.1809695912982041 0.01832098966412377 -0.1809695912982041 +1749 0.1809695913222599 -0.01832098891465699 -0.1809695913222599 +1750 0.178627135221644 -0.05473606705751259 -0.178627135221644 +1751 0.1739859748787545 -0.09047468170369513 -0.1739859748787545 +1752 0.1671327968832028 -0.1250999046515599 -0.1671327968832028 +1753 0.2087411972457851 0.1580735278268361 -0.2087411972457851 +1754 0.2147377279747877 0.1138875690453896 -0.2147377279747877 +1755 0.2187987432772532 0.06872739252676729 -0.2187987432772532 +1756 0.2208483923871753 0.02297531048778138 -0.2208483923871753 +1757 0.2208483924055959 -0.02297530966501617 -0.2208483924055959 +1758 0.2187987433160812 -0.06872739195007643 -0.2187987433160812 +1759 0.2147377280161679 -0.1138875686784224 -0.2147377280161679 +1760 0.2087411972712169 -0.1580735276669178 -0.2087411972712169 +1761 0.250349597640957 0.1910471508537867 -0.250349597640957 +1762 0.2554894811239193 0.1373004560442736 -0.2554894811239193 +1763 0.2589703513827654 0.08271871745551643 -0.2589703513827654 +1764 0.2607271934757543 0.02762963128655642 -0.2607271934757543 +1765 0.2607271934892904 -0.02762963043811362 -0.2607271934892904 +1766 0.2589703514112983 -0.08271871685933183 -0.2589703514112983 +1767 0.2554894811543278 -0.1373004556629729 -0.2554894811543278 +1768 0.2503495976596463 -0.1910471506863228 -0.2503495976596463 +1769 0.2919579980355078 0.2240207738746834 -0.2919579980355078 +1770 0.2962412342721106 0.160713343030787 -0.2962412342721106 +1771 0.2991419594874749 0.09671004236708583 -0.2991419594874749 +1772 0.3006059945639408 0.0322839520604486 -0.3006059945639408 +1773 0.3006059945733436 -0.03228395123394962 -0.3006059945733436 +1774 0.2991419595072954 -0.09671004178527873 -0.2991419595072954 +1775 0.2962412342932343 -0.160713342657347 -0.2962412342932343 +1776 0.2919579980484911 -0.2240207737097752 -0.2919579980484911 +1777 0.3335663984296184 0.2569943968896699 -0.3335663984296184 +1778 0.3369929874195393 0.1841262300050322 -0.3369929874195393 +1779 0.3393135675915563 0.1107013672615363 -0.3393135675915563 +1780 0.3404847956519085 0.03693827280947837 -0.3404847956519085 +1781 0.3404847956579289 -0.03693827205254427 -0.3404847956579289 +1782 0.3393135676042474 -0.1107013667279782 -0.3393135676042474 +1783 0.3369929874330649 -0.1841262296616463 -0.3369929874330649 +1784 0.3335663984379321 -0.2569943967374181 -0.3335663984379321 +1785 0.3751747988231096 0.2899680198986038 -0.3751747988231096 +1786 0.3777447405660294 0.2075391169669078 -0.3777447405660294 +1787 0.3794851756948366 0.1246926921388075 -0.3794851756948366 +1788 0.3803635967394854 0.04159259353362567 -0.3803635967394854 +1789 0.3803635967428743 -0.04159259289387738 -0.3803635967428743 +1790 0.3794851757019807 -0.1246926916873697 -0.3794851757019807 +1791 0.3777447405736435 -0.2075391166757697 -0.3777447405736435 +1792 0.3751747988277901 -0.2899680197691095 -0.3751747988277901 +1793 0.4167831992160675 0.3229416429015536 -0.4167831992160675 +1794 0.4184964937116656 0.2309520039164628 -0.4184964937116656 +1795 0.4196567837973991 0.1386840169989285 -0.4196567837973991 +1796 0.4202423978267542 0.04624691423290007 -0.4202423978267542 +1797 0.4202423978282627 -0.04624691375795884 -0.4202423978282627 +1798 0.419656783800579 -0.1386840166634826 -0.419656783800579 +1799 0.4184964937150549 -0.2309520036997661 -0.4184964937150549 +1800 0.4167831992181514 -0.3229416428049178 -0.4167831992181514 +1801 0.4583915996083798 0.3559152658984304 -0.4583915996083798 +1802 0.4592482468563377 0.2543648908536336 -0.4592482468563377 +1803 0.4598283918991352 0.1526753418418615 -0.4598283918991352 +1804 0.4601211989136073 0.05090123490728921 -0.4601211989136073 +1805 0.4601211989139861 -0.05090123464477603 -0.4601211989139861 +1806 0.459828391899934 -0.1526753416562789 -0.459828391899934 +1807 0.459248246857189 -0.2543648907335722 -0.459248246857189 +1808 0.4583915996089036 -0.355915265844754 -0.4583915996089036 +1809 -0.1339301329279652 -0.1339301327648316 0.1786189882515865 +1810 -0.1657999774433684 -0.165799977271717 0.2187916147212065 +1811 -0.1976698219529551 -0.1976698217810286 0.2589642411904853 +1812 -0.2295396664567248 -0.2295396662927661 0.2991368676594223 +1813 -0.2614095109548162 -0.2614095108070679 0.3393094941281919 +1814 -0.2932793554470922 -0.2932793553237966 0.3794821205966217 +1815 -0.3251491999336182 -0.3251491998430188 0.4196547470647947 +1816 -0.357019044414309 -0.3570190443646487 0.4598273735326023 +1817 -0.1410808093798934 -0.09797662759704107 0.1879267779132932 +1818 -0.1720568193376499 -0.1204517713449978 0.2269359306742975 +1819 -0.2030328292899183 -0.1429269150999557 0.2659450834352192 +1820 -0.2340088392366984 -0.1654020588619149 0.3049542361960582 +1821 -0.2649848491781249 -0.1878772026309731 0.3439633889569839 +1822 -0.2959608591140643 -0.2103523464070332 0.3829725417178284 +1823 -0.3269368690445808 -0.2328274901901421 0.4219816944786723 +1824 -0.3579128789695912 -0.255302633980239 0.4609908472394112 +1825 -0.1461367530886852 -0.05977782135615504 0.1945111825947874 +1826 -0.1764807700827903 -0.07313892697533568 0.2326972847704507 +1827 -0.2068247870714205 -0.08650003260723091 0.2708833869460762 +1828 -0.2371688040545754 -0.09986113825184086 0.309069489121664 +1829 -0.267512821032387 -0.1132222439092232 0.3472555912973794 +1830 -0.2978568380047247 -0.126583349579321 0.3854416934730585 +1831 -0.3282008549716514 -0.1399444552621617 0.4236277956487801 +1832 -0.3585448719330848 -0.1533055609577089 0.4618138978244418 +1833 -0.1487602215610462 -0.02009865820701387 0.1979287781613516 +1834 -0.178776304997574 -0.02453077031463018 0.2356876808923477 +1835 -0.2087923884282051 -0.02896288243962315 0.2734465836229768 +1836 -0.2388084718529398 -0.03339499458199244 0.3112054863532391 +1837 -0.268824555271908 -0.0378271067417572 0.3489643890832979 +1838 -0.298840638684981 -0.04225921891889883 0.3867232918129915 +1839 -0.3288567220922206 -0.04669133111342624 0.4244821945423978 +1840 -0.3588728054935456 -0.05112344332532726 0.4622410972714147 +1841 -0.1487602215402502 0.02009865885273406 0.1979287781326844 +1842 -0.1787763049820018 0.02453077100951452 0.2356876808693085 +1843 -0.2087923884171045 0.02896288314663141 0.2734465836049814 +1844 -0.2388084718455583 0.03339499526408499 0.3112054863397034 +1845 -0.2688245552674938 0.03782710736189442 0.3489643890736376 +1846 -0.2988406386827816 0.04225921944004056 0.3867232918066225 +1847 -0.3288567220914838 0.04669133149853269 0.4244821945387361 +1848 -0.3588728054935192 0.05112344353735901 0.4622410972698759 +1849 -0.146136753045795 0.05977782180036485 0.1945111825356083 +1850 -0.1764807700507892 0.07313892745640864 0.232697284722979 +1851 -0.2068247870487215 0.08650003309882122 0.2708833869090804 +1852 -0.237168804039592 0.09986113872760295 0.3090694890939125 +1853 -0.2675128210235327 0.1132222443428118 0.3472555912776411 +1854 -0.2978568380004128 0.1265833499443902 0.3854416934601018 +1855 -0.3282008549702948 0.1399444555323656 0.423627795641374 +1856 -0.3585448719330974 0.1533055611067025 0.4618138978213545 +1857 -0.1410808093360429 0.09797662786987935 0.1879267778526787 +1858 -0.1720568193051646 0.1204517716442716 0.2269359306258538 +1859 -0.2030328292671046 0.1429269154084019 0.2659450833976336 +1860 -0.2340088392218632 0.1654020591622707 0.3049542361680183 +1861 -0.264984849169575 0.1878772029059753 0.3439633889371771 +1862 -0.2959608591101059 0.210352346639419 0.382972541704942 +1863 -0.3269368690435215 0.2328274903626484 0.4219816944713942 +1864 -0.3579128789697367 0.2553026340756031 0.4609908472364281 +1865 -0.1339301329025162 0.1339301328781054 0.1786189882163252 +1866 -0.1657999774247009 0.1657999773983929 0.2187916146931777 +1867 -0.1976698219400229 0.1976698219132489 0.2589642411688817 +1868 -0.2295396664484826 0.2295396664226731 0.2991368676434372 +1869 -0.2614095109502179 0.2614095109268046 0.3393094941170181 +1870 -0.293279355445092 0.2932793554255053 0.3794821205894518 +1871 -0.3251491999331708 0.3251491999188422 0.4196547470608219 +1872 -0.3570190444143685 0.3570190444067283 0.4598273735310199 +1873 -0.09797662794102287 -0.1410808092096334 0.1879267778878811 +1874 -0.1204517717142951 -0.1720568191657884 0.2269359306545675 +1875 -0.142926915475085 -0.2030328291229814 0.2659450834204558 +1876 -0.1654020592233921 -0.2340088390812122 0.3049542361855452 +1877 -0.1878772029593142 -0.2649848490406152 0.3439633889500052 +1878 -0.2103523466827544 -0.2959608590010573 0.3829725417136683 +1879 -0.2328274903937596 -0.3269368689626028 0.4219816944766149 +1880 -0.2553026340922691 -0.357912878925168 0.4609908472387403 +1881 -0.1043504649271709 -0.1043504645914402 0.199793121170523 +1882 -0.1260288790760194 -0.1260288787244117 0.237318981026231 +1883 -0.1477072932127113 -0.1477072928617288 0.2748448408813271 +1884 -0.1693857073372463 -0.1693857070033915 0.312370700735811 +1885 -0.1910641214497188 -0.1910641211494935 0.3498965605898461 +1886 -0.2127425355500354 -0.2127425352999421 0.3874224204432699 +1887 -0.2344209496382413 -0.234420949454782 0.4249482802961616 +1888 -0.2560993637142779 -0.2560993636139547 0.4624741401484189 +1889 -0.1090429166077285 -0.06421850251122556 0.2085409719297924 +1890 -0.1301347742965171 -0.07702452299962008 0.2449733504403981 +1891 -0.1512266319731418 -0.08983054349685202 0.2814057289504484 +1892 -0.1723184896376027 -0.1026365640029214 0.3178381074599426 +1893 -0.1934103472899912 -0.1154425845178836 0.3542704859690393 +1894 -0.2145022049302168 -0.1282486050416839 0.3907028644775817 +1895 -0.2355940625583231 -0.1410546255743487 0.4271352429856451 +1896 -0.2566859201742533 -0.1538606461158433 0.4635676214931316 +1897 -0.1115448803710726 -0.02169501216783411 0.2132090612301925 +1898 -0.1323239925909024 -0.02592758004903409 0.2490579285790787 +1899 -0.1531031047981469 -0.03016014794228176 0.2849067959271725 +1900 -0.173882216992806 -0.0343927158475769 0.3207556632744739 +1901 -0.1946613291749697 -0.03862528376493765 0.3566045306211381 +1902 -0.215440441344549 -0.04285785169434614 0.3924533979670115 +1903 -0.236219553501587 -0.04709041963581118 0.4283022653121681 +1904 -0.2569986656460271 -0.05132298758932111 0.4641511326565109 +1905 -0.1115448803577039 0.02169501266914342 0.2132090612013155 +1906 -0.132323992581825 0.02592758058045384 0.2490579285552721 +1907 -0.1531031047926073 0.03016014847735363 0.284906795908019 +1908 -0.1738822169900506 0.03439271635984296 0.3207556632595561 +1909 -0.1946613291742452 0.03862528422794037 0.3566045306100388 +1910 -0.2154404413451018 0.04285785208162726 0.3924533979593129 +1911 -0.2362195535026634 0.04709041992091281 0.4283022653074531 +1912 -0.2569986656468737 0.05132298774578536 0.4641511326543623 +1913 -0.1090429165808381 0.06421850285077049 0.2085409718713729 +1914 -0.1301347742785035 0.07702452336271753 0.2449733503923608 +1915 -0.1512266319624144 0.08983054386468264 0.281405728911913 +1916 -0.172318489632571 0.1026365643566659 0.3178381074300294 +1917 -0.1934103472890646 0.1154425848387232 0.3542704859468687 +1918 -0.2145022049318049 0.128248605310799 0.3907028644622735 +1919 -0.2355940625608355 0.1410546257729201 0.4271352429763198 +1920 -0.2566859201760995 0.1538606462250519 0.463567621488909 +1921 -0.1043504649009357 0.1043504647943301 0.1997931211128678 +1922 -0.1260288790589269 0.1260288789451866 0.237318980979066 +1923 -0.1477072932030616 0.1477072930880572 0.2748448408437139 +1924 -0.1693857073333401 0.1693857072229414 0.3123707007068117 +1925 -0.1910641214498564 0.1910641213499339 0.3498965605685227 +1926 -0.2127425355525167 0.2127425354689409 0.3874224204286846 +1927 -0.2344209496413672 0.2344209495800077 0.4249482802873761 +1928 -0.2560993637163482 0.2560993636830755 0.462474140144495 +1929 -0.09797662792672107 0.1410808092910801 0.1879267778559363 +1930 -0.1204517717053527 0.1720568192567443 0.2269359306286362 +1931 -0.1429269154704469 0.2030328292178327 0.2659450833999604 +1932 -0.1654020592220039 0.2340088391743454 0.3049542361699086 +1933 -0.1878772029601211 0.2649848491264173 0.3439633889386506 +1934 -0.210352346684702 0.2959608590739145 0.3829725417060177 +1935 -0.2328274903957932 0.3269368690169018 0.4219816944720921 +1936 -0.2553026340933339 0.3579128789552954 0.4609908472367673 +1937 -0.05977782185262684 -0.146136752940131 0.194511182576658 +1938 -0.07313892750789633 -0.1764807699332396 0.2326972847567879 +1939 -0.08650003314788969 -0.2068247869264559 0.2708833869362513 +1940 -0.09986113877260661 -0.2371688039197803 0.3090694891150479 +1941 -0.1132222443821053 -0.2675128209133439 0.347255591293344 +1942 -0.1265833499763283 -0.2978568379070163 0.3854416934709747 +1943 -0.1399444555553032 -0.328200854900861 0.4236277956480197 +1944 -0.1533055611189941 -0.3585448718947959 0.4618138978243759 +1945 -0.0642185029854876 -0.1090429163096278 0.2085409719398926 +1946 -0.07702452349799405 -0.1301347739859951 0.2449733504492233 +1947 -0.08983054399554748 -0.1512266316643792 0.2814057289580019 +1948 -0.1026365644781479 -0.1723184893447804 0.3178381074662284 +1949 -0.1154425849458511 -0.1934103470272898 0.3542704859740609 +1950 -0.1282486053986019 -0.2145022047118171 0.3907028644813426 +1951 -0.1410546258364266 -0.2355940623984057 0.4271352429881488 +1952 -0.1538606462592909 -0.2566859200869988 0.4635676214943818 +1953 -0.06759372177495754 -0.06759372135193939 0.2192265278391842 +1954 -0.07997783993885169 -0.07997783949815568 0.2543232118608701 +1955 -0.09236195808776548 -0.09236195764952809 0.2894198958820718 +1956 -0.104746076221699 -0.104746075806057 0.3245165799027893 +1957 -0.1171301943407059 -0.1171301939677958 0.3596132639231749 +1958 -0.1295143124447329 -0.1295143121346915 0.3947099479430773 +1959 -0.1418984305338059 -0.1418984303067695 0.4298066319625693 +1960 -0.1542825486078911 -0.1542825484839966 0.4649033159815568 +1961 -0.06943400658153184 -0.02293007728907451 0.2250599694656062 +1962 -0.08158808914605473 -0.02700826204857761 0.2594274732844968 +1963 -0.0937421716951758 -0.03108644681486448 0.2937949771027589 +1964 -0.1058962542288951 -0.03516463158793508 0.3281624809203924 +1965 -0.1180503367472649 -0.03924281636780673 0.3625299847375462 +1966 -0.1302044192502335 -0.04332100115446232 0.396897488554073 +1967 -0.1423585017378257 -0.04739918594791023 0.4312649923700437 +1968 -0.1545125842100089 -0.05147737074813932 0.4656324961853658 +1969 -0.06943400657724623 0.02293007760837922 0.2250599694435158 +1970 -0.08158808914492101 0.02700826238363564 0.2594274732660445 +1971 -0.09374217169643896 0.03108644714980026 0.2937949770876942 +1972 -0.1058962542318003 0.03516463190687318 0.3281624809084644 +1973 -0.1180503367510577 0.0392428166548723 0.362529984728505 +1974 -0.1302044192541589 0.04332100139377965 0.3968974885476677 +1975 -0.1423585017411291 0.04739918612360422 0.4312649923660241 +1976 -0.1545125842119354 0.05147737084433476 0.4656324961834811 +1977 -0.067593721766728 0.06759372156534471 0.2192265277952321 +1978 -0.07997783993715382 0.07997783972448463 0.2543232118242604 +1979 -0.09236195809100495 0.09236195787748859 0.2894198958522764 +1980 -0.1047460762282815 0.1047460760243567 0.3245165798792801 +1981 -0.1171301943490373 0.1171301941651431 0.3596132639054236 +1982 -0.1295143124532188 0.1295143122997938 0.394709947930556 +1983 -0.141898430540852 0.1418984304283351 0.42980663195475 +1984 -0.1542825486119034 0.1542825485507335 0.4649033159779113 +1985 -0.06421850297817189 0.1090429164342859 0.2085409718977805 +1986 -0.07702452349743528 0.1301347741210206 0.2449733504143463 +1987 -0.08983054400003956 0.1512266318023726 0.2814057289297968 +1988 -0.102636564485985 0.1723184894783419 0.3178381074441317 +1989 -0.1154425849553273 0.1934103471490204 0.3542704859575099 +1990 -0.128248605408011 0.2145022048143169 0.3907028644697738 +1991 -0.1410546258440631 0.2355940624742753 0.4271352429809996 +1992 -0.1538606462634486 0.2566859201288389 0.4635676214910886 +1993 -0.05977782184915544 0.1461367529888885 0.1945111825541736 +1994 -0.0731389275084012 0.1764807699877183 0.2326972847383276 +1995 -0.08650003315130723 0.2068247869832872 0.2708833869214682 +1996 -0.09986113877787341 0.2371688039755951 0.3090694891035957 +1997 -0.1132222443881581 0.2675128209647744 0.3472555912848756 +1998 -0.1265833499821036 0.2978568379506932 0.3854416934651433 +1999 -0.1399444555597377 0.3282008549334163 0.4236277956444788 +2000 -0.1533055611210242 0.3585448719128603 0.4618138978227789 +2001 -0.0200986589291907 -0.1487602214533033 0.1979287781714456 +2002 -0.02453077108928519 -0.1787763048852225 0.2356876809013699 +2003 -0.02896288322603885 -0.2087923883164075 0.2734465836308731 +2004 -0.03339499533945145 -0.2388084717468581 0.3112054863599548 +2005 -0.03782710742954255 -0.2688245551767046 0.3489643890887794 +2006 -0.04225921949629288 -0.2988406386058176 0.386723291817184 +2007 -0.04669133153971172 -0.3288567220342601 0.4244821945452469 +2008 -0.05112344355978708 -0.3588728054619504 0.4622410972728667 +2009 -0.02169501285506409 -0.1115448801314356 0.2132090612720773 +2010 -0.02592758077326841 -0.1323239923380261 0.2490579286142812 +2011 -0.03016014866845252 -0.1531031045443673 0.2849067959561057 +2012 -0.03439271654061637 -0.1738822167504596 0.3207556632975514 +2013 -0.03862528438977846 -0.1946613289563929 0.3566045306387737 +2014 -0.04285785221592048 -0.2154404411620779 0.3924533979796178 +2015 -0.04709042001905121 -0.2362195533675575 0.4283022653201587 +2016 -0.0513229877991595 -0.2569986655727758 0.4641511326602998 +2017 -0.02293007791152036 -0.06943400623281533 0.2250599694989855 +2018 -0.02700826269780048 -0.08158808878170135 0.2594274733125521 +2019 -0.03108644746101277 -0.09374217133209992 0.2937949771258191 +2020 -0.03516463220115729 -0.1058962538840113 0.3281624809387867 +2021 -0.03924281691825179 -0.1180503364374878 0.3625299847516036 +2022 -0.04332100161227856 -0.1302044189924776 0.3968974885641226 +2023 -0.04739918628324622 -0.1423585015490056 0.4312649923764141 +2024 -0.05147737093114364 -0.1545125841070389 0.4656324961883868 +2025 -0.02361213445984759 -0.02361213392962417 0.2316142965389899 +2026 -0.02760506217902845 -0.02760506162747363 0.2651625094727398 +2027 -0.03159798987471989 -0.03159798932685529 0.2987107224061384 +2028 -0.0355909175469221 -0.03559091702776894 0.3322589353391856 +2029 -0.03958384519565202 -0.03958384473023195 0.3658071482720269 +2030 -0.04357677282089288 -0.04357677243422717 0.3993553612045185 +2031 -0.04756970042265267 -0.04756970013976289 0.4329035741367292 +2032 -0.0515626280009206 -0.05156262784682823 0.466451787068569 +2033 -0.02361213446193749 0.02361213403945672 0.2316142965306339 +2034 -0.02760506218346903 0.02760506174213334 0.2651625094657206 +2035 -0.0315979898807551 0.03159798944104992 0.2987107224003724 +2036 -0.03559091755379575 0.03559091713620657 0.3322589353345895 +2037 -0.03958384520260834 0.03958384482762077 0.3658071482685172 +2038 -0.04357677282717572 0.04357677251527506 0.3993553612020114 +2039 -0.04756970042750608 0.04756970019917803 0.4329035741351411 +2040 -0.05156262800358842 0.05156262787931883 0.4664517870678172 +2041 -0.02293007791603347 0.06943400630564878 0.2250599694825187 +2042 -0.02700826270723988 0.08158808885863109 0.2594274732987599 +2043 -0.03108644747378041 0.09374217140936172 0.2937949771145256 +2044 -0.03516463221565517 0.1058962539578406 0.3281624809298154 +2045 -0.03924281693288187 0.1180503365041209 0.3625299847447792 +2046 -0.04332100162544285 0.1302044190481499 0.3968974885592683 +2047 -0.04739918629334669 0.1423585015899529 0.4312649923733543 +2048 -0.05147737093658225 0.1545125841294974 0.4656324961869445 +2049 -0.0216950128600637 0.1115448801734333 0.2132090612565602 +2050 -0.0259275807834646 0.1323239923834246 0.2490579286013609 +2051 -0.03016014868213299 0.1531031045907001 0.2849067959455946 +2052 -0.03439271655606912 0.1738822167952595 0.3207556632892615 +2053 -0.03862528440529139 0.1946613289971936 0.3566045306325173 +2054 -0.04285785222978125 0.2154404411964126 0.3924533979752074 +2055 -0.04709042002954775 0.2362195533929596 0.4283022653174061 +2056 -0.05132298780457922 0.2569986655867788 0.4641511326590173 +2057 -0.0200986589323685 0.1487602214694984 0.1979287781633259 +2058 -0.02453077109557881 0.1787763049033327 0.2356876808946702 +2059 -0.02896288323437599 0.2087923883353095 0.2734465836254776 +2060 -0.03339499534876021 0.2388084717654285 0.3112054863557479 +2061 -0.03782710743875059 0.268824555193821 0.3489643890856451 +2062 -0.04225921950432819 0.2988406386203565 0.3867232918150069 +2063 -0.04669133154550195 0.3288567220450986 0.4244821945439112 +2064 -0.05112344356225998 0.3588728054679654 0.4622410972722567 +2065 0.02009865813368886 -0.1487602214966865 0.197928778198786 +2066 0.02453077023621753 -0.1787763049251534 0.2356876809231667 +2067 0.02896288236019494 -0.2087923883523256 0.2734465836477336 +2068 0.03339499450562133 -0.2388084717782026 0.3112054863724866 +2069 0.03782710667251561 -0.2688245552029152 0.34896438909759 +2070 0.04225921886085902 -0.2988406386263336 0.3867232918228806 +2071 0.04669133107066067 -0.3288567220485206 0.4244821945484372 +2072 0.05112344330190841 -0.3588728054693952 0.4622410972741578 +2073 0.02169501199197725 -0.1115448802001721 0.213209061306569 +2074 0.02592757986337237 -0.1323239924054148 0.2490579286425874 +2075 0.03016014775589694 -0.1531031046083436 0.2849067959787622 +2076 0.03439271566955106 -0.1738822168089581 0.3207556633150935 +2077 0.03862528360435301 -0.1946613290073489 0.3566045306517364 +2078 0.04285785156028469 -0.2154404412034266 0.3924533979885368 +2079 0.04709041953735479 -0.2362195533972338 0.4283022653255694 +2080 0.05132298753555182 -0.256998665588715 0.4641511326627373 +2081 0.02293007699450034 -0.06943400632570305 0.2250599695462797 +2082 0.02700826174038181 -0.08158808887533478 0.2594274733520197 +2083 0.03108644650745939 -0.09374217142295604 0.2937949771580073 +2084 0.03516463129573291 -0.1058962539685668 0.3281624809642423 +2085 0.0392428161052202 -0.1180503365122196 0.3625299847708742 +2086 0.04332100093590378 -0.1302044190538624 0.3968974885777549 +2087 0.04739918578779194 -0.1423585015935203 0.431264992384955 +2088 0.05147737066087409 -0.1545125841311605 0.4656324961923832 +2089 0.02361213351098995 -0.02361213404696189 0.2316142966029897 +2090 0.02760506119087335 -0.02760506174841899 0.2651625095265007 +2091 0.03159798889237321 -0.03159798944619667 0.2987107224503002 +2092 0.03559091661548937 -0.03559091714029471 0.3322589353743878 +2093 0.03958384436023955 -0.03958384483073053 0.3658071482989096 +2094 0.0435767721266062 -0.04357677251748697 0.3993553612237209 +2095 0.04756969991459778 -0.04756970020057216 0.4329035741488912 +2096 0.0515626277242036 -0.05156262787997552 0.46645178707433 +2097 0.02361213350889999 0.02361213393712937 0.2316142966113457 +2098 0.02760506118643272 0.02760506163375959 0.2651625095335199 +2099 0.03159798888633796 0.03159798933200211 0.2987107224560661 +2100 0.03559091660861568 0.03559091703185702 0.3322589353789839 +2101 0.03958384435328315 0.03958384473334174 0.3658071483024194 +2102 0.04357677212032333 0.043576772436439 0.3993553612262281 +2103 0.04756969990974436 0.04756970014115715 0.432903574150479 +2104 0.0515626277215358 0.05156262784748525 0.4664517870750823 +2105 0.02293007698998728 0.06943400625286955 0.2250599695627466 +2106 0.02700826173094244 0.08158808879840512 0.2594274733658118 +2107 0.03108644649469167 0.09374217134569435 0.293794977169301 +2108 0.03516463128123505 0.105896253894737 0.3281624809732133 +2109 0.0392428160905901 0.1180503364455865 0.3625299847776988 +2110 0.04332100092273958 0.1302044189981899 0.396897488582609 +2111 0.0473991857776916 0.1423585015525727 0.4312649923880154 +2112 0.05147737065543542 0.154512584108702 0.4656324961938254 +2113 0.02169501198697765 0.1115448801581744 0.2132090613220862 +2114 0.02592757985317613 0.1323239923600163 0.2490579286555077 +2115 0.03016014774221636 0.1531031045620109 0.2849067959892734 +2116 0.03439271565409827 0.1738822167641579 0.320755663323383 +2117 0.0386252835888401 0.1946613289665481 0.3566045306579924 +2118 0.04285785154642402 0.2154404411690916 0.3924533979929472 +2119 0.04709041952685833 0.2362195533718318 0.4283022653283217 +2120 0.05132298753013212 0.2569986655747123 0.4641511326640196 +2121 0.0200986581305111 0.1487602214804914 0.1979287782069057 +2122 0.02453077022992396 0.1787763049070436 0.2356876809298664 +2123 0.02896288235185775 0.2087923883334239 0.2734465836531291 +2124 0.0333949944963127 0.238808471759632 0.3112054863766934 +2125 0.03782710666330767 0.268824555185799 0.348964389100724 +2126 0.04225921885282394 0.2988406386117947 0.3867232918250575 +2127 0.04669133106487036 0.3288567220376823 0.4244821945497728 +2128 0.05112344329943558 0.3588728054633801 0.4622410972747678 +2129 0.0597778212796586 -0.1461367530470757 0.1945111826300494 +2130 0.07313892689174396 -0.1764807700343309 0.2326972847991885 +2131 0.08650003252130307 -0.206824787019554 0.270883386968895 +2132 0.09986113816833615 -0.2371688040027454 0.3090694891391675 +2133 0.1132222438329012 -0.2675128209840364 0.3472555913101733 +2134 0.1265833495149405 -0.297856837963297 0.3854416934817468 +2135 0.1399444552144822 -0.3282008549405895 0.423627795653968 +2136 0.1533055609314895 -0.3585448719158323 0.4618138978267333 +2137 0.0642185023687368 -0.109042916490384 0.2085409720026468 +2138 0.07702452284583207 -0.1301347741670341 0.2449733505005738 +2139 0.08983054334008189 -0.1512266318391793 0.2814057289989661 +2140 0.1026365638514865 -0.17231848950682 0.3178381074978229 +2141 0.1154425843801013 -0.193410347170047 0.3542704859973028 +2142 0.1282486049258713 -0.2145022048287703 0.3907028644972486 +2143 0.1410546254888231 -0.2355940624830331 0.427135242997736 +2144 0.1538606460689217 -0.2566859201327786 0.4635676214986669 +2145 0.06759372112834355 -0.06759372160673403 0.2192265279267289 +2146 0.07997783926021998 -0.07997783975885678 0.2543232119337901 +2147 0.09236195740933531 -0.09236195790537055 0.289419895941419 +2148 0.1047460755756896 -0.1047460760462751 0.3245165799496156 +2149 0.1171301937593366 -0.1171301941816243 0.3596132639585317 +2150 0.129514311960223 -0.1295143123113649 0.3947099479680173 +2151 0.1418984301783745 -0.1418984304355226 0.429806631978144 +2152 0.1542825484137577 -0.1542825485540638 0.4649033159888182 +2153 0.06943400592362428 -0.02293007762372318 0.225059969591316 +2154 0.08158808845465432 -0.02700826239644698 0.2594274733898393 +2155 0.09374217100334108 -0.03108644716025482 0.2937949771890641 +2156 0.1058962535696848 -0.03516463191514661 0.3281624809889893 +2157 0.1180503361537383 -0.0392428166611398 0.3625299847897651 +2158 0.1302044187554489 -0.04332100139821709 0.396897488591243 +2159 0.1423585013748422 -0.04739918612638694 0.4312649923934938 +2160 0.1545125840118852 -0.05147737084563815 0.4656324961964258 +2161 0.06943400592790988 0.02293007730441857 0.2250599696134063 +2162 0.08158808845578815 0.02700826206138935 0.2594274734082918 +2163 0.09374217100207791 0.03108644682531929 0.2937949772041289 +2164 0.1058962535667794 0.03516463159620825 0.3281624810009172 +2165 0.1180503361499455 0.03924281637407432 0.362529984798806 +2166 0.1302044187515235 0.04332100115889966 0.396897488597648 +2167 0.1423585013715389 0.04739918595069287 0.4312649923975136 +2168 0.1545125840099588 0.05147737074944285 0.4656324961983103 +2169 0.06759372113657319 0.06759372139332867 0.219226527970681 +2170 0.07997783926191797 0.07997783953252793 0.2543232119703999 +2171 0.09236195740609585 0.09236195767741012 0.2894198959712145 +2172 0.104746075569107 0.104746075827975 0.3245165799731246 +2173 0.1171301937510053 0.117130193984277 0.359613263976283 +2174 0.1295143119517372 0.1295143121462624 0.3947099479805385 +2175 0.1418984301713283 0.1418984303139567 0.4298066319859636 +2176 0.1542825484097456 0.1542825484873267 0.464903315992464 +2177 0.06421850237605245 0.109042916365726 0.2085409720447587 +2178 0.07702452284639073 0.1301347740320087 0.2449733505354511 +2179 0.08983054333558975 0.1512266317011863 0.2814057290271715 +2180 0.1026365638436493 0.1723184893732581 0.3178381075199195 +2181 0.115442584370625 0.1934103470483165 0.3542704860138536 +2182 0.128248604916462 0.2145022047262704 0.3907028645088172 +2183 0.1410546254811864 0.2355940624071634 0.4271352430048851 +2184 0.153860646064764 0.2566859200909387 0.4635676215019598 +2185 0.05977782128312993 0.1461367529983183 0.1945111826525338 +2186 0.07313892689123914 0.1764807699798522 0.232697284817649 +2187 0.08650003251788549 0.2068247869627231 0.2708833869836777 +2188 0.09986113816306935 0.2371688039469303 0.3090694891506199 +2189 0.1132222438268483 0.2675128209326065 0.3472555913186413 +2190 0.1265833495091652 0.29785683791962 0.3854416934875779 +2191 0.1399444552100474 0.3282008549080349 0.4236277956575084 +2192 0.1533055609294593 0.3585448718977677 0.46181389782833 +2193 0.09797662753928416 -0.1410808093571204 0.1879267779420185 +2194 0.1204517712804504 -0.172056819309452 0.2269359306974302 +2195 0.1429269150326206 -0.2030328292586587 0.2659450834533312 +2196 0.1654020587957952 -0.2340088392047409 0.3049542362097218 +2197 0.1878772025700716 -0.2649848491478321 0.3439633889667708 +2198 0.2103523463553527 -0.2959608590877997 0.3829725417243104 +2199 0.2328274901516854 -0.326936869024708 0.4219816944824219 +2200 0.2553026339590092 -0.3579128789584728 0.4609908472409996 +2201 0.1043504644975886 -0.1043504648557162 0.1997931212275045 +2202 0.1260288786201032 -0.1260288789952729 0.2373189810728452 +2203 0.1477072927533027 -0.1477072931278796 0.2748448409185007 +2204 0.1693857068971875 -0.1693857072535364 0.3123707007644715 +2205 0.1910641210518516 -0.1910641213723374 0.3498965606109201 +2206 0.2127425352172011 -0.2127425354841893 0.3874224204576852 +2207 0.2344209493932816 -0.2344209495891373 0.4249482803048444 +2208 0.2560993635800345 -0.2560993636871222 0.4624741401522968 +2209 0.1090429161678085 -0.06421850289476143 0.2085409720109304 +2210 0.1301347738312076 -0.07702452339903354 0.2449733505079457 +2211 0.1512266315053937 -0.08983054389394562 0.2814057290053905 +2212 0.1723184891903669 -0.1026365643794976 0.3178381075032648 +2213 0.1934103468862188 -0.1154425848557451 0.3542704860017266 +2214 0.2145022045928583 -0.128248605322633 0.3907028645006191 +2215 0.2355940623103295 -0.141054625780188 0.4271352430000183 +2216 0.2566859200385758 -0.1538606462283749 0.4635676214998257 +2217 0.1115448799402568 -0.02169501268518706 0.2132090613555889 +2218 0.132323992130664 -0.02592758059376656 0.2490579286837336 +2219 0.1531031043322734 -0.03016014848814296 0.2849067960125337 +2220 0.1738822165450855 -0.03439271636831603 0.3207556633419885 +2221 0.1946613287691905 -0.03862528423430429 0.3566045306722545 +2222 0.2154404410044986 -0.04285785208608959 0.3924533980031772 +2223 0.2362195532510528 -0.04709041992368045 0.4283022653348307 +2224 0.2569986655087977 -0.05132298774706541 0.4641511326671184 +2225 0.1115448799536254 0.02169501218387773 0.2132090613844659 +2226 0.1323239921397412 0.0259275800623471 0.24905792870754 +2227 0.1531031043378129 0.03016014795307109 0.2849067960316869 +2228 0.1738822165478408 0.03439271585604979 0.3207556633569063 +2229 0.1946613287699148 0.03862528377130173 0.356604530683354 +2230 0.2154404410039458 0.04285785169880825 0.3924533980108758 +2231 0.2362195532499764 0.04709041963857863 0.4283022653395459 +2232 0.2569986655079514 0.05132298759060124 0.4641511326692672 +2233 0.109042916194699 0.06421850255521656 0.2085409720693499 +2234 0.1301347738492212 0.07702452303593625 0.244973350555983 +2235 0.151226631516121 0.08983054352611507 0.2814057290439257 +2236 0.1723184891953985 0.1026365640257528 0.3178381075331775 +2237 0.1934103468871451 0.1154425845349056 0.3542704860238969 +2238 0.21450220459127 0.1282486050535178 0.3907028645159273 +2239 0.2355940623078171 0.1410546255816161 0.427135243009344 +2240 0.2566859200367296 0.1538606461191661 0.4635676215040484 +2241 0.1043504645238239 0.1043504646528263 0.1997931212851598 +2242 0.1260288786371958 0.126028878774498 0.2373189811200103 +2243 0.1477072927629524 0.1477072929015515 0.2748448409561139 +2244 0.1693857069010938 0.1693857070339863 0.3123707007934706 +2245 0.191064121051714 0.1910641211718972 0.3498965606322433 +2246 0.2127425352147197 0.2127425353151905 0.3874224204722705 +2247 0.234420949390156 0.2344209494639113 0.4249482803136301 +2248 0.2560993635779644 0.2560993636180012 0.4624741401562203 +2249 0.09797662755358598 0.1410808092756737 0.1879267779739632 +2250 0.1204517712893929 0.1720568192184965 0.2269359307233617 +2251 0.1429269150372586 0.2030328291638077 0.2659450834738266 +2252 0.1654020587971834 0.2340088391116075 0.3049542362253582 +2253 0.1878772025692644 0.2649848490620305 0.3439633889781253 +2254 0.2103523463534049 0.2959608590149424 0.3829725417319605 +2255 0.2328274901496517 0.326936868970409 0.4219816944869448 +2256 0.2553026339579443 0.3579128789283457 0.4609908472429724 +2257 0.1339301327357608 -0.1339301329179601 0.1786189882682447 +2258 0.165799977238255 -0.1657999774300308 0.218791614734448 +2259 0.1976698217454675 -0.1976698219375943 0.2589642412006909 +2260 0.2295396662573995 -0.2295396664406503 0.2991368676669738 +2261 0.2614095107741889 -0.2614095109393377 0.3393094941334707 +2262 0.293279355295698 -0.2932793554335185 0.3794821206000089 +2263 0.3251491998219935 -0.3251491999232599 0.4196547470666716 +2264 0.3570190443529893 -0.3570190444084751 0.4598273735333503 +2265 0.1410808091681882 -0.09797662790519651 0.187926777918535 +2266 0.1720568191177567 -0.1204517716728634 0.2269359306793187 +2267 0.203032829071725 -0.1429269154309286 0.2659450834398956 +2268 0.2340088390300932 -0.1654020591793924 0.3049542362002656 +2269 0.2649848489929961 -0.1878772029183522 0.3439633889605982 +2270 0.2959608589602998 -0.2103523466477115 0.3829725417207251 +2271 0.3269368689320692 -0.2328274903675162 0.4219816944807278 +2272 0.3579128789082199 -0.2553026340777069 0.4609908472405007 +2273 0.1461367528783278 -0.05977782182477199 0.194511182612869 +2274 0.1764807698637204 -0.07313892747637833 0.2326972847864228 +2275 0.2068247868536327 -0.08650003311474991 0.2708833869598957 +2276 0.2371688038480643 -0.09986113873988656 0.3090694891332875 +2277 0.2675128208471478 -0.1132222443518464 0.3472555913067645 +2278 0.2978568378507518 -0.1265833499505719 0.3854416934801621 +2279 0.3282008548589394 -0.1399444555360908 0.4236277956535586 +2280 0.3585448718716294 -0.1533055611083669 0.4618138978268527 +2281 0.1487602213733818 -0.02009865886146135 0.1979287782163917 +2282 0.1787763047954571 -0.02453077101668861 0.235687680938393 +2283 0.2087923882224647 -0.02896288315238476 0.2734465836606316 +2284 0.2388084716544048 -0.03339499526854921 0.3112054863831074 +2285 0.2688245550914082 -0.03782710736520182 0.3489643891059844 +2286 0.2988406385333451 -0.04225921944232303 0.3867232918291001 +2287 0.328856721980278 -0.04669133149992229 0.4244821945525324 +2288 0.3588728054321259 -0.05112344353798751 0.46224109727618 +2289 0.1487602213941778 0.02009865821574117 0.1979287782450588 +2290 0.1787763048110292 0.02453077032180464 0.2356876809614322 +2291 0.2087923882335652 0.02896288244537632 0.273446583678627 +2292 0.2388084716617861 0.03339499458645658 0.311205486396643 +2293 0.2688245550958223 0.03782710674506457 0.3489643891156444 +2294 0.2988406385355444 0.04225921892118131 0.3867232918354688 +2295 0.3288567219810148 0.0466913311148159 0.4244821945561942 +2296 0.3588728054321522 0.05112344332595616 0.4622410972777188 +2297 0.1461367529212179 0.05977782138056224 0.1945111826720481 +2298 0.1764807698957216 0.07313892699530561 0.2326972848338945 +2299 0.2068247868763314 0.08650003262315945 0.2708833869968916 +2300 0.2371688038630475 0.09986113826412409 0.3090694891610389 +2301 0.2675128208560019 0.1132222439182578 0.3472555913265029 +2302 0.2978568378550637 0.1265833495855028 0.3854416934931182 +2303 0.3282008548602959 0.1399444552658865 0.423627795660965 +2304 0.3585448718716165 0.1533055609593735 0.46181389782994 +2305 0.1410808092120384 0.0979766276323584 0.1879267779791495 +2306 0.1720568191502418 0.1204517713735898 0.2269359307277625 +2307 0.2030328290945386 0.1429269151224824 0.2659450834774811 +2308 0.2340088390449284 0.1654020588790366 0.3049542362283056 +2309 0.2649848490015459 0.1878772026433499 0.343963388980405 +2310 0.2959608589642581 0.2103523464153255 0.3829725417336117 +2311 0.3269368689331288 0.2328274901950099 0.4219816944880062 +2312 0.3579128789080743 0.2553026339823431 0.4609908472434837 +2313 0.1339301327612095 0.1339301328046864 0.178618988303506 +2314 0.1657999772569224 0.1657999773033552 0.2187916147624767 +2315 0.1976698217583997 0.1976698218053738 0.2589642412222946 +2316 0.2295396662656419 0.229539666310743 0.2991368676829591 +2317 0.261409510778787 0.2614095108196009 0.3393094941446447 +2318 0.293279355297698 0.2932793553318101 0.3794821206071788 +2319 0.3251491998224408 0.325149199847437 0.419654747070644 +2320 0.3570190443529296 0.3570190443663951 0.459827373534933 +2321 -0.1339301327496236 0.1339301329287508 -0.1786189882574384 +2322 -0.1657999772545169 0.1657999774429115 -0.2187916147258584 +2323 -0.1976698217629654 0.1976698219515652 -0.2589642411940705 +2324 -0.2295396662749698 0.229539666454712 -0.2991368676620751 +2325 -0.2614095107906677 0.2614095109524904 -0.3393094941300464 +2326 -0.2932793553099224 0.2932793554447631 -0.3794821205978116 +2327 -0.3251491998327997 0.3251491999315959 -0.4196547470654541 +2328 -0.3570190443592134 0.3570190444129033 -0.4598273735328654 +2329 -0.141080809197531 0.09797662793463792 -0.1879267778952443 +2330 -0.1720568191518086 0.1204517717062798 -0.2269359306605227 +2331 -0.2030328291081049 0.1429269154660986 -0.2659450834251419 +2332 -0.2340088390664201 0.1654020592140945 -0.3049542361891019 +2333 -0.2649848490268885 0.187877202950365 -0.3439633889525718 +2334 -0.2959608589893766 0.2103523466748136 -0.382972541715384 +2335 -0.3269368689539489 0.2328274903874865 -0.4219816944776195 +2336 -0.3579128789205215 0.2553026340883235 -0.4609908472391726 +2337 -0.1461367529264289 0.05977782187791725 -0.1945111825786651 +2338 -0.1764807699187219 0.07313892753458998 -0.2326972847584999 +2339 -0.2068247869118524 0.08650003317463095 -0.2708833869376809 +2340 -0.2371688039058203 0.09986113879804012 -0.3090694891162078 +2341 -0.2675128209007576 0.1132222444048756 -0.3472555912942465 +2342 -0.2978568378965337 0.1265833499950799 -0.3854416934716328 +2343 -0.3282008548932113 0.1399444555686805 -0.423627795648446 +2344 -0.3585448718907085 0.1533055611256416 -0.4618138978245828 +2345 -0.148760221443817 0.02009865894739516 -0.197928778175095 +2346 -0.1787763048748175 0.02453077110845053 -0.2356876809044008 +2347 -0.2087923883056873 0.02896288324517172 -0.273446583633332 +2348 -0.2388084717364264 0.03339499535755903 -0.3112054863618878 +2349 -0.2688245551671656 0.03782710744563152 -0.3489643890902333 +2350 -0.298840638597775 0.04225921950937025 -0.3867232918182045 +2351 -0.3288567220283171 0.04669133154878438 -0.4244821945458808 +2352 -0.3588728054587111 0.05112344356386173 -0.4622410972731601 +2353 -0.1487602214906109 -0.02009865812108006 -0.1979287782026483 +2354 -0.1787763049182134 -0.02453077022286848 -0.2356876809263398 +2355 -0.2087923883449825 -0.02896288234683606 -0.2734465836502766 +2356 -0.2388084717709179 -0.03339499449298268 -0.3112054863744583 +2357 -0.2688245551961507 -0.0378271066613277 -0.3489643890990494 +2358 -0.2988406386205508 -0.04225921885185181 -0.3867232918238865 +2359 -0.3288567220441811 -0.04669133106456416 -0.4244821945490491 +2360 -0.3588728054669601 -0.0511234432994532 -0.4622410972744344 +2361 -0.1461367530405842 -0.05977782130300986 -0.1945111826289912 +2362 -0.1764807700277889 -0.07313892691712406 -0.2326972847983737 +2363 -0.2068247870132008 -0.08650003254734973 -0.2708833869682911 +2364 -0.2371688039968195 -0.09986113819368705 -0.3090694891387435 +2365 -0.2675128209787772 -0.1132222438561941 -0.3472555913098972 +2366 -0.2978568379589427 -0.126583349534813 -0.3854416934815871 +2367 -0.3282008549373794 -0.1399444552295716 -0.423627795653893 +2368 -0.3585448719140052 -0.1533055609404342 -0.4618138978267116 +2369 -0.1410808093505504 -0.09797662756759984 -0.1879267779365839 +2370 -0.1720568193035979 -0.1204517713115816 -0.2269359306930936 +2371 -0.2030328292535382 -0.1429269150647859 -0.2659450834499729 +2372 -0.2340088392003715 -0.1654020588272128 -0.3049542362072217 +2373 -0.2649848491442329 -0.1878772025989603 -0.3439633889650102 +2374 -0.2959608590849876 -0.2103523463799309 -0.3829725417231693 +2375 -0.326936869022701 -0.2328274901701718 -0.4219816944817806 +2376 -0.3579128789572893 -0.2553026339696223 -0.4609908472407389 +2377 -0.1339301329141022 -0.133930132754041 -0.1786189882623925 +2378 -0.1657999774271064 -0.1657999772588366 -0.2187916147297962 +2379 -0.1976698219354573 -0.1976698217670578 -0.2589642411971057 +2380 -0.2295396664391545 -0.2295396662787044 -0.2991368676643209 +2381 -0.2614095109383373 -0.2614095107939152 -0.3393094941316165 +2382 -0.2932793554328675 -0.2932793553125526 -0.3794821205988188 +2383 -0.3251491999228121 -0.3251491998346827 -0.4196547470660122 +2384 -0.3570190444080842 -0.3570190443602201 -0.4598273735330873 +2385 -0.09797662757408357 0.1410808093808613 -0.1879267779196721 +2386 -0.120451771319697 0.17205681933734 -0.2269359306794071 +2387 -0.1429269150738353 0.2030328292886486 -0.2659450834391942 +2388 -0.1654020588364987 0.2340088392347874 -0.3049542361990336 +2389 -0.1878772026077845 0.2649848491758908 -0.3439633889590945 +2390 -0.2103523463875958 0.2959608591118252 -0.3829725417192089 +2391 -0.2328274901759798 0.3269368690426557 -0.421981694479458 +2392 -0.2553026339728753 0.357912878968298 -0.4609908472397361 +2393 -0.1043504645725685 0.1043504649206081 -0.1997931211789676 +2394 -0.1260288787035316 0.1260288790678362 -0.2373189810331392 +2395 -0.1477072928401121 0.1477072932035806 -0.2748448408868363 +2396 -0.1693857069823109 0.1693857073278411 -0.3123707007400585 +2397 -0.1910641211302215 0.1910641214407119 -0.3498965605929688 +2398 -0.2127425352837506 0.2127425355420998 -0.3874224204454063 +2399 -0.2344209494429435 0.2344209496320497 -0.4249482802974482 +2400 -0.2560993636077414 0.2560993637105029 -0.4624741401489938 +2401 -0.1090429162908151 0.06421850301253804 -0.2085409719410451 +2402 -0.1301347739662674 0.07702452352621618 -0.2449733504502055 +2403 -0.1512266316446845 0.08983054402360391 -0.2814057289588211 +2404 -0.1723184893260667 0.102636564504701 -0.3178381074668919 +2405 -0.1934103470105051 0.1154425849695633 -0.3542704859745766 +2406 -0.2145022046979091 0.1282486054181354 -0.3907028644817179 +2407 -0.2355940623883226 0.1410546258504443 -0.4271352429883916 +2408 -0.2566859200816887 0.153860646266455 -0.4635676214944993 +2409 -0.1115448801185815 0.02169501287481601 -0.2132090612754733 +2410 -0.1323239923242994 0.02592758079377692 -0.249057928617119 +2411 -0.1531031045304813 0.03016014868874716 -0.2849067959584238 +2412 -0.1738822167371276 0.03439271655972659 -0.3207556632993876 +2413 -0.1946613289443283 0.03862528440673388 -0.3566045306401664 +2414 -0.2154404411519936 0.04285785222975041 -0.3924533979806052 +2415 -0.2362195533601672 0.04709042002878552 -0.4283022653207788 +2416 -0.2569986655687928 0.05132298780382727 -0.4641511326605905 +2417 -0.111544880192748 -0.02169501197820513 -0.2132090613103079 +2418 -0.1323239923972669 -0.02592757984902388 -0.2490579286456931 +2419 -0.1531031045999388 -0.03016014774167755 -0.2849067959812823 +2420 -0.1738822168007637 -0.03439271565616628 -0.3207556633170746 +2421 -0.1946613289998319 -0.03862528359250819 -0.3566045306532266 +2422 -0.2154404411970539 -0.04285785155068522 -0.3924533979895835 +2423 -0.2362195533924729 -0.04709041953070588 -0.42830226532622 +2424 -0.2569986655860327 -0.05132298753255923 -0.4641511326630387 +2425 -0.1090429164847222 -0.06421850239344892 -0.2085409719996777 +2426 -0.1301347741614573 -0.07702452287243747 -0.2449733504981385 +2427 -0.151226631833851 -0.08983054336719368 -0.2814057289970177 +2428 -0.1723184895019029 -0.1026365638777178 -0.317838107496315 +2429 -0.1934103471657048 -0.1154425844040654 -0.3542704859961892 +2430 -0.2145022048251659 -0.1282486049461813 -0.3907028644964829 +2431 -0.2355940624803301 -0.1410546255040921 -0.4271352429972718 +2432 -0.2566859201311401 -0.1538606460777633 -0.4635676214984583 +2433 -0.1043504648521912 -0.1043504645265482 -0.1997931212190601 +2434 -0.1260288789925913 -0.1260288786518484 -0.237318981065937 +2435 -0.1477072931259018 -0.1477072927860277 -0.2748448409129918 +2436 -0.169385707252123 -0.1693857069290867 -0.3123707007602239 +2437 -0.191064121371349 -0.1910641210811191 -0.3498965606077969 +2438 -0.212742535483486 -0.2127425352420316 -0.3874224204555489 +2439 -0.2344209495885796 -0.2344209494118693 -0.4249482803035579 +2440 -0.2560993636865709 -0.2560993635905738 -0.4624741401517222 +2441 -0.09797662790622366 -0.1410808091858923 -0.1879267779102276 +2442 -0.1204517716750487 -0.1720568191379008 -0.2269359306725909 +2443 -0.1429269154338702 -0.2030328290929919 -0.2659450834345931 +2444 -0.1654020591826886 -0.2340088390511658 -0.3049542361962333 +2445 -0.1878772029216012 -0.2649848490125569 -0.3439633889576814 +2446 -0.2103523466505111 -0.2959608589770318 -0.3829725417187696 +2447 -0.2328274903694654 -0.3269368689446552 -0.4219816944795789 +2448 -0.2553026340784028 -0.357912878915343 -0.4609908472400036 +2449 -0.05977782133404407 0.1461367530880925 -0.1945111825991273 +2450 -0.07313892695135996 0.1764807700813871 -0.232697284773954 +2451 -0.08650003258276423 0.2068247870694518 -0.2708833869488269 +2452 -0.0998611382282571 0.2371688040522871 -0.309069489123746 +2453 -0.1132222438878963 0.2675128210300242 -0.3472555912988769 +2454 -0.1265833495616244 0.2978568380025332 -0.3854416934740555 +2455 -0.1399444552494692 0.3282008549698763 -0.4236277956493609 +2456 -0.1533055609513947 0.3585448719319717 -0.4618138978246901 +2457 -0.06421850248793451 0.1090429166003491 -0.2085409719372286 +2458 -0.0770245229745268 0.1301347742879149 -0.2449733504465308 +2459 -0.0898305434713399 0.151226631963915 -0.2814057289553843 +2460 -0.102636563978374 0.1723184896283496 -0.3178381074637888 +2461 -0.1154425844956842 0.1934103472813101 -0.3542704859719029 +2462 -0.1282486050232158 0.2145022049227062 -0.390702864479569 +2463 -0.1410546255609956 0.2355940625525807 -0.4271352429868633 +2464 -0.1538606461089886 0.2566859201708774 -0.4635676214936874 +2465 -0.06759372132451631 0.06759372180347634 -0.2192265278389444 +2466 -0.0799778394695142 0.07997783996867784 -0.2543232118606705 +2467 -0.09236195762101769 0.09236195811748471 -0.2894198958819093 +2468 -0.1047460757790272 0.1047460762498974 -0.324516579902661 +2469 -0.1171301939435961 0.1171301943659695 -0.3596132639230779 +2470 -0.1295143121146714 0.1295143124656478 -0.3947099479430091 +2471 -0.1418984302922786 0.1418984305489577 -0.4298066319625268 +2472 -0.1542825484763845 0.154282548615866 -0.4649033159815371 +2473 -0.06943400620584907 0.02293007793301407 -0.225059969503537 +2474 -0.08158808875333765 0.02700826272017555 -0.2594274733163678 +2475 -0.0937421713037084 0.03108644748322033 -0.2937949771289469 +2476 -0.1058962538569616 0.03516463222214876 -0.3281624809412739 +2477 -0.1180503364131499 0.03924281693697815 -0.3625299847534985 +2478 -0.1302044189722207 0.04332100162769116 -0.396897488565472 +2479 -0.1423585015341998 0.04739918629429629 -0.431264992377266 +2480 -0.154512584099054 0.05147737093678248 -0.4656324961887888 +2481 -0.06943400629930699 -0.02293007697978366 -0.2250599695533849 +2482 -0.08158808884737137 -0.02700826172484929 -0.2594274733579683 +2483 -0.09374217139480842 -0.03108644649189908 -0.2937949771628762 +2484 -0.1058962539416181 -0.03516463128093285 -0.3281624809681077 +2485 -0.1180503364878533 -0.03924281609196852 -0.3625299847738131 +2486 -0.1302044190334614 -0.04332100092498838 -0.3968974885798439 +2487 -0.1423585015784681 -0.04739918578000077 -0.4312649923862714 +2488 -0.1545125841228403 -0.05147737065699497 -0.465632496193003 +2489 -0.06759372157878485 -0.06759372115519699 -0.2192265279269686 +2490 -0.07997783972955756 -0.0799778392883347 -0.2543232119339897 +2491 -0.09236195787608315 -0.09236195743741396 -0.2894198959415814 +2492 -0.1047460760183615 -0.1047460756024345 -0.3245165799497436 +2493 -0.1171301941564462 -0.1171301937834506 -0.3596132639586285 +2494 -0.1295143122902845 -0.1295143119804086 -0.3947099479680855 +2495 -0.1418984304199017 -0.1418984301933343 -0.4298066319781868 +2496 -0.1542825485452645 -0.1542825484221944 -0.4649033159888384 +2497 -0.06421850286628984 -0.1090429161996628 -0.2085409720053107 +2498 -0.07702452336929917 -0.1301347738651145 -0.2449733505032664 +2499 -0.08983054386428937 -0.1512266315396438 -0.2814057290015836 +2500 -0.1026365643512605 -0.1723184892232506 -0.3178381075002623 +2501 -0.115442584830268 -0.1934103469160268 -0.3542704859994608 +2502 -0.128248605301257 -0.2145022046178812 -0.390702864499022 +2503 -0.1410546257642539 -0.2355940623288579 -0.4271352429990214 +2504 -0.1538606462192241 -0.2566859200488998 -0.4635676214993611 +2505 -0.05977782179824143 -0.146136752899114 -0.19451118260758 +2506 -0.07313892744828038 -0.1764807698861835 -0.2326972847820225 +2507 -0.08650003308642851 -0.2068247868765585 -0.2708833869563191 +2508 -0.09986113871268575 -0.2371688038702386 -0.3090694891304695 +2509 -0.1132222443271102 -0.2675128208673563 -0.3472555913046398 +2510 -0.1265833499296444 -0.2978568378677808 -0.3854416934786659 +2511 -0.1399444555203161 -0.3282008548715746 -0.4236277956526266 +2512 -0.1533055610990888 -0.3585448718786562 -0.4618138978264189 +2513 -0.02009865821706946 0.1487602215578485 -0.1979287781623584 +2514 -0.02453077032551534 0.1787763049941138 -0.2356876808931867 +2515 -0.02896288245080992 0.2087923884246691 -0.2734465836236594 +2516 -0.03339499459295352 0.2388084718495147 -0.3112054863537778 +2517 -0.03782710675196487 0.2688245552687809 -0.3489643890837049 +2518 -0.04225921892782526 0.298840638682338 -0.3867232918132788 +2519 -0.04669133112054356 0.328856722090249 -0.424482194542577 +2520 -0.05112344333010818 0.3588728054924324 -0.4622410972714981 +2521 -0.02169501217515215 0.1115448803611825 -0.2132090612333831 +2522 -0.02592758005678231 0.1323239925802859 -0.2490579285817381 +2523 -0.03016014795012449 0.1531031047873598 -0.2849067959293383 +2524 -0.03439271585517904 0.173882216982404 -0.3207556632761839 +2525 -0.03862528377196389 0.194661329165509 -0.3566045306224307 +2526 -0.04285785170046114 0.2154404413365856 -0.3924533979679242 +2527 -0.04709041964067938 0.2362195534956764 -0.4283022653127386 +2528 -0.05132298759260731 0.2569986656427254 -0.4641511326567772 +2529 -0.02293007729174679 0.06943400660901512 -0.2250599694591573 +2530 -0.02700826205156819 0.08158808917511706 -0.2594274732790957 +2531 -0.03108644681801619 0.0937421717243771 -0.2937949770983364 +2532 -0.03516463159109083 0.1058962542567952 -0.3281624809168795 +2533 -0.03924281637080976 0.1180503367724241 -0.3625299847348741 +2534 -0.04332100115715555 0.1302044192712115 -0.3968974885521726 +2535 -0.04739918595013635 0.1423585017531828 -0.4312649923688454 +2536 -0.05147737074974164 0.1545125842183048 -0.4656324961848008 +2537 -0.02361213392869447 0.02361213448146316 -0.2316142965374077 +2538 -0.02760506162655512 0.02760506220161249 -0.2651625094714107 +2539 -0.03159798932598754 0.03159798989721398 -0.2987107224050466 +2540 -0.03559091702699203 0.03559091756826755 -0.3322589353383153 +2541 -0.03958384472958562 0.03958384521479061 -0.3658071482713626 +2542 -0.04357677243375106 0.04357677283676586 -0.3993553612040439 +2543 -0.04756970013949681 0.04756970043420206 -0.4329035741364285 +2544 -0.05156262784681234 0.05156262800708772 -0.4664517870684266 +2545 -0.02361213404214299 -0.02361213349512286 -0.2316142966045719 +2546 -0.02760506174334657 -0.0276050611742803 -0.2651625095278298 +2547 -0.03159798944110544 -0.03159798887583798 -0.298710722451392 +2548 -0.03559091713541931 -0.03559091659979614 -0.3322589353752581 +2549 -0.039583844826306 -0.03958384434617192 -0.3658071482995743 +2550 -0.04357677251374788 -0.04357677211494826 -0.3993553612241956 +2551 -0.04756970019775342 -0.04756969990613295 -0.4329035741491918 +2552 -0.05156262787831202 -0.05156262771971602 -0.4664517870744727 +2553 -0.02293007761427401 -0.06943400594950327 -0.225059969586108 +2554 -0.02700826238661411 -0.08158808848191917 -0.2594274733854762 +2555 -0.03108644715045591 -0.09374217103067889 -0.29379497718549 +2556 -0.03516463190579935 -0.1058962535957827 -0.3281624809861493 +2557 -0.03924281665266217 -0.1180503361772834 -0.3625299847876036 +2558 -0.04332100139102692 -0.1302044187751284 -0.3968974885897047 +2559 -0.04739918612090187 -0.142358501389343 -0.4312649923925237 +2560 -0.05147737084227612 -0.1545125840198947 -0.4656324961959686 +2561 -0.02169501267188921 -0.111544879970425 -0.2132090613452635 +2562 -0.02592758057985844 -0.132323992163155 -0.2490579286751306 +2563 -0.0301601484742248 -0.1531031043653513 -0.2849067960055294 +2564 -0.03439271635498839 -0.1738822165770136 -0.3207556633364603 +2565 -0.03862528422216763 -0.1946613287982327 -0.3566045306680791 +2566 -0.04285785207574408 -0.2154404410289187 -0.3924533980002306 +2567 -0.04709041991572671 -0.2362195532691149 -0.4283022653329895 +2568 -0.05132298774210398 -0.2569986655187651 -0.4641511326662595 +2569 -0.0200986588458102 -0.1487602213921411 -0.197928778207873 +2570 -0.02453077099998742 -0.1787763048162624 -0.23568768093135 +2571 -0.02896288313542376 -0.2087923882440641 -0.2734465836549468 +2572 -0.03339499525211929 -0.2388084716755462 -0.3112054863786633 +2573 -0.03782710735009341 -0.2688245551108391 -0.3489643891026641 +2574 -0.04225921942932685 -0.2988406385498136 -0.3867232918267859 +2575 -0.04669133148982874 -0.3288567219925319 -0.424482194551107 +2576 -0.05112344353158724 -0.3588728054389131 -0.4622410972755259 +2577 0.0200986588381895 0.1487602215378503 -0.1979287781347802 +2578 0.02453077099372296 0.1787763049791528 -0.2356876808710257 +2579 0.02896288313040014 0.208792388414023 -0.2734465836063531 +2580 0.03339499524822112 0.2388084718424609 -0.3112054863407632 +2581 0.03782710734720546 0.2688245552645966 -0.3489643890744192 +2582 0.04225921942733374 0.2988406386803011 -0.3867232918071588 +2583 0.0466913314886154 0.3288567220896364 -0.4244821945390598 +2584 0.05112344353103809 0.3588728054925214 -0.4622410972700212 +2585 0.02169501265736512 0.1115448803483353 -0.2132090612056013 +2586 0.02592758056780648 0.1323239925715862 -0.2490579285588358 +2587 0.03016014846445752 0.1531031047820863 -0.2849067959109138 +2588 0.03439271634731789 0.1738822169798356 -0.3207556632618352 +2589 0.03862528421640642 0.1946613291649244 -0.3566045306117558 +2590 0.04285785207170461 0.2154404413372633 -0.3924533979605208 +2591 0.04709041991322134 0.2362195534968949 -0.428302265308205 +2592 0.05132298774094508 0.2569986656437637 -0.4641511326547115 +2593 0.02293007759888795 0.06943400660491203 -0.2250599694379039 +2594 0.02700826237376747 0.08158808917407276 -0.2594274732613428 +2595 0.03108644713997266 0.09374217172567159 -0.293794977083843 +2596 0.03516463189750341 0.1058962542597083 -0.3281624809054045 +2597 0.03924281664637751 0.1180503367762358 -0.3625299847261765 +2598 0.04332100138657749 0.1302044192752017 -0.3968974885460107 +2599 0.04739918611811159 0.1423585017566315 -0.431264992364979 +2600 0.05147737084096893 0.1545125842204917 -0.4656324961829883 +2601 0.02361213403434237 0.02361213448349915 -0.2316142965293683 +2602 0.02760506173681338 0.02760506220594403 -0.2651625094646574 +2603 0.0315979894357562 0.03159798990312232 -0.2987107223994991 +2604 0.03559091713117048 0.0355909175750338 -0.332258935333893 +2605 0.03958384482307375 0.03958384522169604 -0.3658071482679856 +2606 0.04357677251144916 0.0435767728430916 -0.3993553612016317 +2607 0.04756970019630447 0.0475697004392291 -0.4329035741349007 +2608 0.05156262787762905 0.05156262801009753 -0.4664517870677028 +2609 0.02361213393649507 -0.02361213349308688 -0.2316142966126113 +2610 0.0276050616330884 -0.02760506116994873 -0.2651625095345831 +2611 0.03159798933133699 -0.0315979888699297 -0.2987107224569394 +2612 0.03559091703124111 -0.03559091659302983 -0.33225893537968 +2613 0.0395838447328177 -0.03958384433926657 -0.3658071483029511 +2614 0.0435767724360501 -0.04357677210862249 -0.3993553612266078 +2615 0.04756970014094601 -0.04756969990110589 -0.4329035741507198 +2616 0.05156262784749491 -0.05156262771670631 -0.4664517870751962 +2617 0.02293007730713272 -0.06943400595360631 -0.2250599696073614 +2618 0.02700826206441479 -0.08158808848296345 -0.2594274734032289 +2619 0.03108644682849947 -0.09374217102938448 -0.2937949771999834 +2620 0.03516463159938679 -0.1058962535928695 -0.3281624809976242 +2621 0.03924281637709449 -0.1180503361734717 -0.3625299847963013 +2622 0.04332100116160498 -0.1302044187711383 -0.3968974885958665 +2623 0.04739918595292662 -0.1423585013858945 -0.4312649923963904 +2624 0.05147737075104866 -0.1545125840177078 -0.4656324961977814 +2625 0.02169501218967619 -0.1115448799832724 -0.2132090613730452 +2626 0.02592758006883423 -0.1323239921718548 -0.2490579286980327 +2627 0.030160147959892 -0.1531031043706245 -0.2849067960239541 +2628 0.03439271586284948 -0.173882216579582 -0.3207556633508091 +2629 0.03862528377772506 -0.1946613287988175 -0.3566045306787542 +2630 0.04285785170450072 -0.2154404410282412 -0.392453398007634 +2631 0.04709041964318475 -0.2362195532678961 -0.4283022653375232 +2632 0.05132298759376619 -0.2569986655177271 -0.4641511326683254 +2633 0.02009865822469 -0.1487602214121395 -0.1979287782354515 +2634 0.0245307703317798 -0.1787763048312233 -0.2356876809535108 +2635 0.02896288245583369 -0.2087923882547102 -0.2734465836722532 +2636 0.03339499459685166 -0.2388084716825999 -0.3112054863916781 +2637 0.03782710675485276 -0.2688245551150233 -0.3489643891119502 +2638 0.04225921892981829 -0.2988406385518506 -0.386723291832906 +2639 0.04669133112175691 -0.3288567219931446 -0.4244821945546241 +2640 0.05112344333065733 -0.3588728054388238 -0.462241097277003 +2641 0.05977782177692919 0.1461367530453462 -0.1945111825401163 +2642 0.07313892743084288 0.1764807700495316 -0.2326972847266236 +2643 0.08650003307251987 0.2068247870469096 -0.2708833869119474 +2644 0.09986113870195984 0.2371688040374802 -0.3090694890960875 +2645 0.1132222443192213 0.2675128210213751 -0.3472555912792096 +2646 0.1265833499242467 0.2978568379984642 -0.3854416934611498 +2647 0.1399444555170632 0.3282008549688098 -0.4236277956419867 +2648 0.1533055610976357 0.3585448719323304 -0.4618138978216178 +2649 0.06421850282646543 0.1090429165735738 -0.2085409718789708 +2650 0.07702452333642262 0.1301347742700464 -0.2449733503986287 +2651 0.08983054383779812 0.1512266319533795 -0.2814057289169595 +2652 0.1026365643305914 0.1723184896235731 -0.3178381074339635 +2653 0.1154425848148584 0.193410347280719 -0.3542704859497985 +2654 0.1282486052905442 0.2145022049247259 -0.3907028644643081 +2655 0.1410546257576747 0.2355940625556383 -0.4271352429775673 +2656 0.1538606462162163 0.2566859201733984 -0.4635676214894787 +2657 0.06759372153728248 0.06759372179532661 -0.2192265277951123 +2658 0.07997783969509134 0.07997783996711913 -0.2543232118241606 +2659 0.09236195784812501 0.09236195812094714 -0.2894198958521953 +2660 0.1047460759963833 0.1047460762568107 -0.3245165798792159 +2661 0.11713019413992 0.1171301943747636 -0.3596132639053751 +2662 0.1295143122786821 0.1295143124747524 -0.3947099479305222 +2663 0.1418984304126948 0.141898430556803 -0.4298066319547287 +2664 0.1542825485419251 0.1542825486208816 -0.4649033159779015 +2665 0.06943400627846341 0.02293007793758779 -0.2250599694871145 +2666 0.08158808883001013 0.02700826272976241 -0.2594274733026124 +2667 0.09374217138067913 0.03108644749625416 -0.2937949771176832 +2668 0.1058962539304699 0.03516463223706288 -0.3281624809323261 +2669 0.1180503364794359 0.03924281695220659 -0.362529984746691 +2670 0.1302044190275244 0.04332100164166729 -0.3968974885606298 +2671 0.1423585015747604 0.04739918630545379 -0.4312649923742134 +2672 0.1545125841211117 0.05147737094355503 -0.46563249618735 +2673 0.06943400622669277 -0.02293007697520993 -0.2250599695698075 +2674 0.08158808877069891 -0.02700826171526239 -0.259427473371724 +2675 0.09374217131783778 -0.03108644647886522 -0.2937949771741399 +2676 0.1058962538681097 -0.03516463126601865 -0.3281624809770556 +2677 0.1180503364215672 -0.03924281607674004 -0.3625299847806204 +2678 0.1302044189781582 -0.04332100091101212 -0.3968974885846861 +2679 0.1423585015379073 -0.04739918576884312 -0.431264992389324 +2680 0.1545125841007824 -0.05147737065022238 -0.4656324961944416 +2681 0.06759372136601888 -0.06759372116334682 -0.2192265279708008 +2682 0.07997783950398039 -0.07997783928989342 -0.2543232119704996 +2683 0.09236195764897587 -0.09236195743395158 -0.2894198959712954 +2684 0.1047460758010052 -0.1047460755955213 -0.3245165799731886 +2685 0.1171301939601225 -0.1171301937746566 -0.3596132639763312 +2686 0.129514312126274 -0.129514311971304 -0.3947099479805725 +2687 0.1418984302994855 -0.141898430185489 -0.4298066319859848 +2688 0.1542825484797239 -0.1542825484171788 -0.464903315992474 +2689 0.06421850252775911 -0.1090429162264379 -0.2085409720635685 +2690 0.07702452300740337 -0.1301347738829829 -0.2449733505511686 +2691 0.08983054349783136 -0.1512266315501792 -0.2814057290400084 +2692 0.1026365639990428 -0.172318489228027 -0.3178381075300875 +2693 0.1154425845110939 -0.1934103469166181 -0.3542704860215649 +2694 0.128248605033929 -0.2145022046158611 -0.390702864514283 +2695 0.1410546255675746 -0.2355940623258004 -0.4271352430083172 +2696 0.1538606461119966 -0.2566859200463787 -0.4635676215035698 +2697 0.05977782135535635 -0.1461367529418605 -0.1945111826665911 +2698 0.07313892696879747 -0.1764807699180391 -0.2326972848293529 +2699 0.08650003259667298 -0.2068247868991006 -0.2708833869931986 +2700 0.09986113823898289 -0.2371688038850454 -0.3090694891581282 +2701 0.1132222438957851 -0.2675128208760054 -0.3472555913243074 +2702 0.1265833495670223 -0.2978568378718497 -0.385441693491572 +2703 0.1399444552527218 -0.328200854872641 -0.4236277956600009 +2704 0.153305560952848 -0.3585448718782981 -0.4618138978294911 +2705 0.09797662787538455 0.1410808093324628 -0.1879267778527219 +2706 0.1204517716500823 0.172056819301545 -0.2269359306259056 +2707 0.1429269154142001 0.2030328292635969 -0.2659450833976897 +2708 0.165402059167738 0.2340088392186186 -0.304954236168075 +2709 0.1878772029107937 0.2649848491667451 -0.3439633889372304 +2710 0.2103523466432703 0.2959608591078421 -0.3829725417049878 +2711 0.2328274903652148 0.3269368690419746 -0.4219816944714288 +2712 0.2553026340765658 0.3579128789690589 -0.4609908472364471 +2713 0.1043504647966191 0.104350464891694 -0.1997931211152805 +2714 0.1260288789472486 0.1260288790491106 -0.2373189809810397 +2715 0.147707293089851 0.1477072931931896 -0.2748448408452879 +2716 0.1693857072244256 0.1693857073239307 -0.3123707007080253 +2717 0.1910641213510671 0.1910641214414285 -0.349896560569415 +2718 0.2127425354696817 0.2127425355455893 -0.3874224204292951 +2719 0.2344209495803148 0.2344209496364582 -0.4249482802877437 +2720 0.2560993636829073 0.2560993637139767 -0.4624741401446595 +2721 0.1090429164284706 0.0642185030045502 -0.2085409718945249 +2722 0.1301347741153179 0.07702452352582211 -0.2449733504116751 +2723 0.1512266317969434 0.08983054402895568 -0.2814057289276592 +2724 0.1723184894733472 0.1026365645139512 -0.317838107442477 +2725 0.1934103471446206 0.1154425849808642 -0.3542704859562877 +2726 0.2145022048106732 0.1282486054296394 -0.3907028644689332 +2727 0.2355940624715485 0.1410546258603035 -0.42713524298049 +2728 0.2566859201271893 0.1538606462728219 -0.4635676214908592 +2729 0.1115448801649567 0.02169501288045899 -0.2132090612583309 +2730 0.1323239923744112 0.02592758080533053 -0.2490579286028441 +2731 0.153103104581601 0.03016014870437009 -0.2849067959468093 +2732 0.1738822167865262 0.03439271657757732 -0.3207556632902264 +2733 0.1946613289892771 0.0386252844249711 -0.3566045306332514 +2734 0.2154404411897642 0.04285785224653272 -0.3924533979757295 +2735 0.2362195533880305 0.04709042004227131 -0.4283022653177355 +2736 0.2569986655840201 0.05132298781217545 -0.4641511326591721 +2737 0.1115448801463727 -0.02169501197256215 -0.2132090613274502 +2738 0.1323239923471553 -0.02592757983747031 -0.2490579286599682 +2739 0.1531031045488193 -0.03016014772605467 -0.2849067959928964 +2740 0.1738822167513653 -0.03439271563831561 -0.3207556633262358 +2741 0.1946613289548832 -0.038625283574271 -0.3566045306601413 +2742 0.2154404411592835 -0.0428578515339029 -0.3924533979944591 +2743 0.2362195533646094 -0.04709041951722008 -0.4283022653292635 +2744 0.2569986655708049 -0.05132298752421106 -0.4641511326644567 +2745 0.1090429163470666 -0.06421850240143691 -0.208540972046198 +2746 0.1301347740124069 -0.07702452287283175 -0.244973350536669 +2747 0.151226631681592 -0.08983054336184201 -0.2814057290281795 +2748 0.1723184893546224 -0.1026365638684678 -0.3178381075207297 +2749 0.1934103470315893 -0.1154425843927646 -0.354270486014478 +2750 0.214502204712402 -0.1282486049346774 -0.3907028645092676 +2751 0.2355940623971043 -0.141054625494233 -0.4271352430051737 +2752 0.2566859200856397 -0.1538606460713964 -0.4635676215020983 +2753 0.1043504646281407 -0.1043504645554625 -0.199793121282747 +2754 0.126028878748874 -0.1260288786705742 -0.2373189811180366 +2755 0.1477072928761631 -0.1477072927964189 -0.27484484095454 +2756 0.1693857070100082 -0.1693857069329971 -0.3123707007922569 +2757 0.1910641211505033 -0.1910641210804025 -0.3498965606313511 +2758 0.2127425352975549 -0.212742535238542 -0.3874224204716599 +2759 0.2344209494512084 -0.2344209494074608 -0.4249482803132624 +2760 0.2560993636114049 -0.2560993635870999 -0.4624741401560562 +2761 0.09797662760492246 -0.1410808092342909 -0.1879267779771776 +2762 0.1204517713446633 -0.1720568191736958 -0.2269359307260924 +2763 0.1429269150935056 -0.2030328291180435 -0.265945083476097 +2764 0.1654020588514494 -0.2340088390673343 -0.3049542362271917 +2765 0.187877202618592 -0.2649848490217026 -0.3439633889795456 +2766 0.2103523463948367 -0.295960858981015 -0.3829725417329907 +2767 0.2328274901802305 -0.3269368689453361 -0.4219816944876084 +2768 0.2553026339747126 -0.3579128789145819 -0.4609908472432925 +2769 0.1339301328793011 0.1339301328996516 -0.1786189882170564 +2770 0.1657999773994804 0.1657999774216409 -0.2187916146937593 +2771 0.1976698219141989 0.1976698219369429 -0.25896424116933 +2772 0.2295396664234571 0.2295396664455575 -0.2991368676437685 +2773 0.2614095109273935 0.2614095109476232 -0.3393094941172496 +2774 0.2932793554258704 0.2932793554430032 -0.3794821205896008 +2775 0.3251491999189547 0.3251491999317628 -0.4196547470609043 +2776 0.3570190444065595 0.3570190444138164 -0.4598273735310524 +2777 0.1410808092907649 0.09797662791834214 -0.1879267778586546 +2778 0.1720568192558819 0.1204517716962409 -0.226935930630815 +2779 0.2030328292165787 0.1429269154611451 -0.2659450834016569 +2780 0.2340088391728551 0.1654020592130548 -0.3049542361711796 +2781 0.2649848491248459 0.1878772029520678 -0.343963388939553 +2782 0.2959608590724173 0.2103523466780874 -0.3829725417066095 +2783 0.3269368690156344 0.23282749039116 -0.4219816944724294 +2784 0.3579128789544128 0.2553026340912249 -0.4609908472369076 +2785 0.1461367529822379 0.05977782187406364 -0.1945111825529081 +2786 0.176480769981049 0.07313892753546718 -0.232697284737346 +2787 0.2068247869768347 0.08650003317907623 -0.2708833869207349 +2788 0.2371688039695952 0.09986113880489079 -0.3090694891030743 +2789 0.2675128209594622 0.113222244412969 -0.3472555912845302 +2790 0.2978568379463049 0.1265833500032533 -0.3854416934649388 +2791 0.3282008549301867 0.1399444555757712 -0.4236277956443787 +2792 0.358544871911025 0.153305561130487 -0.4618138978227466 +2793 0.1487602214623527 0.02009865895119527 -0.1979287781657924 +2794 0.1787763048955337 0.02453077111605381 -0.2356876808967219 +2795 0.2087923883272966 0.02896288325542451 -0.2734465836271447 +2796 0.2388084717576414 0.03339499536930711 -0.3112054863570609 +2797 0.2688245551866985 0.03782710745772112 -0.3489643890866349 +2798 0.2988406386143387 0.04225921952064736 -0.3867232918157035 +2799 0.3288567220406244 0.04669133155809491 -0.4244821945443449 +2800 0.3588728054654741 0.05112344357005222 -0.4622410972724581 +2801 0.1487602214720752 -0.02009865811727998 -0.1979287782119507 +2802 0.1787763048974973 -0.02453077021526519 -0.235687680934019 +2803 0.2087923883233732 -0.02896288233658333 -0.2734465836564637 +2804 0.2388084717497033 -0.03339499448123454 -0.3112054863792854 +2805 0.2688245551766176 -0.03782710664923798 -0.3489643891026476 +2806 0.2988406386039871 -0.04225921884057451 -0.3867232918263881 +2807 0.3288567220318741 -0.04669133105525339 -0.4244821945505853 +2808 0.3588728054601973 -0.05112344329326271 -0.4622410972751367 +2809 0.1461367529847751 -0.05977782130686347 -0.1945111826547482 +2810 0.176480769965462 -0.07313892691624696 -0.2326972848195274 +2811 0.2068247869482182 -0.08650003254290463 -0.2708833869852371 +2812 0.2371688039330446 -0.09986113818683645 -0.3090694891518769 +2813 0.2675128209200727 -0.1132222438481007 -0.3472555913196135 +2814 0.2978568379091714 -0.1265833495266396 -0.3854416934882814 +2815 0.3282008549004042 -0.139944455222481 -0.4236277956579607 +2816 0.3585448718936892 -0.153305560935589 -0.4618138978285479 +2817 0.1410808092573164 -0.09797662758389555 -0.1879267779731735 +2818 0.1720568191995246 -0.1204517713216205 -0.2269359307228011 +2819 0.2030328291450646 -0.1429269150697393 -0.2659450834734579 +2820 0.2340088390939364 -0.1654020588282525 -0.304954236225144 +2821 0.2649848490462751 -0.1878772025972574 -0.3439633889780288 +2822 0.2959608590019466 -0.2103523463766569 -0.3829725417319441 +2823 0.3269368689610155 -0.2328274901664985 -0.4219816944869713 +2824 0.3579128789233985 -0.2553026339667206 -0.4609908472430044 +2825 0.1339301327844246 -0.1339301327831401 -0.1786189883027745 +2826 0.1657999772821431 -0.1657999772801071 -0.2187916147618953 +2827 0.1976698217842237 -0.1976698217816799 -0.2589642412218465 +2828 0.2295396662906672 -0.2295396662878588 -0.2991368676826274 +2829 0.2614095108016116 -0.261409510798782 -0.3393094941444127 +2830 0.2932793553169196 -0.2932793553143124 -0.3794821206070299 +2831 0.3251491998366574 -0.3251491998345164 -0.4196547470705621 +2832 0.3570190443607393 -0.3570190443593073 -0.4598273735349003 +2833 -0.1786189883027701 -0.133930132783157 -0.1339301327844221 +2834 -0.2187916147618877 -0.1657999772801499 -0.1657999772821404 +2835 -0.2589642412218366 -0.1976698217817579 -0.1976698217842237 +2836 -0.2991368676826163 -0.2295396662879808 -0.2295396662906721 +2837 -0.339309494144402 -0.2614095107989572 -0.2614095108016241 +2838 -0.3794821206070202 -0.2932793553145501 -0.2932793553169423 +2839 -0.4196547470705543 -0.3251491998348248 -0.3251491998366926 +2840 -0.4598273735348962 -0.3570190443596967 -0.3570190443607895 +2841 -0.1879267779731669 -0.09797662758393053 -0.141080809257314 +2842 -0.2269359307227896 -0.1204517713217081 -0.172056819199524 +2843 -0.2659450834734433 -0.1429269150698977 -0.2030328291450704 +2844 -0.3049542362251275 -0.1654020588284994 -0.2340088390939531 +2845 -0.3439633889780122 -0.1878772025976107 -0.2649848490463069 +2846 -0.3829725417319292 -0.2103523463771348 -0.2959608590019981 +2847 -0.4219816944869595 -0.2328274901671185 -0.3269368689610911 +2848 -0.4609908472429977 -0.2553026339675011 -0.3579128789235023 +2849 -0.1945111826547415 -0.05977782130691712 -0.1461367529847756 +2850 -0.2326972848195159 -0.07313892691638074 -0.1764807699654684 +2851 -0.2708833869852222 -0.08650003254314491 -0.2068247869482366 +2852 -0.3090694891518604 -0.09986113818721012 -0.2371688039330801 +2853 -0.3472555913195968 -0.113222243848634 -0.2675128209201306 +2854 -0.3854416934882664 -0.1265833495273593 -0.2978568379092582 +2855 -0.4236277956579489 -0.1399444552234134 -0.3282008549005251 +2856 -0.4618138978285412 -0.1533055609367607 -0.3585448718938492 +2857 -0.1979287782119463 -0.02009865811735231 -0.1487602214720816 +2858 -0.2356876809340112 -0.02453077021544496 -0.1787763048975159 +2859 -0.2734465836564538 -0.02896288233690573 -0.2087923883234104 +2860 -0.3112054863792743 -0.03339499448173484 -0.2388084717497648 +2861 -0.3489643891026364 -0.03782710664995116 -0.2688245551767098 +2862 -0.3867232918263779 -0.04225921884153586 -0.2988406386041156 +2863 -0.4244821945505772 -0.04669133105649792 -0.3288567220320449 +2864 -0.4622410972751323 -0.05112344329482579 -0.3588728054604167 +2865 -0.197928778165792 0.02009865895112242 -0.1487602214623672 +2866 -0.235687680896721 0.02453077111587315 -0.1787763048955685 +2867 -0.2734465836271437 0.02896288325510087 -0.2087923883273575 +2868 -0.31120548635706 0.03339499536880555 -0.2388084717577346 +2869 -0.3489643890866335 0.03782710745700674 -0.2688245551868298 +2870 -0.3867232918157021 0.04225921951968491 -0.298840638614514 +2871 -0.4244821945443441 0.04669133155684971 -0.3288567220408494 +2872 -0.4622410972724578 0.05112344356848869 -0.3588728054657551 +2873 -0.1945111825529099 0.05977782187400842 -0.1461367529822583 +2874 -0.2326972847373492 0.07313892753533055 -0.176480769981096 +2875 -0.2708833869207389 0.0865000331788322 -0.2068247869769148 +2876 -0.3090694891030785 0.0998611388045131 -0.2371688039697147 +2877 -0.3472555912845347 0.1132222444124315 -0.2675128209596269 +2878 -0.3854416934649428 0.1265833500025299 -0.2978568379465221 +2879 -0.4236277956443817 0.1399444555748361 -0.3282008549304617 +2880 -0.4618138978227483 0.1533055611293136 -0.3585448719113647 +2881 -0.1879267778586564 0.09797662791830454 -0.1410808092907884 +2882 -0.2269359306308182 0.1204517716961485 -0.1720568192559362 +2883 -0.2659450834016606 0.1429269154609807 -0.2030328292166711 +2884 -0.304954236171184 0.1654020592128013 -0.2340088391729934 +2885 -0.3439633889395575 0.1878772029517077 -0.2649848491250374 +2886 -0.3829725417066132 0.2103523466776037 -0.2959608590726698 +2887 -0.4219816944724323 0.2328274903905351 -0.3269368690159546 +2888 -0.4609908472369092 0.2553026340904417 -0.3579128789548085 +2889 -0.178618988217056 0.1339301328996309 -0.1339301328793248 +2890 -0.2187916146937582 0.1657999774215915 -0.1657999773995366 +2891 -0.2589642411693286 0.1976698219368566 -0.1976698219142972 +2892 -0.2991368676437672 0.2295396664454261 -0.229539666423607 +2893 -0.3393094941172483 0.2614095109474387 -0.2614095109276041 +2894 -0.3794821205895995 0.2932793554427571 -0.2932793554261516 +2895 -0.4196547470609036 0.3251491999314471 -0.3251491999193151 +2896 -0.4598273735310519 0.3570190444134228 -0.3570190444070086 +2897 -0.1879267779771741 -0.1410808092343034 -0.09797662760492241 +2898 -0.2269359307260863 -0.1720568191737269 -0.1204517713446671 +2899 -0.2659450834760895 -0.2030328291181 -0.1429269150935169 +2900 -0.3049542362271832 -0.2340088390674223 -0.165402058851472 +2901 -0.343963388979537 -0.2649848490218288 -0.18787720261863 +2902 -0.382972541732983 -0.2959608589811855 -0.2103523463948938 +2903 -0.4219816944876021 -0.3269368689455573 -0.2328274901803103 +2904 -0.460990847243289 -0.3579128789148606 -0.2553026339748187 +2905 -0.1997931212827416 -0.1043504645554882 -0.1043504646281432 +2906 -0.2373189811180268 -0.1260288786706381 -0.126028878748886 +2907 -0.2748448409545277 -0.1477072927965337 -0.1477072928761917 +2908 -0.3123707007922432 -0.1693857069331753 -0.1693857070100601 +2909 -0.3498965606313372 -0.1910641210806568 -0.1910641211505857 +2910 -0.3874224204716477 -0.2127425352388851 -0.2127425352976748 +2911 -0.4249482803132528 -0.2344209494079051 -0.2344209494513725 +2912 -0.4624741401560508 -0.2560993635876584 -0.2560993636116205 +2913 -0.208540972046192 -0.06421850240147635 -0.1090429163470746 +2914 -0.2449733505366585 -0.07702452287292934 -0.1301347740124321 +2915 -0.2814057290281661 -0.08983054336201649 -0.1512266316816443 +2916 -0.317838107520715 -0.1026365638687375 -0.1723184893547108 +2917 -0.3542704860144633 -0.1154425843931486 -0.1934103470317233 +2918 -0.3907028645092542 -0.1282486049351942 -0.2145022047125911 +2919 -0.4271352430051633 -0.1410546254949009 -0.235594062397358 +2920 -0.4635676215020925 -0.1538606460722345 -0.2566859200859669 +2921 -0.2132090613274455 -0.02169501197261537 -0.1115448801463891 +2922 -0.2490579286599598 -0.02592757983760142 -0.1323239923471991 +2923 -0.2849067959928859 -0.03016014772628864 -0.1531031045489019 +2924 -0.3207556633262241 -0.03439271563867687 -0.1738822167514974 +2925 -0.3566045306601298 -0.03862528357478436 -0.1946613289550763 +2926 -0.3924533979944482 -0.04285785153459305 -0.2154404411595485 +2927 -0.4283022653292549 -0.04709041951811174 -0.2362195533649577 +2928 -0.4641511326644522 -0.05132298752532902 -0.2569986655712473 +2929 -0.2132090612583286 0.02169501288040499 -0.1115448801649837 +2930 -0.24905792860284 0.025927580805198 -0.1323239923744773 +2931 -0.284906795946804 0.03016014870413433 -0.1531031045817186 +2932 -0.3207556632902206 0.0343927165772141 -0.1738822167867078 +2933 -0.3566045306332456 0.03862528442445574 -0.1946613289895348 +2934 -0.3924533979757242 0.04285785224584079 -0.21544044119011 +2935 -0.4283022653177314 0.04709042004137835 -0.2362195533884771 +2936 -0.4641511326591701 0.05132298781105682 -0.2569986655845796 +2937 -0.2085409718945236 0.06421850300450836 -0.1090429164285061 +2938 -0.2449733504116731 0.07702452352572027 -0.1301347741154028 +2939 -0.2814057289276565 0.08983054402877592 -0.1512266317970917 +2940 -0.3178381074424744 0.1026365645136754 -0.1723184894735728 +2941 -0.3542704859562849 0.1154425849804742 -0.1934103471449374 +2942 -0.3907028644689308 0.1282486054291172 -0.2145022048110952 +2943 -0.427135242980488 0.1410546258596311 -0.2355940624720896 +2944 -0.463567621490858 0.1538606462719814 -0.2566859201278639 +2945 -0.1997931211152789 0.1043504648916642 -0.1043504647966599 +2946 -0.2373189809810369 0.1260288790490397 -0.1260288789473469 +2947 -0.2748448408452842 0.1477072931930657 -0.1477072930900227 +2948 -0.3123707007080215 0.1693857073237425 -0.1693857072246877 +2949 -0.3498965605694109 0.1910641214411641 -0.1910641213514355 +2950 -0.3874224204292913 0.2127425355452373 -0.212742535470173 +2951 -0.4249482802877408 0.2344209496360069 -0.2344209495809454 +2952 -0.4624741401446579 0.2560993637134144 -0.2560993636836938 +2953 -0.1879267778527183 0.1410808093324449 -0.09797662787542818 +2954 -0.2269359306258992 0.1720568193015042 -0.1204517716501888 +2955 -0.2659450833976815 0.2030328292635282 -0.1429269154143891 +2956 -0.3049542361680661 0.2340088392185169 -0.1654020591680294 +2957 -0.3439633889372212 0.2649848491666051 -0.1878772029112066 +2958 -0.3829725417049797 0.2959608591076591 -0.2103523466438244 +2959 -0.4219816944714223 0.3269368690417435 -0.2328274903659295 +2960 -0.4609908472364435 0.3579128789687746 -0.2553026340774612 +2961 -0.1945111826665887 -0.1461367529418682 -0.05977782135535881 +2962 -0.2326972848293487 -0.1764807699180582 -0.07313892696880761 +2963 -0.2708833869931934 -0.2068247868991351 -0.08650003259669592 +2964 -0.3090694891581223 -0.2371688038850989 -0.09986113823902351 +2965 -0.3472555913243016 -0.2675128208760814 -0.1132222438958487 +2966 -0.3854416934915667 -0.2978568378719524 -0.1265833495671135 +2967 -0.4236277956599966 -0.3282008548727742 -0.1399444552528462 +2968 -0.4618138978294887 -0.3585448718784656 -0.1533055609530101 +2969 -0.2085409720635649 -0.1090429162264539 -0.06421850252776679 +2970 -0.2449733505511618 -0.1301347738830222 -0.07702452300742831 +2971 -0.2814057290399999 -0.1512266315502492 -0.08983054349788297 +2972 -0.3178381075300783 -0.1723184892281354 -0.1026365639991307 +2973 -0.354270486021555 -0.1934103469167719 -0.1154425845112274 +2974 -0.3907028645142743 -0.2145022046160683 -0.1282486050341173 +2975 -0.4271352430083106 -0.2355940623260679 -0.1410546255678278 +2976 -0.4635676215035663 -0.2566859200467141 -0.1538606461123237 +2977 -0.2192265279707965 -0.06759372116337123 -0.06759372136603459 +2978 -0.254323211970492 -0.0799778392899532 -0.07997783950402508 +2979 -0.2894198959712859 -0.09236195743405769 -0.09236195764906274 +2980 -0.324516579973178 -0.104746075595685 -0.1047460758011474 +2981 -0.3596132639763206 -0.1171301937748887 -0.117130193960333 +2982 -0.3947099479805627 -0.1295143119716157 -0.1295143121265661 +2983 -0.4298066319859773 -0.1418984301858913 -0.1418984302998725 +2984 -0.4649033159924698 -0.1542825484176823 -0.1542825484802189 +2985 -0.2250599695698037 -0.02293007697524287 -0.06943400622671948 +2986 -0.259427473371717 -0.02700826171534281 -0.08158808877076856 +2987 -0.2937949771741311 -0.0310864464790078 -0.09374217131796661 +2988 -0.328162480977046 -0.03516463126623788 -0.1058962538683136 +2989 -0.3625299847806105 -0.03924281607705049 -0.1180503364218625 +2990 -0.3968974885846773 -0.04332100091142856 -0.1302044189785604 +2991 -0.4312649923893171 -0.0473991857693799 -0.1423585015384335 +2992 -0.4656324961944377 -0.05147737065089417 -0.1545125841014482 +2993 -0.2250599694871119 0.02293007793755419 -0.06943400627850349 +2994 -0.2594274733026077 0.02700826272968075 -0.08158808883010865 +2995 -0.2937949771176771 0.03108644749610998 -0.09374217138085456 +2996 -0.3281624809323194 0.03516463223684189 -0.1058962539307412 +2997 -0.3625299847466844 0.03924281695189437 -0.1180503364798212 +2998 -0.3968974885606238 0.04332100164124932 -0.130204419028042 +2999 -0.4312649923742088 0.04739918630491587 -0.1423585015754293 +3000 -0.4656324961873474 0.05147737094288267 -0.1545125841219504 +3001 -0.2192265277951101 0.06759372179530002 -0.06759372153733351 +3002 -0.2543232118241569 0.07997783996705549 -0.07997783969521483 +3003 -0.2894198958521902 0.09236195812083589 -0.09236195784834236 +3004 -0.3245165798792106 0.1047460762566414 -0.1047460759967163 +3005 -0.3596132639053696 0.1171301943745259 -0.1171301941403898 +3006 -0.3947099479305172 0.1295143124744357 -0.1295143122793102 +3007 -0.4298066319547252 0.141898430556397 -0.1418984304135027 +3008 -0.4649033159778994 0.1542825486203759 -0.1542825485429345 +3009 -0.2085409718789682 0.1090429165735543 -0.06421850282652443 +3010 -0.2449733503986242 0.1301347742700009 -0.0770245233365659 +3011 -0.2814057289169535 0.1512266319533014 -0.08983054383805064 +3012 -0.3178381074339569 0.1723184896234558 -0.1026365643309787 +3013 -0.354270485949792 0.1934103472805561 -0.1154425848154055 +3014 -0.390702864464302 0.2145022049245111 -0.1282486052912759 +3015 -0.4271352429775628 0.2355940625553642 -0.1410546257586166 +3016 -0.4635676214894757 0.2566859201730596 -0.1538606462173933 +3017 -0.1945111825401122 0.1461367530453335 -0.05977782177699353 +3018 -0.2326972847266164 0.1764807700495036 -0.07313892743100089 +3019 -0.270883386911938 0.2068247870468638 -0.0865000330728011 +3020 -0.3090694890960771 0.2371688040374142 -0.09986113870239441 +3021 -0.3472555912791994 0.2675128210212867 -0.1132222443198384 +3022 -0.3854416934611404 0.29785683799835 -0.1265833499250756 +3023 -0.4236277956419796 0.328200854968668 -0.1399444555181341 +3024 -0.4618138978216136 0.3585448719321579 -0.1533055610989775 +3025 -0.1979287782354505 -0.1487602214121421 -0.02009865822469516 +3026 -0.2356876809535093 -0.1787763048312298 -0.02453077033179647 +3027 -0.2734465836722511 -0.2087923882547217 -0.02896288245586808 +3028 -0.3112054863916759 -0.238808471682618 -0.03339499459691014 +3029 -0.3489643891119478 -0.2688245551150488 -0.03782710675494173 +3030 -0.3867232918329039 -0.298840638551885 -0.0422592189299439 +3031 -0.4244821945546225 -0.3288567219931893 -0.04669133112192568 +3032 -0.4622410972770021 -0.3588728054388797 -0.05112344333087526 +3033 -0.2132090613730439 -0.1115448799832778 -0.02169501218968916 +3034 -0.2490579286980301 -0.1323239921718681 -0.02592758006887209 +3035 -0.2849067960239509 -0.1531031043706482 -0.03016014795996669 +3036 -0.3207556633508059 -0.1738822165796186 -0.03439271586297306 +3037 -0.3566045306787505 -0.1946613287988691 -0.03862528377790954 +3038 -0.3924533980076306 -0.2154404410283104 -0.04285785170475787 +3039 -0.4283022653375206 -0.2362195532679857 -0.04709041964352687 +3040 -0.4641511326683238 -0.256998665517839 -0.05132298759420496 +3041 -0.2250599696073597 -0.06943400595361468 -0.02293007730715635 +3042 -0.259427473403226 -0.08158808848298378 -0.02700826206447883 +3043 -0.2937949771999797 -0.09374217102942035 -0.03108644682862094 +3044 -0.3281624809976202 -0.1058962535929249 -0.03516463159958263 +3045 -0.362529984796297 -0.1180503361735497 -0.03924281637738151 +3046 -0.3968974885958627 -0.1302044187712426 -0.04332100116200022 +3047 -0.4312649923963875 -0.1423585013860291 -0.0473991859534471 +3048 -0.4656324961977797 -0.1545125840178758 -0.05147737075171123 +3049 -0.2316142966126098 -0.0236121334930981 -0.02361213393653225 +3050 -0.2651625095345803 -0.02760506116997601 -0.02760506163318387 +3051 -0.2987107224569358 -0.0315979888699779 -0.03159798933151196 +3052 -0.332258935379676 -0.03559091659310389 -0.03559091703151648 +3053 -0.3658071483029469 -0.03958384433937082 -0.03958384473321495 +3054 -0.3993553612266039 -0.0435767721087619 -0.04357677243658986 +3055 -0.4329035741507166 -0.0475696999012854 -0.04756970014164988 +3056 -0.4664517870751946 -0.05156262771693036 -0.05156262784838418 +3057 -0.2316142965293669 0.02361213448348765 -0.02361213403439541 +3058 -0.2651625094646551 0.02760506220591621 -0.0276050617369441 +3059 -0.2987107223994961 0.03159798990307339 -0.03159798943598927 +3060 -0.3322589353338897 0.03559091757495902 -0.03559091713153108 +3061 -0.3658071482679826 0.03958384522159089 -0.03958384482358666 +3062 -0.3993553612016288 0.0435767728429515 -0.04357677251213862 +3063 -0.4329035741348984 0.04756970043904907 -0.04756970019719561 +3064 -0.4664517870677017 0.05156262800987318 -0.05156262787874706 +3065 -0.2250599694379026 0.06943400660490269 -0.02293007759895457 +3066 -0.2594274732613406 0.08158808917405068 -0.02700826237392963 +3067 -0.2937949770838404 0.09374217172563332 -0.03108644714025928 +3068 -0.3281624809054014 0.1058962542596505 -0.03516463189794369 +3069 -0.3625299847261731 0.1180503367761552 -0.03924281664700033 +3070 -0.396897488546008 0.130204419275095 -0.04332100138741174 +3071 -0.4312649923649768 0.1423585017564951 -0.0473991861191863 +3072 -0.4656324961829871 0.1545125842203227 -0.05147737084231321 +3073 -0.2132090612055998 0.1115448803483282 -0.02169501265744248 +3074 -0.2490579285588333 0.1323239925715701 -0.02592758056799495 +3075 -0.2849067959109103 0.153103104782059 -0.03016014846479093 +3076 -0.3207556632618315 0.1738822169797951 -0.03439271634783054 +3077 -0.3566045306117518 0.1946613291648686 -0.03862528421713192 +3078 -0.3924533979605175 0.2154404413371904 -0.04285785207267692 +3079 -0.4283022653082025 0.2362195534968027 -0.04709041991447445 +3080 -0.4641511326547101 0.2569986656436504 -0.05132298774251312 +3081 -0.1979287781347781 0.1487602215378454 -0.02009865883827464 +3082 -0.2356876808710222 0.1787763049791424 -0.02453077099393255 +3083 -0.2734465836063488 0.2087923884140065 -0.02896288313077376 +3084 -0.3112054863407581 0.238808471842437 -0.03339499524879884 +3085 -0.3489643890744141 0.2688245552645653 -0.0378271073480265 +3086 -0.3867232918071541 0.2988406386802613 -0.04225921942843769 +3087 -0.4244821945390562 0.3288567220895878 -0.04669133149004187 +3088 -0.4622410972700191 0.3588728054924635 -0.05112344353282688 +3089 -0.197928778207874 -0.1487602213921386 0.02009865884580505 +3090 -0.2356876809313516 -0.1787763048162559 0.02453077099997079 +3091 -0.2734465836549488 -0.2087923882440523 0.02896288313538939 +3092 -0.3112054863786655 -0.2388084716755283 0.03339499525206084 +3093 -0.3489643891026663 -0.2688245551108134 0.03782710735000444 +3094 -0.3867232918267877 -0.298840638549779 0.04225921942920108 +3095 -0.4244821945511084 -0.3288567219924873 0.04669133148965997 +3096 -0.4622410972755267 -0.3588728054388571 0.05112344353136929 +3097 -0.2132090613452648 -0.1115448799704197 0.02169501267187627 +3098 -0.249057928675133 -0.1323239921631416 0.0259275805798206 +3099 -0.2849067960055329 -0.1531031043653274 0.03016014847415016 +3100 -0.3207556633364641 -0.1738822165769772 0.03439271635486486 +3101 -0.3566045306680826 -0.194661328798181 0.03862528422198314 +3102 -0.3924533980002337 -0.2154404410288493 0.04285785207548678 +3103 -0.4283022653329919 -0.2362195532690255 0.04709041991538463 +3104 -0.4641511326662611 -0.2569986655186534 0.0513229877416652 +3105 -0.2250599695861097 -0.06943400594949484 0.0229300776142503 +3106 -0.2594274733854792 -0.08158808848189872 0.02700826238655 +3107 -0.2937949771854937 -0.09374217103064277 0.03108644715033436 +3108 -0.3281624809861534 -0.1058962535957275 0.03516463190560346 +3109 -0.3625299847876079 -0.1180503361772053 0.03924281665237513 +3110 -0.3968974885897085 -0.130204418775024 0.04332100139063156 +3111 -0.4312649923925269 -0.1423585013892086 0.04739918612038142 +3112 -0.4656324961959702 -0.1545125840197265 0.05147737084161355 +3113 -0.2316142966045734 -0.02361213349511156 0.02361213404210583 +3114 -0.2651625095278326 -0.02760506117425284 0.02760506174325109 +3115 -0.2987107224513955 -0.03159798887578971 0.03159798944093042 +3116 -0.3322589353752621 -0.03559091659972229 0.03559091713514397 +3117 -0.3658071482995782 -0.03958384434606751 0.03958384482590872 +3118 -0.3993553612241991 -0.04357677211480857 0.04357677251320798 +3119 -0.4329035741491947 -0.0475696999059535 0.04756970019704958 +3120 -0.4664517870744741 -0.05156262771949183 0.0515626278774228 +3121 -0.2316142965374091 0.02361213448147476 0.02361213392864145 +3122 -0.2651625094714131 0.02760506220164045 0.02760506162642441 +3123 -0.2987107224050494 0.03159798989726294 0.03159798932575442 +3124 -0.3322589353383182 0.03559091756834212 0.03559091702663142 +3125 -0.3658071482713656 0.03958384521489576 0.03958384472907277 +3126 -0.3993553612040468 0.04357677283690625 0.04357677243306153 +3127 -0.4329035741364307 0.04756970043438201 0.0475697001386058 +3128 -0.4664517870684279 0.05156262800731236 0.05156262784569444 +3129 -0.2250599694591585 0.06943400660902445 0.02293007729168017 +3130 -0.2594274732790978 0.08158808917513916 0.027008262051406 +3131 -0.2937949770983391 0.09374217172441529 0.03108644681772953 +3132 -0.3281624809168824 0.1058962542568527 0.03516463159065053 +3133 -0.3625299847348772 0.1180503367725044 0.03924281637018696 +3134 -0.3968974885521753 0.1302044192713182 0.04332100115632112 +3135 -0.4312649923688477 0.1423585017533188 0.04739918594906162 +3136 -0.4656324961848023 0.1545125842184737 0.05147737074839731 +3137 -0.2132090612333846 0.1115448803611896 0.02169501217507485 +3138 -0.2490579285817406 0.132323992580302 0.02592758005659389 +3139 -0.2849067959293415 0.153103104787387 0.03016014794979109 +3140 -0.3207556632761875 0.1738822169824444 0.03439271585466641 +3141 -0.3566045306224344 0.1946613291655647 0.03862528377123849 +3142 -0.3924533979679273 0.2154404413366585 0.04285785169948879 +3143 -0.428302265312741 0.2362195534957684 0.0470904196394262 +3144 -0.4641511326567787 0.2569986656428389 0.0513229875910394 +3145 -0.1979287781623605 0.1487602215578535 0.02009865821698432 +3146 -0.2356876808931901 0.1787763049941243 0.02453077032530568 +3147 -0.2734465836236641 0.2087923884246859 0.02896288245043623 +3148 -0.3112054863537829 0.2388084718495383 0.03339499459237574 +3149 -0.3489643890837101 0.2688245552688122 0.03782710675114385 +3150 -0.3867232918132832 0.2988406386823776 0.04225921892672124 +3151 -0.4244821945425807 0.3288567220902975 0.04669133111911711 +3152 -0.4622410972715001 0.3588728054924903 0.05112344332831958 +3153 -0.1945111826075824 -0.1461367528991065 0.05977782179823894 +3154 -0.2326972847820266 -0.1764807698861643 0.07313892744827019 +3155 -0.2708833869563241 -0.2068247868765237 0.08650003308640575 +3156 -0.3090694891304751 -0.2371688038701851 0.09986113871264513 +3157 -0.3472555913046457 -0.2675128208672801 0.1132222443270468 +3158 -0.3854416934786712 -0.2978568378676778 0.1265833499295532 +3159 -0.4236277956526306 -0.3282008548714414 0.1399444555201917 +3160 -0.4618138978264216 -0.3585448718784888 0.1533055610989269 +3161 -0.2085409720053146 -0.1090429161996468 0.0642185028662822 +3162 -0.2449733505032731 -0.1301347738650752 0.07702452336927418 +3163 -0.2814057290015923 -0.1512266315395736 0.0898305438642379 +3164 -0.317838107500272 -0.1723184892231423 0.1026365643511727 +3165 -0.3542704859994699 -0.1934103469158729 0.1154425848301347 +3166 -0.3907028644990304 -0.2145022046176743 0.1282486053010687 +3167 -0.4271352429990279 -0.2355940623285906 0.1410546257640008 +3168 -0.463567621499365 -0.2566859200485647 0.1538606462188972 +3169 -0.2192265279269728 -0.06759372115517256 0.06759372157876906 +3170 -0.2543232119339973 -0.07997783928827482 0.07997783972951281 +3171 -0.289419895941591 -0.09236195743730737 0.09236195787599623 +3172 -0.3245165799497544 -0.1047460756022708 0.1047460760182192 +3173 -0.3596132639586394 -0.1171301937832184 0.1171301941562357 +3174 -0.3947099479680952 -0.1295143119800971 0.1295143122899923 +3175 -0.4298066319781942 -0.1418984301929324 0.1418984304195145 +3176 -0.4649033159888427 -0.1542825484216909 0.1542825485447694 +3177 -0.2250599695533891 -0.02293007697975072 0.06943400629928029 +3178 -0.2594274733579752 -0.02700826172476877 0.08158808884730166 +3179 -0.2937949771628848 -0.03108644649175636 0.09374217139467969 +3180 -0.3281624809681175 -0.03516463128071366 0.1058962539414142 +3181 -0.3625299847738226 -0.03924281609165797 0.118050336487558 +3182 -0.3968974885798526 -0.04332100092457188 0.1302044190330591 +3183 -0.4312649923862782 -0.04739918577946405 0.142358501577942 +3184 -0.4656324961930067 -0.05147737065632321 0.1545125841221744 +3185 -0.2250599695035398 0.02293007793304776 0.06943400620580908 +3186 -0.2594274733163725 0.02700826272025728 0.08158808875323911 +3187 -0.293794977128953 0.03108644748336464 0.09374217130353293 +3188 -0.3281624809412802 0.03516463222236965 0.1058962538566905 +3189 -0.3625299847535047 0.03924281693729043 0.1180503364127646 +3190 -0.3968974885654778 0.04332100162810906 0.1302044189717029 +3191 -0.4312649923772709 0.04739918629483422 0.1423585015335309 +3192 -0.4656324961887914 0.05147737093745496 0.1545125840982153 +3193 -0.2192265278389466 0.06759372180350298 0.06759372132446533 +3194 -0.2543232118606742 0.07997783996874142 0.07997783946939063 +3195 -0.2894198958819143 0.09236195811759602 0.09236195762080035 +3196 -0.3245165799026664 0.1047460762500665 0.1047460757786942 +3197 -0.3596132639230833 0.1171301943662069 0.1171301939431263 +3198 -0.3947099479430137 0.1295143124659641 0.1295143121140432 +3199 -0.4298066319625306 0.1418984305493634 0.1418984302914707 +3200 -0.4649033159815393 0.1542825486163716 0.1542825484753751 +3201 -0.2085409719372313 0.1090429166003685 0.06421850248787546 +3202 -0.2449733504465355 0.1301347742879604 0.07702452297438353 +3203 -0.2814057289553904 0.1512266319639934 0.08983054347108724 +3204 -0.3178381074637954 0.1723184896284668 0.1026365639779865 +3205 -0.3542704859719095 0.1934103472814729 0.1154425844951373 +3206 -0.3907028644795749 0.2145022049229212 0.128248605022484 +3207 -0.4271352429868679 0.2355940625528544 0.1410546255600537 +3208 -0.4635676214936898 0.2566859201712165 0.1538606461078112 +3209 -0.1945111825991316 0.1461367530881053 0.05977782133397978 +3210 -0.2326972847739612 0.1764807700814152 0.0731389269512019 +3211 -0.2708833869488363 0.2068247870694979 0.08650003258248291 +3212 -0.3090694891237563 0.2371688040523529 0.09986113822782258 +3213 -0.3472555912988873 0.267512821030113 0.1132222438872792 +3214 -0.3854416934740648 0.2978568380026471 0.1265833495607953 +3215 -0.4236277956493679 0.3282008549700184 0.1399444552483985 +3216 -0.4618138978246942 0.3585448719321443 0.1533055609500526 +3217 -0.1879267779102309 -0.14108080918588 0.09797662790622372 +3218 -0.226935930672597 -0.1720568191378695 0.1204517716750449 +3219 -0.2659450834346008 -0.2030328290929355 0.142926915433859 +3220 -0.3049542361962419 -0.2340088390510776 0.1654020591826658 +3221 -0.3439633889576903 -0.2649848490124307 0.1878772029215633 +3222 -0.3829725417187774 -0.2959608589768612 0.2103523466504541 +3223 -0.4219816944795851 -0.3269368689444335 0.2328274903693857 +3224 -0.4609908472400072 -0.3579128789150641 0.2553026340782967 +3225 -0.1997931212190654 -0.1043504645265225 0.1043504648521886 +3226 -0.2373189810659466 -0.1260288786517842 0.1260288789925791 +3227 -0.274844840913004 -0.1477072927859129 0.1477072931258732 +3228 -0.3123707007602377 -0.1693857069289083 0.1693857072520711 +3229 -0.3498965606078107 -0.1910641210808645 0.1910641213712664 +3230 -0.3874224204555612 -0.2127425352416884 0.2127425354833661 +3231 -0.4249482803035673 -0.234420949411425 0.2344209495884154 +3232 -0.4624741401517278 -0.2560993635900155 0.2560993636863555 +3233 -0.2085409719996836 -0.06421850239340952 0.1090429164847141 +3234 -0.2449733504981489 -0.0770245228723398 0.1301347741614319 +3235 -0.281405728997031 -0.08983054336701925 0.1512266318337987 +3236 -0.31783810749633 -0.1026365638774479 0.1723184895018145 +3237 -0.3542704859962041 -0.1154425844036814 0.1934103471655708 +3238 -0.3907028644964964 -0.1282486049456645 0.2145022048249769 +3239 -0.4271352429972825 -0.1410546255034239 0.2355940624800766 +3240 -0.463567621498464 -0.153860646076925 0.2566859201308127 +3241 -0.2132090613103128 -0.02169501197815186 0.1115448801927315 +3242 -0.2490579286457016 -0.02592757984889259 0.132323992397223 +3243 -0.284906795981293 -0.03016014774144363 0.1531031045998562 +3244 -0.3207556633170866 -0.03439271565580497 0.1738822168006316 +3245 -0.3566045306532384 -0.03862528359199463 0.1946613289996388 +3246 -0.3924533979895942 -0.0428578515499948 0.2154404411967888 +3247 -0.4283022653262282 -0.04709041952981419 0.2362195533921246 +3248 -0.4641511326630434 -0.05132298753144129 0.2569986655855898 +3249 -0.2132090612754756 0.02169501287487007 0.1115448801185544 +3250 -0.2490579286171231 0.02592758079390956 0.1323239923242331 +3251 -0.2849067959584291 0.03016014868898279 0.1531031045303636 +3252 -0.3207556632993934 0.03439271656008991 0.173882216736946 +3253 -0.3566045306401722 0.0386252844072493 0.1946613289440705 +3254 -0.3924533979806103 0.04285785223044256 0.2154404411516476 +3255 -0.428302265320783 0.04709042002967866 0.2362195533597206 +3256 -0.4641511326605928 0.05132298780494617 0.256998665568233 +3257 -0.2085409719410462 0.06421850301257995 0.1090429162907796 +3258 -0.2449733504502074 0.07702452352631806 0.1301347739661826 +3259 -0.2814057289588238 0.08983054402378365 0.1512266316445365 +3260 -0.3178381074668947 0.1026365645049768 0.1723184893258411 +3261 -0.3542704859745796 0.1154425849699532 0.1934103470101882 +3262 -0.3907028644817205 0.1282486054186576 0.214502204697487 +3263 -0.4271352429883935 0.1410546258511165 0.2355940623877815 +3264 -0.4635676214945005 0.1538606462672953 0.2566859200810143 +3265 -0.1997931211789692 0.1043504649206379 0.1043504645725277 +3266 -0.2373189810331419 0.1260288790679072 0.1260288787034334 +3267 -0.2748448408868397 0.1477072932037043 0.1477072928399404 +3268 -0.3123707007400623 0.1693857073280294 0.1693857069820489 +3269 -0.3498965605929733 0.1910641214409764 0.1910641211298532 +3270 -0.38742242044541 0.212742535542452 0.2127425352832593 +3271 -0.4249482802974511 0.2344209496325011 0.2344209494423131 +3272 -0.462474140148995 0.2560993637110653 0.2560993636069551 +3273 -0.1879267779196756 0.1410808093808793 0.0979766275740399 +3274 -0.2269359306794133 0.1720568193373808 0.1204517713195905 +3275 -0.2659450834392025 0.2030328292887174 0.1429269150736463 +3276 -0.3049542361990424 0.2340088392348892 0.1654020588362074 +3277 -0.3439633889591036 0.2649848491760309 0.1878772026073715 +3278 -0.3829725417192171 0.2959608591120084 0.2103523463870416 +3279 -0.4219816944794643 0.3269368690428869 0.2328274901752648 +3280 -0.4609908472397398 0.3579128789685824 0.2553026339719797 +3281 -0.1786189882623969 -0.1339301327540243 0.1339301329141049 +3282 -0.2187916147298038 -0.1657999772587939 0.165799977427109 +3283 -0.2589642411971155 -0.1976698217669799 0.1976698219354572 +3284 -0.2991368676643316 -0.2295396662785823 0.2295396664391497 +3285 -0.3393094941316269 -0.2614095107937398 0.2614095109383245 +3286 -0.3794821205988287 -0.293279355312315 0.2932793554328449 +3287 -0.4196547470660199 -0.3251491998343737 0.3251491999227766 +3288 -0.459827373533092 -0.3570190443598307 0.3570190444080341 +3289 -0.1879267779365906 -0.09797662756756499 0.1410808093505528 +3290 -0.2269359306931051 -0.1204517713114939 0.1720568193035984 +3291 -0.2659450834499878 -0.1429269150646275 0.2030328292535322 +3292 -0.3049542362072385 -0.1654020588269659 0.234008839200355 +3293 -0.3439633889650267 -0.1878772025986066 0.2649848491442008 +3294 -0.3829725417231841 -0.2103523463794533 0.2959608590849361 +3295 -0.4219816944817925 -0.2328274901695518 0.3269368690226254 +3296 -0.4609908472407458 -0.2553026339688422 0.3579128789571855 +3297 -0.1945111826289979 -0.05977782130295628 0.1461367530405837 +3298 -0.2326972847983852 -0.07313892691699043 0.1764807700277825 +3299 -0.270883386968306 -0.08650003254710943 0.2068247870131825 +3300 -0.3090694891387601 -0.09986113819331344 0.237168803996784 +3301 -0.3472555913099136 -0.1132222438556607 0.2675128209787188 +3302 -0.3854416934816023 -0.1265833495340937 0.2978568379588559 +3303 -0.4236277956539047 -0.1399444552286395 0.3282008549372587 +3304 -0.4618138978267182 -0.1533055609392627 0.3585448719138449 +3305 -0.1979287782026526 -0.0200986581210078 0.1487602214906045 +3306 -0.2356876809263476 -0.0245307702226887 0.1787763049181945 +3307 -0.2734465836502867 -0.02896288234651363 0.2087923883449452 +3308 -0.3112054863744697 -0.03339499449248244 0.2388084717708565 +3309 -0.3489643890990603 -0.03782710666061423 0.2688245551960587 +3310 -0.3867232918238968 -0.04225921885089055 0.2988406386204225 +3311 -0.4244821945490569 -0.04669133106331971 0.3288567220440102 +3312 -0.4622410972744387 -0.05112344329789054 0.3588728054667407 +3313 -0.1979287781750955 0.0200986589474679 0.1487602214438025 +3314 -0.2356876809044019 0.02453077110863114 0.1787763048747827 +3315 -0.273446583633333 0.0289628832454953 0.2087923883056261 +3316 -0.311205486361889 0.03339499535806054 0.2388084717363332 +3317 -0.3489643890902342 0.03782710744634616 0.268824555167034 +3318 -0.3867232918182054 0.04225921951033246 0.2988406385975998 +3319 -0.4244821945458819 0.04669133155002963 0.3288567220280921 +3320 -0.4622410972731609 0.05112344356542514 0.3588728054584303 +3321 -0.1945111825786634 0.05977782187797234 0.1461367529264084 +3322 -0.2326972847584969 0.07313892753472651 0.1764807699186748 +3323 -0.2708833869376769 0.08650003317487494 0.2068247869117722 +3324 -0.3090694891162034 0.09986113879841775 0.2371688039057008 +3325 -0.3472555912942421 0.1132222444054131 0.2675128209005926 +3326 -0.3854416934716288 0.1265833499958028 0.2978568378963167 +3327 -0.4236277956484429 0.1399444555696156 0.328200854892936 +3328 -0.4618138978245811 0.1533055611268147 0.3585448718903689 +3329 -0.1879267778952426 0.09797662793467542 0.1410808091975076 +3330 -0.2269359306605198 0.1204517717063721 0.1720568191517544 +3331 -0.265945083425138 0.142926915466263 0.2030328291080125 +3332 -0.3049542361890976 0.1654020592143483 0.2340088390662817 +3333 -0.3439633889525678 0.1878772029507254 0.2649848490266969 +3334 -0.3829725417153803 0.2103523466752975 0.2959608589891243 +3335 -0.4219816944776166 0.2328274903881114 0.3269368689536284 +3336 -0.4609908472391709 0.2553026340891063 0.3579128789201252 +3337 -0.1786189882574389 0.1339301329287712 0.1339301327496001 +3338 -0.2187916147258593 0.1657999774429608 0.1657999772544607 +3339 -0.2589642411940719 0.1976698219516514 0.1976698217628672 +3340 -0.2991368676620764 0.2295396664548434 0.2295396662748197 +3341 -0.3393094941300479 0.2614095109526753 0.261409510790457 +3342 -0.3794821205978127 0.2932793554450088 0.2932793553096412 +3343 -0.4196547470654551 0.3251491999319118 0.3251491998324391 +3344 -0.4598273735328657 0.3570190444132968 0.3570190443587643 +3345 0.1786189882624712 0.1339301329125886 -0.1339301327543076 +3346 0.2187916147298547 0.1657999774248649 -0.1657999772590188 +3347 0.2589642411971469 0.1976698219327668 -0.1976698217671724 +3348 0.2991368676643475 0.2295396664362945 -0.2295396662787686 +3349 0.3393094941316317 0.2614095109355867 -0.261409510793946 +3350 0.3794821205988261 0.293279355430506 -0.2932793553125674 +3351 0.4196547470660139 0.3251491999211181 -0.3251491998346986 +3352 0.459827373533087 0.3570190444073376 -0.3570190443602534 +3353 0.1879267779038964 0.09797662789570138 -0.1410808092055054 +3354 0.2269359306674309 0.1204517716636275 -0.1720568191594445 +3355 0.2659450834304957 0.1429269154222171 -0.2030328291152192 +3356 0.3049542361930899 0.1654020591714701 -0.2340088390728293 +3357 0.3439633889553838 0.1878772029114843 -0.2649848490324095 +3358 0.3829725417172091 0.2103523466421629 -0.2959608589938265 +3359 0.4219816944786473 0.2328274903635525 -0.3269368689571445 +3360 0.460990847239592 0.2553026340755927 -0.3579128789222792 +3361 0.194511182587112 0.05977782181452036 -0.1461367529341641 +3362 0.2326972847652691 0.07313892746601895 -0.1764807699261124 +3363 0.27088338694295 0.08650003310467951 -0.2068247869187278 +3364 0.3090694891201543 0.09986113873050223 -0.2371688039120102 +3365 0.3472555912970487 0.1132222443435451 -0.2675128209060915 +3366 0.3854416934734678 0.1265833499437507 -0.2978568379008413 +3367 0.4236277956494915 0.1399444555311463 -0.3282008548963221 +3368 0.4618138978250165 0.1533055611056964 -0.3585448718924517 +3369 0.1979287781791857 0.02009865885523243 -0.1487602214475571 +3370 0.2356876809076841 0.02453077100938748 -0.1787763048783955 +3371 0.2734465836358921 0.02896288314453996 -0.208792388309026 +3372 0.3112054863638099 0.03339499526068988 -0.2388084717394481 +3373 0.3489643890916013 0.03782710735785648 -0.2688245551697925 +3374 0.3867232918191039 0.04225921943602082 -0.29884063859993 +3375 0.4244821945463957 0.04669133149519189 -0.3288567220299228 +3376 0.4622410972733754 0.05112344353535803 -0.3588728054596894 +3377 0.1979287781985526 -0.02009865821324223 -0.1487602214868917 +3378 0.2356876809230481 -0.02453077032193062 -0.178776304914689 +3379 0.2734465836477055 -0.02896288244746666 -0.2087923883417421 +3380 0.311205486372524 -0.03339499458985047 -0.2388084717680514 +3381 0.3489643890976687 -0.03782710674910131 -0.268824555193747 +3382 0.3867232918229764 -0.04225921892519978 -0.2988406386186997 +3383 0.4244821945485255 -0.04669133111815557 -0.3288567220429718 +3384 0.4622410972742143 -0.05112344332795635 -0.3588728054664819 +3385 0.1945111826205393 -0.05977782136640513 -0.1461367530328698 +3386 0.2326972847915958 -0.0731389269856923 -0.1764807700204521 +3387 0.2708833869630111 -0.08650003261729773 -0.2068247870064235 +3388 0.3090694891347845 -0.09986113826122092 -0.2371688039907844 +3389 0.347255591307083 -0.1132222439175204 -0.2675128209736662 +3390 0.3854416934797414 -0.1265833495861386 -0.2978568379549388 +3391 0.4236277956528389 -0.1399444552671032 -0.3282008549346649 +3392 0.4618138978262729 -0.1533055609603779 -0.3585448719127622 +3393 0.1879267779279268 -0.09797662760653367 -0.1410808093425969 +3394 0.2269359306861768 -0.1204517713542291 -0.1720568192960155 +3395 0.2659450834446082 -0.1429269151086613 -0.2030328292465224 +3396 0.3049542362032214 -0.1654020588698305 -0.2340088391941169 +3397 0.3439633889621855 -0.1878772026378342 -0.2649848491389348 +3398 0.3829725417213333 -0.2103523464125756 -0.2959608590808414 +3399 0.4219816944807445 -0.2328274901941014 -0.3269368690199018 +3400 0.4609908472403149 -0.2553026339823509 -0.3579128789560317 +3401 0.1786189882573548 -0.1339301327701994 -0.1339301329094391 +3402 0.2187916147257911 -0.1657999772768766 -0.1657999774226582 +3403 0.2589642411940183 -0.1976698217858475 -0.1976698219313486 +3404 0.299136867662036 -0.2295396662971121 -0.2295396664355105 +3405 0.3393094941300184 -0.261409510810809 -0.2614095109352823 +3406 0.3794821205977934 -0.2932793553268011 -0.2932793554305263 +3407 0.4196547470654438 -0.3251491998451541 -0.3251491999213095 +3408 0.459827373532861 -0.3570190443657821 -0.3570190444075446 +3409 0.1879267779324475 0.1410808093483025 -0.09797662758237137 +3410 0.2269359306897755 0.1720568193010057 -0.1204517713277598 +3411 0.265945083447387 0.2030328292507927 -0.1429269150814463 +3412 0.3049542362052824 0.2340088391976635 -0.1654020588434309 +3413 0.3439633889636304 0.2649848491417527 -0.1878772026138111 +3414 0.3829725417222636 0.295960859082927 -0.2103523463924902 +3415 0.4219816944812628 0.3269368690212507 -0.2328274901795151 +3416 0.4609908472405231 0.3579128789566401 -0.2553026339748248 +3417 0.1997931212020242 0.1043504648394904 -0.1043504645872552 +3418 0.2373189810519956 0.1260288789796197 -0.1260288787177054 +3419 0.2748448409018692 0.1477072931132151 -0.1477072928534052 +3420 0.3123707007516444 0.1693857072402763 -0.1693857069943545 +3421 0.3498965606014844 0.1910641213608976 -0.1910641211406477 +3422 0.3874224204512279 0.2127425354749855 -0.2127425352921912 +3423 0.4249482803009532 0.2344209495825854 -0.2344209494490301 +3424 0.4624741401505577 0.2560993636836384 -0.256099363611106 +3425 0.2085409719644065 0.06421850287677729 -0.1090429163055142 +3426 0.2449733504694092 0.07702452338111736 -0.1301347739803798 +3427 0.2814057289742206 0.08983054387672026 -0.1512266316578675 +3428 0.317838107478841 0.1026365643635858 -0.1723184893379776 +3429 0.3542704859834285 0.1154425848417699 -0.1934103470208014 +3430 0.3907028644878268 0.1282486053112172 -0.2145022047062481 +3431 0.4271352429921106 0.1410546257719544 -0.2355940623943616 +3432 0.4635676214961818 0.1538606462239467 -0.2566859200850846 +3433 0.213209061287019 0.0216950126743684 -0.111544880125813 +3434 0.2490579286266326 0.02592758058139553 -0.1323239923312412 +3435 0.2849067959660738 0.03016014847504944 -0.1531031045369777 +3436 0.3207556633053421 0.03439271635532996 -0.1738822167430223 +3437 0.3566045306445934 0.03862528422225552 -0.1946613289494654 +3438 0.3924533979836731 0.0428578520758079 -0.2154404411562172 +3439 0.428302265322656 0.04709041991599591 -0.2362195533633212 +3440 0.4641511326614449 0.05132298774280827 -0.2569986655707214 +3441 0.2132090612987552 -0.02169501217865192 -0.1115448801855598 +3442 0.2490579286361672 -0.0259275800614039 -0.1323239923904353 +3443 0.2849067959736161 -0.03016014795537354 -0.1531031045936429 +3444 0.3207556633111026 -0.0343927158605609 -0.1738822167951831 +3445 0.3566045306487816 -0.03862528377698454 -0.1946613289951458 +3446 0.3924533979864996 -0.04285785170462586 -0.2154404411934415 +3447 0.4283022653243304 -0.04709041964349404 -0.2362195533901135 +3448 0.4641511326621772 -0.0513229875935774 -0.2569986655851054 +3449 0.2085409719763092 -0.06421850252920741 -0.1090429164700666 +3450 0.2449733504789225 -0.07702452301753231 -0.1301347741474552 +3451 0.281405728981602 -0.08983054351407224 -0.1512266318208683 +3452 0.3178381074843483 -0.1026365640188272 -0.172318489490306 +3453 0.3542704859873191 -0.115442584531853 -0.1934103471558596 +3454 0.3907028644903582 -0.1282486050530942 -0.2145022048174383 +3455 0.4271352429935407 -0.141054625582578 -0.2355940624750861 +3456 0.4635676214967682 -0.1538606461202691 -0.256685920128746 +3457 0.1997931211959963 -0.104350464607662 -0.1043504648375481 +3458 0.2373189810470681 -0.126028878740058 -0.1260288789785275 +3459 0.2748448408979428 -0.1477072928763843 -0.1477072931128093 +3460 0.3123707007486202 -0.1693857070166415 -0.1693857072403932 +3461 0.3498965605992634 -0.1910641211609236 -0.1910641213613736 +3462 0.3874224204497112 -0.2127425353091368 -0.2127425354756567 +3463 0.4249482803000406 -0.2344209494613267 -0.2344209495832877 +3464 0.4624741401501511 -0.2560993636174342 -0.2560993636842084 +3465 0.187926777897445 -0.1410808092184457 -0.09797662789797923 +3466 0.2269359306622101 -0.1720568191742253 -0.120451771667096 +3467 0.265945083426384 -0.2030328291308352 -0.1429269154264598 +3468 0.3049542361899666 -0.2340088390882756 -0.1654020591760704 +3469 0.3439633889531276 -0.2649848490466807 -0.1878772029160252 +3470 0.3829725417156989 -0.2959608590059177 -0.2103523466462279 +3471 0.4219816944777613 -0.3269368689660505 -0.2328274903667248 +3472 0.4609908472392099 -0.3579128789269955 -0.2553026340774552 +3473 0.1945111826216128 0.1461367530393562 -0.05977782134299536 +3474 0.2326972847924163 0.1764807700269568 -0.0731389269604111 +3475 0.2708833869636122 0.2068247870127028 -0.08650003259157421 +3476 0.3090694891352009 0.2371688039965932 -0.09986113823648488 +3477 0.347255591307348 0.2675128209787608 -0.1132222438952012 +3478 0.3854416934798893 0.2978568379590747 -0.1265833495676658 +3479 0.4236277956529034 0.328200854937598 -0.1399444552539061 +3480 0.4618138978262879 0.3585448719142482 -0.1533055609538861 +3481 0.2085409719793382 0.109042916475728 -0.06421850250421882 +3482 0.2449733504814035 0.1301347741529768 -0.07702452299076364 +3483 0.2814057289835839 0.1512266318260734 -0.08983054348697592 +3484 0.3178381074858791 0.172318489495017 -0.1026365639928556 +3485 0.354270485988447 0.1934103471599 -0.1154425845084585 +3486 0.3907028644911317 0.2145022048206315 -0.1282486050337293 +3487 0.4271352429940078 0.2355940624772549 -0.1410546255686947 +3488 0.4635676214969777 0.2566859201297134 -0.1538606461133201 +3489 0.2192265278828921 0.06759372159012428 -0.06759372134118294 +3490 0.2543232118972726 0.0799778397424761 -0.07997783948597685 +3491 0.2894198959116951 0.09236195788974673 -0.09236195763676136 +3492 0.3245165799261595 0.1047460760319357 -0.1047460757935369 +3493 0.3596132639408184 0.1171301941690975 -0.117130193956357 +3494 0.3947099479555204 0.1295143123011782 -0.1295143121251685 +3495 0.4298066319703386 0.1418984304282036 -0.1418984302999971 +3496 0.4649033159851784 0.1542825485501404 -0.1542825484808091 +3497 0.2250599695256233 0.02293007761377895 -0.06943400621416003 +3498 0.2594274733348133 0.02700826238528487 -0.08158808876153298 +3499 0.2937949771440027 0.03108644714857806 -0.09374217131155368 +3500 0.3281624809531915 0.0351646319036578 -0.1058962538642223 +3501 0.3625299847625292 0.03924281665054252 -0.1180503364195916 +3502 0.3968974885718681 0.04332100138921453 -0.1302044189776091 +3503 0.4312649923812787 0.04739918611968202 -0.1423585015383002 +3504 0.4656324961906688 0.05147737084193418 -0.1545125841016319 +3505 0.2250599695312923 -0.02293007729901796 -0.06943400629106289 +3506 0.2594274733395118 -0.02700826205973858 -0.08158808883934446 +3507 0.2937949771478057 -0.03108644682653974 -0.09374217138726751 +3508 0.3281624809561741 -0.03516463159942183 -0.1058962539348324 +3509 0.3625299847647658 -0.03924281637840225 -0.118050336482092 +3510 0.3968974885734333 -0.0433210011634632 -0.1302044190289936 +3511 0.4312649923822475 -0.04739918595461375 -0.1423585015755628 +3512 0.465632496191116 -0.05147737075184254 -0.1545125841217662 +3513 0.2192265278830142 -0.06759372136854688 -0.06759372156218507 +3514 0.2543232118973763 -0.07997783951453254 -0.0799778397132633 +3515 0.289419895911781 -0.09236195766514704 -0.09236195786064372 +3516 0.324516579926229 -0.1047460758203908 -0.1047460760043266 +3517 0.359613263940872 -0.1171301939803173 -0.1171301941443658 +3518 0.3947099479555595 -0.1295143121448733 -0.1295143122807077 +3519 0.4298066319703637 -0.1418984303140847 -0.1418984304133784 +3520 0.4649033159851907 -0.1542825484879178 -0.1542825485423441 +3521 0.2085409719631947 -0.1090429163242802 -0.06421850285007241 +3522 0.2449733504683826 -0.1301347740000462 -0.07702452335323068 +3523 0.2814057289733697 -0.1512266316774774 -0.08983054384895786 +3524 0.3178381074781559 -0.1723184893565742 -0.1026365643372536 +3525 0.3542704859829001 -0.1934103470374281 -0.1154425848181742 +3526 0.3907028644874446 -0.2145022047199477 -0.128248605291664 +3527 0.4271352429918654 -0.2355940624041776 -0.1410546257577498 +3528 0.4635676214960641 -0.2566859200900605 -0.1538606462163968 +3529 0.194511182585088 -0.1461367529478454 -0.05977782178935681 +3530 0.232697284763549 -0.1764807699406049 -0.07313892743939757 +3531 0.2708833869415189 -0.2068247869332962 -0.08650003307792298 +3532 0.3090694891189985 -0.2371688039259199 -0.09986113870493285 +3533 0.347255591296153 -0.2675128209186071 -0.1132222443204857 +3534 0.3854416934728179 -0.2978568379112276 -0.1265833499245234 +3535 0.4236277956490728 -0.3282008549038444 -0.1399444555170742 +3536 0.4618138978248144 -0.3585448718963753 -0.1533055610981016 +3537 0.1979287781948433 0.1487602214930916 -0.02009865822251116 +3538 0.2356876809199959 0.1787763049217246 -0.02453077033190337 +3539 0.2734465836452549 0.2087923883491435 -0.02896288245768925 +3540 0.3112054863706203 0.2388084717753483 -0.03339499459986892 +3541 0.3489643890962562 0.2688245552004698 -0.03782710675846167 +3542 0.3867232918219999 0.2988406386243782 -0.04225921893344871 +3543 0.4244821945479296 0.3288567220471365 -0.04669133112483871 +3544 0.462241097273944 0.3588728054686623 -0.05112344333262012 +3545 0.2132090612954537 0.111544880193228 -0.02169501218495543 +3546 0.249057928633422 0.1323239923987743 -0.02592758006801324 +3547 0.2849067959713866 0.1531031046021678 -0.03016014796204478 +3548 0.3207556633093474 0.1738822168034084 -0.03439271586704981 +3549 0.3566045306474597 0.1946613290025866 -0.03862528378304707 +3550 0.3924533979855698 0.2154404411996128 -0.04285785171001808 +3551 0.4283022653237517 0.2362195533945303 -0.04709041964797178 +3552 0.4641511326619084 0.2569986655872827 -0.05132298759689655 +3553 0.225059969525024 0.06943400631773067 -0.02293007730173817 +3554 0.259427473334263 0.08158808886751363 -0.0270082620628187 +3555 0.2937949771435091 0.09374217141552761 -0.0310864468298385 +3556 0.3281624809527618 0.1058962539617723 -0.03516463160279781 +3557 0.3625299847621707 0.1180503365063011 -0.03924281638171404 +3558 0.3968974885715884 0.1302044190490613 -0.04332100116656993 +3559 0.431264992381085 0.142358501590078 -0.04739918595737379 +3560 0.4656324961905685 0.1545125841293187 -0.0514773707541145 +3561 0.2316142965708299 0.02361213404219607 -0.02361213393368328 +3562 0.2651625094994846 0.02760506174312265 -0.02760506163215261 +3563 0.2987107224281065 0.03159798944069149 -0.03159798933188091 +3564 0.3322589353566956 0.03559091713490244 -0.03559091703286792 +3565 0.3658071482853978 0.03958384482577304 -0.03958384473513123 +3566 0.3993553612140684 0.04357677251328604 -0.04357677243865354 +3567 0.4329035741427771 0.04756970019744994 -0.04756970014344317 +3568 0.4664517870714336 0.05156262787825357 -0.05156262784948938 +3569 0.2316142965711467 -0.02361213393438957 -0.02361213403724429 +3570 0.2651625094997508 -0.02760506163276955 -0.02760506173797541 +3571 0.2987107224283255 -0.03159798933235981 -0.0315979894356205 +3572 0.3322589353568703 -0.03559091703316038 -0.03559091713017975 +3573 0.3658071482855317 -0.03958384473518864 -0.03958384482167031 +3574 0.3993553612141642 -0.04357677243842722 -0.04357677251007511 +3575 0.4329035741428381 -0.04756970014288459 -0.04756970019540249 +3576 0.4664517870714625 -0.05156262784854987 -0.0515626278776415 +3577 0.2250599695202383 -0.0694340062407868 -0.02293007760437268 +3578 0.2594274733303036 -0.08158808878952099 -0.02700826237558985 +3579 0.2937949771403109 -0.09374217133952642 -0.03108644713904181 +3580 0.3281624809502597 -0.1058962538908032 -0.03516463189472854 +3581 0.3625299847602996 -0.118050336443404 -0.03924281664266779 +3582 0.3968974885702824 -0.1302044189972766 -0.04332100138284201 +3583 0.4312649923802797 -0.1423585015524461 -0.04739918611525977 +3584 0.4656324961901985 -0.1545125841088798 -0.05147737083990978 +3585 0.2132090612831898 -0.1115448801383781 -0.02169501266217603 +3586 0.2490579286234415 -0.132323992344664 -0.02592758056885371 +3587 0.2849067959634748 -0.1531031045505394 -0.03016014846271298 +3588 0.3207556633032899 -0.1738822167560052 -0.03439271634375362 +3589 0.3566045306430425 -0.1946613289611512 -0.03862528421199438 +3590 0.3924533979825783 -0.2154404411658879 -0.04285785206741666 +3591 0.4283022653219717 -0.2362195533702583 -0.04709041991002964 +3592 0.4641511326611255 -0.2569986655742066 -0.0513229877398215 +3593 0.1979287781753853 -0.1487602214568959 -0.02009865884045853 +3594 0.2356876809045355 -0.1787763048886477 -0.02453077099382572 +3595 0.2734465836333452 -0.2087923883195847 -0.02896288312895295 +3596 0.3112054863618139 -0.2388084717497068 -0.03339499524584004 +3597 0.3489643890901059 -0.2688245551791444 -0.03782710734450645 +3598 0.3867232918180578 -0.2988406386077683 -0.04225921942493294 +3599 0.4244821945457491 -0.3288567220356406 -0.0466913314871289 +3600 0.4622410972730773 -0.3588728054626809 -0.05112344353108206 +3601 0.1979287781753881 0.1487602214568982 0.02009865884036845 +3602 0.2356876809045408 0.1787763048886516 0.02453077099359943 +3603 0.2734465836333517 0.2087923883195898 0.02896288312854453 +3604 0.3112054863618211 0.2388084717497124 0.03339499524520392 +3605 0.348964389090113 0.2688245551791501 0.03782710734359662 +3606 0.3867232918180644 0.2988406386077732 0.04225921942370353 +3607 0.4244821945457541 0.3288567220356446 0.04669133148553358 +3608 0.4622410972730804 0.3588728054626832 0.0511234435290754 +3609 0.2132090612831927 0.1115448801383798 0.02169501266208592 +3610 0.2490579286234465 0.1323239923446667 0.02592758056862749 +3611 0.2849067959634813 0.1531031045505432 0.03016014846230462 +3612 0.3207556633032974 0.1738822167560091 0.03439271634311755 +3613 0.3566045306430499 0.1946613289611552 0.03862528421108448 +3614 0.3924533979825851 0.2154404411658914 0.04285785206618727 +3615 0.4283022653219767 0.236219553370261 0.04709041990843433 +3616 0.4641511326611287 0.2569986655742084 0.05132298773781478 +3617 0.2250599695202412 0.06943400624078766 0.02293007760428264 +3618 0.2594274733303087 0.08158808878952256 0.02700826237536367 +3619 0.2937949771403172 0.09374217133952846 0.03108644713863358 +3620 0.3281624809502668 0.1058962538908054 0.03516463189409242 +3621 0.3625299847603068 0.1180503364434064 0.03924281664175797 +3622 0.3968974885702889 0.1302044189972788 0.04332100138161261 +3623 0.4312649923802847 0.1423585015524477 0.04739918611366451 +3624 0.4656324961902014 0.1545125841088809 0.05147737083790316 +3625 0.2316142965711495 0.0236121339343899 0.02361213403715419 +3626 0.2651625094997559 0.02760506163277015 0.02760506173774916 +3627 0.2987107224283321 0.0315979893323606 0.03159798943521216 +3628 0.3322589353568777 0.03559091703316116 0.03559091712954356 +3629 0.3658071482855388 0.03958384473518936 0.03958384482076031 +3630 0.3993553612141709 0.04357677243842789 0.0435767725088456 +3631 0.432903574142843 0.04756970014288506 0.04756970019380723 +3632 0.4664517870714656 0.05156262784855037 0.05156262787563487 +3633 0.2316142965708329 -0.02361213404219641 0.02361213393359317 +3634 0.2651625094994897 -0.02760506174312317 0.0276050616319263 +3635 0.2987107224281128 -0.03159798944069214 0.03159798933147254 +3636 0.3322589353567025 -0.03559091713490317 0.03559091703223172 +3637 0.3658071482854051 -0.039583844825774 0.0395838447342212 +3638 0.3993553612140752 -0.04357677251328687 0.04357677243742393 +3639 0.4329035741427824 -0.04756970019745056 0.04756970014184796 +3640 0.4664517870714368 -0.05156262787825379 0.05156262784748274 +3641 0.2250599695250269 -0.06943400631773164 0.02293007730164798 +3642 0.2594274733342681 -0.08158808886751523 0.02700826206259237 +3643 0.2937949771435155 -0.09374217141552971 0.03108644682943026 +3644 0.3281624809527691 -0.1058962539617747 0.03516463160216164 +3645 0.3625299847621782 -0.1180503365063034 0.03924281638080408 +3646 0.3968974885715948 -0.1302044190490632 0.04332100116534038 +3647 0.4312649923810896 -0.1423585015900797 0.04739918595577838 +3648 0.4656324961905715 -0.1545125841293195 0.0514773707521079 +3649 0.2132090612954566 -0.1115448801932295 0.02169501218486531 +3650 0.2490579286334271 -0.132323992398777 0.02592758006778702 +3651 0.2849067959713931 -0.1531031046021714 0.03016014796163648 +3652 0.3207556633093545 -0.1738822168034124 0.03439271586641379 +3653 0.3566045306474668 -0.1946613290025906 0.03862528378213707 +3654 0.3924533979855762 -0.2154404411996164 0.04285785170878854 +3655 0.4283022653237565 -0.236219553394533 0.04709041964637636 +3656 0.4641511326619111 -0.2569986655872841 0.05132298759488985 +3657 0.1979287781948461 -0.1487602214930938 0.02009865822242105 +3658 0.2356876809200009 -0.1787763049217284 0.02453077033167701 +3659 0.2734465836452613 -0.2087923883491485 0.02896288245728079 +3660 0.3112054863706275 -0.2388084717753539 0.03339499459923273 +3661 0.3489643890962635 -0.2688245552004754 0.03782710675755173 +3662 0.3867232918220065 -0.2988406386243831 0.04225921893221896 +3663 0.424482194547935 -0.3288567220471401 0.04669133112324342 +3664 0.4622410972739469 -0.3588728054686646 0.05112344333061339 +3665 0.1945111825850944 0.1461367529478505 0.05977782178929009 +3666 0.2326972847635604 0.1764807699406137 0.07313892743922934 +3667 0.2708833869415336 0.2068247869333075 0.08650003307761853 +3668 0.3090694891190146 0.2371688039259323 0.09986113870445798 +3669 0.3472555912961689 0.2675128209186198 0.1132222443198053 +3670 0.3854416934728324 0.2978568379112388 0.126583349923603 +3671 0.4236277956490839 0.3282008549038532 0.1399444555158791 +3672 0.4618138978248209 0.3585448718963802 0.1533055610965973 +3673 0.2085409719632013 0.1090429163242839 0.06421850285000556 +3674 0.2449733504683939 0.1301347740000526 0.07702452335306238 +3675 0.2814057289733845 0.1512266316774857 0.08983054384865337 +3676 0.3178381074781723 0.1723184893565832 0.1026365643367787 +3677 0.3542704859829159 0.1934103470374369 0.1154425848174938 +3678 0.390702864487459 0.2145022047199558 0.1282486052907436 +3679 0.4271352429918767 0.2355940624041839 0.1410546257565547 +3680 0.4635676214960707 0.2566859200900642 0.1538606462148925 +3681 0.2192265278830208 0.06759372136854913 0.06759372156211826 +3682 0.2543232118973875 0.07997783951453635 0.07997783971309499 +3683 0.2894198959117956 0.09236195766515189 0.09236195786033939 +3684 0.3245165799262451 0.1047460758203962 0.1047460760038516 +3685 0.3596132639408883 0.1171301939803227 0.1171301941436853 +3686 0.3947099479555739 0.1295143121448782 0.1295143122797873 +3687 0.4298066319703749 0.1418984303140884 0.1418984304121832 +3688 0.4649033159851971 0.1542825484879201 0.1542825485408397 +3689 0.2250599695312987 0.02293007729901879 0.06943400629099608 +3690 0.2594274733395232 0.02700826205973996 0.08158808883917616 +3691 0.2937949771478202 0.03108644682654153 0.09374217138696317 +3692 0.3281624809561903 0.03516463159942363 0.1058962539343574 +3693 0.3625299847647819 0.03924281637840399 0.1180503364814115 +3694 0.3968974885734477 0.0433210011634649 0.1302044190280732 +3695 0.4312649923822588 0.04739918595461508 0.1423585015743676 +3696 0.4656324961911223 0.05147737075184333 0.1545125841202621 +3697 0.2250599695256298 -0.02293007761377965 0.06943400621409324 +3698 0.2594274733348246 -0.02700826238528614 0.08158808876136467 +3699 0.2937949771440173 -0.03108644714857958 0.09374217131124933 +3700 0.3281624809532077 -0.03516463190365965 0.1058962538637472 +3701 0.3625299847625453 -0.03924281665054449 0.1180503364189112 +3702 0.3968974885718826 -0.04332100138921618 0.1302044189766887 +3703 0.43126499238129 -0.04739918611968327 0.1423585015371052 +3704 0.4656324961906754 -0.05147737084193481 0.1545125841001276 +3705 0.2192265278828988 -0.0675937215901264 0.06759372134111609 +3706 0.254323211897284 -0.07997783974247995 0.0799778394858085 +3707 0.2894198959117096 -0.09236195788975154 0.09236195763645708 +3708 0.3245165799261757 -0.1047460760319412 0.1047460757930619 +3709 0.3596132639408345 -0.1171301941691028 0.1171301939556766 +3710 0.3947099479555348 -0.129514312301183 0.1295143121242481 +3711 0.4298066319703497 -0.1418984304282074 0.141898430298802 +3712 0.4649033159851849 -0.1542825485501425 0.1542825484793048 +3713 0.2085409719793445 -0.1090429164757315 0.06421850250415201 +3714 0.2449733504814148 -0.1301347741529832 0.0770245229905954 +3715 0.2814057289835983 -0.1512266318260812 0.08983054348667163 +3716 0.3178381074858951 -0.1723184894950261 0.1026365639923807 +3717 0.3542704859884634 -0.1934103471599091 0.1154425845077781 +3718 0.3907028644911463 -0.2145022048206396 0.1282486050328089 +3719 0.4271352429940192 -0.235594062477261 0.1410546255674996 +3720 0.4635676214969842 -0.2566859201297168 0.1538606461118157 +3721 0.1945111826216193 -0.1461367530393613 0.05977782134292865 +3722 0.2326972847924276 -0.1764807700269657 0.07313892696024285 +3723 0.2708833869636267 -0.206824787012714 0.0865000325912698 +3724 0.309069489135217 -0.2371688039966059 0.09986113823600987 +3725 0.347255591307364 -0.2675128209787735 0.1132222438945209 +3726 0.3854416934799034 -0.297856837959086 0.1265833495667453 +3727 0.4236277956529146 -0.3282008549376065 0.1399444552527111 +3728 0.4618138978262945 -0.3585448719142532 0.1533055609523818 +3729 0.187926777897452 0.1410808092184511 0.09797662789793579 +3730 0.2269359306622225 0.1720568191742351 0.1204517716669859 +3731 0.2659450834264001 0.2030328291308477 0.1429269154262593 +3732 0.3049542361899847 0.2340088390882894 0.1654020591757565 +3733 0.3439633889531454 0.2649848490466947 0.1878772029155744 +3734 0.3829725417157147 0.2959608590059301 0.2103523466456166 +3735 0.4219816944777738 0.3269368689660603 0.23282749036593 +3736 0.4609908472392168 0.357912878927001 0.2553026340764534 +3737 0.1997931211960034 0.1043504646076659 0.1043504648375046 +3738 0.2373189810470806 0.1260288787400649 0.1260288789784174 +3739 0.2748448408979588 0.1477072928763933 0.1477072931126089 +3740 0.312370700748638 0.1693857070166514 0.1693857072400793 +3741 0.3498965605992812 0.1910641211609332 0.1910641213609224 +3742 0.3874224204497271 0.2127425353091456 0.2127425354750453 +3743 0.4249482803000531 0.2344209494613336 0.2344209495824929 +3744 0.4624741401501582 0.2560993636174385 0.2560993636832067 +3745 0.2085409719763163 0.06421850252920977 0.1090429164700231 +3746 0.2449733504789347 0.07702452301753646 0.130134774147345 +3747 0.2814057289816181 0.0898305435140775 0.1512266318206679 +3748 0.3178381074843661 0.1026365640188331 0.1723184894899919 +3749 0.3542704859873371 0.1154425845318589 0.1934103471554084 +3750 0.3907028644903742 0.1282486050530997 0.2145022048168272 +3751 0.4271352429935529 0.141054625582582 0.2355940624742911 +3752 0.4635676214967752 0.1538606461202713 0.256685920127744 +3753 0.2132090612987623 0.02169501217865263 0.1115448801855163 +3754 0.2490579286361795 0.02592758006140531 0.132323992390325 +3755 0.2849067959736324 0.03016014795537531 0.1531031045934425 +3756 0.3207556633111204 0.03439271586056296 0.1738822167948691 +3757 0.3566045306487994 0.03862528377698651 0.1946613289946948 +3758 0.3924533979865155 0.04285785170462764 0.2154404411928303 +3759 0.4283022653243426 0.04709041964349547 0.2362195533893184 +3760 0.4641511326621844 0.05132298759357815 0.2569986655841034 +3761 0.213209061287026 -0.02169501267436926 0.1115448801257695 +3762 0.2490579286266451 -0.02592758058139691 0.132323992331131 +3763 0.2849067959660898 -0.03016014847505127 0.1531031045367773 +3764 0.3207556633053596 -0.03439271635533181 0.1738822167427081 +3765 0.3566045306446112 -0.03862528422225753 0.1946613289490145 +3766 0.3924533979836891 -0.04285785207580978 0.2154404411556058 +3767 0.4283022653226684 -0.04709041991599745 0.2362195533625264 +3768 0.464151132661452 -0.05132298774280923 0.2569986655697196 +3769 0.2085409719644136 -0.0642185028767797 0.1090429163054706 +3770 0.2449733504694215 -0.07702452338112145 0.1301347739802695 +3771 0.2814057289742366 -0.08983054387672558 0.1512266316576672 +3772 0.3178381074788585 -0.1026365643635917 0.1723184893376636 +3773 0.3542704859834463 -0.1154425848417758 0.1934103470203505 +3774 0.3907028644878427 -0.1282486053112224 0.214502204705637 +3775 0.4271352429921229 -0.1410546257719585 0.2355940623935664 +3776 0.4635676214961893 -0.1538606462239492 0.2566859200840827 +3777 0.1997931212020314 -0.1043504648394943 0.1043504645872117 +3778 0.237318981052008 -0.1260288789796266 0.1260288787175952 +3779 0.2748448409018851 -0.147707293113224 0.1477072928532047 +3780 0.312370700751662 -0.1693857072402861 0.1693857069940407 +3781 0.3498965606015023 -0.1910641213609075 0.1910641211401968 +3782 0.3874224204512443 -0.2127425354749946 0.21274253529158 +3783 0.4249482803009653 -0.2344209495825924 0.2344209494482352 +3784 0.4624741401505646 -0.2560993636836424 0.2560993636101039 +3785 0.1879267779324546 -0.1410808093483081 0.09797662758232788 +3786 0.2269359306897878 -0.1720568193010154 0.1204517713276495 +3787 0.265945083447403 -0.2030328292508052 0.1429269150812457 +3788 0.3049542362053001 -0.2340088391976775 0.1654020588431168 +3789 0.3439633889636483 -0.2649848491417666 0.1878772026133602 +3790 0.3829725417222798 -0.2959608590829392 0.210352346391879 +3791 0.4219816944812753 -0.3269368690212603 0.2328274901787202 +3792 0.4609908472405302 -0.3579128789566458 0.2553026339738227 +3793 0.1786189882573596 0.1339301327702034 0.1339301329094181 +3794 0.2187916147257997 0.1657999772768834 0.1657999774226046 +3795 0.2589642411940291 0.197669821785856 0.1976698219312502 +3796 0.2991368676620482 0.2295396662971217 0.2295396664353558 +3797 0.3393094941300308 0.2614095108108185 0.261409510935059 +3798 0.3794821205978044 0.2932793553268093 0.2932793554302226 +3799 0.4196547470654521 0.3251491998451604 0.3251491999209132 +3800 0.4598273735328659 0.3570190443657858 0.3570190444070445 +3801 0.1879267779279318 0.0979766276065364 0.1410808093425759 +3802 0.2269359306861853 0.1204517713542339 0.1720568192959619 +3803 0.2659450834446193 0.1429269151086675 0.203032829246424 +3804 0.3049542362032338 0.1654020588698372 0.2340088391939623 +3805 0.3439633889621979 0.1878772026378407 0.2649848491387113 +3806 0.3829725417213441 0.2103523464125815 0.2959608590805378 +3807 0.4219816944807531 0.232827490194106 0.3269368690195056 +3808 0.46099084724032 0.2553026339823537 0.3579128789555317 +3809 0.1945111826205443 0.05977782136640666 0.1461367530328489 +3810 0.2326972847916044 0.07313892698569523 0.1764807700203984 +3811 0.2708833869630219 0.08650003261730117 0.2068247870063253 +3812 0.3090694891347969 0.09986113826122497 0.2371688039906295 +3813 0.3472555913070952 0.1132222439175246 0.2675128209734431 +3814 0.3854416934797522 0.1265833495861425 0.2978568379546352 +3815 0.4236277956528475 0.139944455267106 0.3282008549342689 +3816 0.4618138978262778 0.1533055609603797 0.3585448719122621 +3817 0.1979287781985576 0.02009865821324282 0.1487602214868708 +3818 0.2356876809230568 0.02453077032193163 0.1787763049146354 +3819 0.2734465836477164 0.02896288244746791 0.2087923883416438 +3820 0.3112054863725365 0.03339499458985183 0.2388084717678965 +3821 0.348964389097681 0.03782710674910256 0.2688245551935237 +3822 0.3867232918229875 0.04225921892520111 0.298840638618396 +3823 0.424482194548534 0.04669133111815654 0.3288567220425754 +3824 0.4622410972742192 0.0511234433279571 0.358872805465982 +3825 0.1979287781791906 -0.02009865885523294 0.1487602214475362 +3826 0.2356876809076926 -0.02453077100938829 0.1787763048783419 +3827 0.2734465836359031 -0.02896288314454114 0.2087923883089276 +3828 0.3112054863638222 -0.03339499526069109 0.238808471739293 +3829 0.3489643890916137 -0.03782710735785799 0.2688245551695692 +3830 0.3867232918191148 -0.04225921943602204 0.2988406385996262 +3831 0.4244821945464044 -0.04669133149519297 0.3288567220295268 +3832 0.4622410972733806 -0.05112344353535847 0.3588728054591893 +3833 0.194511182587117 -0.05977782181452199 0.1461367529341432 +3834 0.2326972847652777 -0.07313892746602171 0.1764807699260587 +3835 0.2708833869429609 -0.08650003310468317 0.2068247869186297 +3836 0.3090694891201666 -0.0998611387305063 0.2371688039118554 +3837 0.3472555912970608 -0.1132222443435492 0.2675128209058685 +3838 0.3854416934734789 -0.1265833499437542 0.2978568379005375 +3839 0.4236277956494997 -0.1399444555311491 0.328200854895926 +3840 0.4618138978250217 -0.1533055611056978 0.358544871891952 +3841 0.1879267779039013 -0.09797662789570401 0.1410808092054845 +3842 0.2269359306674395 -0.1204517716636322 0.1720568191593908 +3843 0.2659450834305064 -0.1429269154222231 0.2030328291151208 +3844 0.3049542361931022 -0.165402059171477 0.2340088390726743 +3845 0.3439633889553961 -0.1878772029114912 0.2649848490321862 +3846 0.3829725417172202 -0.210352346642169 0.2959608589935226 +3847 0.4219816944786555 -0.2328274903635571 0.3269368689567482 +3848 0.4609908472395969 -0.255302634075595 0.3579128789217792 +3849 0.1786189882624762 -0.1339301329125923 0.1339301327542868 +3850 0.2187916147298634 -0.1657999774248714 0.1657999772589651 +3851 0.2589642411971578 -0.1976698219327752 0.197669821767074 +3852 0.29913686766436 -0.2295396664363043 0.2295396662786136 +3853 0.3393094941316442 -0.2614095109355963 0.2614095107937228 +3854 0.379482120598837 -0.2932793554305144 0.2932793553122633 +3855 0.4196547470660225 -0.325149199921125 0.3251491998343026 +3856 0.4598273735330921 -0.3570190444073417 0.3570190443597536 +3857 -0.133930132913105 0.1786189882623153 0.1339301327542842 +3858 -0.1657999774254211 0.2187916147297391 0.1657999772590815 +3859 -0.1976698219333158 0.2589642411970655 0.1976698217672755 +3860 -0.2295396664367897 0.2991368676642947 0.2295396662788665 +3861 -0.261409510935981 0.3393094941316013 0.2614095107939927 +3862 -0.293279355430752 0.379482120598812 0.2932793553125172 +3863 -0.3251491999211698 0.4196547470660105 0.3251491998345054 +3864 -0.3570190444071471 0.4598273735330883 0.3570190443598719 +3865 -0.1410808093464639 0.1879267779331763 0.09797662758292669 +3866 -0.1720568192989396 0.2269359306903763 0.1204517713283348 +3867 -0.2030328292486175 0.2659450834478705 0.1429269150819715 +3868 -0.2340088391954976 0.3049542362056587 0.1654020588438369 +3869 -0.2649848491397149 0.3439633889639107 0.1878772026140284 +3870 -0.2959608590811353 0.3829725417224581 0.2103523463924493 +3871 -0.3269368690198234 0.4219816944813821 0.2328274901791466 +3872 -0.357912878955696 0.4609908472405776 0.2553026339740591 +3873 -0.1461367530351666 0.194511182623553 0.05977782134381168 +3874 -0.1764807700222698 0.2326972847940169 0.07313892696121946 +3875 -0.2068247870078027 0.2708833869649013 0.08650003259228178 +3876 -0.2371688039917647 0.3090694891362055 0.09986113823699891 +3877 -0.2675128209742882 0.3472555913080966 0.1132222438954287 +3878 -0.2978568379552423 0.3854416934804087 0.1265833495675135 +3879 -0.3282008549346899 0.4236277956532221 0.1399444552532816 +3880 -0.3585448719125494 0.4618138978264338 0.1533055609526962 +3881 -0.1487602214865676 0.1979287781981193 0.02009865822306478 +3882 -0.1787763049144294 0.2356876809227029 0.02453077033248691 +3883 -0.208792388341528 0.2734465836474385 0.0289628824581865 +3884 -0.2388084717678635 0.3112054863723258 0.03339499460016364 +3885 -0.2688245551935663 0.3489643890975293 0.03782710675843745 +3886 -0.2988406386185073 0.3867232918228866 0.04225921893298898 +3887 -0.3288567220427485 0.4244821945484752 0.04669133112382731 +3888 -0.3588728054662088 0.4622410972741942 0.05112344333094054 +3889 -0.1487602214480234 0.1979287781798366 -0.02009865884062014 +3890 -0.1787763048787323 0.235687680908209 -0.02453077099367784 +3891 -0.2087923883092437 0.2734465836363037 -0.02896288312857814 +3892 -0.2388084717395576 0.3112054863641209 -0.03339499524532114 +3893 -0.2688245551698042 0.3489643890918246 -0.03782710734392604 +3894 -0.2988406385998546 0.3867232918192522 -0.04225921942437366 +3895 -0.3288567220297705 0.4244821945464821 -0.04669133148667329 +3896 -0.3588728054594711 0.4622410972734123 -0.05112344353081308 +3897 -0.1461367529365861 0.1945111825902841 -0.05977782179072595 +3898 -0.1764807699280379 0.2326972847678143 -0.07313892744026365 +3899 -0.2068247869202046 0.270883386944934 -0.08650003307838081 +3900 -0.2371688039130865 0.3090694891216432 -0.09986113870507742 +3901 -0.2675128209068154 0.347255591298108 -0.1132222443204116 +3902 -0.2978568379012607 0.3854416934741638 -0.1265833499243256 +3903 -0.3282008548964849 0.4236277956498897 -0.1399444555168473 +3904 -0.3585448718924065 0.4618138978251829 -0.1533055610979409 +3905 -0.1410808092048001 0.1879267779028004 -0.09797662790063935 +3906 -0.172056819159007 0.2269359306665554 -0.1204517716690492 +3907 -0.2030328291149931 0.2659450834298165 -0.1429269154278129 +3908 -0.2340088390727586 0.3049542361925837 -0.1654020591769303 +3909 -0.2649848490324382 0.3439633889550265 -0.1878772029164993 +3910 -0.2959608589938979 0.3829725417169769 -0.2103523466464228 +3911 -0.3269368689572026 0.4219816944785159 -0.2328274903667477 +3912 -0.357912878922268 0.4609908472395385 -0.2553026340774133 +3913 -0.1339301327542985 0.1786189882623068 -0.1339301329131193 +3914 -0.1657999772591217 0.2187916147297239 -0.1657999774254613 +3915 -0.1976698217673533 0.2589642411970461 -0.1976698219333936 +3916 -0.2295396662789933 0.2991368676642732 -0.2295396664369166 +3917 -0.2614095107941805 0.3393094941315796 -0.2614095109361685 +3918 -0.2932793553127773 0.3794821205987926 -0.2932793554310125 +3919 -0.32514919983485 0.4196547470659954 -0.3251491999215142 +3920 -0.3570190443603119 0.4598273735330793 -0.3570190444075877 +3921 -0.09797662790060452 0.1879267779028105 0.1410808092047901 +3922 -0.1204517716689579 0.226935930666573 0.1720568191589764 +3923 -0.1429269154276433 0.2659450834298392 0.2030328291149308 +3924 -0.1654020591766606 0.304954236192609 0.2340088390726538 +3925 -0.187877202916108 0.3439633889550521 0.2649848490322802 +3926 -0.2103523466458878 0.3829725417169995 0.2959608589936759 +3927 -0.2328274903660477 0.4219816944785336 0.3269368689569055 +3928 -0.2553026340765266 0.4609908472395483 0.357912878921885 +3929 -0.1043504648403625 0.1997931212017817 0.1043504645873272 +3930 -0.1260288789805362 0.2373189810518075 0.1260288787179243 +3931 -0.1477072931141077 0.2748448409017284 0.1477072928536822 +3932 -0.1693857072410767 0.3123707007515444 0.1693857069946014 +3933 -0.1910641213615374 0.3498965606014185 0.1910641211407756 +3934 -0.2127425354753967 0.3874224204511886 0.2127425352921115 +3935 -0.2344209495826996 0.4249482803009338 0.234420949448655 +3936 -0.2560993636833875 0.4624741401505512 0.2560993636103462 +3937 -0.1090429164722843 0.2085409719805068 0.06421850250483874 +3938 -0.1301347741492288 0.2449733504823796 0.0770245229914592 +3939 -0.1512266318222162 0.2814057289843808 0.08983054348763736 +3940 -0.1723184894912461 0.3178381074865096 0.1026365639933732 +3941 -0.1934103471564105 0.3542704859889253 0.1154425845087225 +3942 -0.2145022048176186 0.39070286449147 0.1282486050336298 +3943 -0.2355940624749142 0.4271352429942205 0.1410546255681222 +3944 -0.25668592012824 0.4635676214970769 0.1538606461121644 +3945 -0.1115448801853623 0.2132090612983629 0.02169501218552355 +3946 -0.1323239923902674 0.2490579286358481 0.02592758006866087 +3947 -0.153103104593479 0.2849067959733635 0.03016014796264076 +3948 -0.1738822167949969 0.3207556633109091 0.03439271586746337 +3949 -0.1946613289949115 0.3566045306486406 0.03862528378314714 +3950 -0.2154404411931335 0.3924533979864041 0.04285785170967367 +3951 -0.2362195533897056 0.4283022653242735 0.0470904196470518 +3952 -0.256998665584572 0.4641511326621522 0.05132298759527001 +3953 -0.1115448801261276 0.2132090612877182 -0.02169501266229105 +3954 -0.1323239923314309 0.2490579286272116 -0.02592758056862148 +3955 -0.1531031045370472 0.2849067959665416 -0.03016014846222866 +3956 -0.1738822167429766 0.3207556633057081 -0.03439271634311239 +3957 -0.1946613289493095 0.3566045306448672 -0.03862528421129112 +3958 -0.2154404411559561 0.3924533979838641 -0.04285785206674665 +3959 -0.2362195533629597 0.4283022653227743 -0.04709041990948776 +3960 -0.2569986655702645 0.4641511326614993 -0.05132298773950314 +3961 -0.1090429163078225 0.2085409719687582 -0.06421850285150568 +3962 -0.1301347739822442 0.2449733504729882 -0.07702452335411696 +3963 -0.1512266316593176 0.2814057289770925 -0.08983054384940231 +3964 -0.1723184893390431 0.3178381074810708 -0.1026365643373615 +3965 -0.1934103470215121 0.354270485985082 -0.1154425848180503 +3966 -0.2145022047066338 0.3907028644889685 -0.1282486052914134 +3967 -0.235594062394452 0.4271352429928065 -0.1410546257574775 +3968 -0.2566859200849098 0.4635676214964973 -0.1538606462162083 +3969 -0.1043504645873556 0.1997931212017706 -0.1043504648403907 +3970 -0.1260288787180003 0.2373189810517883 -0.1260288789806123 +3971 -0.1477072928538257 0.2748448409017036 -0.147707293114251 +3972 -0.1693857069948317 0.3123707007515168 -0.1693857072413071 +3973 -0.1910641211411125 0.3498965606013908 -0.1910641213618743 +3974 -0.2127425352925748 0.3874224204511638 -0.2127425354758596 +3975 -0.2344209494492634 0.4249482803009141 -0.2344209495833081 +3976 -0.2560993636111202 0.4624741401505402 -0.2560993636841611 +3977 -0.09797662758296152 0.1879267779331662 -0.1410808093464739 +3978 -0.1204517713284262 0.2269359306903586 -0.1720568192989703 +3979 -0.1429269150821411 0.2659450834478478 -0.2030328292486798 +3980 -0.1654020588441064 0.3049542362056334 -0.2340088391956023 +3981 -0.1878772026144197 0.3439633889638851 -0.2649848491398727 +3982 -0.2103523463929839 0.382972541722435 -0.2959608590813575 +3983 -0.2328274901798464 0.4219816944813644 -0.3269368690201205 +3984 -0.2553026339749456 0.4609908472405669 -0.3579128789560787 +3985 -0.05977782179066982 0.194511182590293 0.146136752936578 +3986 -0.07313892744011979 0.23269728476783 0.1764807699280122 +3987 -0.08650003307811754 0.2708833869449543 0.2068247869201521 +3988 -0.0998611387046632 0.3090694891216658 0.2371688039129977 +3989 -0.113222244319815 0.3472555912981306 0.2675128209066809 +3990 -0.1265833499235146 0.3854416934741837 0.2978568379010711 +3991 -0.139944455515791 0.4236277956499055 0.3282008548962307 +3992 -0.153305561096607 0.4618138978251919 0.3585448718920788 +3993 -0.06421850285145839 0.2085409719687679 0.1090429163077985 +3994 -0.07702452335399436 0.2449733504730053 0.1301347739821794 +3995 -0.08983054384917619 0.2814057289771143 0.1512266316591954 +3996 -0.1026365643370039 0.3178381074810953 0.1723184893388464 +3997 -0.1154425848175329 0.3542704859851065 0.1934103470212241 +3998 -0.1282486052907082 0.3907028644889906 0.2145022047062374 +3999 -0.1410546257565564 0.4271352429928236 0.235594062393931 +4000 -0.153860646215043 0.4635676214965072 0.2566859200842467 +4001 -0.06759372156381296 0.2192265278883166 0.06759372134281946 +4002 -0.07997783971454503 0.2543232119017987 0.0799778394872219 +4003 -0.09236195786157628 0.2894198959153859 0.09236195763760266 +4004 -0.1047460760049065 0.3245165799290777 0.1047460757939615 +4005 -0.1171301941445897 0.3596132639430269 0.1171301939563524 +4006 -0.1295143122805726 0.3947099479570825 0.1295143121247218 +4007 -0.1418984304128808 0.4298066319713171 0.1418984302990959 +4008 -0.1542825485414808 0.4649033159856362 0.1542825484794408 +4009 -0.06943400629100396 0.2250599695310698 0.02293007730227314 +4010 -0.08158808883927832 0.2594274733393302 0.02700826206311249 +4011 -0.0937421713871618 0.2937949771476612 0.031086446829853 +4012 -0.1058962539346545 0.3281624809560627 0.03516463160249461 +4013 -0.1180503364818092 0.3625299847646841 0.03924281638105523 +4014 -0.1302044190285736 0.3968974885733778 0.04332100116551701 +4015 -0.142358501574973 0.4312649923822142 0.04739918595588864 +4016 -0.1545125841209743 0.4656324961911014 0.05147737075215916 +4017 -0.06943400621427234 0.2250599695262348 -0.02293007760499742 +4018 -0.08158808876153092 0.2594274733353257 -0.02700826237611332 +4019 -0.09374217131143658 0.2937949771444225 -0.03108644713947057 +4020 -0.1058962538639895 0.3281624809535252 -0.0351646318950694 +4021 -0.1180503364192423 0.3625299847627835 -0.03924281664292731 +4022 -0.1302044189771429 0.3968974885720489 -0.04332100138302673 +4023 -0.1423585015377161 0.431264992381393 -0.04739918611537629 +4024 -0.1545125841009297 0.4656324961907232 -0.05147737083996479 +4025 -0.06759372134285968 0.219226527888308 -0.06759372156385324 +4026 -0.07997783948732662 0.2543232119017836 -0.07997783971464958 +4027 -0.09236195763779576 0.2894198959153663 -0.09236195786176929 +4028 -0.1047460757942674 0.324516579929056 -0.1047460760052125 +4029 -0.1171301939567953 0.3596132639430054 -0.1171301941450325 +4030 -0.1295143121253258 0.3947099479570633 -0.1295143122811764 +4031 -0.1418984302998851 0.4298066319713021 -0.1418984304136698 +4032 -0.1542825484804395 0.4649033159856277 -0.1542825485424794 +4033 -0.06421850250488596 0.2085409719804971 -0.1090429164723082 +4034 -0.07702452299158183 0.2449733504823626 -0.1301347741492934 +4035 -0.08983054348786337 0.2814057289843584 -0.1512266318223383 +4036 -0.1026365639937309 0.3178381074864851 -0.1723184894914429 +4037 -0.1154425845092399 0.3542704859889008 -0.1934103471566985 +4038 -0.1282486050343351 0.3907028644914484 -0.2145022048180148 +4039 -0.1410546255690433 0.4271352429942034 -0.2355940624754352 +4040 -0.15386064611333 0.4635676214970675 -0.2566859201289029 +4041 -0.05977782134386787 0.194511182623544 -0.1461367530351748 +4042 -0.07313892696136336 0.2326972847940013 -0.1764807700222955 +4043 -0.0865000325925451 0.2708833869648809 -0.2068247870078552 +4044 -0.09986113823741308 0.309069489136183 -0.2371688039918536 +4045 -0.1132222438960253 0.3472555913080738 -0.2675128209744226 +4046 -0.1265833495683244 0.3854416934803885 -0.2978568379554319 +4047 -0.1399444552543382 0.4236277956532066 -0.3282008549349439 +4048 -0.1533055609540301 0.4618138978264248 -0.3585448719128768 +4049 -0.02009865884054275 0.1979287781798419 0.1487602214480142 +4050 -0.0245307709934815 0.2356876809082183 0.178776304878707 +4051 -0.02896288312822134 0.2734465836363157 0.2087923883091948 +4052 -0.03339499524476244 0.311205486364134 0.2388084717394777 +4053 -0.03782710734312415 0.348964389091838 0.2688245551696866 +4054 -0.04225921942328688 0.3867232918192641 0.2988406385996915 +4055 -0.04669133148526019 0.4244821945464912 0.3288567220295548 +4056 -0.05112344352903191 0.4622410972734177 0.358872805459196 +4057 -0.02169501266222487 0.2132090612877244 0.1115448801261056 +4058 -0.0259275805684524 0.2490579286272223 0.1323239923313736 +4059 -0.03016014846191991 0.2849067959665555 0.153103104536941 +4060 -0.03439271634262747 0.3207556633057237 0.1738822167428079 +4061 -0.03862528421059331 0.3566045306448827 0.1946613289490646 +4062 -0.04285785206579942 0.3924533979838783 0.2154404411556215 +4063 -0.04709041990825395 0.4283022653227848 0.2362195533625221 +4064 -0.05132298773794619 0.4641511326615055 0.2569986655697102 +4065 -0.02293007760494096 0.2250599695262404 0.0694340062142372 +4066 -0.0270082623759688 0.2594274733353353 0.0815880887614409 +4067 -0.0310864471392066 0.293794977144435 0.0937421713112719 +4068 -0.0351646318946543 0.3281624809535392 0.1058962538637303 +4069 -0.03924281664232966 0.3625299847627972 0.1180503364188692 +4070 -0.04332100138221523 0.3968974885720614 0.1302044189766358 +4071 -0.04739918611431911 0.4312649923814026 0.1423585015370557 +4072 -0.05147737083863051 0.4656324961907287 0.1545125841000959 +4073 -0.02361213403725531 0.2316142965712084 0.02361213393357876 +4074 -0.02760506173795095 0.2651625094998054 0.02760506163186563 +4075 -0.03159798943552151 0.2987107224283728 0.03159798933137914 +4076 -0.03559091712996705 0.33225893535691 0.03559091703211949 +4077 -0.03958384482130472 0.3658071482855635 0.03958384473410405 +4078 -0.04357677250951759 0.3993553612141882 0.04357677243731536 +4079 -0.0475697001946135 0.4329035741428543 0.04756970014176194 +4080 -0.05156262787658199 0.4664517870714709 0.0515626278474329 +4081 -0.02361213393362731 0.2316142965712052 -0.02361213403730374 +4082 -0.02760506163198851 0.2651625094997997 -0.02760506173807384 +4083 -0.03159798933160236 0.2987107224283654 -0.0315979894357447 +4084 -0.03559091703246901 0.3322589353569019 -0.03559091713031646 +4085 -0.03958384473460542 0.3658071482855554 -0.0395838448218062 +4086 -0.04357677243799493 0.3993553612141809 -0.04357677251019701 +4087 -0.04756970014264519 0.4329035741428487 -0.04756970019549688 +4088 -0.05156262784854602 0.4664517870714678 -0.05156262787769533 +4089 -0.02293007730232971 0.2250599695310643 -0.06943400629103919 +4090 -0.02700826206325706 0.2594274733393204 -0.08158808883936844 +4091 -0.03108644683011701 0.2937949771476488 -0.09374217138732654 +4092 -0.03516463160290974 0.3281624809560491 -0.1058962539349136 +4093 -0.03924281638165278 0.3625299847646706 -0.1180503364821825 +4094 -0.04332100116632868 0.3968974885733651 -0.1302044190290806 +4095 -0.04739918595694581 0.4312649923822049 -0.1423585015756333 +4096 -0.05147737075349328 0.4656324961910958 -0.154512584121808 +4097 -0.02169501218558975 0.2132090612983568 -0.1115448801853841 +4098 -0.02592758006882994 0.2490579286358372 -0.1323239923903247 +4099 -0.03016014796294945 0.2849067959733496 -0.1531031045935851 +4100 -0.03439271586794843 0.3207556633108938 -0.1738822167951657 +4101 -0.03862528378384497 0.3566045306486253 -0.1946613289951565 +4102 -0.0428578517106212 0.39245339798639 -0.2154404411934678 +4103 -0.0470904196482855 0.4283022653242629 -0.2362195533901432 +4104 -0.05132298759682685 0.4641511326621462 -0.2569986655851265 +4105 -0.02009865822314229 0.197928778198114 -0.1487602214865768 +4106 -0.02453077033268333 0.2356876809226935 -0.1787763049144548 +4107 -0.0289628824585433 0.2734465836474264 -0.2087923883415768 +4108 -0.03339499460072236 0.3112054863723127 -0.2388084717679431 +4109 -0.03782710675923939 0.3489643890975161 -0.2688245551936839 +4110 -0.04225921893407586 0.3867232918228746 -0.2988406386186703 +4111 -0.04669133112524051 0.4244821945484662 -0.3288567220429638 +4112 -0.05112344333272142 0.4622410972741887 -0.3588728054664839 +4113 0.02009865822314278 0.1979287781981189 0.1487602214865557 +4114 0.02453077033268426 0.235687680922702 0.178776304914401 +4115 0.02896288245854453 0.2734465836474374 0.2087923883414785 +4116 0.03339499460072368 0.3112054863723246 0.2388084717677882 +4117 0.03782710675924072 0.3489643890975286 0.2688245551934607 +4118 0.04225921893407711 0.3867232918228854 0.2988406386183665 +4119 0.04669133112524135 0.4244821945484747 0.3288567220425678 +4120 0.05112344333272219 0.4622410972741937 0.3588728054659839 +4121 0.02169501218559049 0.2132090612983639 0.1115448801853406 +4122 0.02592758006883134 0.2490579286358496 0.1323239923902144 +4123 0.03016014796295122 0.2849067959733654 0.1531031045933848 +4124 0.03439271586795021 0.3207556633109113 0.1738822167948518 +4125 0.03862528378384689 0.3566045306486433 0.1946613289947056 +4126 0.04285785171062275 0.392453397986406 0.2154404411928566 +4127 0.0470904196482869 0.4283022653242755 0.2362195533893485 +4128 0.05132298759682756 0.4641511326621532 0.2569986655841248 +4129 0.02293007730233038 0.2250599695310708 0.06943400629097236 +4130 0.0270082620632583 0.2594274733393319 0.08158808883920016 +4131 0.03108644683011864 0.2937949771476633 0.0937421713870223 +4132 0.03516463160291153 0.328162480956065 0.1058962539344386 +4133 0.0392428163816546 0.3625299847646866 0.118050336481502 +4134 0.04332100116633023 0.3968974885733796 0.1302044190281602 +4135 0.04739918595694704 0.4312649923822159 0.1423585015744386 +4136 0.05147737075349408 0.4656324961911022 0.1545125841203039 +4137 0.02361213393362754 0.2316142965712081 0.02361213403721355 +4138 0.02760506163198907 0.2651625094998047 0.02760506173784756 +4139 0.03159798933160312 0.2987107224283718 0.03159798943533642 +4140 0.03559091703246972 0.3322589353569092 0.03559091712968025 +4141 0.03958384473460636 0.3658071482855624 0.03958384482089624 +4142 0.04357677243799557 0.3993553612141876 0.0435767725089674 +4143 0.04756970014264582 0.4329035741428539 0.04756970019390179 +4144 0.0515626278485465 0.4664517870714703 0.05156262787568867 +4145 0.02361213403725488 0.2316142965712055 -0.02361213393366891 +4146 0.0276050617379504 0.2651625094998003 -0.02760506163209187 +4147 0.03159798943552088 0.298710722428366 -0.03159798933178738 +4148 0.0355909171299662 0.3322589353569028 -0.03559091703275567 +4149 0.03958384482130395 0.3658071482855562 -0.03958384473501393 +4150 0.04357677250951669 0.3993553612141817 -0.04357677243854494 +4151 0.047569700194613 0.4329035741428494 -0.04756970014335704 +4152 0.05156262787658185 0.466451787071468 -0.05156262784943948 +4153 0.02293007760494012 0.2250599695262339 -0.06943400621430405 +4154 0.0270082623759675 0.2594274733353239 -0.08158808876160915 +4155 0.03108644713920505 0.2937949771444205 -0.09374217131157615 +4156 0.03516463189465253 0.328162480953523 -0.1058962538642055 +4157 0.0392428166423279 0.3625299847627814 -0.1180503364195496 +4158 0.04332100138221351 0.3968974885720469 -0.1302044189775563 +4159 0.0473991861143178 0.4312649923813915 -0.1423585015382507 +4160 0.0514773708386298 0.4656324961907222 -0.1545125841016002 +4161 0.02169501266222399 0.2132090612877174 -0.1115448801261491 +4162 0.02592758056845106 0.2490579286272098 -0.1323239923314837 +4163 0.0301601484619182 0.2849067959665393 -0.1531031045371412 +4164 0.0343927163426254 0.3207556633057059 -0.1738822167431218 +4165 0.03862528421059122 0.356604530644865 -0.1946613289495155 +4166 0.04285785206579724 0.3924533979838622 -0.2154404411562328 +4167 0.04709041990825258 0.4283022653227725 -0.236219553363317 +4168 0.05132298773794533 0.4641511326614982 -0.2569986655707119 +4169 0.02009865884054209 0.197928778179837 -0.1487602214480352 +4170 0.02453077099348051 0.2356876809082097 -0.1787763048787608 +4171 0.02896288312822015 0.2734465836363046 -0.2087923883092932 +4172 0.03339499524476101 0.311205486364122 -0.2388084717396328 +4173 0.03782710734312264 0.3489643890918257 -0.2688245551699099 +4174 0.04225921942328553 0.3867232918192531 -0.2988406385999955 +4175 0.04669133148525909 0.4244821945464827 -0.3288567220299511 +4176 0.05112344352903139 0.4622410972734123 -0.3588728054596958 +4177 0.05977782134386946 0.1945111826235489 0.1461367530351537 +4178 0.07313892696136622 0.2326972847940097 0.1764807700222419 +4179 0.08650003259254865 0.2708833869648919 0.2068247870077568 +4180 0.09986113823741714 0.3090694891361954 0.2371688039916988 +4181 0.1132222438960293 0.3472555913080863 0.2675128209741995 +4182 0.1265833495683282 0.3854416934803996 0.2978568379551283 +4183 0.139944455254341 0.4236277956532154 0.328200854934548 +4184 0.1533055609540318 0.4618138978264297 0.3585448719123767 +4185 0.06421850250488835 0.2085409719805041 0.1090429164722648 +4186 0.07702452299158602 0.244973350482375 0.1301347741491833 +4187 0.08983054348786872 0.2814057289843748 0.151226631822138 +4188 0.1026365639937367 0.3178381074865032 0.1723184894911289 +4189 0.1154425845092458 0.3542704859889189 0.1934103471562477 +4190 0.1282486050343404 0.3907028644914642 0.2145022048174035 +4191 0.1410546255690475 0.4271352429942161 0.2355940624746403 +4192 0.1538606461133322 0.4635676214970748 0.256685920127901 +4193 0.06759372134286182 0.2192265278883144 0.06759372156378636 +4194 0.07997783948733037 0.2543232119017949 0.07997783971448141 +4195 0.09236195763780061 0.289419895915381 0.09236195786146498 +4196 0.1047460757942728 0.3245165799290722 0.1047460760047374 +4197 0.1171301939568005 0.3596132639430213 0.1171301941443521 +4198 0.1295143121253306 0.3947099479570779 0.1295143122802561 +4199 0.1418984302998888 0.4298066319713136 0.1418984304124749 +4200 0.1542825484804417 0.4649033159856341 0.154282548540975 +4201 0.06943400621427337 0.2250599695262376 0.02293007760490724 +4202 0.08158808876153265 0.2594274733353306 0.02700826237588706 +4203 0.0937421713114388 0.2937949771444291 0.03108644713906239 +4204 0.1058962538639918 0.3281624809535325 0.03516463189443329 +4205 0.1180503364192448 0.3625299847627907 0.03924281664201743 +4206 0.130204418977145 0.3968974885720555 0.04332100138179734 +4207 0.1423585015377178 0.4312649923813982 0.04739918611378108 +4208 0.1545125841009307 0.4656324961907259 0.05147737083795799 +4209 0.06943400629100305 0.225059969531067 -0.02293007730236335 +4210 0.08158808883927665 0.2594274733393251 -0.02700826206333876 +4211 0.09374217138715972 0.2937949771476548 -0.0310864468302612 +4212 0.1058962539346521 0.3281624809560555 -0.03516463160313076 +4213 0.1180503364818069 0.3625299847646768 -0.03924281638196513 +4214 0.1302044190285715 0.3968974885733713 -0.04332100116674662 +4215 0.1423585015749713 0.4312649923822093 -0.04739918595748387 +4216 0.1545125841209736 0.4656324961910985 -0.05147737075416595 +4217 0.06759372156381077 0.2192265278883101 -0.06759372134288634 +4218 0.07997783971454127 0.2543232119017874 -0.07997783948739021 +4219 0.09236195786157136 0.2894198959153715 -0.09236195763790692 +4220 0.104746076004901 0.3245165799290617 -0.1047460757944366 +4221 0.1171301941445843 0.359613263943011 -0.1171301939570328 +4222 0.1295143122805678 0.3947099479570683 -0.1295143121256424 +4223 0.1418984304128769 0.429806631971306 -0.1418984303002909 +4224 0.1542825485414787 0.4649033159856296 -0.1542825484809452 +4225 0.06421850285145608 0.2085409719687608 -0.109042916307842 +4226 0.07702452335399027 0.2449733504729929 -0.1301347739822896 +4227 0.08983054384917091 0.2814057289770983 -0.1512266316593956 +4228 0.1026365643369978 0.3178381074810775 -0.1723184893391602 +4229 0.1154425848175268 0.3542704859850886 -0.1934103470216749 +4230 0.1282486052907028 0.3907028644889746 -0.2145022047068489 +4231 0.1410546257565521 0.4271352429928113 -0.2355940623947258 +4232 0.1538606462150406 0.4635676214965 -0.2566859200852489 +4233 0.05977782179066823 0.1945111825902881 -0.146136752936599 +4234 0.07313892744011691 0.2326972847678214 -0.1764807699280658 +4235 0.08650003307811399 0.2708833869449432 -0.2068247869202503 +4236 0.0998611387046591 0.3090694891216536 -0.2371688039131525 +4237 0.1132222443198108 0.3472555912981182 -0.2675128209069042 +4238 0.1265833499235113 0.3854416934741731 -0.2978568379013747 +4239 0.1399444555157878 0.4236277956498971 -0.3282008548966271 +4240 0.1533055610966056 0.4618138978251869 -0.3585448718925792 +4241 0.0979766275829642 0.1879267779331711 0.1410808093464529 +4242 0.1204517713284309 0.226935930690367 0.1720568192989167 +4243 0.1429269150821471 0.2659450834478587 0.2030328292485814 +4244 0.1654020588441132 0.3049542362056457 0.2340088391954476 +4245 0.1878772026144265 0.3439633889638976 0.2649848491396493 +4246 0.2103523463929902 0.3829725417224464 0.2959608590810535 +4247 0.2328274901798512 0.4219816944813728 0.3269368690197246 +4248 0.2553026339749488 0.4609908472405723 0.3579128789555785 +4249 0.1043504645873595 0.1997931212017777 0.1043504648403473 +4250 0.1260288787180072 0.2373189810518006 0.1260288789805021 +4251 0.1477072928538345 0.2748448409017197 0.1477072931140505 +4252 0.1693857069948415 0.3123707007515346 0.169385707240993 +4253 0.1910641211411226 0.3498965606014086 0.1910641213614233 +4254 0.2127425352925835 0.3874224204511797 0.2127425354752483 +4255 0.2344209494492704 0.4249482803009266 0.2344209495825132 +4256 0.2560993636111242 0.4624741401505475 0.2560993636831593 +4257 0.1090429163078261 0.2085409719687648 0.06421850285143881 +4258 0.1301347739822504 0.2449733504729996 0.07702452335394877 +4259 0.1512266316593258 0.2814057289771069 0.08983054384909787 +4260 0.1723184893390519 0.317838107481087 0.1026365643368864 +4261 0.1934103470215211 0.354270485985098 0.1154425848173698 +4262 0.2145022047066417 0.3907028644889828 0.1282486052904928 +4263 0.2355940623944582 0.4271352429928179 0.1410546257562826 +4264 0.2566859200849135 0.463567621496504 0.1538606462147038 +4265 0.111544880126129 0.213209061287721 0.02169501266220092 +4266 0.1323239923314335 0.2490579286272166 0.02592758056839532 +4267 0.1531031045370507 0.2849067959665481 0.0301601484618203 +4268 0.1738822167429805 0.3207556633057153 0.03439271634247626 +4269 0.1946613289493135 0.3566045306448742 0.03862528421038117 +4270 0.2154404411559596 0.3924533979838709 0.04285785206551711 +4271 0.2362195533629626 0.4283022653227789 0.04709041990789258 +4272 0.2569986655702661 0.4641511326615024 0.05132298773749634 +4273 0.1115448801853607 0.2132090612983602 -0.02169501218561368 +4274 0.1323239923902646 0.2490579286358429 -0.0259275800688871 +4275 0.1531031045934753 0.2849067959733571 -0.03016014796304907 +4276 0.1738822167949928 0.3207556633109019 -0.03439271586809955 +4277 0.1946613289949076 0.3566045306486335 -0.03862528378405701 +4278 0.2154404411931297 0.3924533979863976 -0.04285785171090321 +4279 0.2362195533897031 0.4283022653242687 -0.04709041964864687 +4280 0.2569986655845706 0.4641511326621495 -0.05132298759727675 +4281 0.1090429164722807 0.2085409719805003 -0.06421850250490554 +4282 0.1301347741492225 0.2449733504823683 -0.07702452299162751 +4283 0.1512266318222079 0.2814057289843661 -0.08983054348794167 +4284 0.1723184894912372 0.3178381074864933 -0.1026365639938483 +4285 0.1934103471564017 0.3542704859889092 -0.1154425845094029 +4286 0.2145022048176106 0.3907028644914557 -0.1282486050345503 +4287 0.2355940624749078 0.4271352429942091 -0.1410546255693171 +4288 0.2566859201282363 0.4635676214970709 -0.1538606461136688 +4289 0.1043504648403586 0.1997931212017745 -0.1043504645873707 +4290 0.1260288789805293 0.2373189810517951 -0.1260288787180344 +4291 0.1477072931140986 0.2748448409017126 -0.1477072928538825 +4292 0.1693857072410667 0.3123707007515265 -0.1693857069949152 +4293 0.1910641213615276 0.3498965606014007 -0.1910641211412267 +4294 0.2127425354753879 0.3874224204511727 -0.2127425352927229 +4295 0.2344209495826928 0.4249482803009213 -0.2344209494494497 +4296 0.2560993636833836 0.4624741401505444 -0.2560993636113484 +4297 0.09797662790060185 0.1879267779028057 -0.1410808092048111 +4298 0.1204517716689531 0.2269359306665645 -0.1720568191590301 +4299 0.142926915427637 0.2659450834298283 -0.2030328291150292 +4300 0.1654020591766539 0.3049542361925968 -0.2340088390728088 +4301 0.1878772029161012 0.3439633889550396 -0.2649848490325035 +4302 0.210352346645882 0.3829725417169889 -0.2959608589939795 +4303 0.2328274903660432 0.4219816944785251 -0.3269368689573016 +4304 0.2553026340765238 0.4609908472395436 -0.3579128789223857 +4305 0.1339301327543023 0.1786189882623117 0.1339301329130982 +4306 0.1657999772591284 0.2187916147297325 0.1657999774254076 +4307 0.1976698217673616 0.2589642411970569 0.1976698219332952 +4308 0.2295396662790029 0.2991368676642852 0.2295396664367617 +4309 0.2614095107941896 0.3393094941315921 0.2614095109359453 +4310 0.293279355312786 0.3794821205988038 0.2932793554307086 +4311 0.3251491998348565 0.4196547470660039 0.3251491999211182 +4312 0.3570190443603162 0.4598273735330848 0.3570190444070873 +4313 0.1410808092048055 0.1879267779028075 0.09797662790059593 +4314 0.1720568191590167 0.2269359306665679 0.120451771668939 +4315 0.2030328291150056 0.2659450834298324 0.1429269154276123 +4316 0.2340088390727724 0.3049542361926015 0.1654020591766164 +4317 0.2649848490324518 0.3439633889550443 0.1878772029160483 +4318 0.2959608589939102 0.3829725417169929 0.2103523466458115 +4319 0.3269368689572122 0.4219816944785283 0.2328274903659528 +4320 0.3579128789222737 0.4609908472395455 0.2553026340764115 +4321 0.1461367529365913 0.1945111825902905 0.05977782179065912 +4322 0.1764807699280466 0.2326972847678256 0.0731389274400954 +4323 0.206824786920216 0.2708833869449486 0.08650003307807637 +4324 0.2371688039130991 0.3090694891216593 0.09986113870460223 +4325 0.267512820906828 0.3472555912981244 0.113222244319731 +4326 0.2978568379012718 0.3854416934741783 0.1265833499234052 +4327 0.3282008548964936 0.423627795649901 0.1399444555156523 +4328 0.3585448718924116 0.4618138978251894 0.1533055610964366 +4329 0.1487602214480256 0.1979287781798395 0.02009865884052997 +4330 0.1787763048787364 0.2356876809082141 0.02453077099345155 +4331 0.2087923883092488 0.2734465836363103 0.02896288312816979 +4332 0.2388084717395631 0.311205486364128 0.03339499524468494 +4333 0.26882455516981 0.3489643890918319 0.03782710734301617 +4334 0.2988406385998594 0.386723291819259 0.04225921942314416 +4335 0.3288567220297745 0.4244821945464872 0.04669133148507815 +4336 0.3588728054594736 0.4622410972734152 0.05112344352880628 +4337 0.1487602214865654 0.1979287781981165 -0.02009865822315498 +4338 0.1787763049144255 0.2356876809226977 -0.02453077033271324 +4339 0.208792388341523 0.2734465836474318 -0.02896288245859484 +4340 0.238808471767858 0.3112054863723184 -0.03339499460079979 +4341 0.2688245551935608 0.3489643890975221 -0.03782710675934728 +4342 0.2988406386185021 0.3867232918228798 -0.04225921893421863 +4343 0.3288567220427446 0.4244821945484702 -0.04669133112542251 +4344 0.3588728054662065 0.4622410972741914 -0.05112344333294731 +4345 0.1461367530351615 0.1945111826235465 -0.05977782134387857 +4346 0.1764807700222611 0.2326972847940056 -0.07313892696138778 +4347 0.2068247870077912 0.2708833869648867 -0.08650003259258621 +4348 0.2371688039917523 0.3090694891361893 -0.09986113823747397 +4349 0.2675128209742758 0.34725559130808 -0.113222243896109 +4350 0.2978568379552313 0.3854416934803945 -0.1265833495684341 +4351 0.3282008549346813 0.4236277956532113 -0.1399444552544766 +4352 0.3585448719125442 0.4618138978264271 -0.1533055609542005 +4353 0.1410808093464584 0.1879267779331692 -0.09797662758297017 +4354 0.17205681929893 0.2269359306903638 -0.1204517713284451 +4355 0.203032829248605 0.2659450834478546 -0.1429269150821719 +4356 0.2340088391954839 0.304954236205641 -0.1654020588441507 +4357 0.2649848491397011 0.3439633889638931 -0.1878772026144792 +4358 0.2959608590811228 0.3829725417224421 -0.2103523463930606 +4359 0.3269368690198141 0.4219816944813696 -0.2328274901799414 +4360 0.3579128789556906 0.4609908472405703 -0.255302633975061 +4361 0.1339301329131011 0.1786189882623104 -0.1339301327543052 +4362 0.1657999774254143 0.2187916147297307 -0.1657999772591353 +4363 0.1976698219333073 0.2589642411970546 -0.197669821767374 +4364 0.2295396664367802 0.2991368676642825 -0.2295396662790215 +4365 0.2614095109359715 0.3393094941315892 -0.261409510794216 +4366 0.2932793554307436 0.3794821205988013 -0.2932793553128211 +4367 0.325149199921163 0.4196547470660022 -0.3251491998349015 +4368 0.3570190444071436 0.4598273735330834 -0.3570190443603721 +4369 -0.1339301329316296 -0.1786189882565417 -0.1339301327489379 +4370 -0.1657999774461307 -0.2187916147251449 -0.1657999772539767 +4371 -0.1976698219549247 -0.2589642411935201 -0.1976698217625563 +4372 -0.2295396664580117 -0.2991368676616675 -0.2295396662746766 +4373 -0.2614095109555302 -0.339309494129761 -0.2614095107904764 +4374 -0.293279355447343 -0.3794821205976281 -0.2932793553098177 +4375 -0.325149199933516 -0.4196547470653519 -0.3251491998327672 +4376 -0.3570190444139634 -0.4598273735328243 -0.3570190443592386 +4377 -0.1410808093837594 -0.1879267779185344 -0.09797662757347869 +4378 -0.1720568193405762 -0.2269359306784827 -0.1204517713192157 +4379 -0.2030328292920229 -0.265945083438463 -0.1429269150734689 +4380 -0.2340088392380994 -0.3049542361984749 -0.1654020588362379 +4381 -0.2649848491789409 -0.3439633889586882 -0.187877202607621 +4382 -0.2959608591144131 -0.3829725417189345 -0.2103523463875205 +4383 -0.326936869044581 -0.4219816944792953 -0.2328274901759839 +4384 -0.3579128789693607 -0.460990847239665 -0.25530263397295 +4385 -0.146136753090984 -0.1945111825977929 -0.05977782133363015 +4386 -0.1764807700846173 -0.2326972847728575 -0.07313892695103397 +4387 -0.206824787072821 -0.2708833869479482 -0.08650003258252317 +4388 -0.2371688040555948 -0.3090694891230644 -0.09986113822809781 +4389 -0.2675128210330709 -0.3472555912983726 -0.113222243887816 +4390 -0.2978568380051182 -0.3854416934737077 -0.1265833495616198 +4391 -0.3282008549717997 -0.4236277956491491 -0.1399444552495378 +4392 -0.3585448719330336 -0.4618138978245944 -0.1533055609515329 +4393 -0.1487602215607292 -0.1979287781609131 -0.02009865821692876 +4394 -0.1787763049973344 -0.2356876808919934 -0.02453077032541668 +4395 -0.2087923884280297 -0.2734465836226984 -0.02896288245075614 +4396 -0.2388084718528152 -0.3112054863530279 -0.03339499459294711 +4397 -0.2688245552718211 -0.3489643890831459 -0.03782710675200893 +4398 -0.2988406386849186 -0.3867232918128898 -0.04225921892792237 +4399 -0.3288567220921692 -0.4244821945423383 -0.04669133112069684 +4400 -0.3588728054934925 -0.4622410972713892 -0.05112344333032021 +4401 -0.1487602215407303 -0.1979287781333355 0.02009865883802887 +4402 -0.1787763049823724 -0.2356876808698336 0.02453077099357386 +4403 -0.2087923884173821 -0.2734465836053935 0.02896288313025537 +4404 -0.2388084718457596 -0.3112054863400148 0.03339499524807346 +4405 -0.2688245552676355 -0.3489643890738615 0.0378271073470472 +4406 -0.2988406386828799 -0.3867232918067713 0.04225921942715782 +4407 -0.3288567220915555 -0.4244821945388225 0.04669133148841415 +4408 -0.3588728054935809 -0.4622410972699126 0.05112344353080442 +4409 -0.146136753048236 -0.1945111825387835 0.05977782177650044 +4410 -0.1764807700527592 -0.2326972847255296 0.07313892743047939 +4411 -0.2068247870502753 -0.2708833869110717 0.08650003307221098 +4412 -0.2371688040407844 -0.3090694890954095 0.09986113870169505 +4413 -0.2675128210244181 -0.3472555912787088 0.1132222443189897 +4414 -0.2978568380010459 -0.3854416934608049 0.1265833499240377 +4415 -0.3282008549707308 -0.4236277956417777 0.1399444555168662 +4416 -0.3585448719333905 -0.4618138978215236 0.1533055610974398 +4417 -0.1410808093353594 -0.1879267778515858 0.09797662787477016 +4418 -0.1720568193047785 -0.2269359306249838 0.1204517716495765 +4419 -0.2030328292669677 -0.2659450833969621 0.1429269154137889 +4420 -0.2340088392219269 -0.3049542361675202 0.1654020591674075 +4421 -0.2649848491697911 -0.3439633889368279 0.1878772029105299 +4422 -0.2959608591104264 -0.3829725417047172 0.2103523466430592 +4423 -0.3269368690438975 -0.4219816944712688 0.2328274903650423 +4424 -0.3579128789701198 -0.4609908472363777 0.2553026340764181 +4425 -0.1339301329025296 -0.1786189882161609 0.1339301328786108 +4426 -0.1657999774248582 -0.2187916146930477 0.1657999773989281 +4427 -0.1976698219403 -0.258964241168782 0.1976698219137676 +4428 -0.2295396664488546 -0.2991368676433636 0.2295396664231297 +4429 -0.2614095109506603 -0.3393094941169674 0.2614095109271522 +4430 -0.2932793554455807 -0.3794821205894197 0.2932793554256986 +4431 -0.3251491999336812 -0.4196547470608044 0.3251491999188345 +4432 -0.3570190444148754 -0.4598273735310128 0.3570190444064738 +4433 -0.09797662794365045 -0.187926777893241 -0.1410808091959996 +4434 -0.1204517717161646 -0.2269359306589208 -0.1720568191505947 +4435 -0.1429269154762847 -0.2659450834238982 -0.2030328291071773 +4436 -0.1654020592240106 -0.3049542361881731 -0.2340088390657473 +4437 -0.1878772029594402 -0.3439633889519152 -0.26498484902644 +4438 -0.2103523466824763 -0.3829725417149564 -0.2959608589891209 +4439 -0.2328274903931663 -0.4219816944773774 -0.3269368689538553 +4440 -0.255302634091449 -0.4609908472390735 -0.3579128789205585 +4441 -0.1043504649299912 -0.1997931211762998 -0.1043504645711504 +4442 -0.1260288790780456 -0.2373189810309553 -0.126028878702391 +4443 -0.1477072932140451 -0.2748448408850931 -0.1477072928392306 +4444 -0.1693857073379895 -0.3123707007387136 -0.1693857069816691 +4445 -0.1910641214499732 -0.3498965605919792 -0.1910641211298006 +4446 -0.2127425355499024 -0.3874224204447281 -0.2127425352835318 +4447 -0.2344209496378226 -0.4249482802970392 -0.2344209494429079 +4448 -0.2560993637136751 -0.4624741401488106 -0.2560993636078699 +4449 -0.1090429166099572 -0.2085409719339812 -0.06421850248692609 +4450 -0.130134774298321 -0.2449733504438401 -0.07702452297371958 +4451 -0.1512266319745482 -0.2814057289532069 -0.08983054347072694 +4452 -0.1723184896386386 -0.317838107462082 -0.1026365639779484 +4453 -0.1934103472906837 -0.3542704859706232 -0.1154425844954396 +4454 -0.2145022049305928 -0.3907028644786738 -0.1282486050231451 +4455 -0.2355940625584098 -0.4271352429863097 -0.1410546255610922 +4456 -0.2566859201740775 -0.4635676214934318 -0.1538606461092454 +4457 -0.1115448803708927 -0.2132090612297941 -0.02169501217479903 +4458 -0.1323239925907806 -0.249057928578749 -0.02592758005652298 +4459 -0.153103104798068 -0.2849067959269062 -0.03016014794996442 +4460 -0.1738822169927552 -0.3207556632742652 -0.03439271585512332 +4461 -0.194661329174932 -0.3566045306209819 -0.03862528377201807 +4462 -0.2154404413445091 -0.3924533979669024 -0.04285785170063074 +4463 -0.2362195535015296 -0.428302265312101 -0.04709041964096966 +4464 -0.2569986656459377 -0.4641511326564799 -0.05132298759302351 +4465 -0.1115448803580442 -0.2132090612020136 0.02169501265697193 +4466 -0.1323239925820787 -0.249057928555849 0.02592758056744653 +4467 -0.1531031047927918 -0.2849067959084844 0.03016014846411577 +4468 -0.1738822169901835 -0.3207556632599198 0.03439271634697949 +4469 -0.194661329174344 -0.3566045306103101 0.03862528421605614 +4470 -0.2154404413451838 -0.392453397959502 0.04285785207132749 +4471 -0.236219553502746 -0.4283022653075695 0.04709041991280238 +4472 -0.2569986656469748 -0.4641511326544153 0.05132298774046937 +4473 -0.1090429165831792 -0.2085409718757263 0.06421850282542733 +4474 -0.1301347742804476 -0.2449733503959428 0.07702452333554054 +4475 -0.1512266319640061 -0.2814057289147888 0.08983054383704983 +4476 -0.1723184896338549 -0.317838107432264 0.1026365643299548 +4477 -0.1934103472900853 -0.3542704859485262 0.1154425848143113 +4478 -0.2145022049326065 -0.3907028644634196 0.1282486052900643 +4479 -0.2355940625614624 -0.4271352429770186 0.1410546257572401 +4480 -0.256685920176596 -0.4635676214892261 0.1538606462158045 +4481 -0.1043504649010739 -0.1997931211126157 0.1043504647951815 +4482 -0.1260288790593146 -0.2373189809788611 0.1260288789460592 +4483 -0.147707293203647 -0.2748448408435522 0.1477072930888802 +4484 -0.1693857073340713 -0.3123707007066883 0.1693857072236443 +4485 -0.1910641214506819 -0.3498965605684324 0.1910641213504458 +4486 -0.2127425355533848 -0.387422420428624 0.2127425354691913 +4487 -0.2344209496422258 -0.42494828028734 0.2344209495799258 +4488 -0.2560993637171456 -0.4624741401444795 0.2560993636825907 +4489 -0.09797662792735262 -0.1879267778566535 0.1410808092892243 +4490 -0.1204517717061218 -0.2269359306292168 0.1720568192546439 +4491 -0.1429269154713262 -0.2659450834004179 0.2030328292156073 +4492 -0.1654020592229654 -0.3049542361702563 0.2340088391721138 +4493 -0.1878772029611374 -0.343963388938902 0.2649848491242983 +4494 -0.2103523466857453 -0.3829725417061863 0.2959608590720268 +4495 -0.2328274903968358 -0.421981694472191 0.3269368690153648 +4496 -0.2553026340943482 -0.4609908472368099 0.3579128789542276 +4497 -0.05977782185394566 -0.1945111825818576 -0.1461367529288853 +4498 -0.07313892750863443 -0.2326972847610592 -0.1764807699207018 +4499 -0.08650003314811439 -0.2708833869396738 -0.2068247869134118 +4500 -0.09986113877238553 -0.3090694891177012 -0.2371688039070148 +4501 -0.1132222443815059 -0.3472555912953075 -0.2675128209016429 +4502 -0.126583349975418 -0.3854416934723283 -0.2978568378971654 +4503 -0.1399444555541497 -0.4236277956488426 -0.3282008548936448 +4504 -0.1533055611176648 -0.4618138978247476 -0.3585448718910001 +4505 -0.06421850298688606 -0.2085409719454573 -0.1090429162931911 +4506 -0.07702452349879095 -0.244973350453831 -0.1301347739682411 +4507 -0.08983054399582821 -0.2814057289617275 -0.1512266316463007 +4508 -0.1026365644779976 -0.3178381074691461 -0.17231848932737 +4509 -0.1154425849453549 -0.3542704859762459 -0.1934103470115405 +4510 -0.128248605397845 -0.390702864482869 -0.2145022046987215 +4511 -0.1410546258354945 -0.427135242989092 -0.2355940623889562 +4512 -0.1538606462582687 -0.4635676214948159 -0.2566859200821883 +4513 -0.06759372177660558 -0.2192265278444779 -0.06759372132628089 +4514 -0.07997783994018581 -0.2543232118652775 -0.07997783947101708 +4515 -0.09236195808879458 -0.2894198958856571 -0.09236195762229288 +4516 -0.1047460762224318 -0.3245165799056167 -0.1047460757801081 +4517 -0.1171301943411512 -0.359613263925308 -0.1171301939445167 +4518 -0.1295143124448997 -0.394709947944581 -0.1295143121154652 +4519 -0.1418984305337028 -0.4298066319635079 -0.1418984302929795 +4520 -0.1542825486075271 -0.464903315981994 -0.154282548477026 +4521 -0.0694340065815017 -0.225059969465378 -0.02293007729242276 +4522 -0.08158808914606186 -0.259427473284305 -0.02700826205218285 +4523 -0.09374217169520312 -0.2937949771026015 -0.03108644681859236 +4524 -0.1058962542289256 -0.3281624809202669 -0.03516463159165109 +4525 -0.1180503367472822 -0.3625299847374504 -0.03924281637137686 +4526 -0.1302044192502204 -0.3968974885540044 -0.04332100115775214 +4527 -0.1423585017377654 -0.4312649923700003 -0.0473991859507852 +4528 -0.1545125842098846 -0.465632496185345 -0.05147737075046535 +4529 -0.06943400657739668 -0.2250599694441264 0.02293007759950379 +4530 -0.0815880891450141 -0.2594274732665556 0.02700826237423139 +4531 -0.09374217169649313 -0.2937949770881123 0.03108644714027665 +4532 -0.1058962542318339 -0.3281624809087965 0.03516463189763965 +4533 -0.118050336751089 -0.3625299847287576 0.03924281664633801 +4534 -0.1302044192542062 -0.3968974885478472 0.04332100138635427 +4535 -0.1423585017412106 -0.431264992366137 0.04739918611769699 +4536 -0.1545125842120697 -0.465632496183534 0.05147737084035486 +4537 -0.06759372176845146 -0.2192265278006499 0.06759372153900248 +4538 -0.07997783993861954 -0.2543232118287751 0.07997783969648217 +4539 -0.09236195809224701 -0.2894198958559526 0.09236195784919721 +4540 -0.1047460762293342 -0.3245165798821823 0.1047460759971476 +4541 -0.1171301943499345 -0.3596132639076162 0.117130194140387 +4542 -0.1295143124539946 -0.394709947932104 0.1295143122788623 +4543 -0.1418984305415404 -0.4298066319557174 0.141898430412599 +4544 -0.1542825486125386 -0.464903315978363 0.1542825485415639 +4545 -0.06421850297889349 -0.2085409718989416 0.1090429164308175 +4546 -0.07702452349838848 -0.2449733504153088 0.1301347741172182 +4547 -0.08983054400116915 -0.281405728930576 0.151226631798426 +4548 -0.1026365644872357 -0.3178381074447432 0.1723184894744413 +4549 -0.1154425849566439 -0.3542704859579685 0.1934103471453555 +4550 -0.1282486054093381 -0.390702864470095 0.2145022048110777 +4551 -0.1410546258453454 -0.4271352429811986 0.235594062471652 +4552 -0.153860646264631 -0.4635676214911806 0.2566859201270212 +4553 -0.05977782185008888 -0.1945111825561038 0.1461367529846803 +4554 -0.0731389275095059 -0.2326972847399109 0.1764807699829932 +4555 -0.08650003315255225 -0.2708833869227348 0.2068247869783287 +4556 -0.09986113877922792 -0.3090694891045757 0.2371688039706865 +4557 -0.1132222443895911 -0.3472555912855992 0.2675128209601986 +4558 -0.1265833499835841 -0.3854416934656412 0.2978568379467342 +4559 -0.1399444555612347 -0.4236277956447806 0.3282008549303566 +4560 -0.153305561122507 -0.4618138978229148 0.3585448719109833 +4561 -0.02009865892928433 -0.197928778175897 -0.1487602214444428 +4562 -0.02453077108896513 -0.2356876809050433 -0.1787763048753362 +4563 -0.02896288322535139 -0.2734465836338319 -0.2087923883061167 +4564 -0.03339499533844319 -0.311205486362262 -0.2388084717367847 +4565 -0.03782710742825988 -0.3489643890904985 -0.2688245551674711 +4566 -0.04225921949478216 -0.3867232918183784 -0.2988406385980455 +4567 -0.04669133153801932 -0.4244821945459798 -0.3288567220285709 +4568 -0.05112344355795946 -0.4622410972732013 -0.3588728054589656 +4569 -0.0216950128551321 -0.2132090612766042 -0.1115448801192072 +4570 -0.02592758077291597 -0.2490579286180484 -0.1323239923248471 +4571 -0.03016014866774848 -0.284906795959169 -0.1531031045309706 +4572 -0.03439271653962947 -0.3207556632999656 -0.1738822167375778 +4573 -0.03862528438857758 -0.3566045306405941 -0.1946613289447591 +4574 -0.04285785221457444 -0.3924533979809001 -0.2154404411524244 +4575 -0.04709042001762879 -0.4283022653209583 -0.2362195533606173 +4576 -0.05132298779772929 -0.4641511326606715 -0.2569986655692816 +4577 -0.02293007791211789 -0.2250599695049802 -0.0694340062063336 +4578 -0.02700826269825349 -0.2594274733175707 -0.08158808875379124 +4579 -0.03108644746131205 -0.2937949771299265 -0.09374217130415204 +4580 -0.03516463220129328 -0.3281624809420476 -0.105896253857416 +4581 -0.03924281691821511 -0.3625299847540831 -0.1180503364136361 +4582 -0.04332100161205987 -0.3968974885658846 -0.1302044189727594 +4583 -0.04739918628283597 -0.4312649923775244 -0.1423585015348119 +4584 -0.05147737093053266 -0.4656324961889088 -0.1545125840997603 +4585 -0.02361213445989828 -0.2316142965390474 -0.02361213392890479 +4586 -0.02760506217910405 -0.2651625094727869 -0.02760506162679828 +4587 -0.03159798987480167 -0.2987107224061761 -0.0315979893262858 +4588 -0.03559091754699119 -0.3322589353392145 -0.03559091702736746 +4589 -0.0395838451956901 -0.3658071482720486 -0.03958384473006059 +4590 -0.04357677282088096 -0.3993553612045332 -0.04357677243434779 +4591 -0.04756970042257201 -0.4329035741367382 -0.04756970014023761 +4592 -0.05156262800075294 -0.466451787068573 -0.05156262784771901 +4593 -0.02361213446193177 -0.2316142965310103 0.02361213403447248 +4594 -0.02760506218343112 -0.265162509466038 0.02760506173685539 +4595 -0.03159798988070418 -0.2987107224006343 0.03159798943569136 +4596 -0.03559091755375105 -0.3322589353347991 0.03559091713098046 +4597 -0.03958384520258899 -0.3658071482686781 0.03958384482273987 +4598 -0.04357677282720085 -0.3993553612021268 0.04357677251095268 +4599 -0.0475697004275948 -0.432903574135215 0.04756970019562699 +4600 -0.05156262800376027 -0.466451787067852 0.05156262787675223 +4601 -0.02293007791668579 -0.2250599694885634 0.06943400627888857 +4602 -0.02700826270783038 -0.2594274733038254 0.08158808883031418 +4603 -0.03108644747433281 -0.2937949771186755 0.09374217138085211 +4604 -0.03516463221619306 -0.3281624809331141 0.1058962539305021 +4605 -0.03924281693342908 -0.36252998474729 0.118050336479317 +4606 -0.043321001626023 -0.3968974885610555 0.1302044190272447 +4607 -0.04739918629398346 -0.4312649923744819 0.1423585015743101 +4608 -0.0514773709372995 -0.4656324961874762 0.1545125841204809 +4609 -0.02169501286076881 -0.2132090612594683 0.1115448801655438 +4610 -0.02592758078445864 -0.2490579286037845 0.1323239923748608 +4611 -0.03016014868335708 -0.2849067959475686 0.1531031045819118 +4612 -0.03439271655746436 -0.3207556632908202 0.1738822167866973 +4613 -0.03862528440679898 -0.3566045306336951 0.1946613289893069 +4614 -0.04285785223134228 -0.3924533979760387 0.2154404411896514 +4615 -0.04709042003110366 -0.4283022653179261 0.2362195533877741 +4616 -0.05132298780607097 -0.4641511326592602 0.2569986655836187 +4617 -0.02009865893308019 -0.1979287781665988 0.14876022146296 +4618 -0.02453077109656094 -0.2356876808973719 0.1787763048960046 +4619 -0.02896288323559437 -0.2734465836276544 0.2087923883276387 +4620 -0.03339499535018041 -0.3112054863574459 0.2388084717578622 +4621 -0.03782710744033847 -0.3489643890869111 0.2688245551868055 +4622 -0.04225921950604947 -0.3867232918158868 0.2988406386143393 +4623 -0.04669133154732247 -0.4244821945444517 0.3288567220405259 +4624 -0.05112344356414564 -0.4622410972725036 0.3588728054652844 +4625 0.02009865813440008 -0.1979287782020541 -0.1487602214901691 +4626 0.02453077023719872 -0.23568768092586 -0.1787763049178792 +4627 0.02896288236141217 -0.2734465836498994 -0.2087923883447532 +4628 0.03339499450704023 -0.3112054863741723 -0.2388084717707909 +4629 0.03782710667410224 -0.3489643890988431 -0.2688245551961231 +4630 0.04225921886257941 -0.3867232918237495 -0.2988406386206202 +4631 0.04669133107248033 -0.4244821945489686 -0.3288567220443444 +4632 0.05112344330379355 -0.4622410972743998 -0.3588728054672142 +4633 0.02169501199268164 -0.21320906130947 -0.1115448801923262 +4634 0.02592757986436495 -0.2490579286449987 -0.1323239923969612 +4635 0.03016014775711919 -0.28490679598072 -0.1531031045997558 +4636 0.03439271567094428 -0.3207556633166339 -0.1738822168007097 +4637 0.03862528360585869 -0.3566045306528962 -0.1946613289999132 +4638 0.04285785156184412 -0.3924533979893521 -0.2154404411972766 +4639 0.04709041953890926 -0.4283022653260767 -0.2362195533928432 +4640 0.05132298753704294 -0.4641511326629725 -0.2569986655865566 +4641 0.02293007699515195 -0.2250599695523179 -0.0694340062990096 +4642 0.02700826174097105 -0.2594274733570737 -0.08158808884718624 +4643 0.03108644650801001 -0.2937949771621428 -0.09374217139475073 +4644 0.03516463129626898 -0.3281624809675245 -0.1058962539417031 +4645 0.03924281610576556 -0.3625299847733688 -0.1180503364880963 +4646 0.04332100093648231 -0.3968974885795273 -0.1302044190338775 +4647 0.04739918578842763 -0.4312649923860715 -0.1423585015790725 +4648 0.05147737066159043 -0.4656324961929087 -0.1545125841236482 +4649 0.02361213351098383 -0.2316142966033632 -0.02361213404206792 +4650 0.02760506119083479 -0.2651625095268132 -0.02760506174336745 +4651 0.03159798889232154 -0.2987107224505555 -0.0315979894412463 +4652 0.03559091661544403 -0.3322589353745903 -0.03559091713570463 +4653 0.03958384436021935 -0.3658071482990633 -0.03958384482675961 +4654 0.04357677212663071 -0.3993553612238297 -0.04357677251439417 +4655 0.04756969991468607 -0.4329035741489597 -0.04756970019861652 +4656 0.05156262772437485 -0.4664517870743622 -0.05156262787941575 +4657 0.02361213350895102 -0.231614296611406 0.02361213393631978 +4658 0.02760506118650888 -0.2651625095335721 0.02760506163285784 +4659 0.03159798888642052 -0.2987107224561104 0.03159798933102442 +4660 0.03559091660868574 -0.3322589353790203 0.03559091703081947 +4661 0.03958384435332196 -0.3658071483024481 0.03958384473226034 +4662 0.04357677212031219 -0.3993553612262492 0.04357677243532992 +4663 0.04756969990966449 -0.4329035741504931 0.04756970014003647 +4664 0.05156262772136823 -0.4664517870750893 0.05156262784636921 +4665 0.02293007699058544 -0.2250599695687477 0.06943400622632108 +4666 0.02700826173139671 -0.2594274733708418 0.08158808877032675 +4667 0.03108644649499254 -0.2937949771734228 0.09374217131744206 +4668 0.03516463128137283 -0.3281624809764903 0.1058962538676669 +4669 0.03924281609055519 -0.3625299847801942 0.118050336421054 +4670 0.04332100092252236 -0.3968974885843858 0.1302044189775514 +4671 0.0473991857772826 -0.4312649923891368 0.1423585015371838 +4672 0.05147737065482502 -0.4656324961943545 0.154512584099919 +4673 0.02169501198704647 -0.2132090613266202 0.1115448801459025 +4674 0.02592757985282505 -0.2490579286592874 0.1323239923467271 +4675 0.03016014774151415 -0.2849067959923524 0.1531031045484137 +4676 0.03439271565311339 -0.3207556633258146 0.1738822167509623 +4677 0.03862528358764108 -0.3566045306598308 0.1946613289544633 +4678 0.04285785154507964 -0.3924533979942457 0.2154404411588269 +4679 0.04709041952543713 -0.4283022653291337 0.2362195533640966 +4680 0.05132298752870279 -0.464151132664399 0.2569986655702158 +4681 0.0200986581306053 -0.197928778211362 0.1487602214716101 +4682 0.02453077022960479 -0.2356876809335483 0.1787763048971033 +4683 0.02896288235117161 -0.2734465836560988 0.2087923883230348 +4684 0.03339499449530577 -0.311205486379013 0.2388084717494041 +4685 0.03782710666202627 -0.3489643891024554 0.2688245551763418 +4686 0.04225921885131431 -0.386723291826263 0.2988406386037186 +4687 0.04669133106317899 -0.4244821945505143 0.3288567220315969 +4688 0.05112344329760843 -0.4622410972751074 0.3588728054598955 +4689 0.05977782128059046 -0.1945111826319746 -0.1461367530428883 +4690 0.07313892689284583 -0.2326972848007635 -0.1764807700296594 +4691 0.0865000325225446 -0.2708833869701505 -0.2068247870146939 +4692 0.09986113816968656 -0.3090694891401355 -0.2371688039979915 +4693 0.1132222438343302 -0.3472555913108846 -0.2675128209796841 +4694 0.1265833495164174 -0.3854416934822333 -0.2978568379596411 +4695 0.1399444552159764 -0.4236277956542608 -0.3282008549379257 +4696 0.1533055609329707 -0.4618138978268642 -0.3585448719144555 +4697 0.06421850236945599 -0.2085409720038007 -0.1090429164869593 +4698 0.07702452284678106 -0.2449733505015242 -0.130134774163342 +4699 0.08983054334120603 -0.2814057289997297 -0.1512266318354333 +4700 0.1026365638527311 -0.3178381074984167 -0.1723184895032331 +4701 0.1154425843814119 -0.3542704859977437 -0.1934103471668331 +4702 0.1282486049271928 -0.3907028644975537 -0.2145022048261424 +4703 0.141054625490101 -0.4271352429979224 -0.2355940624812047 +4704 0.1538606460701017 -0.4635676214987516 -0.256685920131963 +4705 0.06759372113006493 -0.2192265279321401 -0.0675937215804585 +4706 0.07997783926168203 -0.2543232119382934 -0.07997783973102274 +4707 0.09236195741057249 -0.2894198959450806 -0.09236195787738347 +4708 0.1047460755767367 -0.3245165799525013 -0.1047460760195407 +4709 0.1171301937602283 -0.3596132639607081 -0.1171301941575487 +4710 0.1295143119609938 -0.3947099479695503 -0.1295143122913535 +4711 0.1418984301790593 -0.4298066319791001 -0.1418984304209814 +4712 0.1542825484143909 -0.4649033159892633 -0.1542825485463984 +4713 0.06943400592377376 -0.2250599695919237 -0.02293007761493796 +4714 0.08158808845474574 -0.2594274733903455 -0.02700826238726915 +4715 0.09374217100339316 -0.2937949771894757 -0.03108644715113952 +4716 0.105896253569716 -0.3281624809893142 -0.03516463190654905 +4717 0.1180503361537671 -0.3625299847900099 -0.03924281665351548 +4718 0.1302044187554939 -0.3968974885914156 -0.04332100139202125 +4719 0.1423585013749222 -0.4312649923936019 -0.04739918612207478 +4720 0.1545125840120182 -0.4656324961964761 -0.05147737084366512 +4721 0.06943400592788067 -0.2250599696131809 0.02293007730767656 +4722 0.08158808845579685 -0.2594274734081051 0.02700826206476818 +4723 0.09374217100210747 -0.2937949772039777 0.03108644682863886 +4724 0.1058962535668126 -0.3281624810007989 0.03516463159928838 +4725 0.1180503361499651 -0.3625299847987175 0.0392428163767345 +4726 0.1302044187515126 -0.3968974885975858 0.04332100116095983 +4727 0.1423585013714803 -0.4312649923974753 0.04739918595197272 +4728 0.1545125840098353 -0.4656324961982928 0.05147737074976225 +4729 0.06759372113822333 -0.2192265279759812 0.06759372136760342 +4730 0.07997783926325581 -0.2543232119748184 0.07997783950522111 +4731 0.09236195740712966 -0.2894198959748143 0.09236195764987054 +4732 0.1047460755698452 -0.3245165799759681 0.1047460758015514 +4733 0.1171301937514559 -0.3596132639784324 0.1171301939603175 +4734 0.1295143119519086 -0.3947099479820566 0.1295143121261158 +4735 0.1418984301712292 -0.429806631986913 0.1418984302989718 +4736 0.1542825484093837 -0.4649033159929075 0.1542825484788521 +4737 0.06421850237745327 -0.2085409720503305 0.1090429163492457 +4738 0.07702452284719186 -0.2449733505400712 0.1301347740141444 +4739 0.08983054333587578 -0.2814057290309129 0.1512266316829072 +4740 0.1026365638435049 -0.317838107522855 0.172318489355534 +4741 0.1154425843701348 -0.3542704860160561 0.1934103470321163 +4742 0.1282486049157106 -0.3907028645103595 0.2145022047125635 +4743 0.1410546254802585 -0.4271352430058409 0.2355940623969192 +4744 0.1538606460637443 -0.4635676215024012 0.2566859200851265 +4745 0.05977782128445042 -0.1945111826577381 0.1461367529870515 +4746 0.07313892689198002 -0.2326972848219287 0.1764807699672608 +4747 0.086500032518114 -0.2708833869871113 0.2068247869495805 +4748 0.09986113816285236 -0.3090694891532855 0.2371688039340103 +4749 0.1132222438262532 -0.3472555913206172 0.267512820920682 +4750 0.1265833495082586 -0.3854416934889424 0.2978568379094654 +4751 0.139944455208897 -0.4236277956583401 0.3282008549004227 +4752 0.1533055609281317 -0.4618138978287066 0.3585448718934727 +4753 0.09797662753991299 -0.1879267779427308 -0.1410808093552852 +4754 0.1204517712812149 -0.2269359306980024 -0.1720568193074057 +4755 0.1429269150334938 -0.2659450834537779 -0.2030328292565318 +4756 0.1654020587967499 -0.3049542362100571 -0.2340088392026637 +4757 0.1878772025710809 -0.3439633889670097 -0.2649848491459362 +4758 0.2103523463563897 -0.3829725417244677 -0.295960859086216 +4759 0.2328274901527233 -0.4219816944825123 -0.326936869023567 +4760 0.255302633960021 -0.4609908472410376 -0.357912878957905 +4761 0.1043504644977228 -0.1997931212272454 -0.1043504648566112 +4762 0.126028878620484 -0.237318981072628 -0.1260288789962557 +4763 0.1477072927538791 -0.2748448409183229 -0.147707293128903 +4764 0.1693857068979088 -0.3123707007643299 -0.1693857072545532 +4765 0.191064121052667 -0.3498965606108124 -0.1910641213733003 +4766 0.21274253521806 -0.3874224204576082 -0.2127425354850507 +4767 0.2344209493941332 -0.4249482803047961 -0.2344209495898499 +4768 0.2560993635808283 -0.4624741401522739 -0.256099363687639 +4769 0.1090429161701459 -0.2085409720152773 -0.06421850286948515 +4770 0.1301347738331455 -0.2449733505115164 -0.07702452337202512 +4771 0.1512266315069774 -0.2814057290082513 -0.08983054386661708 +4772 0.1723184891916416 -0.3178381075054827 -0.1026365643532613 +4773 0.1934103468872301 -0.3542704860033677 -0.1154425848320137 +4774 0.2145022045936515 -0.3907028645017502 -0.1282486053028184 +4775 0.23559406231095 -0.4271352430007063 -0.1410546257657029 +4776 0.2566859200390685 -0.4635676215001361 -0.1538606462206315 +4777 0.1115448799405953 -0.2132090613562842 -0.0216950126731057 +4778 0.1323239921309147 -0.2490579286843055 -0.02592758058098569 +4779 0.1531031043324544 -0.2849067960129922 -0.03016014847531323 +4780 0.1738822165452145 -0.320755663342345 -0.03439271635608857 +4781 0.1946613287692852 -0.3566045306725188 -0.03862528422332998 +4782 0.2154404410045768 -0.3924533980033595 -0.04285785207701911 +4783 0.236219553251133 -0.4283022653349419 -0.04709041991716514 +4784 0.2569986655088974 -0.4641511326671686 -0.05132298774375611 +4785 0.1115448799534472 -0.2132090613840706 0.02169501219075237 +4786 0.1323239921396223 -0.2490579287072154 0.02592758006960943 +4787 0.1531031043377379 -0.2849067960314269 0.03016014796034545 +4788 0.173882216547794 -0.320755663356705 0.03439271586296026 +4789 0.194661328769881 -0.356604530683205 0.03862528377747203 +4790 0.2154404410039094 -0.3924533980107732 0.04285785170386312 +4791 0.2362195532499222 -0.4283022653394835 0.04709041964214171 +4792 0.2569986655078635 -0.464151132669239 0.05132298759229707 +4793 0.1090429161969312 -0.2085409720735451 0.06421850253085028 +4794 0.1301347738510316 -0.2449733505594363 0.07702452300986735 +4795 0.1512266315175356 -0.2814057290466988 0.08983054349968564 +4796 0.1723184891964434 -0.317838107535333 0.1026365640003049 +4797 0.1934103468878465 -0.3542704860254969 0.1154425845117808 +4798 0.2145022045916543 -0.3907028645170339 0.1282486050340586 +4799 0.2355940623079099 -0.4271352430100196 0.1410546255671645 +4800 0.2566859200365574 -0.4635676215043552 0.153860646111064 +4801 0.1043504645266481 -0.1997931212909437 0.104350464632493 +4802 0.1260288786392288 -0.237318981124747 0.126028878752367 +4803 0.1477072927642953 -0.2748448409598963 0.1477072928788527 +4804 0.1693857069018468 -0.3123707007963908 0.1693857070119501 +4805 0.1910641210519781 -0.3498965606343941 0.1910641211517534 +4806 0.2127425352145957 -0.3874224204737445 0.2127425352981692 +4807 0.2344209493897442 -0.4249482803145201 0.2344209494512425 +4808 0.256099363577366 -0.4624741401566193 0.2560993636109148 +4809 0.09797662755621614 -0.1879267779793281 0.1410808092620187 +4810 0.120451771291267 -0.2269359307277233 0.1720568192032488 +4811 0.1429269150384643 -0.26594508347728 0.2030328291479053 +4812 0.1654020587978085 -0.3049542362279983 0.2340088390959878 +4813 0.1878772025693971 -0.3439633889800475 0.2649848490476313 +4814 0.2103523463531329 -0.3829725417332598 0.2959608590027024 +4815 0.2328274901490631 -0.4219816944877158 0.3269368689612655 +4816 0.255302633957127 -0.4609908472433104 0.3579128789232363 +4817 0.1339301327357701 -0.1786189882680756 -0.1339301329184865 +4818 0.1657999772384055 -0.2187916147343095 -0.1657999774306197 +4819 0.197669821745736 -0.2589642412005804 -0.1976698219382113 +4820 0.229539666257762 -0.2991368676668882 -0.2295396664412615 +4821 0.2614095107746216 -0.3393094941334076 -0.2614095109399085 +4822 0.2932793552961779 -0.3794821205999655 -0.2932793554340154 +4823 0.325149199822497 -0.4196547470666454 -0.3251491999236484 +4824 0.3570190443534926 -0.4598273735333386 -0.3570190444087206 +4825 0.1410808091674991 -0.1879267779174352 -0.09797662791013098 +4826 0.1720568191173609 -0.2269359306784365 -0.1204517716782785 +4827 0.2030328290715754 -0.265945083439208 -0.1429269154365159 +4828 0.234008839030143 -0.3049542361997498 -0.165402059184843 +4829 0.2649848489931986 -0.3439633889602313 -0.1878772029233577 +4830 0.2959608589606076 -0.3829725417204843 -0.2103523466519628 +4831 0.3269368689324352 -0.4219816944805903 -0.2328274903707051 +4832 0.3579128789085979 -0.4609908472404433 -0.2553026340795238 +4833 0.1461367528807638 -0.1945111826160376 -0.05977782180097434 +4834 0.1764807698656817 -0.2326972847889621 -0.07313892745061748 +4835 0.2068247868551749 -0.2708833869618725 -0.0865000330884438 +4836 0.2371688038492439 -0.3090694891347683 -0.09986113871445337 +4837 0.2675128208480205 -0.3472555913078158 -0.1132222443287048 +4838 0.2978568378513735 -0.3854416934808503 -0.1265833499311396 +4839 0.3282008548593665 -0.4236277956539513 -0.1399444555217863 +4840 0.3585448718719172 -0.4618138978270155 -0.1533055611006083 +4841 0.1487602213738596 -0.1979287782170398 -0.02009865884684634 +4842 0.1787763047958235 -0.2356876809389131 -0.02453077100097438 +4843 0.2087923882227371 -0.2734465836610372 -0.02896288313641684 +4844 0.2388084716546004 -0.3112054863834117 -0.03339499525317376 +4845 0.2688245550915441 -0.3489643891062009 -0.03782710735126446 +4846 0.2988406385334382 -0.3867232918292421 -0.04225921943066969 +4847 0.3288567219803457 -0.4244821945526139 -0.04669133149139895 +4848 0.3588728054321852 -0.4622410972762138 -0.05112344353343977 +4849 0.1487602213938629 -0.1979287782446233 0.02009865822556585 +4850 0.1787763048107934 -0.235687680961083 0.02453077033236458 +4851 0.2087923882333948 -0.2734465836783551 0.02896288245610115 +4852 0.2388084716616671 -0.3112054863964391 0.03339499459677526 +4853 0.2688245550957412 -0.3489643891154995 0.03782710675440622 +4854 0.298840638535487 -0.3867232918353739 0.04225921892897532 +4855 0.3288567219809672 -0.4244821945561401 0.04669133112049123 +4856 0.3588728054321012 -0.4622410972776961 0.05112344332894243 +4857 0.1461367529235218 -0.1945111826750602 0.05977782135797049 +4858 0.1764807698975573 -0.2326972848363128 0.07313892697083547 +4859 0.2068247868777432 -0.2708833869987781 0.08650003259814748 +4860 0.2371688038640796 -0.3090694891624557 0.09986113823990631 +4861 0.2675128208566982 -0.3472555913275122 0.11322224389617 +4862 0.2978568378554685 -0.385441693493782 0.1265833495668812 +4863 0.328200854860453 -0.4236277956613457 0.1399444552520676 +4864 0.3585448718715704 -0.4618138978300993 0.1533055609516931 +4865 0.1410808092159101 -0.1879267779843978 0.09797662760875252 +4866 0.1720568191531778 -0.2269359307319601 0.1204517713476974 +4867 0.2030328290966556 -0.2659450834807411 0.1429269150957951 +4868 0.2340088390463431 -0.3049542362307398 0.1654020588530458 +4869 0.2649848490023756 -0.3439633889821269 0.1878772026195469 +4870 0.2959608589646194 -0.3829725417347336 0.2103523463952018 +4871 0.3269368689331383 -0.4219816944886415 0.2328274901800572 +4872 0.3579128789078499 -0.4609908472437453 0.2553026339740523 +4873 0.1339301327648778 -0.1786189883084661 0.1339301327887717 +4874 0.1657999772596912 -0.2187916147664239 0.1657999772855609 +4875 0.1976698217603779 -0.2589642412253407 0.1976698217868033 +4876 0.229539666266938 -0.2991368676852164 0.2295396662924986 +4877 0.2614095107795106 -0.339309494146226 0.261409510802786 +4878 0.2932793552979573 -0.3794821206081962 0.2932793553175272 +4879 0.3251491998223453 -0.4196547470712103 0.3251491998367894 +4880 0.3570190443525879 -0.45982737353516 0.3570190443604858 +$EndNodes +$Elements +6318 +1 3 2 1 1 2 25 273 24 +2 3 2 1 1 24 273 274 23 +3 3 2 1 1 23 274 275 22 +4 3 2 1 1 22 275 276 21 +5 3 2 1 1 21 276 277 20 +6 3 2 1 1 20 277 278 19 +7 3 2 1 1 19 278 279 18 +8 3 2 1 1 18 279 280 17 +9 3 2 1 1 17 280 48 6 +10 3 2 1 1 25 26 281 273 +11 3 2 1 1 273 281 282 274 +12 3 2 1 1 274 282 283 275 +13 3 2 1 1 275 283 284 276 +14 3 2 1 1 276 284 285 277 +15 3 2 1 1 277 285 286 278 +16 3 2 1 1 278 286 287 279 +17 3 2 1 1 279 287 288 280 +18 3 2 1 1 280 288 47 48 +19 3 2 1 1 26 27 289 281 +20 3 2 1 1 281 289 290 282 +21 3 2 1 1 282 290 291 283 +22 3 2 1 1 283 291 292 284 +23 3 2 1 1 284 292 293 285 +24 3 2 1 1 285 293 294 286 +25 3 2 1 1 286 294 295 287 +26 3 2 1 1 287 295 296 288 +27 3 2 1 1 288 296 46 47 +28 3 2 1 1 27 28 297 289 +29 3 2 1 1 289 297 298 290 +30 3 2 1 1 290 298 299 291 +31 3 2 1 1 291 299 300 292 +32 3 2 1 1 292 300 301 293 +33 3 2 1 1 293 301 302 294 +34 3 2 1 1 294 302 303 295 +35 3 2 1 1 295 303 304 296 +36 3 2 1 1 296 304 45 46 +37 3 2 1 1 28 29 305 297 +38 3 2 1 1 297 305 306 298 +39 3 2 1 1 298 306 307 299 +40 3 2 1 1 299 307 308 300 +41 3 2 1 1 300 308 309 301 +42 3 2 1 1 301 309 310 302 +43 3 2 1 1 302 310 311 303 +44 3 2 1 1 303 311 312 304 +45 3 2 1 1 304 312 44 45 +46 3 2 1 1 29 30 313 305 +47 3 2 1 1 305 313 314 306 +48 3 2 1 1 306 314 315 307 +49 3 2 1 1 307 315 316 308 +50 3 2 1 1 308 316 317 309 +51 3 2 1 1 309 317 318 310 +52 3 2 1 1 310 318 319 311 +53 3 2 1 1 311 319 320 312 +54 3 2 1 1 312 320 43 44 +55 3 2 1 1 30 31 321 313 +56 3 2 1 1 313 321 322 314 +57 3 2 1 1 314 322 323 315 +58 3 2 1 1 315 323 324 316 +59 3 2 1 1 316 324 325 317 +60 3 2 1 1 317 325 326 318 +61 3 2 1 1 318 326 327 319 +62 3 2 1 1 319 327 328 320 +63 3 2 1 1 320 328 42 43 +64 3 2 1 1 31 32 329 321 +65 3 2 1 1 321 329 330 322 +66 3 2 1 1 322 330 331 323 +67 3 2 1 1 323 331 332 324 +68 3 2 1 1 324 332 333 325 +69 3 2 1 1 325 333 334 326 +70 3 2 1 1 326 334 335 327 +71 3 2 1 1 327 335 336 328 +72 3 2 1 1 328 336 41 42 +73 3 2 1 1 32 1 33 329 +74 3 2 1 1 329 33 34 330 +75 3 2 1 1 330 34 35 331 +76 3 2 1 1 331 35 36 332 +77 3 2 1 1 332 36 37 333 +78 3 2 1 1 333 37 38 334 +79 3 2 1 1 334 38 39 335 +80 3 2 1 1 335 39 40 336 +81 3 2 1 1 336 40 5 41 +82 3 2 1 2 1 33 337 72 +83 3 2 1 2 72 337 338 71 +84 3 2 1 2 71 338 339 70 +85 3 2 1 2 70 339 340 69 +86 3 2 1 2 69 340 341 68 +87 3 2 1 2 68 341 342 67 +88 3 2 1 2 67 342 343 66 +89 3 2 1 2 66 343 344 65 +90 3 2 1 2 65 344 64 3 +91 3 2 1 2 33 34 345 337 +92 3 2 1 2 337 345 346 338 +93 3 2 1 2 338 346 347 339 +94 3 2 1 2 339 347 348 340 +95 3 2 1 2 340 348 349 341 +96 3 2 1 2 341 349 350 342 +97 3 2 1 2 342 350 351 343 +98 3 2 1 2 343 351 352 344 +99 3 2 1 2 344 352 63 64 +100 3 2 1 2 34 35 353 345 +101 3 2 1 2 345 353 354 346 +102 3 2 1 2 346 354 355 347 +103 3 2 1 2 347 355 356 348 +104 3 2 1 2 348 356 357 349 +105 3 2 1 2 349 357 358 350 +106 3 2 1 2 350 358 359 351 +107 3 2 1 2 351 359 360 352 +108 3 2 1 2 352 360 62 63 +109 3 2 1 2 35 36 361 353 +110 3 2 1 2 353 361 362 354 +111 3 2 1 2 354 362 363 355 +112 3 2 1 2 355 363 364 356 +113 3 2 1 2 356 364 365 357 +114 3 2 1 2 357 365 366 358 +115 3 2 1 2 358 366 367 359 +116 3 2 1 2 359 367 368 360 +117 3 2 1 2 360 368 61 62 +118 3 2 1 2 36 37 369 361 +119 3 2 1 2 361 369 370 362 +120 3 2 1 2 362 370 371 363 +121 3 2 1 2 363 371 372 364 +122 3 2 1 2 364 372 373 365 +123 3 2 1 2 365 373 374 366 +124 3 2 1 2 366 374 375 367 +125 3 2 1 2 367 375 376 368 +126 3 2 1 2 368 376 60 61 +127 3 2 1 2 37 38 377 369 +128 3 2 1 2 369 377 378 370 +129 3 2 1 2 370 378 379 371 +130 3 2 1 2 371 379 380 372 +131 3 2 1 2 372 380 381 373 +132 3 2 1 2 373 381 382 374 +133 3 2 1 2 374 382 383 375 +134 3 2 1 2 375 383 384 376 +135 3 2 1 2 376 384 59 60 +136 3 2 1 2 38 39 385 377 +137 3 2 1 2 377 385 386 378 +138 3 2 1 2 378 386 387 379 +139 3 2 1 2 379 387 388 380 +140 3 2 1 2 380 388 389 381 +141 3 2 1 2 381 389 390 382 +142 3 2 1 2 382 390 391 383 +143 3 2 1 2 383 391 392 384 +144 3 2 1 2 384 392 58 59 +145 3 2 1 2 39 40 393 385 +146 3 2 1 2 385 393 394 386 +147 3 2 1 2 386 394 395 387 +148 3 2 1 2 387 395 396 388 +149 3 2 1 2 388 396 397 389 +150 3 2 1 2 389 397 398 390 +151 3 2 1 2 390 398 399 391 +152 3 2 1 2 391 399 400 392 +153 3 2 1 2 392 400 57 58 +154 3 2 1 2 40 5 49 393 +155 3 2 1 2 393 49 50 394 +156 3 2 1 2 394 50 51 395 +157 3 2 1 2 395 51 52 396 +158 3 2 1 2 396 52 53 397 +159 3 2 1 2 397 53 54 398 +160 3 2 1 2 398 54 55 399 +161 3 2 1 2 399 55 56 400 +162 3 2 1 2 400 56 7 57 +163 3 2 1 3 7 57 401 73 +164 3 2 1 3 73 401 402 74 +165 3 2 1 3 74 402 403 75 +166 3 2 1 3 75 403 404 76 +167 3 2 1 3 76 404 405 77 +168 3 2 1 3 77 405 406 78 +169 3 2 1 3 78 406 407 79 +170 3 2 1 3 79 407 408 80 +171 3 2 1 3 80 408 112 8 +172 3 2 1 3 57 58 409 401 +173 3 2 1 3 401 409 410 402 +174 3 2 1 3 402 410 411 403 +175 3 2 1 3 403 411 412 404 +176 3 2 1 3 404 412 413 405 +177 3 2 1 3 405 413 414 406 +178 3 2 1 3 406 414 415 407 +179 3 2 1 3 407 415 416 408 +180 3 2 1 3 408 416 111 112 +181 3 2 1 3 58 59 417 409 +182 3 2 1 3 409 417 418 410 +183 3 2 1 3 410 418 419 411 +184 3 2 1 3 411 419 420 412 +185 3 2 1 3 412 420 421 413 +186 3 2 1 3 413 421 422 414 +187 3 2 1 3 414 422 423 415 +188 3 2 1 3 415 423 424 416 +189 3 2 1 3 416 424 110 111 +190 3 2 1 3 59 60 425 417 +191 3 2 1 3 417 425 426 418 +192 3 2 1 3 418 426 427 419 +193 3 2 1 3 419 427 428 420 +194 3 2 1 3 420 428 429 421 +195 3 2 1 3 421 429 430 422 +196 3 2 1 3 422 430 431 423 +197 3 2 1 3 423 431 432 424 +198 3 2 1 3 424 432 109 110 +199 3 2 1 3 60 61 433 425 +200 3 2 1 3 425 433 434 426 +201 3 2 1 3 426 434 435 427 +202 3 2 1 3 427 435 436 428 +203 3 2 1 3 428 436 437 429 +204 3 2 1 3 429 437 438 430 +205 3 2 1 3 430 438 439 431 +206 3 2 1 3 431 439 440 432 +207 3 2 1 3 432 440 108 109 +208 3 2 1 3 61 62 441 433 +209 3 2 1 3 433 441 442 434 +210 3 2 1 3 434 442 443 435 +211 3 2 1 3 435 443 444 436 +212 3 2 1 3 436 444 445 437 +213 3 2 1 3 437 445 446 438 +214 3 2 1 3 438 446 447 439 +215 3 2 1 3 439 447 448 440 +216 3 2 1 3 440 448 107 108 +217 3 2 1 3 62 63 449 441 +218 3 2 1 3 441 449 450 442 +219 3 2 1 3 442 450 451 443 +220 3 2 1 3 443 451 452 444 +221 3 2 1 3 444 452 453 445 +222 3 2 1 3 445 453 454 446 +223 3 2 1 3 446 454 455 447 +224 3 2 1 3 447 455 456 448 +225 3 2 1 3 448 456 106 107 +226 3 2 1 3 63 64 457 449 +227 3 2 1 3 449 457 458 450 +228 3 2 1 3 450 458 459 451 +229 3 2 1 3 451 459 460 452 +230 3 2 1 3 452 460 461 453 +231 3 2 1 3 453 461 462 454 +232 3 2 1 3 454 462 463 455 +233 3 2 1 3 455 463 464 456 +234 3 2 1 3 456 464 105 106 +235 3 2 1 3 64 3 81 457 +236 3 2 1 3 457 81 82 458 +237 3 2 1 3 458 82 83 459 +238 3 2 1 3 459 83 84 460 +239 3 2 1 3 460 84 85 461 +240 3 2 1 3 461 85 86 462 +241 3 2 1 3 462 86 87 463 +242 3 2 1 3 463 87 88 464 +243 3 2 1 3 464 88 4 105 +244 3 2 1 4 8 89 465 112 +245 3 2 1 4 112 465 466 111 +246 3 2 1 4 111 466 467 110 +247 3 2 1 4 110 467 468 109 +248 3 2 1 4 109 468 469 108 +249 3 2 1 4 108 469 470 107 +250 3 2 1 4 107 470 471 106 +251 3 2 1 4 106 471 472 105 +252 3 2 1 4 105 472 97 4 +253 3 2 1 4 89 90 473 465 +254 3 2 1 4 465 473 474 466 +255 3 2 1 4 466 474 475 467 +256 3 2 1 4 467 475 476 468 +257 3 2 1 4 468 476 477 469 +258 3 2 1 4 469 477 478 470 +259 3 2 1 4 470 478 479 471 +260 3 2 1 4 471 479 480 472 +261 3 2 1 4 472 480 98 97 +262 3 2 1 4 90 91 481 473 +263 3 2 1 4 473 481 482 474 +264 3 2 1 4 474 482 483 475 +265 3 2 1 4 475 483 484 476 +266 3 2 1 4 476 484 485 477 +267 3 2 1 4 477 485 486 478 +268 3 2 1 4 478 486 487 479 +269 3 2 1 4 479 487 488 480 +270 3 2 1 4 480 488 99 98 +271 3 2 1 4 91 92 489 481 +272 3 2 1 4 481 489 490 482 +273 3 2 1 4 482 490 491 483 +274 3 2 1 4 483 491 492 484 +275 3 2 1 4 484 492 493 485 +276 3 2 1 4 485 493 494 486 +277 3 2 1 4 486 494 495 487 +278 3 2 1 4 487 495 496 488 +279 3 2 1 4 488 496 100 99 +280 3 2 1 4 92 93 497 489 +281 3 2 1 4 489 497 498 490 +282 3 2 1 4 490 498 499 491 +283 3 2 1 4 491 499 500 492 +284 3 2 1 4 492 500 501 493 +285 3 2 1 4 493 501 502 494 +286 3 2 1 4 494 502 503 495 +287 3 2 1 4 495 503 504 496 +288 3 2 1 4 496 504 101 100 +289 3 2 1 4 93 94 505 497 +290 3 2 1 4 497 505 506 498 +291 3 2 1 4 498 506 507 499 +292 3 2 1 4 499 507 508 500 +293 3 2 1 4 500 508 509 501 +294 3 2 1 4 501 509 510 502 +295 3 2 1 4 502 510 511 503 +296 3 2 1 4 503 511 512 504 +297 3 2 1 4 504 512 102 101 +298 3 2 1 4 94 95 513 505 +299 3 2 1 4 505 513 514 506 +300 3 2 1 4 506 514 515 507 +301 3 2 1 4 507 515 516 508 +302 3 2 1 4 508 516 517 509 +303 3 2 1 4 509 517 518 510 +304 3 2 1 4 510 518 519 511 +305 3 2 1 4 511 519 520 512 +306 3 2 1 4 512 520 103 102 +307 3 2 1 4 95 96 521 513 +308 3 2 1 4 513 521 522 514 +309 3 2 1 4 514 522 523 515 +310 3 2 1 4 515 523 524 516 +311 3 2 1 4 516 524 525 517 +312 3 2 1 4 517 525 526 518 +313 3 2 1 4 518 526 527 519 +314 3 2 1 4 519 527 528 520 +315 3 2 1 4 520 528 104 103 +316 3 2 1 4 96 6 17 521 +317 3 2 1 4 521 17 18 522 +318 3 2 1 4 522 18 19 523 +319 3 2 1 4 523 19 20 524 +320 3 2 1 4 524 20 21 525 +321 3 2 1 4 525 21 22 526 +322 3 2 1 4 526 22 23 527 +323 3 2 1 4 527 23 24 528 +324 3 2 1 4 528 24 2 104 +325 3 2 1 25 10 145 529 113 +326 3 2 1 25 113 529 530 114 +327 3 2 1 25 114 530 531 115 +328 3 2 1 25 115 531 532 116 +329 3 2 1 25 116 532 533 117 +330 3 2 1 25 117 533 534 118 +331 3 2 1 25 118 534 535 119 +332 3 2 1 25 119 535 536 120 +333 3 2 1 25 120 536 153 9 +334 3 2 1 25 145 146 537 529 +335 3 2 1 25 529 537 538 530 +336 3 2 1 25 530 538 539 531 +337 3 2 1 25 531 539 540 532 +338 3 2 1 25 532 540 541 533 +339 3 2 1 25 533 541 542 534 +340 3 2 1 25 534 542 543 535 +341 3 2 1 25 535 543 544 536 +342 3 2 1 25 536 544 154 153 +343 3 2 1 25 146 147 545 537 +344 3 2 1 25 537 545 546 538 +345 3 2 1 25 538 546 547 539 +346 3 2 1 25 539 547 548 540 +347 3 2 1 25 540 548 549 541 +348 3 2 1 25 541 549 550 542 +349 3 2 1 25 542 550 551 543 +350 3 2 1 25 543 551 552 544 +351 3 2 1 25 544 552 155 154 +352 3 2 1 25 147 148 553 545 +353 3 2 1 25 545 553 554 546 +354 3 2 1 25 546 554 555 547 +355 3 2 1 25 547 555 556 548 +356 3 2 1 25 548 556 557 549 +357 3 2 1 25 549 557 558 550 +358 3 2 1 25 550 558 559 551 +359 3 2 1 25 551 559 560 552 +360 3 2 1 25 552 560 156 155 +361 3 2 1 25 148 149 561 553 +362 3 2 1 25 553 561 562 554 +363 3 2 1 25 554 562 563 555 +364 3 2 1 25 555 563 564 556 +365 3 2 1 25 556 564 565 557 +366 3 2 1 25 557 565 566 558 +367 3 2 1 25 558 566 567 559 +368 3 2 1 25 559 567 568 560 +369 3 2 1 25 560 568 157 156 +370 3 2 1 25 149 150 569 561 +371 3 2 1 25 561 569 570 562 +372 3 2 1 25 562 570 571 563 +373 3 2 1 25 563 571 572 564 +374 3 2 1 25 564 572 573 565 +375 3 2 1 25 565 573 574 566 +376 3 2 1 25 566 574 575 567 +377 3 2 1 25 567 575 576 568 +378 3 2 1 25 568 576 158 157 +379 3 2 1 25 150 151 577 569 +380 3 2 1 25 569 577 578 570 +381 3 2 1 25 570 578 579 571 +382 3 2 1 25 571 579 580 572 +383 3 2 1 25 572 580 581 573 +384 3 2 1 25 573 581 582 574 +385 3 2 1 25 574 582 583 575 +386 3 2 1 25 575 583 584 576 +387 3 2 1 25 576 584 159 158 +388 3 2 1 25 151 152 585 577 +389 3 2 1 25 577 585 586 578 +390 3 2 1 25 578 586 587 579 +391 3 2 1 25 579 587 588 580 +392 3 2 1 25 580 588 589 581 +393 3 2 1 25 581 589 590 582 +394 3 2 1 25 582 590 591 583 +395 3 2 1 25 583 591 592 584 +396 3 2 1 25 584 592 160 159 +397 3 2 1 25 152 14 200 585 +398 3 2 1 25 585 200 199 586 +399 3 2 1 25 586 199 198 587 +400 3 2 1 25 587 198 197 588 +401 3 2 1 25 588 197 196 589 +402 3 2 1 25 589 196 195 590 +403 3 2 1 25 590 195 194 591 +404 3 2 1 25 591 194 193 592 +405 3 2 1 25 592 193 13 160 +406 3 2 1 26 10 145 593 144 +407 3 2 1 26 144 593 594 143 +408 3 2 1 26 143 594 595 142 +409 3 2 1 26 142 595 596 141 +410 3 2 1 26 141 596 597 140 +411 3 2 1 26 140 597 598 139 +412 3 2 1 26 139 598 599 138 +413 3 2 1 26 138 599 600 137 +414 3 2 1 26 137 600 169 11 +415 3 2 1 26 145 146 601 593 +416 3 2 1 26 593 601 602 594 +417 3 2 1 26 594 602 603 595 +418 3 2 1 26 595 603 604 596 +419 3 2 1 26 596 604 605 597 +420 3 2 1 26 597 605 606 598 +421 3 2 1 26 598 606 607 599 +422 3 2 1 26 599 607 608 600 +423 3 2 1 26 600 608 170 169 +424 3 2 1 26 146 147 609 601 +425 3 2 1 26 601 609 610 602 +426 3 2 1 26 602 610 611 603 +427 3 2 1 26 603 611 612 604 +428 3 2 1 26 604 612 613 605 +429 3 2 1 26 605 613 614 606 +430 3 2 1 26 606 614 615 607 +431 3 2 1 26 607 615 616 608 +432 3 2 1 26 608 616 171 170 +433 3 2 1 26 147 148 617 609 +434 3 2 1 26 609 617 618 610 +435 3 2 1 26 610 618 619 611 +436 3 2 1 26 611 619 620 612 +437 3 2 1 26 612 620 621 613 +438 3 2 1 26 613 621 622 614 +439 3 2 1 26 614 622 623 615 +440 3 2 1 26 615 623 624 616 +441 3 2 1 26 616 624 172 171 +442 3 2 1 26 148 149 625 617 +443 3 2 1 26 617 625 626 618 +444 3 2 1 26 618 626 627 619 +445 3 2 1 26 619 627 628 620 +446 3 2 1 26 620 628 629 621 +447 3 2 1 26 621 629 630 622 +448 3 2 1 26 622 630 631 623 +449 3 2 1 26 623 631 632 624 +450 3 2 1 26 624 632 173 172 +451 3 2 1 26 149 150 633 625 +452 3 2 1 26 625 633 634 626 +453 3 2 1 26 626 634 635 627 +454 3 2 1 26 627 635 636 628 +455 3 2 1 26 628 636 637 629 +456 3 2 1 26 629 637 638 630 +457 3 2 1 26 630 638 639 631 +458 3 2 1 26 631 639 640 632 +459 3 2 1 26 632 640 174 173 +460 3 2 1 26 150 151 641 633 +461 3 2 1 26 633 641 642 634 +462 3 2 1 26 634 642 643 635 +463 3 2 1 26 635 643 644 636 +464 3 2 1 26 636 644 645 637 +465 3 2 1 26 637 645 646 638 +466 3 2 1 26 638 646 647 639 +467 3 2 1 26 639 647 648 640 +468 3 2 1 26 640 648 175 174 +469 3 2 1 26 151 152 649 641 +470 3 2 1 26 641 649 650 642 +471 3 2 1 26 642 650 651 643 +472 3 2 1 26 643 651 652 644 +473 3 2 1 26 644 652 653 645 +474 3 2 1 26 645 653 654 646 +475 3 2 1 26 646 654 655 647 +476 3 2 1 26 647 655 656 648 +477 3 2 1 26 648 656 176 175 +478 3 2 1 26 152 14 201 649 +479 3 2 1 26 649 201 202 650 +480 3 2 1 26 650 202 203 651 +481 3 2 1 26 651 203 204 652 +482 3 2 1 26 652 204 205 653 +483 3 2 1 26 653 205 206 654 +484 3 2 1 26 654 206 207 655 +485 3 2 1 26 655 207 208 656 +486 3 2 1 26 656 208 15 176 +487 3 2 1 27 12 129 657 161 +488 3 2 1 27 161 657 658 162 +489 3 2 1 27 162 658 659 163 +490 3 2 1 27 163 659 660 164 +491 3 2 1 27 164 660 661 165 +492 3 2 1 27 165 661 662 166 +493 3 2 1 27 166 662 663 167 +494 3 2 1 27 167 663 664 168 +495 3 2 1 27 168 664 184 16 +496 3 2 1 27 129 130 665 657 +497 3 2 1 27 657 665 666 658 +498 3 2 1 27 658 666 667 659 +499 3 2 1 27 659 667 668 660 +500 3 2 1 27 660 668 669 661 +501 3 2 1 27 661 669 670 662 +502 3 2 1 27 662 670 671 663 +503 3 2 1 27 663 671 672 664 +504 3 2 1 27 664 672 183 184 +505 3 2 1 27 130 131 673 665 +506 3 2 1 27 665 673 674 666 +507 3 2 1 27 666 674 675 667 +508 3 2 1 27 667 675 676 668 +509 3 2 1 27 668 676 677 669 +510 3 2 1 27 669 677 678 670 +511 3 2 1 27 670 678 679 671 +512 3 2 1 27 671 679 680 672 +513 3 2 1 27 672 680 182 183 +514 3 2 1 27 131 132 681 673 +515 3 2 1 27 673 681 682 674 +516 3 2 1 27 674 682 683 675 +517 3 2 1 27 675 683 684 676 +518 3 2 1 27 676 684 685 677 +519 3 2 1 27 677 685 686 678 +520 3 2 1 27 678 686 687 679 +521 3 2 1 27 679 687 688 680 +522 3 2 1 27 680 688 181 182 +523 3 2 1 27 132 133 689 681 +524 3 2 1 27 681 689 690 682 +525 3 2 1 27 682 690 691 683 +526 3 2 1 27 683 691 692 684 +527 3 2 1 27 684 692 693 685 +528 3 2 1 27 685 693 694 686 +529 3 2 1 27 686 694 695 687 +530 3 2 1 27 687 695 696 688 +531 3 2 1 27 688 696 180 181 +532 3 2 1 27 133 134 697 689 +533 3 2 1 27 689 697 698 690 +534 3 2 1 27 690 698 699 691 +535 3 2 1 27 691 699 700 692 +536 3 2 1 27 692 700 701 693 +537 3 2 1 27 693 701 702 694 +538 3 2 1 27 694 702 703 695 +539 3 2 1 27 695 703 704 696 +540 3 2 1 27 696 704 179 180 +541 3 2 1 27 134 135 705 697 +542 3 2 1 27 697 705 706 698 +543 3 2 1 27 698 706 707 699 +544 3 2 1 27 699 707 708 700 +545 3 2 1 27 700 708 709 701 +546 3 2 1 27 701 709 710 702 +547 3 2 1 27 702 710 711 703 +548 3 2 1 27 703 711 712 704 +549 3 2 1 27 704 712 178 179 +550 3 2 1 27 135 136 713 705 +551 3 2 1 27 705 713 714 706 +552 3 2 1 27 706 714 715 707 +553 3 2 1 27 707 715 716 708 +554 3 2 1 27 708 716 717 709 +555 3 2 1 27 709 717 718 710 +556 3 2 1 27 710 718 719 711 +557 3 2 1 27 711 719 720 712 +558 3 2 1 27 712 720 177 178 +559 3 2 1 27 136 11 169 713 +560 3 2 1 27 713 169 170 714 +561 3 2 1 27 714 170 171 715 +562 3 2 1 27 715 171 172 716 +563 3 2 1 27 716 172 173 717 +564 3 2 1 27 717 173 174 718 +565 3 2 1 27 718 174 175 719 +566 3 2 1 27 719 175 176 720 +567 3 2 1 27 720 176 15 177 +568 3 2 1 28 11 137 721 136 +569 3 2 1 28 136 721 722 135 +570 3 2 1 28 135 722 723 134 +571 3 2 1 28 134 723 724 133 +572 3 2 1 28 133 724 725 132 +573 3 2 1 28 132 725 726 131 +574 3 2 1 28 131 726 727 130 +575 3 2 1 28 130 727 728 129 +576 3 2 1 28 129 728 128 12 +577 3 2 1 28 137 138 729 721 +578 3 2 1 28 721 729 730 722 +579 3 2 1 28 722 730 731 723 +580 3 2 1 28 723 731 732 724 +581 3 2 1 28 724 732 733 725 +582 3 2 1 28 725 733 734 726 +583 3 2 1 28 726 734 735 727 +584 3 2 1 28 727 735 736 728 +585 3 2 1 28 728 736 127 128 +586 3 2 1 28 138 139 737 729 +587 3 2 1 28 729 737 738 730 +588 3 2 1 28 730 738 739 731 +589 3 2 1 28 731 739 740 732 +590 3 2 1 28 732 740 741 733 +591 3 2 1 28 733 741 742 734 +592 3 2 1 28 734 742 743 735 +593 3 2 1 28 735 743 744 736 +594 3 2 1 28 736 744 126 127 +595 3 2 1 28 139 140 745 737 +596 3 2 1 28 737 745 746 738 +597 3 2 1 28 738 746 747 739 +598 3 2 1 28 739 747 748 740 +599 3 2 1 28 740 748 749 741 +600 3 2 1 28 741 749 750 742 +601 3 2 1 28 742 750 751 743 +602 3 2 1 28 743 751 752 744 +603 3 2 1 28 744 752 125 126 +604 3 2 1 28 140 141 753 745 +605 3 2 1 28 745 753 754 746 +606 3 2 1 28 746 754 755 747 +607 3 2 1 28 747 755 756 748 +608 3 2 1 28 748 756 757 749 +609 3 2 1 28 749 757 758 750 +610 3 2 1 28 750 758 759 751 +611 3 2 1 28 751 759 760 752 +612 3 2 1 28 752 760 124 125 +613 3 2 1 28 141 142 761 753 +614 3 2 1 28 753 761 762 754 +615 3 2 1 28 754 762 763 755 +616 3 2 1 28 755 763 764 756 +617 3 2 1 28 756 764 765 757 +618 3 2 1 28 757 765 766 758 +619 3 2 1 28 758 766 767 759 +620 3 2 1 28 759 767 768 760 +621 3 2 1 28 760 768 123 124 +622 3 2 1 28 142 143 769 761 +623 3 2 1 28 761 769 770 762 +624 3 2 1 28 762 770 771 763 +625 3 2 1 28 763 771 772 764 +626 3 2 1 28 764 772 773 765 +627 3 2 1 28 765 773 774 766 +628 3 2 1 28 766 774 775 767 +629 3 2 1 28 767 775 776 768 +630 3 2 1 28 768 776 122 123 +631 3 2 1 28 143 144 777 769 +632 3 2 1 28 769 777 778 770 +633 3 2 1 28 770 778 779 771 +634 3 2 1 28 771 779 780 772 +635 3 2 1 28 772 780 781 773 +636 3 2 1 28 773 781 782 774 +637 3 2 1 28 774 782 783 775 +638 3 2 1 28 775 783 784 776 +639 3 2 1 28 776 784 121 122 +640 3 2 1 28 144 10 113 777 +641 3 2 1 28 777 113 114 778 +642 3 2 1 28 778 114 115 779 +643 3 2 1 28 779 115 116 780 +644 3 2 1 28 780 116 117 781 +645 3 2 1 28 781 117 118 782 +646 3 2 1 28 782 118 119 783 +647 3 2 1 28 783 119 120 784 +648 3 2 1 28 784 120 9 121 +649 3 2 1 29 14 201 785 200 +650 3 2 1 29 200 785 786 199 +651 3 2 1 29 199 786 787 198 +652 3 2 1 29 198 787 788 197 +653 3 2 1 29 197 788 789 196 +654 3 2 1 29 196 789 790 195 +655 3 2 1 29 195 790 791 194 +656 3 2 1 29 194 791 792 193 +657 3 2 1 29 193 792 192 13 +658 3 2 1 29 201 202 793 785 +659 3 2 1 29 785 793 794 786 +660 3 2 1 29 786 794 795 787 +661 3 2 1 29 787 795 796 788 +662 3 2 1 29 788 796 797 789 +663 3 2 1 29 789 797 798 790 +664 3 2 1 29 790 798 799 791 +665 3 2 1 29 791 799 800 792 +666 3 2 1 29 792 800 191 192 +667 3 2 1 29 202 203 801 793 +668 3 2 1 29 793 801 802 794 +669 3 2 1 29 794 802 803 795 +670 3 2 1 29 795 803 804 796 +671 3 2 1 29 796 804 805 797 +672 3 2 1 29 797 805 806 798 +673 3 2 1 29 798 806 807 799 +674 3 2 1 29 799 807 808 800 +675 3 2 1 29 800 808 190 191 +676 3 2 1 29 203 204 809 801 +677 3 2 1 29 801 809 810 802 +678 3 2 1 29 802 810 811 803 +679 3 2 1 29 803 811 812 804 +680 3 2 1 29 804 812 813 805 +681 3 2 1 29 805 813 814 806 +682 3 2 1 29 806 814 815 807 +683 3 2 1 29 807 815 816 808 +684 3 2 1 29 808 816 189 190 +685 3 2 1 29 204 205 817 809 +686 3 2 1 29 809 817 818 810 +687 3 2 1 29 810 818 819 811 +688 3 2 1 29 811 819 820 812 +689 3 2 1 29 812 820 821 813 +690 3 2 1 29 813 821 822 814 +691 3 2 1 29 814 822 823 815 +692 3 2 1 29 815 823 824 816 +693 3 2 1 29 816 824 188 189 +694 3 2 1 29 205 206 825 817 +695 3 2 1 29 817 825 826 818 +696 3 2 1 29 818 826 827 819 +697 3 2 1 29 819 827 828 820 +698 3 2 1 29 820 828 829 821 +699 3 2 1 29 821 829 830 822 +700 3 2 1 29 822 830 831 823 +701 3 2 1 29 823 831 832 824 +702 3 2 1 29 824 832 187 188 +703 3 2 1 29 206 207 833 825 +704 3 2 1 29 825 833 834 826 +705 3 2 1 29 826 834 835 827 +706 3 2 1 29 827 835 836 828 +707 3 2 1 29 828 836 837 829 +708 3 2 1 29 829 837 838 830 +709 3 2 1 29 830 838 839 831 +710 3 2 1 29 831 839 840 832 +711 3 2 1 29 832 840 186 187 +712 3 2 1 29 207 208 841 833 +713 3 2 1 29 833 841 842 834 +714 3 2 1 29 834 842 843 835 +715 3 2 1 29 835 843 844 836 +716 3 2 1 29 836 844 845 837 +717 3 2 1 29 837 845 846 838 +718 3 2 1 29 838 846 847 839 +719 3 2 1 29 839 847 848 840 +720 3 2 1 29 840 848 185 186 +721 3 2 1 29 208 15 177 841 +722 3 2 1 29 841 177 178 842 +723 3 2 1 29 842 178 179 843 +724 3 2 1 29 843 179 180 844 +725 3 2 1 29 844 180 181 845 +726 3 2 1 29 845 181 182 846 +727 3 2 1 29 846 182 183 847 +728 3 2 1 29 847 183 184 848 +729 3 2 1 29 848 184 16 185 +730 3 2 1 30 12 161 849 128 +731 3 2 1 30 128 849 850 127 +732 3 2 1 30 127 850 851 126 +733 3 2 1 30 126 851 852 125 +734 3 2 1 30 125 852 853 124 +735 3 2 1 30 124 853 854 123 +736 3 2 1 30 123 854 855 122 +737 3 2 1 30 122 855 856 121 +738 3 2 1 30 121 856 153 9 +739 3 2 1 30 161 162 857 849 +740 3 2 1 30 849 857 858 850 +741 3 2 1 30 850 858 859 851 +742 3 2 1 30 851 859 860 852 +743 3 2 1 30 852 860 861 853 +744 3 2 1 30 853 861 862 854 +745 3 2 1 30 854 862 863 855 +746 3 2 1 30 855 863 864 856 +747 3 2 1 30 856 864 154 153 +748 3 2 1 30 162 163 865 857 +749 3 2 1 30 857 865 866 858 +750 3 2 1 30 858 866 867 859 +751 3 2 1 30 859 867 868 860 +752 3 2 1 30 860 868 869 861 +753 3 2 1 30 861 869 870 862 +754 3 2 1 30 862 870 871 863 +755 3 2 1 30 863 871 872 864 +756 3 2 1 30 864 872 155 154 +757 3 2 1 30 163 164 873 865 +758 3 2 1 30 865 873 874 866 +759 3 2 1 30 866 874 875 867 +760 3 2 1 30 867 875 876 868 +761 3 2 1 30 868 876 877 869 +762 3 2 1 30 869 877 878 870 +763 3 2 1 30 870 878 879 871 +764 3 2 1 30 871 879 880 872 +765 3 2 1 30 872 880 156 155 +766 3 2 1 30 164 165 881 873 +767 3 2 1 30 873 881 882 874 +768 3 2 1 30 874 882 883 875 +769 3 2 1 30 875 883 884 876 +770 3 2 1 30 876 884 885 877 +771 3 2 1 30 877 885 886 878 +772 3 2 1 30 878 886 887 879 +773 3 2 1 30 879 887 888 880 +774 3 2 1 30 880 888 157 156 +775 3 2 1 30 165 166 889 881 +776 3 2 1 30 881 889 890 882 +777 3 2 1 30 882 890 891 883 +778 3 2 1 30 883 891 892 884 +779 3 2 1 30 884 892 893 885 +780 3 2 1 30 885 893 894 886 +781 3 2 1 30 886 894 895 887 +782 3 2 1 30 887 895 896 888 +783 3 2 1 30 888 896 158 157 +784 3 2 1 30 166 167 897 889 +785 3 2 1 30 889 897 898 890 +786 3 2 1 30 890 898 899 891 +787 3 2 1 30 891 899 900 892 +788 3 2 1 30 892 900 901 893 +789 3 2 1 30 893 901 902 894 +790 3 2 1 30 894 902 903 895 +791 3 2 1 30 895 903 904 896 +792 3 2 1 30 896 904 159 158 +793 3 2 1 30 167 168 905 897 +794 3 2 1 30 897 905 906 898 +795 3 2 1 30 898 906 907 899 +796 3 2 1 30 899 907 908 900 +797 3 2 1 30 900 908 909 901 +798 3 2 1 30 901 909 910 902 +799 3 2 1 30 902 910 911 903 +800 3 2 1 30 903 911 912 904 +801 3 2 1 30 904 912 160 159 +802 3 2 1 30 168 16 185 905 +803 3 2 1 30 905 185 186 906 +804 3 2 1 30 906 186 187 907 +805 3 2 1 30 907 187 188 908 +806 3 2 1 30 908 188 189 909 +807 3 2 1 30 909 189 190 910 +808 3 2 1 30 910 190 191 911 +809 3 2 1 30 911 191 192 912 +810 3 2 1 30 912 192 13 160 +811 3 2 1 31 5 41 913 49 +812 3 2 1 31 49 913 914 50 +813 3 2 1 31 50 914 915 51 +814 3 2 1 31 51 915 916 52 +815 3 2 1 31 52 916 917 53 +816 3 2 1 31 53 917 918 54 +817 3 2 1 31 54 918 919 55 +818 3 2 1 31 55 919 920 56 +819 3 2 1 31 56 920 73 7 +820 3 2 1 31 41 42 921 913 +821 3 2 1 31 913 921 922 914 +822 3 2 1 31 914 922 923 915 +823 3 2 1 31 915 923 924 916 +824 3 2 1 31 916 924 925 917 +825 3 2 1 31 917 925 926 918 +826 3 2 1 31 918 926 927 919 +827 3 2 1 31 919 927 928 920 +828 3 2 1 31 920 928 74 73 +829 3 2 1 31 42 43 929 921 +830 3 2 1 31 921 929 930 922 +831 3 2 1 31 922 930 931 923 +832 3 2 1 31 923 931 932 924 +833 3 2 1 31 924 932 933 925 +834 3 2 1 31 925 933 934 926 +835 3 2 1 31 926 934 935 927 +836 3 2 1 31 927 935 936 928 +837 3 2 1 31 928 936 75 74 +838 3 2 1 31 43 44 937 929 +839 3 2 1 31 929 937 938 930 +840 3 2 1 31 930 938 939 931 +841 3 2 1 31 931 939 940 932 +842 3 2 1 31 932 940 941 933 +843 3 2 1 31 933 941 942 934 +844 3 2 1 31 934 942 943 935 +845 3 2 1 31 935 943 944 936 +846 3 2 1 31 936 944 76 75 +847 3 2 1 31 44 45 945 937 +848 3 2 1 31 937 945 946 938 +849 3 2 1 31 938 946 947 939 +850 3 2 1 31 939 947 948 940 +851 3 2 1 31 940 948 949 941 +852 3 2 1 31 941 949 950 942 +853 3 2 1 31 942 950 951 943 +854 3 2 1 31 943 951 952 944 +855 3 2 1 31 944 952 77 76 +856 3 2 1 31 45 46 953 945 +857 3 2 1 31 945 953 954 946 +858 3 2 1 31 946 954 955 947 +859 3 2 1 31 947 955 956 948 +860 3 2 1 31 948 956 957 949 +861 3 2 1 31 949 957 958 950 +862 3 2 1 31 950 958 959 951 +863 3 2 1 31 951 959 960 952 +864 3 2 1 31 952 960 78 77 +865 3 2 1 31 46 47 961 953 +866 3 2 1 31 953 961 962 954 +867 3 2 1 31 954 962 963 955 +868 3 2 1 31 955 963 964 956 +869 3 2 1 31 956 964 965 957 +870 3 2 1 31 957 965 966 958 +871 3 2 1 31 958 966 967 959 +872 3 2 1 31 959 967 968 960 +873 3 2 1 31 960 968 79 78 +874 3 2 1 31 47 48 969 961 +875 3 2 1 31 961 969 970 962 +876 3 2 1 31 962 970 971 963 +877 3 2 1 31 963 971 972 964 +878 3 2 1 31 964 972 973 965 +879 3 2 1 31 965 973 974 966 +880 3 2 1 31 966 974 975 967 +881 3 2 1 31 967 975 976 968 +882 3 2 1 31 968 976 80 79 +883 3 2 1 31 48 6 96 969 +884 3 2 1 31 969 96 95 970 +885 3 2 1 31 970 95 94 971 +886 3 2 1 31 971 94 93 972 +887 3 2 1 31 972 93 92 973 +888 3 2 1 31 973 92 91 974 +889 3 2 1 31 974 91 90 975 +890 3 2 1 31 975 90 89 976 +891 3 2 1 31 976 89 8 80 +892 3 2 1 32 3 81 977 65 +893 3 2 1 32 65 977 978 66 +894 3 2 1 32 66 978 979 67 +895 3 2 1 32 67 979 980 68 +896 3 2 1 32 68 980 981 69 +897 3 2 1 32 69 981 982 70 +898 3 2 1 32 70 982 983 71 +899 3 2 1 32 71 983 984 72 +900 3 2 1 32 72 984 32 1 +901 3 2 1 32 81 82 985 977 +902 3 2 1 32 977 985 986 978 +903 3 2 1 32 978 986 987 979 +904 3 2 1 32 979 987 988 980 +905 3 2 1 32 980 988 989 981 +906 3 2 1 32 981 989 990 982 +907 3 2 1 32 982 990 991 983 +908 3 2 1 32 983 991 992 984 +909 3 2 1 32 984 992 31 32 +910 3 2 1 32 82 83 993 985 +911 3 2 1 32 985 993 994 986 +912 3 2 1 32 986 994 995 987 +913 3 2 1 32 987 995 996 988 +914 3 2 1 32 988 996 997 989 +915 3 2 1 32 989 997 998 990 +916 3 2 1 32 990 998 999 991 +917 3 2 1 32 991 999 1000 992 +918 3 2 1 32 992 1000 30 31 +919 3 2 1 32 83 84 1001 993 +920 3 2 1 32 993 1001 1002 994 +921 3 2 1 32 994 1002 1003 995 +922 3 2 1 32 995 1003 1004 996 +923 3 2 1 32 996 1004 1005 997 +924 3 2 1 32 997 1005 1006 998 +925 3 2 1 32 998 1006 1007 999 +926 3 2 1 32 999 1007 1008 1000 +927 3 2 1 32 1000 1008 29 30 +928 3 2 1 32 84 85 1009 1001 +929 3 2 1 32 1001 1009 1010 1002 +930 3 2 1 32 1002 1010 1011 1003 +931 3 2 1 32 1003 1011 1012 1004 +932 3 2 1 32 1004 1012 1013 1005 +933 3 2 1 32 1005 1013 1014 1006 +934 3 2 1 32 1006 1014 1015 1007 +935 3 2 1 32 1007 1015 1016 1008 +936 3 2 1 32 1008 1016 28 29 +937 3 2 1 32 85 86 1017 1009 +938 3 2 1 32 1009 1017 1018 1010 +939 3 2 1 32 1010 1018 1019 1011 +940 3 2 1 32 1011 1019 1020 1012 +941 3 2 1 32 1012 1020 1021 1013 +942 3 2 1 32 1013 1021 1022 1014 +943 3 2 1 32 1014 1022 1023 1015 +944 3 2 1 32 1015 1023 1024 1016 +945 3 2 1 32 1016 1024 27 28 +946 3 2 1 32 86 87 1025 1017 +947 3 2 1 32 1017 1025 1026 1018 +948 3 2 1 32 1018 1026 1027 1019 +949 3 2 1 32 1019 1027 1028 1020 +950 3 2 1 32 1020 1028 1029 1021 +951 3 2 1 32 1021 1029 1030 1022 +952 3 2 1 32 1022 1030 1031 1023 +953 3 2 1 32 1023 1031 1032 1024 +954 3 2 1 32 1024 1032 26 27 +955 3 2 1 32 87 88 1033 1025 +956 3 2 1 32 1025 1033 1034 1026 +957 3 2 1 32 1026 1034 1035 1027 +958 3 2 1 32 1027 1035 1036 1028 +959 3 2 1 32 1028 1036 1037 1029 +960 3 2 1 32 1029 1037 1038 1030 +961 3 2 1 32 1030 1038 1039 1031 +962 3 2 1 32 1031 1039 1040 1032 +963 3 2 1 32 1032 1040 25 26 +964 3 2 1 32 88 4 97 1033 +965 3 2 1 32 1033 97 98 1034 +966 3 2 1 32 1034 98 99 1035 +967 3 2 1 32 1035 99 100 1036 +968 3 2 1 32 1036 100 101 1037 +969 3 2 1 32 1037 101 102 1038 +970 3 2 1 32 1038 102 103 1039 +971 3 2 1 32 1039 103 104 1040 +972 3 2 1 32 1040 104 2 25 +973 3 2 1 33 6 241 1041 17 +974 3 2 1 33 17 1041 1042 18 +975 3 2 1 33 18 1042 1043 19 +976 3 2 1 33 19 1043 1044 20 +977 3 2 1 33 20 1044 1045 21 +978 3 2 1 33 21 1045 1046 22 +979 3 2 1 33 22 1046 1047 23 +980 3 2 1 33 23 1047 1048 24 +981 3 2 1 33 24 1048 249 2 +982 3 2 1 33 241 242 1049 1041 +983 3 2 1 33 1041 1049 1050 1042 +984 3 2 1 33 1042 1050 1051 1043 +985 3 2 1 33 1043 1051 1052 1044 +986 3 2 1 33 1044 1052 1053 1045 +987 3 2 1 33 1045 1053 1054 1046 +988 3 2 1 33 1046 1054 1055 1047 +989 3 2 1 33 1047 1055 1056 1048 +990 3 2 1 33 1048 1056 250 249 +991 3 2 1 33 242 243 1057 1049 +992 3 2 1 33 1049 1057 1058 1050 +993 3 2 1 33 1050 1058 1059 1051 +994 3 2 1 33 1051 1059 1060 1052 +995 3 2 1 33 1052 1060 1061 1053 +996 3 2 1 33 1053 1061 1062 1054 +997 3 2 1 33 1054 1062 1063 1055 +998 3 2 1 33 1055 1063 1064 1056 +999 3 2 1 33 1056 1064 251 250 +1000 3 2 1 33 243 244 1065 1057 +1001 3 2 1 33 1057 1065 1066 1058 +1002 3 2 1 33 1058 1066 1067 1059 +1003 3 2 1 33 1059 1067 1068 1060 +1004 3 2 1 33 1060 1068 1069 1061 +1005 3 2 1 33 1061 1069 1070 1062 +1006 3 2 1 33 1062 1070 1071 1063 +1007 3 2 1 33 1063 1071 1072 1064 +1008 3 2 1 33 1064 1072 252 251 +1009 3 2 1 33 244 245 1073 1065 +1010 3 2 1 33 1065 1073 1074 1066 +1011 3 2 1 33 1066 1074 1075 1067 +1012 3 2 1 33 1067 1075 1076 1068 +1013 3 2 1 33 1068 1076 1077 1069 +1014 3 2 1 33 1069 1077 1078 1070 +1015 3 2 1 33 1070 1078 1079 1071 +1016 3 2 1 33 1071 1079 1080 1072 +1017 3 2 1 33 1072 1080 253 252 +1018 3 2 1 33 245 246 1081 1073 +1019 3 2 1 33 1073 1081 1082 1074 +1020 3 2 1 33 1074 1082 1083 1075 +1021 3 2 1 33 1075 1083 1084 1076 +1022 3 2 1 33 1076 1084 1085 1077 +1023 3 2 1 33 1077 1085 1086 1078 +1024 3 2 1 33 1078 1086 1087 1079 +1025 3 2 1 33 1079 1087 1088 1080 +1026 3 2 1 33 1080 1088 254 253 +1027 3 2 1 33 246 247 1089 1081 +1028 3 2 1 33 1081 1089 1090 1082 +1029 3 2 1 33 1082 1090 1091 1083 +1030 3 2 1 33 1083 1091 1092 1084 +1031 3 2 1 33 1084 1092 1093 1085 +1032 3 2 1 33 1085 1093 1094 1086 +1033 3 2 1 33 1086 1094 1095 1087 +1034 3 2 1 33 1087 1095 1096 1088 +1035 3 2 1 33 1088 1096 255 254 +1036 3 2 1 33 247 248 1097 1089 +1037 3 2 1 33 1089 1097 1098 1090 +1038 3 2 1 33 1090 1098 1099 1091 +1039 3 2 1 33 1091 1099 1100 1092 +1040 3 2 1 33 1092 1100 1101 1093 +1041 3 2 1 33 1093 1101 1102 1094 +1042 3 2 1 33 1094 1102 1103 1095 +1043 3 2 1 33 1095 1103 1104 1096 +1044 3 2 1 33 1096 1104 256 255 +1045 3 2 1 33 248 16 168 1097 +1046 3 2 1 33 1097 168 167 1098 +1047 3 2 1 33 1098 167 166 1099 +1048 3 2 1 33 1099 166 165 1100 +1049 3 2 1 33 1100 165 164 1101 +1050 3 2 1 33 1101 164 163 1102 +1051 3 2 1 33 1102 163 162 1103 +1052 3 2 1 33 1103 162 161 1104 +1053 3 2 1 33 1104 161 12 256 +1054 3 2 1 34 2 25 1105 249 +1055 3 2 1 34 249 1105 1106 250 +1056 3 2 1 34 250 1106 1107 251 +1057 3 2 1 34 251 1107 1108 252 +1058 3 2 1 34 252 1108 1109 253 +1059 3 2 1 34 253 1109 1110 254 +1060 3 2 1 34 254 1110 1111 255 +1061 3 2 1 34 255 1111 1112 256 +1062 3 2 1 34 256 1112 129 12 +1063 3 2 1 34 25 26 1113 1105 +1064 3 2 1 34 1105 1113 1114 1106 +1065 3 2 1 34 1106 1114 1115 1107 +1066 3 2 1 34 1107 1115 1116 1108 +1067 3 2 1 34 1108 1116 1117 1109 +1068 3 2 1 34 1109 1117 1118 1110 +1069 3 2 1 34 1110 1118 1119 1111 +1070 3 2 1 34 1111 1119 1120 1112 +1071 3 2 1 34 1112 1120 130 129 +1072 3 2 1 34 26 27 1121 1113 +1073 3 2 1 34 1113 1121 1122 1114 +1074 3 2 1 34 1114 1122 1123 1115 +1075 3 2 1 34 1115 1123 1124 1116 +1076 3 2 1 34 1116 1124 1125 1117 +1077 3 2 1 34 1117 1125 1126 1118 +1078 3 2 1 34 1118 1126 1127 1119 +1079 3 2 1 34 1119 1127 1128 1120 +1080 3 2 1 34 1120 1128 131 130 +1081 3 2 1 34 27 28 1129 1121 +1082 3 2 1 34 1121 1129 1130 1122 +1083 3 2 1 34 1122 1130 1131 1123 +1084 3 2 1 34 1123 1131 1132 1124 +1085 3 2 1 34 1124 1132 1133 1125 +1086 3 2 1 34 1125 1133 1134 1126 +1087 3 2 1 34 1126 1134 1135 1127 +1088 3 2 1 34 1127 1135 1136 1128 +1089 3 2 1 34 1128 1136 132 131 +1090 3 2 1 34 28 29 1137 1129 +1091 3 2 1 34 1129 1137 1138 1130 +1092 3 2 1 34 1130 1138 1139 1131 +1093 3 2 1 34 1131 1139 1140 1132 +1094 3 2 1 34 1132 1140 1141 1133 +1095 3 2 1 34 1133 1141 1142 1134 +1096 3 2 1 34 1134 1142 1143 1135 +1097 3 2 1 34 1135 1143 1144 1136 +1098 3 2 1 34 1136 1144 133 132 +1099 3 2 1 34 29 30 1145 1137 +1100 3 2 1 34 1137 1145 1146 1138 +1101 3 2 1 34 1138 1146 1147 1139 +1102 3 2 1 34 1139 1147 1148 1140 +1103 3 2 1 34 1140 1148 1149 1141 +1104 3 2 1 34 1141 1149 1150 1142 +1105 3 2 1 34 1142 1150 1151 1143 +1106 3 2 1 34 1143 1151 1152 1144 +1107 3 2 1 34 1144 1152 134 133 +1108 3 2 1 34 30 31 1153 1145 +1109 3 2 1 34 1145 1153 1154 1146 +1110 3 2 1 34 1146 1154 1155 1147 +1111 3 2 1 34 1147 1155 1156 1148 +1112 3 2 1 34 1148 1156 1157 1149 +1113 3 2 1 34 1149 1157 1158 1150 +1114 3 2 1 34 1150 1158 1159 1151 +1115 3 2 1 34 1151 1159 1160 1152 +1116 3 2 1 34 1152 1160 135 134 +1117 3 2 1 34 31 32 1161 1153 +1118 3 2 1 34 1153 1161 1162 1154 +1119 3 2 1 34 1154 1162 1163 1155 +1120 3 2 1 34 1155 1163 1164 1156 +1121 3 2 1 34 1156 1164 1165 1157 +1122 3 2 1 34 1157 1165 1166 1158 +1123 3 2 1 34 1158 1166 1167 1159 +1124 3 2 1 34 1159 1167 1168 1160 +1125 3 2 1 34 1160 1168 136 135 +1126 3 2 1 34 32 1 217 1161 +1127 3 2 1 34 1161 217 218 1162 +1128 3 2 1 34 1162 218 219 1163 +1129 3 2 1 34 1163 219 220 1164 +1130 3 2 1 34 1164 220 221 1165 +1131 3 2 1 34 1165 221 222 1166 +1132 3 2 1 34 1166 222 223 1167 +1133 3 2 1 34 1167 223 224 1168 +1134 3 2 1 34 1168 224 11 136 +1135 3 2 1 35 1 217 1169 33 +1136 3 2 1 35 33 1169 1170 34 +1137 3 2 1 35 34 1170 1171 35 +1138 3 2 1 35 35 1171 1172 36 +1139 3 2 1 35 36 1172 1173 37 +1140 3 2 1 35 37 1173 1174 38 +1141 3 2 1 35 38 1174 1175 39 +1142 3 2 1 35 39 1175 1176 40 +1143 3 2 1 35 40 1176 209 5 +1144 3 2 1 35 217 218 1177 1169 +1145 3 2 1 35 1169 1177 1178 1170 +1146 3 2 1 35 1170 1178 1179 1171 +1147 3 2 1 35 1171 1179 1180 1172 +1148 3 2 1 35 1172 1180 1181 1173 +1149 3 2 1 35 1173 1181 1182 1174 +1150 3 2 1 35 1174 1182 1183 1175 +1151 3 2 1 35 1175 1183 1184 1176 +1152 3 2 1 35 1176 1184 210 209 +1153 3 2 1 35 218 219 1185 1177 +1154 3 2 1 35 1177 1185 1186 1178 +1155 3 2 1 35 1178 1186 1187 1179 +1156 3 2 1 35 1179 1187 1188 1180 +1157 3 2 1 35 1180 1188 1189 1181 +1158 3 2 1 35 1181 1189 1190 1182 +1159 3 2 1 35 1182 1190 1191 1183 +1160 3 2 1 35 1183 1191 1192 1184 +1161 3 2 1 35 1184 1192 211 210 +1162 3 2 1 35 219 220 1193 1185 +1163 3 2 1 35 1185 1193 1194 1186 +1164 3 2 1 35 1186 1194 1195 1187 +1165 3 2 1 35 1187 1195 1196 1188 +1166 3 2 1 35 1188 1196 1197 1189 +1167 3 2 1 35 1189 1197 1198 1190 +1168 3 2 1 35 1190 1198 1199 1191 +1169 3 2 1 35 1191 1199 1200 1192 +1170 3 2 1 35 1192 1200 212 211 +1171 3 2 1 35 220 221 1201 1193 +1172 3 2 1 35 1193 1201 1202 1194 +1173 3 2 1 35 1194 1202 1203 1195 +1174 3 2 1 35 1195 1203 1204 1196 +1175 3 2 1 35 1196 1204 1205 1197 +1176 3 2 1 35 1197 1205 1206 1198 +1177 3 2 1 35 1198 1206 1207 1199 +1178 3 2 1 35 1199 1207 1208 1200 +1179 3 2 1 35 1200 1208 213 212 +1180 3 2 1 35 221 222 1209 1201 +1181 3 2 1 35 1201 1209 1210 1202 +1182 3 2 1 35 1202 1210 1211 1203 +1183 3 2 1 35 1203 1211 1212 1204 +1184 3 2 1 35 1204 1212 1213 1205 +1185 3 2 1 35 1205 1213 1214 1206 +1186 3 2 1 35 1206 1214 1215 1207 +1187 3 2 1 35 1207 1215 1216 1208 +1188 3 2 1 35 1208 1216 214 213 +1189 3 2 1 35 222 223 1217 1209 +1190 3 2 1 35 1209 1217 1218 1210 +1191 3 2 1 35 1210 1218 1219 1211 +1192 3 2 1 35 1211 1219 1220 1212 +1193 3 2 1 35 1212 1220 1221 1213 +1194 3 2 1 35 1213 1221 1222 1214 +1195 3 2 1 35 1214 1222 1223 1215 +1196 3 2 1 35 1215 1223 1224 1216 +1197 3 2 1 35 1216 1224 215 214 +1198 3 2 1 35 223 224 1225 1217 +1199 3 2 1 35 1217 1225 1226 1218 +1200 3 2 1 35 1218 1226 1227 1219 +1201 3 2 1 35 1219 1227 1228 1220 +1202 3 2 1 35 1220 1228 1229 1221 +1203 3 2 1 35 1221 1229 1230 1222 +1204 3 2 1 35 1222 1230 1231 1223 +1205 3 2 1 35 1223 1231 1232 1224 +1206 3 2 1 35 1224 1232 216 215 +1207 3 2 1 35 224 11 169 1225 +1208 3 2 1 35 1225 169 170 1226 +1209 3 2 1 35 1226 170 171 1227 +1210 3 2 1 35 1227 171 172 1228 +1211 3 2 1 35 1228 172 173 1229 +1212 3 2 1 35 1229 173 174 1230 +1213 3 2 1 35 1230 174 175 1231 +1214 3 2 1 35 1231 175 176 1232 +1215 3 2 1 35 1232 176 15 216 +1216 3 2 1 36 5 209 1233 41 +1217 3 2 1 36 41 1233 1234 42 +1218 3 2 1 36 42 1234 1235 43 +1219 3 2 1 36 43 1235 1236 44 +1220 3 2 1 36 44 1236 1237 45 +1221 3 2 1 36 45 1237 1238 46 +1222 3 2 1 36 46 1238 1239 47 +1223 3 2 1 36 47 1239 1240 48 +1224 3 2 1 36 48 1240 241 6 +1225 3 2 1 36 209 210 1241 1233 +1226 3 2 1 36 1233 1241 1242 1234 +1227 3 2 1 36 1234 1242 1243 1235 +1228 3 2 1 36 1235 1243 1244 1236 +1229 3 2 1 36 1236 1244 1245 1237 +1230 3 2 1 36 1237 1245 1246 1238 +1231 3 2 1 36 1238 1246 1247 1239 +1232 3 2 1 36 1239 1247 1248 1240 +1233 3 2 1 36 1240 1248 242 241 +1234 3 2 1 36 210 211 1249 1241 +1235 3 2 1 36 1241 1249 1250 1242 +1236 3 2 1 36 1242 1250 1251 1243 +1237 3 2 1 36 1243 1251 1252 1244 +1238 3 2 1 36 1244 1252 1253 1245 +1239 3 2 1 36 1245 1253 1254 1246 +1240 3 2 1 36 1246 1254 1255 1247 +1241 3 2 1 36 1247 1255 1256 1248 +1242 3 2 1 36 1248 1256 243 242 +1243 3 2 1 36 211 212 1257 1249 +1244 3 2 1 36 1249 1257 1258 1250 +1245 3 2 1 36 1250 1258 1259 1251 +1246 3 2 1 36 1251 1259 1260 1252 +1247 3 2 1 36 1252 1260 1261 1253 +1248 3 2 1 36 1253 1261 1262 1254 +1249 3 2 1 36 1254 1262 1263 1255 +1250 3 2 1 36 1255 1263 1264 1256 +1251 3 2 1 36 1256 1264 244 243 +1252 3 2 1 36 212 213 1265 1257 +1253 3 2 1 36 1257 1265 1266 1258 +1254 3 2 1 36 1258 1266 1267 1259 +1255 3 2 1 36 1259 1267 1268 1260 +1256 3 2 1 36 1260 1268 1269 1261 +1257 3 2 1 36 1261 1269 1270 1262 +1258 3 2 1 36 1262 1270 1271 1263 +1259 3 2 1 36 1263 1271 1272 1264 +1260 3 2 1 36 1264 1272 245 244 +1261 3 2 1 36 213 214 1273 1265 +1262 3 2 1 36 1265 1273 1274 1266 +1263 3 2 1 36 1266 1274 1275 1267 +1264 3 2 1 36 1267 1275 1276 1268 +1265 3 2 1 36 1268 1276 1277 1269 +1266 3 2 1 36 1269 1277 1278 1270 +1267 3 2 1 36 1270 1278 1279 1271 +1268 3 2 1 36 1271 1279 1280 1272 +1269 3 2 1 36 1272 1280 246 245 +1270 3 2 1 36 214 215 1281 1273 +1271 3 2 1 36 1273 1281 1282 1274 +1272 3 2 1 36 1274 1282 1283 1275 +1273 3 2 1 36 1275 1283 1284 1276 +1274 3 2 1 36 1276 1284 1285 1277 +1275 3 2 1 36 1277 1285 1286 1278 +1276 3 2 1 36 1278 1286 1287 1279 +1277 3 2 1 36 1279 1287 1288 1280 +1278 3 2 1 36 1280 1288 247 246 +1279 3 2 1 36 215 216 1289 1281 +1280 3 2 1 36 1281 1289 1290 1282 +1281 3 2 1 36 1282 1290 1291 1283 +1282 3 2 1 36 1283 1291 1292 1284 +1283 3 2 1 36 1284 1292 1293 1285 +1284 3 2 1 36 1285 1293 1294 1286 +1285 3 2 1 36 1286 1294 1295 1287 +1286 3 2 1 36 1287 1295 1296 1288 +1287 3 2 1 36 1288 1296 248 247 +1288 3 2 1 36 216 15 177 1289 +1289 3 2 1 36 1289 177 178 1290 +1290 3 2 1 36 1290 178 179 1291 +1291 3 2 1 36 1291 179 180 1292 +1292 3 2 1 36 1292 180 181 1293 +1293 3 2 1 36 1293 181 182 1294 +1294 3 2 1 36 1294 182 183 1295 +1295 3 2 1 36 1295 183 184 1296 +1296 3 2 1 36 1296 184 16 248 +1297 3 2 1 37 5 209 1297 49 +1298 3 2 1 37 49 1297 1298 50 +1299 3 2 1 37 50 1298 1299 51 +1300 3 2 1 37 51 1299 1300 52 +1301 3 2 1 37 52 1300 1301 53 +1302 3 2 1 37 53 1301 1302 54 +1303 3 2 1 37 54 1302 1303 55 +1304 3 2 1 37 55 1303 1304 56 +1305 3 2 1 37 56 1304 225 7 +1306 3 2 1 37 209 210 1305 1297 +1307 3 2 1 37 1297 1305 1306 1298 +1308 3 2 1 37 1298 1306 1307 1299 +1309 3 2 1 37 1299 1307 1308 1300 +1310 3 2 1 37 1300 1308 1309 1301 +1311 3 2 1 37 1301 1309 1310 1302 +1312 3 2 1 37 1302 1310 1311 1303 +1313 3 2 1 37 1303 1311 1312 1304 +1314 3 2 1 37 1304 1312 226 225 +1315 3 2 1 37 210 211 1313 1305 +1316 3 2 1 37 1305 1313 1314 1306 +1317 3 2 1 37 1306 1314 1315 1307 +1318 3 2 1 37 1307 1315 1316 1308 +1319 3 2 1 37 1308 1316 1317 1309 +1320 3 2 1 37 1309 1317 1318 1310 +1321 3 2 1 37 1310 1318 1319 1311 +1322 3 2 1 37 1311 1319 1320 1312 +1323 3 2 1 37 1312 1320 227 226 +1324 3 2 1 37 211 212 1321 1313 +1325 3 2 1 37 1313 1321 1322 1314 +1326 3 2 1 37 1314 1322 1323 1315 +1327 3 2 1 37 1315 1323 1324 1316 +1328 3 2 1 37 1316 1324 1325 1317 +1329 3 2 1 37 1317 1325 1326 1318 +1330 3 2 1 37 1318 1326 1327 1319 +1331 3 2 1 37 1319 1327 1328 1320 +1332 3 2 1 37 1320 1328 228 227 +1333 3 2 1 37 212 213 1329 1321 +1334 3 2 1 37 1321 1329 1330 1322 +1335 3 2 1 37 1322 1330 1331 1323 +1336 3 2 1 37 1323 1331 1332 1324 +1337 3 2 1 37 1324 1332 1333 1325 +1338 3 2 1 37 1325 1333 1334 1326 +1339 3 2 1 37 1326 1334 1335 1327 +1340 3 2 1 37 1327 1335 1336 1328 +1341 3 2 1 37 1328 1336 229 228 +1342 3 2 1 37 213 214 1337 1329 +1343 3 2 1 37 1329 1337 1338 1330 +1344 3 2 1 37 1330 1338 1339 1331 +1345 3 2 1 37 1331 1339 1340 1332 +1346 3 2 1 37 1332 1340 1341 1333 +1347 3 2 1 37 1333 1341 1342 1334 +1348 3 2 1 37 1334 1342 1343 1335 +1349 3 2 1 37 1335 1343 1344 1336 +1350 3 2 1 37 1336 1344 230 229 +1351 3 2 1 37 214 215 1345 1337 +1352 3 2 1 37 1337 1345 1346 1338 +1353 3 2 1 37 1338 1346 1347 1339 +1354 3 2 1 37 1339 1347 1348 1340 +1355 3 2 1 37 1340 1348 1349 1341 +1356 3 2 1 37 1341 1349 1350 1342 +1357 3 2 1 37 1342 1350 1351 1343 +1358 3 2 1 37 1343 1351 1352 1344 +1359 3 2 1 37 1344 1352 231 230 +1360 3 2 1 37 215 216 1353 1345 +1361 3 2 1 37 1345 1353 1354 1346 +1362 3 2 1 37 1346 1354 1355 1347 +1363 3 2 1 37 1347 1355 1356 1348 +1364 3 2 1 37 1348 1356 1357 1349 +1365 3 2 1 37 1349 1357 1358 1350 +1366 3 2 1 37 1350 1358 1359 1351 +1367 3 2 1 37 1351 1359 1360 1352 +1368 3 2 1 37 1352 1360 232 231 +1369 3 2 1 37 216 15 208 1353 +1370 3 2 1 37 1353 208 207 1354 +1371 3 2 1 37 1354 207 206 1355 +1372 3 2 1 37 1355 206 205 1356 +1373 3 2 1 37 1356 205 204 1357 +1374 3 2 1 37 1357 204 203 1358 +1375 3 2 1 37 1358 203 202 1359 +1376 3 2 1 37 1359 202 201 1360 +1377 3 2 1 37 1360 201 14 232 +1378 3 2 1 38 4 265 1361 88 +1379 3 2 1 38 88 1361 1362 87 +1380 3 2 1 38 87 1362 1363 86 +1381 3 2 1 38 86 1363 1364 85 +1382 3 2 1 38 85 1364 1365 84 +1383 3 2 1 38 84 1365 1366 83 +1384 3 2 1 38 83 1366 1367 82 +1385 3 2 1 38 82 1367 1368 81 +1386 3 2 1 38 81 1368 233 3 +1387 3 2 1 38 265 266 1369 1361 +1388 3 2 1 38 1361 1369 1370 1362 +1389 3 2 1 38 1362 1370 1371 1363 +1390 3 2 1 38 1363 1371 1372 1364 +1391 3 2 1 38 1364 1372 1373 1365 +1392 3 2 1 38 1365 1373 1374 1366 +1393 3 2 1 38 1366 1374 1375 1367 +1394 3 2 1 38 1367 1375 1376 1368 +1395 3 2 1 38 1368 1376 234 233 +1396 3 2 1 38 266 267 1377 1369 +1397 3 2 1 38 1369 1377 1378 1370 +1398 3 2 1 38 1370 1378 1379 1371 +1399 3 2 1 38 1371 1379 1380 1372 +1400 3 2 1 38 1372 1380 1381 1373 +1401 3 2 1 38 1373 1381 1382 1374 +1402 3 2 1 38 1374 1382 1383 1375 +1403 3 2 1 38 1375 1383 1384 1376 +1404 3 2 1 38 1376 1384 235 234 +1405 3 2 1 38 267 268 1385 1377 +1406 3 2 1 38 1377 1385 1386 1378 +1407 3 2 1 38 1378 1386 1387 1379 +1408 3 2 1 38 1379 1387 1388 1380 +1409 3 2 1 38 1380 1388 1389 1381 +1410 3 2 1 38 1381 1389 1390 1382 +1411 3 2 1 38 1382 1390 1391 1383 +1412 3 2 1 38 1383 1391 1392 1384 +1413 3 2 1 38 1384 1392 236 235 +1414 3 2 1 38 268 269 1393 1385 +1415 3 2 1 38 1385 1393 1394 1386 +1416 3 2 1 38 1386 1394 1395 1387 +1417 3 2 1 38 1387 1395 1396 1388 +1418 3 2 1 38 1388 1396 1397 1389 +1419 3 2 1 38 1389 1397 1398 1390 +1420 3 2 1 38 1390 1398 1399 1391 +1421 3 2 1 38 1391 1399 1400 1392 +1422 3 2 1 38 1392 1400 237 236 +1423 3 2 1 38 269 270 1401 1393 +1424 3 2 1 38 1393 1401 1402 1394 +1425 3 2 1 38 1394 1402 1403 1395 +1426 3 2 1 38 1395 1403 1404 1396 +1427 3 2 1 38 1396 1404 1405 1397 +1428 3 2 1 38 1397 1405 1406 1398 +1429 3 2 1 38 1398 1406 1407 1399 +1430 3 2 1 38 1399 1407 1408 1400 +1431 3 2 1 38 1400 1408 238 237 +1432 3 2 1 38 270 271 1409 1401 +1433 3 2 1 38 1401 1409 1410 1402 +1434 3 2 1 38 1402 1410 1411 1403 +1435 3 2 1 38 1403 1411 1412 1404 +1436 3 2 1 38 1404 1412 1413 1405 +1437 3 2 1 38 1405 1413 1414 1406 +1438 3 2 1 38 1406 1414 1415 1407 +1439 3 2 1 38 1407 1415 1416 1408 +1440 3 2 1 38 1408 1416 239 238 +1441 3 2 1 38 271 272 1417 1409 +1442 3 2 1 38 1409 1417 1418 1410 +1443 3 2 1 38 1410 1418 1419 1411 +1444 3 2 1 38 1411 1419 1420 1412 +1445 3 2 1 38 1412 1420 1421 1413 +1446 3 2 1 38 1413 1421 1422 1414 +1447 3 2 1 38 1414 1422 1423 1415 +1448 3 2 1 38 1415 1423 1424 1416 +1449 3 2 1 38 1416 1424 240 239 +1450 3 2 1 38 272 9 120 1417 +1451 3 2 1 38 1417 120 119 1418 +1452 3 2 1 38 1418 119 118 1419 +1453 3 2 1 38 1419 118 117 1420 +1454 3 2 1 38 1420 117 116 1421 +1455 3 2 1 38 1421 116 115 1422 +1456 3 2 1 38 1422 115 114 1423 +1457 3 2 1 38 1423 114 113 1424 +1458 3 2 1 38 1424 113 10 240 +1459 3 2 1 39 2 249 1425 104 +1460 3 2 1 39 104 1425 1426 103 +1461 3 2 1 39 103 1426 1427 102 +1462 3 2 1 39 102 1427 1428 101 +1463 3 2 1 39 101 1428 1429 100 +1464 3 2 1 39 100 1429 1430 99 +1465 3 2 1 39 99 1430 1431 98 +1466 3 2 1 39 98 1431 1432 97 +1467 3 2 1 39 97 1432 265 4 +1468 3 2 1 39 249 250 1433 1425 +1469 3 2 1 39 1425 1433 1434 1426 +1470 3 2 1 39 1426 1434 1435 1427 +1471 3 2 1 39 1427 1435 1436 1428 +1472 3 2 1 39 1428 1436 1437 1429 +1473 3 2 1 39 1429 1437 1438 1430 +1474 3 2 1 39 1430 1438 1439 1431 +1475 3 2 1 39 1431 1439 1440 1432 +1476 3 2 1 39 1432 1440 266 265 +1477 3 2 1 39 250 251 1441 1433 +1478 3 2 1 39 1433 1441 1442 1434 +1479 3 2 1 39 1434 1442 1443 1435 +1480 3 2 1 39 1435 1443 1444 1436 +1481 3 2 1 39 1436 1444 1445 1437 +1482 3 2 1 39 1437 1445 1446 1438 +1483 3 2 1 39 1438 1446 1447 1439 +1484 3 2 1 39 1439 1447 1448 1440 +1485 3 2 1 39 1440 1448 267 266 +1486 3 2 1 39 251 252 1449 1441 +1487 3 2 1 39 1441 1449 1450 1442 +1488 3 2 1 39 1442 1450 1451 1443 +1489 3 2 1 39 1443 1451 1452 1444 +1490 3 2 1 39 1444 1452 1453 1445 +1491 3 2 1 39 1445 1453 1454 1446 +1492 3 2 1 39 1446 1454 1455 1447 +1493 3 2 1 39 1447 1455 1456 1448 +1494 3 2 1 39 1448 1456 268 267 +1495 3 2 1 39 252 253 1457 1449 +1496 3 2 1 39 1449 1457 1458 1450 +1497 3 2 1 39 1450 1458 1459 1451 +1498 3 2 1 39 1451 1459 1460 1452 +1499 3 2 1 39 1452 1460 1461 1453 +1500 3 2 1 39 1453 1461 1462 1454 +1501 3 2 1 39 1454 1462 1463 1455 +1502 3 2 1 39 1455 1463 1464 1456 +1503 3 2 1 39 1456 1464 269 268 +1504 3 2 1 39 253 254 1465 1457 +1505 3 2 1 39 1457 1465 1466 1458 +1506 3 2 1 39 1458 1466 1467 1459 +1507 3 2 1 39 1459 1467 1468 1460 +1508 3 2 1 39 1460 1468 1469 1461 +1509 3 2 1 39 1461 1469 1470 1462 +1510 3 2 1 39 1462 1470 1471 1463 +1511 3 2 1 39 1463 1471 1472 1464 +1512 3 2 1 39 1464 1472 270 269 +1513 3 2 1 39 254 255 1473 1465 +1514 3 2 1 39 1465 1473 1474 1466 +1515 3 2 1 39 1466 1474 1475 1467 +1516 3 2 1 39 1467 1475 1476 1468 +1517 3 2 1 39 1468 1476 1477 1469 +1518 3 2 1 39 1469 1477 1478 1470 +1519 3 2 1 39 1470 1478 1479 1471 +1520 3 2 1 39 1471 1479 1480 1472 +1521 3 2 1 39 1472 1480 271 270 +1522 3 2 1 39 255 256 1481 1473 +1523 3 2 1 39 1473 1481 1482 1474 +1524 3 2 1 39 1474 1482 1483 1475 +1525 3 2 1 39 1475 1483 1484 1476 +1526 3 2 1 39 1476 1484 1485 1477 +1527 3 2 1 39 1477 1485 1486 1478 +1528 3 2 1 39 1478 1486 1487 1479 +1529 3 2 1 39 1479 1487 1488 1480 +1530 3 2 1 39 1480 1488 272 271 +1531 3 2 1 39 256 12 128 1481 +1532 3 2 1 39 1481 128 127 1482 +1533 3 2 1 39 1482 127 126 1483 +1534 3 2 1 39 1483 126 125 1484 +1535 3 2 1 39 1484 125 124 1485 +1536 3 2 1 39 1485 124 123 1486 +1537 3 2 1 39 1486 123 122 1487 +1538 3 2 1 39 1487 122 121 1488 +1539 3 2 1 39 1488 121 9 272 +1540 3 2 1 41 8 89 1489 257 +1541 3 2 1 41 257 1489 1490 258 +1542 3 2 1 41 258 1490 1491 259 +1543 3 2 1 41 259 1491 1492 260 +1544 3 2 1 41 260 1492 1493 261 +1545 3 2 1 41 261 1493 1494 262 +1546 3 2 1 41 262 1494 1495 263 +1547 3 2 1 41 263 1495 1496 264 +1548 3 2 1 41 264 1496 192 13 +1549 3 2 1 41 89 90 1497 1489 +1550 3 2 1 41 1489 1497 1498 1490 +1551 3 2 1 41 1490 1498 1499 1491 +1552 3 2 1 41 1491 1499 1500 1492 +1553 3 2 1 41 1492 1500 1501 1493 +1554 3 2 1 41 1493 1501 1502 1494 +1555 3 2 1 41 1494 1502 1503 1495 +1556 3 2 1 41 1495 1503 1504 1496 +1557 3 2 1 41 1496 1504 191 192 +1558 3 2 1 41 90 91 1505 1497 +1559 3 2 1 41 1497 1505 1506 1498 +1560 3 2 1 41 1498 1506 1507 1499 +1561 3 2 1 41 1499 1507 1508 1500 +1562 3 2 1 41 1500 1508 1509 1501 +1563 3 2 1 41 1501 1509 1510 1502 +1564 3 2 1 41 1502 1510 1511 1503 +1565 3 2 1 41 1503 1511 1512 1504 +1566 3 2 1 41 1504 1512 190 191 +1567 3 2 1 41 91 92 1513 1505 +1568 3 2 1 41 1505 1513 1514 1506 +1569 3 2 1 41 1506 1514 1515 1507 +1570 3 2 1 41 1507 1515 1516 1508 +1571 3 2 1 41 1508 1516 1517 1509 +1572 3 2 1 41 1509 1517 1518 1510 +1573 3 2 1 41 1510 1518 1519 1511 +1574 3 2 1 41 1511 1519 1520 1512 +1575 3 2 1 41 1512 1520 189 190 +1576 3 2 1 41 92 93 1521 1513 +1577 3 2 1 41 1513 1521 1522 1514 +1578 3 2 1 41 1514 1522 1523 1515 +1579 3 2 1 41 1515 1523 1524 1516 +1580 3 2 1 41 1516 1524 1525 1517 +1581 3 2 1 41 1517 1525 1526 1518 +1582 3 2 1 41 1518 1526 1527 1519 +1583 3 2 1 41 1519 1527 1528 1520 +1584 3 2 1 41 1520 1528 188 189 +1585 3 2 1 41 93 94 1529 1521 +1586 3 2 1 41 1521 1529 1530 1522 +1587 3 2 1 41 1522 1530 1531 1523 +1588 3 2 1 41 1523 1531 1532 1524 +1589 3 2 1 41 1524 1532 1533 1525 +1590 3 2 1 41 1525 1533 1534 1526 +1591 3 2 1 41 1526 1534 1535 1527 +1592 3 2 1 41 1527 1535 1536 1528 +1593 3 2 1 41 1528 1536 187 188 +1594 3 2 1 41 94 95 1537 1529 +1595 3 2 1 41 1529 1537 1538 1530 +1596 3 2 1 41 1530 1538 1539 1531 +1597 3 2 1 41 1531 1539 1540 1532 +1598 3 2 1 41 1532 1540 1541 1533 +1599 3 2 1 41 1533 1541 1542 1534 +1600 3 2 1 41 1534 1542 1543 1535 +1601 3 2 1 41 1535 1543 1544 1536 +1602 3 2 1 41 1536 1544 186 187 +1603 3 2 1 41 95 96 1545 1537 +1604 3 2 1 41 1537 1545 1546 1538 +1605 3 2 1 41 1538 1546 1547 1539 +1606 3 2 1 41 1539 1547 1548 1540 +1607 3 2 1 41 1540 1548 1549 1541 +1608 3 2 1 41 1541 1549 1550 1542 +1609 3 2 1 41 1542 1550 1551 1543 +1610 3 2 1 41 1543 1551 1552 1544 +1611 3 2 1 41 1544 1552 185 186 +1612 3 2 1 41 96 6 241 1545 +1613 3 2 1 41 1545 241 242 1546 +1614 3 2 1 41 1546 242 243 1547 +1615 3 2 1 41 1547 243 244 1548 +1616 3 2 1 41 1548 244 245 1549 +1617 3 2 1 41 1549 245 246 1550 +1618 3 2 1 41 1550 246 247 1551 +1619 3 2 1 41 1551 247 248 1552 +1620 3 2 1 41 1552 248 16 185 +1621 3 2 1 42 4 105 1553 265 +1622 3 2 1 42 265 1553 1554 266 +1623 3 2 1 42 266 1554 1555 267 +1624 3 2 1 42 267 1555 1556 268 +1625 3 2 1 42 268 1556 1557 269 +1626 3 2 1 42 269 1557 1558 270 +1627 3 2 1 42 270 1558 1559 271 +1628 3 2 1 42 271 1559 1560 272 +1629 3 2 1 42 272 1560 153 9 +1630 3 2 1 42 105 106 1561 1553 +1631 3 2 1 42 1553 1561 1562 1554 +1632 3 2 1 42 1554 1562 1563 1555 +1633 3 2 1 42 1555 1563 1564 1556 +1634 3 2 1 42 1556 1564 1565 1557 +1635 3 2 1 42 1557 1565 1566 1558 +1636 3 2 1 42 1558 1566 1567 1559 +1637 3 2 1 42 1559 1567 1568 1560 +1638 3 2 1 42 1560 1568 154 153 +1639 3 2 1 42 106 107 1569 1561 +1640 3 2 1 42 1561 1569 1570 1562 +1641 3 2 1 42 1562 1570 1571 1563 +1642 3 2 1 42 1563 1571 1572 1564 +1643 3 2 1 42 1564 1572 1573 1565 +1644 3 2 1 42 1565 1573 1574 1566 +1645 3 2 1 42 1566 1574 1575 1567 +1646 3 2 1 42 1567 1575 1576 1568 +1647 3 2 1 42 1568 1576 155 154 +1648 3 2 1 42 107 108 1577 1569 +1649 3 2 1 42 1569 1577 1578 1570 +1650 3 2 1 42 1570 1578 1579 1571 +1651 3 2 1 42 1571 1579 1580 1572 +1652 3 2 1 42 1572 1580 1581 1573 +1653 3 2 1 42 1573 1581 1582 1574 +1654 3 2 1 42 1574 1582 1583 1575 +1655 3 2 1 42 1575 1583 1584 1576 +1656 3 2 1 42 1576 1584 156 155 +1657 3 2 1 42 108 109 1585 1577 +1658 3 2 1 42 1577 1585 1586 1578 +1659 3 2 1 42 1578 1586 1587 1579 +1660 3 2 1 42 1579 1587 1588 1580 +1661 3 2 1 42 1580 1588 1589 1581 +1662 3 2 1 42 1581 1589 1590 1582 +1663 3 2 1 42 1582 1590 1591 1583 +1664 3 2 1 42 1583 1591 1592 1584 +1665 3 2 1 42 1584 1592 157 156 +1666 3 2 1 42 109 110 1593 1585 +1667 3 2 1 42 1585 1593 1594 1586 +1668 3 2 1 42 1586 1594 1595 1587 +1669 3 2 1 42 1587 1595 1596 1588 +1670 3 2 1 42 1588 1596 1597 1589 +1671 3 2 1 42 1589 1597 1598 1590 +1672 3 2 1 42 1590 1598 1599 1591 +1673 3 2 1 42 1591 1599 1600 1592 +1674 3 2 1 42 1592 1600 158 157 +1675 3 2 1 42 110 111 1601 1593 +1676 3 2 1 42 1593 1601 1602 1594 +1677 3 2 1 42 1594 1602 1603 1595 +1678 3 2 1 42 1595 1603 1604 1596 +1679 3 2 1 42 1596 1604 1605 1597 +1680 3 2 1 42 1597 1605 1606 1598 +1681 3 2 1 42 1598 1606 1607 1599 +1682 3 2 1 42 1599 1607 1608 1600 +1683 3 2 1 42 1600 1608 159 158 +1684 3 2 1 42 111 112 1609 1601 +1685 3 2 1 42 1601 1609 1610 1602 +1686 3 2 1 42 1602 1610 1611 1603 +1687 3 2 1 42 1603 1611 1612 1604 +1688 3 2 1 42 1604 1612 1613 1605 +1689 3 2 1 42 1605 1613 1614 1606 +1690 3 2 1 42 1606 1614 1615 1607 +1691 3 2 1 42 1607 1615 1616 1608 +1692 3 2 1 42 1608 1616 160 159 +1693 3 2 1 42 112 8 257 1609 +1694 3 2 1 42 1609 257 258 1610 +1695 3 2 1 42 1610 258 259 1611 +1696 3 2 1 42 1611 259 260 1612 +1697 3 2 1 42 1612 260 261 1613 +1698 3 2 1 42 1613 261 262 1614 +1699 3 2 1 42 1614 262 263 1615 +1700 3 2 1 42 1615 263 264 1616 +1701 3 2 1 42 1616 264 13 160 +1702 3 2 1 43 7 57 1617 225 +1703 3 2 1 43 225 1617 1618 226 +1704 3 2 1 43 226 1618 1619 227 +1705 3 2 1 43 227 1619 1620 228 +1706 3 2 1 43 228 1620 1621 229 +1707 3 2 1 43 229 1621 1622 230 +1708 3 2 1 43 230 1622 1623 231 +1709 3 2 1 43 231 1623 1624 232 +1710 3 2 1 43 232 1624 152 14 +1711 3 2 1 43 57 58 1625 1617 +1712 3 2 1 43 1617 1625 1626 1618 +1713 3 2 1 43 1618 1626 1627 1619 +1714 3 2 1 43 1619 1627 1628 1620 +1715 3 2 1 43 1620 1628 1629 1621 +1716 3 2 1 43 1621 1629 1630 1622 +1717 3 2 1 43 1622 1630 1631 1623 +1718 3 2 1 43 1623 1631 1632 1624 +1719 3 2 1 43 1624 1632 151 152 +1720 3 2 1 43 58 59 1633 1625 +1721 3 2 1 43 1625 1633 1634 1626 +1722 3 2 1 43 1626 1634 1635 1627 +1723 3 2 1 43 1627 1635 1636 1628 +1724 3 2 1 43 1628 1636 1637 1629 +1725 3 2 1 43 1629 1637 1638 1630 +1726 3 2 1 43 1630 1638 1639 1631 +1727 3 2 1 43 1631 1639 1640 1632 +1728 3 2 1 43 1632 1640 150 151 +1729 3 2 1 43 59 60 1641 1633 +1730 3 2 1 43 1633 1641 1642 1634 +1731 3 2 1 43 1634 1642 1643 1635 +1732 3 2 1 43 1635 1643 1644 1636 +1733 3 2 1 43 1636 1644 1645 1637 +1734 3 2 1 43 1637 1645 1646 1638 +1735 3 2 1 43 1638 1646 1647 1639 +1736 3 2 1 43 1639 1647 1648 1640 +1737 3 2 1 43 1640 1648 149 150 +1738 3 2 1 43 60 61 1649 1641 +1739 3 2 1 43 1641 1649 1650 1642 +1740 3 2 1 43 1642 1650 1651 1643 +1741 3 2 1 43 1643 1651 1652 1644 +1742 3 2 1 43 1644 1652 1653 1645 +1743 3 2 1 43 1645 1653 1654 1646 +1744 3 2 1 43 1646 1654 1655 1647 +1745 3 2 1 43 1647 1655 1656 1648 +1746 3 2 1 43 1648 1656 148 149 +1747 3 2 1 43 61 62 1657 1649 +1748 3 2 1 43 1649 1657 1658 1650 +1749 3 2 1 43 1650 1658 1659 1651 +1750 3 2 1 43 1651 1659 1660 1652 +1751 3 2 1 43 1652 1660 1661 1653 +1752 3 2 1 43 1653 1661 1662 1654 +1753 3 2 1 43 1654 1662 1663 1655 +1754 3 2 1 43 1655 1663 1664 1656 +1755 3 2 1 43 1656 1664 147 148 +1756 3 2 1 43 62 63 1665 1657 +1757 3 2 1 43 1657 1665 1666 1658 +1758 3 2 1 43 1658 1666 1667 1659 +1759 3 2 1 43 1659 1667 1668 1660 +1760 3 2 1 43 1660 1668 1669 1661 +1761 3 2 1 43 1661 1669 1670 1662 +1762 3 2 1 43 1662 1670 1671 1663 +1763 3 2 1 43 1663 1671 1672 1664 +1764 3 2 1 43 1664 1672 146 147 +1765 3 2 1 43 63 64 1673 1665 +1766 3 2 1 43 1665 1673 1674 1666 +1767 3 2 1 43 1666 1674 1675 1667 +1768 3 2 1 43 1667 1675 1676 1668 +1769 3 2 1 43 1668 1676 1677 1669 +1770 3 2 1 43 1669 1677 1678 1670 +1771 3 2 1 43 1670 1678 1679 1671 +1772 3 2 1 43 1671 1679 1680 1672 +1773 3 2 1 43 1672 1680 145 146 +1774 3 2 1 43 64 3 233 1673 +1775 3 2 1 43 1673 233 234 1674 +1776 3 2 1 43 1674 234 235 1675 +1777 3 2 1 43 1675 235 236 1676 +1778 3 2 1 43 1676 236 237 1677 +1779 3 2 1 43 1677 237 238 1678 +1780 3 2 1 43 1678 238 239 1679 +1781 3 2 1 43 1679 239 240 1680 +1782 3 2 1 43 1680 240 10 145 +1783 3 2 1 44 13 193 1681 264 +1784 3 2 1 44 264 1681 1682 263 +1785 3 2 1 44 263 1682 1683 262 +1786 3 2 1 44 262 1683 1684 261 +1787 3 2 1 44 261 1684 1685 260 +1788 3 2 1 44 260 1685 1686 259 +1789 3 2 1 44 259 1686 1687 258 +1790 3 2 1 44 258 1687 1688 257 +1791 3 2 1 44 257 1688 80 8 +1792 3 2 1 44 193 194 1689 1681 +1793 3 2 1 44 1681 1689 1690 1682 +1794 3 2 1 44 1682 1690 1691 1683 +1795 3 2 1 44 1683 1691 1692 1684 +1796 3 2 1 44 1684 1692 1693 1685 +1797 3 2 1 44 1685 1693 1694 1686 +1798 3 2 1 44 1686 1694 1695 1687 +1799 3 2 1 44 1687 1695 1696 1688 +1800 3 2 1 44 1688 1696 79 80 +1801 3 2 1 44 194 195 1697 1689 +1802 3 2 1 44 1689 1697 1698 1690 +1803 3 2 1 44 1690 1698 1699 1691 +1804 3 2 1 44 1691 1699 1700 1692 +1805 3 2 1 44 1692 1700 1701 1693 +1806 3 2 1 44 1693 1701 1702 1694 +1807 3 2 1 44 1694 1702 1703 1695 +1808 3 2 1 44 1695 1703 1704 1696 +1809 3 2 1 44 1696 1704 78 79 +1810 3 2 1 44 195 196 1705 1697 +1811 3 2 1 44 1697 1705 1706 1698 +1812 3 2 1 44 1698 1706 1707 1699 +1813 3 2 1 44 1699 1707 1708 1700 +1814 3 2 1 44 1700 1708 1709 1701 +1815 3 2 1 44 1701 1709 1710 1702 +1816 3 2 1 44 1702 1710 1711 1703 +1817 3 2 1 44 1703 1711 1712 1704 +1818 3 2 1 44 1704 1712 77 78 +1819 3 2 1 44 196 197 1713 1705 +1820 3 2 1 44 1705 1713 1714 1706 +1821 3 2 1 44 1706 1714 1715 1707 +1822 3 2 1 44 1707 1715 1716 1708 +1823 3 2 1 44 1708 1716 1717 1709 +1824 3 2 1 44 1709 1717 1718 1710 +1825 3 2 1 44 1710 1718 1719 1711 +1826 3 2 1 44 1711 1719 1720 1712 +1827 3 2 1 44 1712 1720 76 77 +1828 3 2 1 44 197 198 1721 1713 +1829 3 2 1 44 1713 1721 1722 1714 +1830 3 2 1 44 1714 1722 1723 1715 +1831 3 2 1 44 1715 1723 1724 1716 +1832 3 2 1 44 1716 1724 1725 1717 +1833 3 2 1 44 1717 1725 1726 1718 +1834 3 2 1 44 1718 1726 1727 1719 +1835 3 2 1 44 1719 1727 1728 1720 +1836 3 2 1 44 1720 1728 75 76 +1837 3 2 1 44 198 199 1729 1721 +1838 3 2 1 44 1721 1729 1730 1722 +1839 3 2 1 44 1722 1730 1731 1723 +1840 3 2 1 44 1723 1731 1732 1724 +1841 3 2 1 44 1724 1732 1733 1725 +1842 3 2 1 44 1725 1733 1734 1726 +1843 3 2 1 44 1726 1734 1735 1727 +1844 3 2 1 44 1727 1735 1736 1728 +1845 3 2 1 44 1728 1736 74 75 +1846 3 2 1 44 199 200 1737 1729 +1847 3 2 1 44 1729 1737 1738 1730 +1848 3 2 1 44 1730 1738 1739 1731 +1849 3 2 1 44 1731 1739 1740 1732 +1850 3 2 1 44 1732 1740 1741 1733 +1851 3 2 1 44 1733 1741 1742 1734 +1852 3 2 1 44 1734 1742 1743 1735 +1853 3 2 1 44 1735 1743 1744 1736 +1854 3 2 1 44 1736 1744 73 74 +1855 3 2 1 44 200 14 232 1737 +1856 3 2 1 44 1737 232 231 1738 +1857 3 2 1 44 1738 231 230 1739 +1858 3 2 1 44 1739 230 229 1740 +1859 3 2 1 44 1740 229 228 1741 +1860 3 2 1 44 1741 228 227 1742 +1861 3 2 1 44 1742 227 226 1743 +1862 3 2 1 44 1743 226 225 1744 +1863 3 2 1 44 1744 225 7 73 +1864 3 2 1 45 1 217 1745 72 +1865 3 2 1 45 72 1745 1746 71 +1866 3 2 1 45 71 1746 1747 70 +1867 3 2 1 45 70 1747 1748 69 +1868 3 2 1 45 69 1748 1749 68 +1869 3 2 1 45 68 1749 1750 67 +1870 3 2 1 45 67 1750 1751 66 +1871 3 2 1 45 66 1751 1752 65 +1872 3 2 1 45 65 1752 233 3 +1873 3 2 1 45 217 218 1753 1745 +1874 3 2 1 45 1745 1753 1754 1746 +1875 3 2 1 45 1746 1754 1755 1747 +1876 3 2 1 45 1747 1755 1756 1748 +1877 3 2 1 45 1748 1756 1757 1749 +1878 3 2 1 45 1749 1757 1758 1750 +1879 3 2 1 45 1750 1758 1759 1751 +1880 3 2 1 45 1751 1759 1760 1752 +1881 3 2 1 45 1752 1760 234 233 +1882 3 2 1 45 218 219 1761 1753 +1883 3 2 1 45 1753 1761 1762 1754 +1884 3 2 1 45 1754 1762 1763 1755 +1885 3 2 1 45 1755 1763 1764 1756 +1886 3 2 1 45 1756 1764 1765 1757 +1887 3 2 1 45 1757 1765 1766 1758 +1888 3 2 1 45 1758 1766 1767 1759 +1889 3 2 1 45 1759 1767 1768 1760 +1890 3 2 1 45 1760 1768 235 234 +1891 3 2 1 45 219 220 1769 1761 +1892 3 2 1 45 1761 1769 1770 1762 +1893 3 2 1 45 1762 1770 1771 1763 +1894 3 2 1 45 1763 1771 1772 1764 +1895 3 2 1 45 1764 1772 1773 1765 +1896 3 2 1 45 1765 1773 1774 1766 +1897 3 2 1 45 1766 1774 1775 1767 +1898 3 2 1 45 1767 1775 1776 1768 +1899 3 2 1 45 1768 1776 236 235 +1900 3 2 1 45 220 221 1777 1769 +1901 3 2 1 45 1769 1777 1778 1770 +1902 3 2 1 45 1770 1778 1779 1771 +1903 3 2 1 45 1771 1779 1780 1772 +1904 3 2 1 45 1772 1780 1781 1773 +1905 3 2 1 45 1773 1781 1782 1774 +1906 3 2 1 45 1774 1782 1783 1775 +1907 3 2 1 45 1775 1783 1784 1776 +1908 3 2 1 45 1776 1784 237 236 +1909 3 2 1 45 221 222 1785 1777 +1910 3 2 1 45 1777 1785 1786 1778 +1911 3 2 1 45 1778 1786 1787 1779 +1912 3 2 1 45 1779 1787 1788 1780 +1913 3 2 1 45 1780 1788 1789 1781 +1914 3 2 1 45 1781 1789 1790 1782 +1915 3 2 1 45 1782 1790 1791 1783 +1916 3 2 1 45 1783 1791 1792 1784 +1917 3 2 1 45 1784 1792 238 237 +1918 3 2 1 45 222 223 1793 1785 +1919 3 2 1 45 1785 1793 1794 1786 +1920 3 2 1 45 1786 1794 1795 1787 +1921 3 2 1 45 1787 1795 1796 1788 +1922 3 2 1 45 1788 1796 1797 1789 +1923 3 2 1 45 1789 1797 1798 1790 +1924 3 2 1 45 1790 1798 1799 1791 +1925 3 2 1 45 1791 1799 1800 1792 +1926 3 2 1 45 1792 1800 239 238 +1927 3 2 1 45 223 224 1801 1793 +1928 3 2 1 45 1793 1801 1802 1794 +1929 3 2 1 45 1794 1802 1803 1795 +1930 3 2 1 45 1795 1803 1804 1796 +1931 3 2 1 45 1796 1804 1805 1797 +1932 3 2 1 45 1797 1805 1806 1798 +1933 3 2 1 45 1798 1806 1807 1799 +1934 3 2 1 45 1799 1807 1808 1800 +1935 3 2 1 45 1800 1808 240 239 +1936 3 2 1 45 224 11 137 1801 +1937 3 2 1 45 1801 137 138 1802 +1938 3 2 1 45 1802 138 139 1803 +1939 3 2 1 45 1803 139 140 1804 +1940 3 2 1 45 1804 140 141 1805 +1941 3 2 1 45 1805 141 142 1806 +1942 3 2 1 45 1806 142 143 1807 +1943 3 2 1 45 1807 143 144 1808 +1944 3 2 1 45 1808 144 10 240 +1945 5 2 2 1 8 80 976 89 257 1688 1809 1489 +1946 5 2 2 1 257 1688 1809 1489 258 1687 1810 1490 +1947 5 2 2 1 258 1687 1810 1490 259 1686 1811 1491 +1948 5 2 2 1 259 1686 1811 1491 260 1685 1812 1492 +1949 5 2 2 1 260 1685 1812 1492 261 1684 1813 1493 +1950 5 2 2 1 261 1684 1813 1493 262 1683 1814 1494 +1951 5 2 2 1 262 1683 1814 1494 263 1682 1815 1495 +1952 5 2 2 1 263 1682 1815 1495 264 1681 1816 1496 +1953 5 2 2 1 264 1681 1816 1496 13 193 792 192 +1954 5 2 2 1 89 976 975 90 1489 1809 1817 1497 +1955 5 2 2 1 1489 1809 1817 1497 1490 1810 1818 1498 +1956 5 2 2 1 1490 1810 1818 1498 1491 1811 1819 1499 +1957 5 2 2 1 1491 1811 1819 1499 1492 1812 1820 1500 +1958 5 2 2 1 1492 1812 1820 1500 1493 1813 1821 1501 +1959 5 2 2 1 1493 1813 1821 1501 1494 1814 1822 1502 +1960 5 2 2 1 1494 1814 1822 1502 1495 1815 1823 1503 +1961 5 2 2 1 1495 1815 1823 1503 1496 1816 1824 1504 +1962 5 2 2 1 1496 1816 1824 1504 192 792 800 191 +1963 5 2 2 1 90 975 974 91 1497 1817 1825 1505 +1964 5 2 2 1 1497 1817 1825 1505 1498 1818 1826 1506 +1965 5 2 2 1 1498 1818 1826 1506 1499 1819 1827 1507 +1966 5 2 2 1 1499 1819 1827 1507 1500 1820 1828 1508 +1967 5 2 2 1 1500 1820 1828 1508 1501 1821 1829 1509 +1968 5 2 2 1 1501 1821 1829 1509 1502 1822 1830 1510 +1969 5 2 2 1 1502 1822 1830 1510 1503 1823 1831 1511 +1970 5 2 2 1 1503 1823 1831 1511 1504 1824 1832 1512 +1971 5 2 2 1 1504 1824 1832 1512 191 800 808 190 +1972 5 2 2 1 91 974 973 92 1505 1825 1833 1513 +1973 5 2 2 1 1505 1825 1833 1513 1506 1826 1834 1514 +1974 5 2 2 1 1506 1826 1834 1514 1507 1827 1835 1515 +1975 5 2 2 1 1507 1827 1835 1515 1508 1828 1836 1516 +1976 5 2 2 1 1508 1828 1836 1516 1509 1829 1837 1517 +1977 5 2 2 1 1509 1829 1837 1517 1510 1830 1838 1518 +1978 5 2 2 1 1510 1830 1838 1518 1511 1831 1839 1519 +1979 5 2 2 1 1511 1831 1839 1519 1512 1832 1840 1520 +1980 5 2 2 1 1512 1832 1840 1520 190 808 816 189 +1981 5 2 2 1 92 973 972 93 1513 1833 1841 1521 +1982 5 2 2 1 1513 1833 1841 1521 1514 1834 1842 1522 +1983 5 2 2 1 1514 1834 1842 1522 1515 1835 1843 1523 +1984 5 2 2 1 1515 1835 1843 1523 1516 1836 1844 1524 +1985 5 2 2 1 1516 1836 1844 1524 1517 1837 1845 1525 +1986 5 2 2 1 1517 1837 1845 1525 1518 1838 1846 1526 +1987 5 2 2 1 1518 1838 1846 1526 1519 1839 1847 1527 +1988 5 2 2 1 1519 1839 1847 1527 1520 1840 1848 1528 +1989 5 2 2 1 1520 1840 1848 1528 189 816 824 188 +1990 5 2 2 1 93 972 971 94 1521 1841 1849 1529 +1991 5 2 2 1 1521 1841 1849 1529 1522 1842 1850 1530 +1992 5 2 2 1 1522 1842 1850 1530 1523 1843 1851 1531 +1993 5 2 2 1 1523 1843 1851 1531 1524 1844 1852 1532 +1994 5 2 2 1 1524 1844 1852 1532 1525 1845 1853 1533 +1995 5 2 2 1 1525 1845 1853 1533 1526 1846 1854 1534 +1996 5 2 2 1 1526 1846 1854 1534 1527 1847 1855 1535 +1997 5 2 2 1 1527 1847 1855 1535 1528 1848 1856 1536 +1998 5 2 2 1 1528 1848 1856 1536 188 824 832 187 +1999 5 2 2 1 94 971 970 95 1529 1849 1857 1537 +2000 5 2 2 1 1529 1849 1857 1537 1530 1850 1858 1538 +2001 5 2 2 1 1530 1850 1858 1538 1531 1851 1859 1539 +2002 5 2 2 1 1531 1851 1859 1539 1532 1852 1860 1540 +2003 5 2 2 1 1532 1852 1860 1540 1533 1853 1861 1541 +2004 5 2 2 1 1533 1853 1861 1541 1534 1854 1862 1542 +2005 5 2 2 1 1534 1854 1862 1542 1535 1855 1863 1543 +2006 5 2 2 1 1535 1855 1863 1543 1536 1856 1864 1544 +2007 5 2 2 1 1536 1856 1864 1544 187 832 840 186 +2008 5 2 2 1 95 970 969 96 1537 1857 1865 1545 +2009 5 2 2 1 1537 1857 1865 1545 1538 1858 1866 1546 +2010 5 2 2 1 1538 1858 1866 1546 1539 1859 1867 1547 +2011 5 2 2 1 1539 1859 1867 1547 1540 1860 1868 1548 +2012 5 2 2 1 1540 1860 1868 1548 1541 1861 1869 1549 +2013 5 2 2 1 1541 1861 1869 1549 1542 1862 1870 1550 +2014 5 2 2 1 1542 1862 1870 1550 1543 1863 1871 1551 +2015 5 2 2 1 1543 1863 1871 1551 1544 1864 1872 1552 +2016 5 2 2 1 1544 1864 1872 1552 186 840 848 185 +2017 5 2 2 1 96 969 48 6 1545 1865 1240 241 +2018 5 2 2 1 1545 1865 1240 241 1546 1866 1248 242 +2019 5 2 2 1 1546 1866 1248 242 1547 1867 1256 243 +2020 5 2 2 1 1547 1867 1256 243 1548 1868 1264 244 +2021 5 2 2 1 1548 1868 1264 244 1549 1869 1272 245 +2022 5 2 2 1 1549 1869 1272 245 1550 1870 1280 246 +2023 5 2 2 1 1550 1870 1280 246 1551 1871 1288 247 +2024 5 2 2 1 1551 1871 1288 247 1552 1872 1296 248 +2025 5 2 2 1 1552 1872 1296 248 185 848 184 16 +2026 5 2 2 1 80 79 968 976 1688 1696 1873 1809 +2027 5 2 2 1 1688 1696 1873 1809 1687 1695 1874 1810 +2028 5 2 2 1 1687 1695 1874 1810 1686 1694 1875 1811 +2029 5 2 2 1 1686 1694 1875 1811 1685 1693 1876 1812 +2030 5 2 2 1 1685 1693 1876 1812 1684 1692 1877 1813 +2031 5 2 2 1 1684 1692 1877 1813 1683 1691 1878 1814 +2032 5 2 2 1 1683 1691 1878 1814 1682 1690 1879 1815 +2033 5 2 2 1 1682 1690 1879 1815 1681 1689 1880 1816 +2034 5 2 2 1 1681 1689 1880 1816 193 194 791 792 +2035 5 2 2 1 976 968 967 975 1809 1873 1881 1817 +2036 5 2 2 1 1809 1873 1881 1817 1810 1874 1882 1818 +2037 5 2 2 1 1810 1874 1882 1818 1811 1875 1883 1819 +2038 5 2 2 1 1811 1875 1883 1819 1812 1876 1884 1820 +2039 5 2 2 1 1812 1876 1884 1820 1813 1877 1885 1821 +2040 5 2 2 1 1813 1877 1885 1821 1814 1878 1886 1822 +2041 5 2 2 1 1814 1878 1886 1822 1815 1879 1887 1823 +2042 5 2 2 1 1815 1879 1887 1823 1816 1880 1888 1824 +2043 5 2 2 1 1816 1880 1888 1824 792 791 799 800 +2044 5 2 2 1 975 967 966 974 1817 1881 1889 1825 +2045 5 2 2 1 1817 1881 1889 1825 1818 1882 1890 1826 +2046 5 2 2 1 1818 1882 1890 1826 1819 1883 1891 1827 +2047 5 2 2 1 1819 1883 1891 1827 1820 1884 1892 1828 +2048 5 2 2 1 1820 1884 1892 1828 1821 1885 1893 1829 +2049 5 2 2 1 1821 1885 1893 1829 1822 1886 1894 1830 +2050 5 2 2 1 1822 1886 1894 1830 1823 1887 1895 1831 +2051 5 2 2 1 1823 1887 1895 1831 1824 1888 1896 1832 +2052 5 2 2 1 1824 1888 1896 1832 800 799 807 808 +2053 5 2 2 1 974 966 965 973 1825 1889 1897 1833 +2054 5 2 2 1 1825 1889 1897 1833 1826 1890 1898 1834 +2055 5 2 2 1 1826 1890 1898 1834 1827 1891 1899 1835 +2056 5 2 2 1 1827 1891 1899 1835 1828 1892 1900 1836 +2057 5 2 2 1 1828 1892 1900 1836 1829 1893 1901 1837 +2058 5 2 2 1 1829 1893 1901 1837 1830 1894 1902 1838 +2059 5 2 2 1 1830 1894 1902 1838 1831 1895 1903 1839 +2060 5 2 2 1 1831 1895 1903 1839 1832 1896 1904 1840 +2061 5 2 2 1 1832 1896 1904 1840 808 807 815 816 +2062 5 2 2 1 973 965 964 972 1833 1897 1905 1841 +2063 5 2 2 1 1833 1897 1905 1841 1834 1898 1906 1842 +2064 5 2 2 1 1834 1898 1906 1842 1835 1899 1907 1843 +2065 5 2 2 1 1835 1899 1907 1843 1836 1900 1908 1844 +2066 5 2 2 1 1836 1900 1908 1844 1837 1901 1909 1845 +2067 5 2 2 1 1837 1901 1909 1845 1838 1902 1910 1846 +2068 5 2 2 1 1838 1902 1910 1846 1839 1903 1911 1847 +2069 5 2 2 1 1839 1903 1911 1847 1840 1904 1912 1848 +2070 5 2 2 1 1840 1904 1912 1848 816 815 823 824 +2071 5 2 2 1 972 964 963 971 1841 1905 1913 1849 +2072 5 2 2 1 1841 1905 1913 1849 1842 1906 1914 1850 +2073 5 2 2 1 1842 1906 1914 1850 1843 1907 1915 1851 +2074 5 2 2 1 1843 1907 1915 1851 1844 1908 1916 1852 +2075 5 2 2 1 1844 1908 1916 1852 1845 1909 1917 1853 +2076 5 2 2 1 1845 1909 1917 1853 1846 1910 1918 1854 +2077 5 2 2 1 1846 1910 1918 1854 1847 1911 1919 1855 +2078 5 2 2 1 1847 1911 1919 1855 1848 1912 1920 1856 +2079 5 2 2 1 1848 1912 1920 1856 824 823 831 832 +2080 5 2 2 1 971 963 962 970 1849 1913 1921 1857 +2081 5 2 2 1 1849 1913 1921 1857 1850 1914 1922 1858 +2082 5 2 2 1 1850 1914 1922 1858 1851 1915 1923 1859 +2083 5 2 2 1 1851 1915 1923 1859 1852 1916 1924 1860 +2084 5 2 2 1 1852 1916 1924 1860 1853 1917 1925 1861 +2085 5 2 2 1 1853 1917 1925 1861 1854 1918 1926 1862 +2086 5 2 2 1 1854 1918 1926 1862 1855 1919 1927 1863 +2087 5 2 2 1 1855 1919 1927 1863 1856 1920 1928 1864 +2088 5 2 2 1 1856 1920 1928 1864 832 831 839 840 +2089 5 2 2 1 970 962 961 969 1857 1921 1929 1865 +2090 5 2 2 1 1857 1921 1929 1865 1858 1922 1930 1866 +2091 5 2 2 1 1858 1922 1930 1866 1859 1923 1931 1867 +2092 5 2 2 1 1859 1923 1931 1867 1860 1924 1932 1868 +2093 5 2 2 1 1860 1924 1932 1868 1861 1925 1933 1869 +2094 5 2 2 1 1861 1925 1933 1869 1862 1926 1934 1870 +2095 5 2 2 1 1862 1926 1934 1870 1863 1927 1935 1871 +2096 5 2 2 1 1863 1927 1935 1871 1864 1928 1936 1872 +2097 5 2 2 1 1864 1928 1936 1872 840 839 847 848 +2098 5 2 2 1 969 961 47 48 1865 1929 1239 1240 +2099 5 2 2 1 1865 1929 1239 1240 1866 1930 1247 1248 +2100 5 2 2 1 1866 1930 1247 1248 1867 1931 1255 1256 +2101 5 2 2 1 1867 1931 1255 1256 1868 1932 1263 1264 +2102 5 2 2 1 1868 1932 1263 1264 1869 1933 1271 1272 +2103 5 2 2 1 1869 1933 1271 1272 1870 1934 1279 1280 +2104 5 2 2 1 1870 1934 1279 1280 1871 1935 1287 1288 +2105 5 2 2 1 1871 1935 1287 1288 1872 1936 1295 1296 +2106 5 2 2 1 1872 1936 1295 1296 848 847 183 184 +2107 5 2 2 1 79 78 960 968 1696 1704 1937 1873 +2108 5 2 2 1 1696 1704 1937 1873 1695 1703 1938 1874 +2109 5 2 2 1 1695 1703 1938 1874 1694 1702 1939 1875 +2110 5 2 2 1 1694 1702 1939 1875 1693 1701 1940 1876 +2111 5 2 2 1 1693 1701 1940 1876 1692 1700 1941 1877 +2112 5 2 2 1 1692 1700 1941 1877 1691 1699 1942 1878 +2113 5 2 2 1 1691 1699 1942 1878 1690 1698 1943 1879 +2114 5 2 2 1 1690 1698 1943 1879 1689 1697 1944 1880 +2115 5 2 2 1 1689 1697 1944 1880 194 195 790 791 +2116 5 2 2 1 968 960 959 967 1873 1937 1945 1881 +2117 5 2 2 1 1873 1937 1945 1881 1874 1938 1946 1882 +2118 5 2 2 1 1874 1938 1946 1882 1875 1939 1947 1883 +2119 5 2 2 1 1875 1939 1947 1883 1876 1940 1948 1884 +2120 5 2 2 1 1876 1940 1948 1884 1877 1941 1949 1885 +2121 5 2 2 1 1877 1941 1949 1885 1878 1942 1950 1886 +2122 5 2 2 1 1878 1942 1950 1886 1879 1943 1951 1887 +2123 5 2 2 1 1879 1943 1951 1887 1880 1944 1952 1888 +2124 5 2 2 1 1880 1944 1952 1888 791 790 798 799 +2125 5 2 2 1 967 959 958 966 1881 1945 1953 1889 +2126 5 2 2 1 1881 1945 1953 1889 1882 1946 1954 1890 +2127 5 2 2 1 1882 1946 1954 1890 1883 1947 1955 1891 +2128 5 2 2 1 1883 1947 1955 1891 1884 1948 1956 1892 +2129 5 2 2 1 1884 1948 1956 1892 1885 1949 1957 1893 +2130 5 2 2 1 1885 1949 1957 1893 1886 1950 1958 1894 +2131 5 2 2 1 1886 1950 1958 1894 1887 1951 1959 1895 +2132 5 2 2 1 1887 1951 1959 1895 1888 1952 1960 1896 +2133 5 2 2 1 1888 1952 1960 1896 799 798 806 807 +2134 5 2 2 1 966 958 957 965 1889 1953 1961 1897 +2135 5 2 2 1 1889 1953 1961 1897 1890 1954 1962 1898 +2136 5 2 2 1 1890 1954 1962 1898 1891 1955 1963 1899 +2137 5 2 2 1 1891 1955 1963 1899 1892 1956 1964 1900 +2138 5 2 2 1 1892 1956 1964 1900 1893 1957 1965 1901 +2139 5 2 2 1 1893 1957 1965 1901 1894 1958 1966 1902 +2140 5 2 2 1 1894 1958 1966 1902 1895 1959 1967 1903 +2141 5 2 2 1 1895 1959 1967 1903 1896 1960 1968 1904 +2142 5 2 2 1 1896 1960 1968 1904 807 806 814 815 +2143 5 2 2 1 965 957 956 964 1897 1961 1969 1905 +2144 5 2 2 1 1897 1961 1969 1905 1898 1962 1970 1906 +2145 5 2 2 1 1898 1962 1970 1906 1899 1963 1971 1907 +2146 5 2 2 1 1899 1963 1971 1907 1900 1964 1972 1908 +2147 5 2 2 1 1900 1964 1972 1908 1901 1965 1973 1909 +2148 5 2 2 1 1901 1965 1973 1909 1902 1966 1974 1910 +2149 5 2 2 1 1902 1966 1974 1910 1903 1967 1975 1911 +2150 5 2 2 1 1903 1967 1975 1911 1904 1968 1976 1912 +2151 5 2 2 1 1904 1968 1976 1912 815 814 822 823 +2152 5 2 2 1 964 956 955 963 1905 1969 1977 1913 +2153 5 2 2 1 1905 1969 1977 1913 1906 1970 1978 1914 +2154 5 2 2 1 1906 1970 1978 1914 1907 1971 1979 1915 +2155 5 2 2 1 1907 1971 1979 1915 1908 1972 1980 1916 +2156 5 2 2 1 1908 1972 1980 1916 1909 1973 1981 1917 +2157 5 2 2 1 1909 1973 1981 1917 1910 1974 1982 1918 +2158 5 2 2 1 1910 1974 1982 1918 1911 1975 1983 1919 +2159 5 2 2 1 1911 1975 1983 1919 1912 1976 1984 1920 +2160 5 2 2 1 1912 1976 1984 1920 823 822 830 831 +2161 5 2 2 1 963 955 954 962 1913 1977 1985 1921 +2162 5 2 2 1 1913 1977 1985 1921 1914 1978 1986 1922 +2163 5 2 2 1 1914 1978 1986 1922 1915 1979 1987 1923 +2164 5 2 2 1 1915 1979 1987 1923 1916 1980 1988 1924 +2165 5 2 2 1 1916 1980 1988 1924 1917 1981 1989 1925 +2166 5 2 2 1 1917 1981 1989 1925 1918 1982 1990 1926 +2167 5 2 2 1 1918 1982 1990 1926 1919 1983 1991 1927 +2168 5 2 2 1 1919 1983 1991 1927 1920 1984 1992 1928 +2169 5 2 2 1 1920 1984 1992 1928 831 830 838 839 +2170 5 2 2 1 962 954 953 961 1921 1985 1993 1929 +2171 5 2 2 1 1921 1985 1993 1929 1922 1986 1994 1930 +2172 5 2 2 1 1922 1986 1994 1930 1923 1987 1995 1931 +2173 5 2 2 1 1923 1987 1995 1931 1924 1988 1996 1932 +2174 5 2 2 1 1924 1988 1996 1932 1925 1989 1997 1933 +2175 5 2 2 1 1925 1989 1997 1933 1926 1990 1998 1934 +2176 5 2 2 1 1926 1990 1998 1934 1927 1991 1999 1935 +2177 5 2 2 1 1927 1991 1999 1935 1928 1992 2000 1936 +2178 5 2 2 1 1928 1992 2000 1936 839 838 846 847 +2179 5 2 2 1 961 953 46 47 1929 1993 1238 1239 +2180 5 2 2 1 1929 1993 1238 1239 1930 1994 1246 1247 +2181 5 2 2 1 1930 1994 1246 1247 1931 1995 1254 1255 +2182 5 2 2 1 1931 1995 1254 1255 1932 1996 1262 1263 +2183 5 2 2 1 1932 1996 1262 1263 1933 1997 1270 1271 +2184 5 2 2 1 1933 1997 1270 1271 1934 1998 1278 1279 +2185 5 2 2 1 1934 1998 1278 1279 1935 1999 1286 1287 +2186 5 2 2 1 1935 1999 1286 1287 1936 2000 1294 1295 +2187 5 2 2 1 1936 2000 1294 1295 847 846 182 183 +2188 5 2 2 1 78 77 952 960 1704 1712 2001 1937 +2189 5 2 2 1 1704 1712 2001 1937 1703 1711 2002 1938 +2190 5 2 2 1 1703 1711 2002 1938 1702 1710 2003 1939 +2191 5 2 2 1 1702 1710 2003 1939 1701 1709 2004 1940 +2192 5 2 2 1 1701 1709 2004 1940 1700 1708 2005 1941 +2193 5 2 2 1 1700 1708 2005 1941 1699 1707 2006 1942 +2194 5 2 2 1 1699 1707 2006 1942 1698 1706 2007 1943 +2195 5 2 2 1 1698 1706 2007 1943 1697 1705 2008 1944 +2196 5 2 2 1 1697 1705 2008 1944 195 196 789 790 +2197 5 2 2 1 960 952 951 959 1937 2001 2009 1945 +2198 5 2 2 1 1937 2001 2009 1945 1938 2002 2010 1946 +2199 5 2 2 1 1938 2002 2010 1946 1939 2003 2011 1947 +2200 5 2 2 1 1939 2003 2011 1947 1940 2004 2012 1948 +2201 5 2 2 1 1940 2004 2012 1948 1941 2005 2013 1949 +2202 5 2 2 1 1941 2005 2013 1949 1942 2006 2014 1950 +2203 5 2 2 1 1942 2006 2014 1950 1943 2007 2015 1951 +2204 5 2 2 1 1943 2007 2015 1951 1944 2008 2016 1952 +2205 5 2 2 1 1944 2008 2016 1952 790 789 797 798 +2206 5 2 2 1 959 951 950 958 1945 2009 2017 1953 +2207 5 2 2 1 1945 2009 2017 1953 1946 2010 2018 1954 +2208 5 2 2 1 1946 2010 2018 1954 1947 2011 2019 1955 +2209 5 2 2 1 1947 2011 2019 1955 1948 2012 2020 1956 +2210 5 2 2 1 1948 2012 2020 1956 1949 2013 2021 1957 +2211 5 2 2 1 1949 2013 2021 1957 1950 2014 2022 1958 +2212 5 2 2 1 1950 2014 2022 1958 1951 2015 2023 1959 +2213 5 2 2 1 1951 2015 2023 1959 1952 2016 2024 1960 +2214 5 2 2 1 1952 2016 2024 1960 798 797 805 806 +2215 5 2 2 1 958 950 949 957 1953 2017 2025 1961 +2216 5 2 2 1 1953 2017 2025 1961 1954 2018 2026 1962 +2217 5 2 2 1 1954 2018 2026 1962 1955 2019 2027 1963 +2218 5 2 2 1 1955 2019 2027 1963 1956 2020 2028 1964 +2219 5 2 2 1 1956 2020 2028 1964 1957 2021 2029 1965 +2220 5 2 2 1 1957 2021 2029 1965 1958 2022 2030 1966 +2221 5 2 2 1 1958 2022 2030 1966 1959 2023 2031 1967 +2222 5 2 2 1 1959 2023 2031 1967 1960 2024 2032 1968 +2223 5 2 2 1 1960 2024 2032 1968 806 805 813 814 +2224 5 2 2 1 957 949 948 956 1961 2025 2033 1969 +2225 5 2 2 1 1961 2025 2033 1969 1962 2026 2034 1970 +2226 5 2 2 1 1962 2026 2034 1970 1963 2027 2035 1971 +2227 5 2 2 1 1963 2027 2035 1971 1964 2028 2036 1972 +2228 5 2 2 1 1964 2028 2036 1972 1965 2029 2037 1973 +2229 5 2 2 1 1965 2029 2037 1973 1966 2030 2038 1974 +2230 5 2 2 1 1966 2030 2038 1974 1967 2031 2039 1975 +2231 5 2 2 1 1967 2031 2039 1975 1968 2032 2040 1976 +2232 5 2 2 1 1968 2032 2040 1976 814 813 821 822 +2233 5 2 2 1 956 948 947 955 1969 2033 2041 1977 +2234 5 2 2 1 1969 2033 2041 1977 1970 2034 2042 1978 +2235 5 2 2 1 1970 2034 2042 1978 1971 2035 2043 1979 +2236 5 2 2 1 1971 2035 2043 1979 1972 2036 2044 1980 +2237 5 2 2 1 1972 2036 2044 1980 1973 2037 2045 1981 +2238 5 2 2 1 1973 2037 2045 1981 1974 2038 2046 1982 +2239 5 2 2 1 1974 2038 2046 1982 1975 2039 2047 1983 +2240 5 2 2 1 1975 2039 2047 1983 1976 2040 2048 1984 +2241 5 2 2 1 1976 2040 2048 1984 822 821 829 830 +2242 5 2 2 1 955 947 946 954 1977 2041 2049 1985 +2243 5 2 2 1 1977 2041 2049 1985 1978 2042 2050 1986 +2244 5 2 2 1 1978 2042 2050 1986 1979 2043 2051 1987 +2245 5 2 2 1 1979 2043 2051 1987 1980 2044 2052 1988 +2246 5 2 2 1 1980 2044 2052 1988 1981 2045 2053 1989 +2247 5 2 2 1 1981 2045 2053 1989 1982 2046 2054 1990 +2248 5 2 2 1 1982 2046 2054 1990 1983 2047 2055 1991 +2249 5 2 2 1 1983 2047 2055 1991 1984 2048 2056 1992 +2250 5 2 2 1 1984 2048 2056 1992 830 829 837 838 +2251 5 2 2 1 954 946 945 953 1985 2049 2057 1993 +2252 5 2 2 1 1985 2049 2057 1993 1986 2050 2058 1994 +2253 5 2 2 1 1986 2050 2058 1994 1987 2051 2059 1995 +2254 5 2 2 1 1987 2051 2059 1995 1988 2052 2060 1996 +2255 5 2 2 1 1988 2052 2060 1996 1989 2053 2061 1997 +2256 5 2 2 1 1989 2053 2061 1997 1990 2054 2062 1998 +2257 5 2 2 1 1990 2054 2062 1998 1991 2055 2063 1999 +2258 5 2 2 1 1991 2055 2063 1999 1992 2056 2064 2000 +2259 5 2 2 1 1992 2056 2064 2000 838 837 845 846 +2260 5 2 2 1 953 945 45 46 1993 2057 1237 1238 +2261 5 2 2 1 1993 2057 1237 1238 1994 2058 1245 1246 +2262 5 2 2 1 1994 2058 1245 1246 1995 2059 1253 1254 +2263 5 2 2 1 1995 2059 1253 1254 1996 2060 1261 1262 +2264 5 2 2 1 1996 2060 1261 1262 1997 2061 1269 1270 +2265 5 2 2 1 1997 2061 1269 1270 1998 2062 1277 1278 +2266 5 2 2 1 1998 2062 1277 1278 1999 2063 1285 1286 +2267 5 2 2 1 1999 2063 1285 1286 2000 2064 1293 1294 +2268 5 2 2 1 2000 2064 1293 1294 846 845 181 182 +2269 5 2 2 1 77 76 944 952 1712 1720 2065 2001 +2270 5 2 2 1 1712 1720 2065 2001 1711 1719 2066 2002 +2271 5 2 2 1 1711 1719 2066 2002 1710 1718 2067 2003 +2272 5 2 2 1 1710 1718 2067 2003 1709 1717 2068 2004 +2273 5 2 2 1 1709 1717 2068 2004 1708 1716 2069 2005 +2274 5 2 2 1 1708 1716 2069 2005 1707 1715 2070 2006 +2275 5 2 2 1 1707 1715 2070 2006 1706 1714 2071 2007 +2276 5 2 2 1 1706 1714 2071 2007 1705 1713 2072 2008 +2277 5 2 2 1 1705 1713 2072 2008 196 197 788 789 +2278 5 2 2 1 952 944 943 951 2001 2065 2073 2009 +2279 5 2 2 1 2001 2065 2073 2009 2002 2066 2074 2010 +2280 5 2 2 1 2002 2066 2074 2010 2003 2067 2075 2011 +2281 5 2 2 1 2003 2067 2075 2011 2004 2068 2076 2012 +2282 5 2 2 1 2004 2068 2076 2012 2005 2069 2077 2013 +2283 5 2 2 1 2005 2069 2077 2013 2006 2070 2078 2014 +2284 5 2 2 1 2006 2070 2078 2014 2007 2071 2079 2015 +2285 5 2 2 1 2007 2071 2079 2015 2008 2072 2080 2016 +2286 5 2 2 1 2008 2072 2080 2016 789 788 796 797 +2287 5 2 2 1 951 943 942 950 2009 2073 2081 2017 +2288 5 2 2 1 2009 2073 2081 2017 2010 2074 2082 2018 +2289 5 2 2 1 2010 2074 2082 2018 2011 2075 2083 2019 +2290 5 2 2 1 2011 2075 2083 2019 2012 2076 2084 2020 +2291 5 2 2 1 2012 2076 2084 2020 2013 2077 2085 2021 +2292 5 2 2 1 2013 2077 2085 2021 2014 2078 2086 2022 +2293 5 2 2 1 2014 2078 2086 2022 2015 2079 2087 2023 +2294 5 2 2 1 2015 2079 2087 2023 2016 2080 2088 2024 +2295 5 2 2 1 2016 2080 2088 2024 797 796 804 805 +2296 5 2 2 1 950 942 941 949 2017 2081 2089 2025 +2297 5 2 2 1 2017 2081 2089 2025 2018 2082 2090 2026 +2298 5 2 2 1 2018 2082 2090 2026 2019 2083 2091 2027 +2299 5 2 2 1 2019 2083 2091 2027 2020 2084 2092 2028 +2300 5 2 2 1 2020 2084 2092 2028 2021 2085 2093 2029 +2301 5 2 2 1 2021 2085 2093 2029 2022 2086 2094 2030 +2302 5 2 2 1 2022 2086 2094 2030 2023 2087 2095 2031 +2303 5 2 2 1 2023 2087 2095 2031 2024 2088 2096 2032 +2304 5 2 2 1 2024 2088 2096 2032 805 804 812 813 +2305 5 2 2 1 949 941 940 948 2025 2089 2097 2033 +2306 5 2 2 1 2025 2089 2097 2033 2026 2090 2098 2034 +2307 5 2 2 1 2026 2090 2098 2034 2027 2091 2099 2035 +2308 5 2 2 1 2027 2091 2099 2035 2028 2092 2100 2036 +2309 5 2 2 1 2028 2092 2100 2036 2029 2093 2101 2037 +2310 5 2 2 1 2029 2093 2101 2037 2030 2094 2102 2038 +2311 5 2 2 1 2030 2094 2102 2038 2031 2095 2103 2039 +2312 5 2 2 1 2031 2095 2103 2039 2032 2096 2104 2040 +2313 5 2 2 1 2032 2096 2104 2040 813 812 820 821 +2314 5 2 2 1 948 940 939 947 2033 2097 2105 2041 +2315 5 2 2 1 2033 2097 2105 2041 2034 2098 2106 2042 +2316 5 2 2 1 2034 2098 2106 2042 2035 2099 2107 2043 +2317 5 2 2 1 2035 2099 2107 2043 2036 2100 2108 2044 +2318 5 2 2 1 2036 2100 2108 2044 2037 2101 2109 2045 +2319 5 2 2 1 2037 2101 2109 2045 2038 2102 2110 2046 +2320 5 2 2 1 2038 2102 2110 2046 2039 2103 2111 2047 +2321 5 2 2 1 2039 2103 2111 2047 2040 2104 2112 2048 +2322 5 2 2 1 2040 2104 2112 2048 821 820 828 829 +2323 5 2 2 1 947 939 938 946 2041 2105 2113 2049 +2324 5 2 2 1 2041 2105 2113 2049 2042 2106 2114 2050 +2325 5 2 2 1 2042 2106 2114 2050 2043 2107 2115 2051 +2326 5 2 2 1 2043 2107 2115 2051 2044 2108 2116 2052 +2327 5 2 2 1 2044 2108 2116 2052 2045 2109 2117 2053 +2328 5 2 2 1 2045 2109 2117 2053 2046 2110 2118 2054 +2329 5 2 2 1 2046 2110 2118 2054 2047 2111 2119 2055 +2330 5 2 2 1 2047 2111 2119 2055 2048 2112 2120 2056 +2331 5 2 2 1 2048 2112 2120 2056 829 828 836 837 +2332 5 2 2 1 946 938 937 945 2049 2113 2121 2057 +2333 5 2 2 1 2049 2113 2121 2057 2050 2114 2122 2058 +2334 5 2 2 1 2050 2114 2122 2058 2051 2115 2123 2059 +2335 5 2 2 1 2051 2115 2123 2059 2052 2116 2124 2060 +2336 5 2 2 1 2052 2116 2124 2060 2053 2117 2125 2061 +2337 5 2 2 1 2053 2117 2125 2061 2054 2118 2126 2062 +2338 5 2 2 1 2054 2118 2126 2062 2055 2119 2127 2063 +2339 5 2 2 1 2055 2119 2127 2063 2056 2120 2128 2064 +2340 5 2 2 1 2056 2120 2128 2064 837 836 844 845 +2341 5 2 2 1 945 937 44 45 2057 2121 1236 1237 +2342 5 2 2 1 2057 2121 1236 1237 2058 2122 1244 1245 +2343 5 2 2 1 2058 2122 1244 1245 2059 2123 1252 1253 +2344 5 2 2 1 2059 2123 1252 1253 2060 2124 1260 1261 +2345 5 2 2 1 2060 2124 1260 1261 2061 2125 1268 1269 +2346 5 2 2 1 2061 2125 1268 1269 2062 2126 1276 1277 +2347 5 2 2 1 2062 2126 1276 1277 2063 2127 1284 1285 +2348 5 2 2 1 2063 2127 1284 1285 2064 2128 1292 1293 +2349 5 2 2 1 2064 2128 1292 1293 845 844 180 181 +2350 5 2 2 1 76 75 936 944 1720 1728 2129 2065 +2351 5 2 2 1 1720 1728 2129 2065 1719 1727 2130 2066 +2352 5 2 2 1 1719 1727 2130 2066 1718 1726 2131 2067 +2353 5 2 2 1 1718 1726 2131 2067 1717 1725 2132 2068 +2354 5 2 2 1 1717 1725 2132 2068 1716 1724 2133 2069 +2355 5 2 2 1 1716 1724 2133 2069 1715 1723 2134 2070 +2356 5 2 2 1 1715 1723 2134 2070 1714 1722 2135 2071 +2357 5 2 2 1 1714 1722 2135 2071 1713 1721 2136 2072 +2358 5 2 2 1 1713 1721 2136 2072 197 198 787 788 +2359 5 2 2 1 944 936 935 943 2065 2129 2137 2073 +2360 5 2 2 1 2065 2129 2137 2073 2066 2130 2138 2074 +2361 5 2 2 1 2066 2130 2138 2074 2067 2131 2139 2075 +2362 5 2 2 1 2067 2131 2139 2075 2068 2132 2140 2076 +2363 5 2 2 1 2068 2132 2140 2076 2069 2133 2141 2077 +2364 5 2 2 1 2069 2133 2141 2077 2070 2134 2142 2078 +2365 5 2 2 1 2070 2134 2142 2078 2071 2135 2143 2079 +2366 5 2 2 1 2071 2135 2143 2079 2072 2136 2144 2080 +2367 5 2 2 1 2072 2136 2144 2080 788 787 795 796 +2368 5 2 2 1 943 935 934 942 2073 2137 2145 2081 +2369 5 2 2 1 2073 2137 2145 2081 2074 2138 2146 2082 +2370 5 2 2 1 2074 2138 2146 2082 2075 2139 2147 2083 +2371 5 2 2 1 2075 2139 2147 2083 2076 2140 2148 2084 +2372 5 2 2 1 2076 2140 2148 2084 2077 2141 2149 2085 +2373 5 2 2 1 2077 2141 2149 2085 2078 2142 2150 2086 +2374 5 2 2 1 2078 2142 2150 2086 2079 2143 2151 2087 +2375 5 2 2 1 2079 2143 2151 2087 2080 2144 2152 2088 +2376 5 2 2 1 2080 2144 2152 2088 796 795 803 804 +2377 5 2 2 1 942 934 933 941 2081 2145 2153 2089 +2378 5 2 2 1 2081 2145 2153 2089 2082 2146 2154 2090 +2379 5 2 2 1 2082 2146 2154 2090 2083 2147 2155 2091 +2380 5 2 2 1 2083 2147 2155 2091 2084 2148 2156 2092 +2381 5 2 2 1 2084 2148 2156 2092 2085 2149 2157 2093 +2382 5 2 2 1 2085 2149 2157 2093 2086 2150 2158 2094 +2383 5 2 2 1 2086 2150 2158 2094 2087 2151 2159 2095 +2384 5 2 2 1 2087 2151 2159 2095 2088 2152 2160 2096 +2385 5 2 2 1 2088 2152 2160 2096 804 803 811 812 +2386 5 2 2 1 941 933 932 940 2089 2153 2161 2097 +2387 5 2 2 1 2089 2153 2161 2097 2090 2154 2162 2098 +2388 5 2 2 1 2090 2154 2162 2098 2091 2155 2163 2099 +2389 5 2 2 1 2091 2155 2163 2099 2092 2156 2164 2100 +2390 5 2 2 1 2092 2156 2164 2100 2093 2157 2165 2101 +2391 5 2 2 1 2093 2157 2165 2101 2094 2158 2166 2102 +2392 5 2 2 1 2094 2158 2166 2102 2095 2159 2167 2103 +2393 5 2 2 1 2095 2159 2167 2103 2096 2160 2168 2104 +2394 5 2 2 1 2096 2160 2168 2104 812 811 819 820 +2395 5 2 2 1 940 932 931 939 2097 2161 2169 2105 +2396 5 2 2 1 2097 2161 2169 2105 2098 2162 2170 2106 +2397 5 2 2 1 2098 2162 2170 2106 2099 2163 2171 2107 +2398 5 2 2 1 2099 2163 2171 2107 2100 2164 2172 2108 +2399 5 2 2 1 2100 2164 2172 2108 2101 2165 2173 2109 +2400 5 2 2 1 2101 2165 2173 2109 2102 2166 2174 2110 +2401 5 2 2 1 2102 2166 2174 2110 2103 2167 2175 2111 +2402 5 2 2 1 2103 2167 2175 2111 2104 2168 2176 2112 +2403 5 2 2 1 2104 2168 2176 2112 820 819 827 828 +2404 5 2 2 1 939 931 930 938 2105 2169 2177 2113 +2405 5 2 2 1 2105 2169 2177 2113 2106 2170 2178 2114 +2406 5 2 2 1 2106 2170 2178 2114 2107 2171 2179 2115 +2407 5 2 2 1 2107 2171 2179 2115 2108 2172 2180 2116 +2408 5 2 2 1 2108 2172 2180 2116 2109 2173 2181 2117 +2409 5 2 2 1 2109 2173 2181 2117 2110 2174 2182 2118 +2410 5 2 2 1 2110 2174 2182 2118 2111 2175 2183 2119 +2411 5 2 2 1 2111 2175 2183 2119 2112 2176 2184 2120 +2412 5 2 2 1 2112 2176 2184 2120 828 827 835 836 +2413 5 2 2 1 938 930 929 937 2113 2177 2185 2121 +2414 5 2 2 1 2113 2177 2185 2121 2114 2178 2186 2122 +2415 5 2 2 1 2114 2178 2186 2122 2115 2179 2187 2123 +2416 5 2 2 1 2115 2179 2187 2123 2116 2180 2188 2124 +2417 5 2 2 1 2116 2180 2188 2124 2117 2181 2189 2125 +2418 5 2 2 1 2117 2181 2189 2125 2118 2182 2190 2126 +2419 5 2 2 1 2118 2182 2190 2126 2119 2183 2191 2127 +2420 5 2 2 1 2119 2183 2191 2127 2120 2184 2192 2128 +2421 5 2 2 1 2120 2184 2192 2128 836 835 843 844 +2422 5 2 2 1 937 929 43 44 2121 2185 1235 1236 +2423 5 2 2 1 2121 2185 1235 1236 2122 2186 1243 1244 +2424 5 2 2 1 2122 2186 1243 1244 2123 2187 1251 1252 +2425 5 2 2 1 2123 2187 1251 1252 2124 2188 1259 1260 +2426 5 2 2 1 2124 2188 1259 1260 2125 2189 1267 1268 +2427 5 2 2 1 2125 2189 1267 1268 2126 2190 1275 1276 +2428 5 2 2 1 2126 2190 1275 1276 2127 2191 1283 1284 +2429 5 2 2 1 2127 2191 1283 1284 2128 2192 1291 1292 +2430 5 2 2 1 2128 2192 1291 1292 844 843 179 180 +2431 5 2 2 1 75 74 928 936 1728 1736 2193 2129 +2432 5 2 2 1 1728 1736 2193 2129 1727 1735 2194 2130 +2433 5 2 2 1 1727 1735 2194 2130 1726 1734 2195 2131 +2434 5 2 2 1 1726 1734 2195 2131 1725 1733 2196 2132 +2435 5 2 2 1 1725 1733 2196 2132 1724 1732 2197 2133 +2436 5 2 2 1 1724 1732 2197 2133 1723 1731 2198 2134 +2437 5 2 2 1 1723 1731 2198 2134 1722 1730 2199 2135 +2438 5 2 2 1 1722 1730 2199 2135 1721 1729 2200 2136 +2439 5 2 2 1 1721 1729 2200 2136 198 199 786 787 +2440 5 2 2 1 936 928 927 935 2129 2193 2201 2137 +2441 5 2 2 1 2129 2193 2201 2137 2130 2194 2202 2138 +2442 5 2 2 1 2130 2194 2202 2138 2131 2195 2203 2139 +2443 5 2 2 1 2131 2195 2203 2139 2132 2196 2204 2140 +2444 5 2 2 1 2132 2196 2204 2140 2133 2197 2205 2141 +2445 5 2 2 1 2133 2197 2205 2141 2134 2198 2206 2142 +2446 5 2 2 1 2134 2198 2206 2142 2135 2199 2207 2143 +2447 5 2 2 1 2135 2199 2207 2143 2136 2200 2208 2144 +2448 5 2 2 1 2136 2200 2208 2144 787 786 794 795 +2449 5 2 2 1 935 927 926 934 2137 2201 2209 2145 +2450 5 2 2 1 2137 2201 2209 2145 2138 2202 2210 2146 +2451 5 2 2 1 2138 2202 2210 2146 2139 2203 2211 2147 +2452 5 2 2 1 2139 2203 2211 2147 2140 2204 2212 2148 +2453 5 2 2 1 2140 2204 2212 2148 2141 2205 2213 2149 +2454 5 2 2 1 2141 2205 2213 2149 2142 2206 2214 2150 +2455 5 2 2 1 2142 2206 2214 2150 2143 2207 2215 2151 +2456 5 2 2 1 2143 2207 2215 2151 2144 2208 2216 2152 +2457 5 2 2 1 2144 2208 2216 2152 795 794 802 803 +2458 5 2 2 1 934 926 925 933 2145 2209 2217 2153 +2459 5 2 2 1 2145 2209 2217 2153 2146 2210 2218 2154 +2460 5 2 2 1 2146 2210 2218 2154 2147 2211 2219 2155 +2461 5 2 2 1 2147 2211 2219 2155 2148 2212 2220 2156 +2462 5 2 2 1 2148 2212 2220 2156 2149 2213 2221 2157 +2463 5 2 2 1 2149 2213 2221 2157 2150 2214 2222 2158 +2464 5 2 2 1 2150 2214 2222 2158 2151 2215 2223 2159 +2465 5 2 2 1 2151 2215 2223 2159 2152 2216 2224 2160 +2466 5 2 2 1 2152 2216 2224 2160 803 802 810 811 +2467 5 2 2 1 933 925 924 932 2153 2217 2225 2161 +2468 5 2 2 1 2153 2217 2225 2161 2154 2218 2226 2162 +2469 5 2 2 1 2154 2218 2226 2162 2155 2219 2227 2163 +2470 5 2 2 1 2155 2219 2227 2163 2156 2220 2228 2164 +2471 5 2 2 1 2156 2220 2228 2164 2157 2221 2229 2165 +2472 5 2 2 1 2157 2221 2229 2165 2158 2222 2230 2166 +2473 5 2 2 1 2158 2222 2230 2166 2159 2223 2231 2167 +2474 5 2 2 1 2159 2223 2231 2167 2160 2224 2232 2168 +2475 5 2 2 1 2160 2224 2232 2168 811 810 818 819 +2476 5 2 2 1 932 924 923 931 2161 2225 2233 2169 +2477 5 2 2 1 2161 2225 2233 2169 2162 2226 2234 2170 +2478 5 2 2 1 2162 2226 2234 2170 2163 2227 2235 2171 +2479 5 2 2 1 2163 2227 2235 2171 2164 2228 2236 2172 +2480 5 2 2 1 2164 2228 2236 2172 2165 2229 2237 2173 +2481 5 2 2 1 2165 2229 2237 2173 2166 2230 2238 2174 +2482 5 2 2 1 2166 2230 2238 2174 2167 2231 2239 2175 +2483 5 2 2 1 2167 2231 2239 2175 2168 2232 2240 2176 +2484 5 2 2 1 2168 2232 2240 2176 819 818 826 827 +2485 5 2 2 1 931 923 922 930 2169 2233 2241 2177 +2486 5 2 2 1 2169 2233 2241 2177 2170 2234 2242 2178 +2487 5 2 2 1 2170 2234 2242 2178 2171 2235 2243 2179 +2488 5 2 2 1 2171 2235 2243 2179 2172 2236 2244 2180 +2489 5 2 2 1 2172 2236 2244 2180 2173 2237 2245 2181 +2490 5 2 2 1 2173 2237 2245 2181 2174 2238 2246 2182 +2491 5 2 2 1 2174 2238 2246 2182 2175 2239 2247 2183 +2492 5 2 2 1 2175 2239 2247 2183 2176 2240 2248 2184 +2493 5 2 2 1 2176 2240 2248 2184 827 826 834 835 +2494 5 2 2 1 930 922 921 929 2177 2241 2249 2185 +2495 5 2 2 1 2177 2241 2249 2185 2178 2242 2250 2186 +2496 5 2 2 1 2178 2242 2250 2186 2179 2243 2251 2187 +2497 5 2 2 1 2179 2243 2251 2187 2180 2244 2252 2188 +2498 5 2 2 1 2180 2244 2252 2188 2181 2245 2253 2189 +2499 5 2 2 1 2181 2245 2253 2189 2182 2246 2254 2190 +2500 5 2 2 1 2182 2246 2254 2190 2183 2247 2255 2191 +2501 5 2 2 1 2183 2247 2255 2191 2184 2248 2256 2192 +2502 5 2 2 1 2184 2248 2256 2192 835 834 842 843 +2503 5 2 2 1 929 921 42 43 2185 2249 1234 1235 +2504 5 2 2 1 2185 2249 1234 1235 2186 2250 1242 1243 +2505 5 2 2 1 2186 2250 1242 1243 2187 2251 1250 1251 +2506 5 2 2 1 2187 2251 1250 1251 2188 2252 1258 1259 +2507 5 2 2 1 2188 2252 1258 1259 2189 2253 1266 1267 +2508 5 2 2 1 2189 2253 1266 1267 2190 2254 1274 1275 +2509 5 2 2 1 2190 2254 1274 1275 2191 2255 1282 1283 +2510 5 2 2 1 2191 2255 1282 1283 2192 2256 1290 1291 +2511 5 2 2 1 2192 2256 1290 1291 843 842 178 179 +2512 5 2 2 1 74 73 920 928 1736 1744 2257 2193 +2513 5 2 2 1 1736 1744 2257 2193 1735 1743 2258 2194 +2514 5 2 2 1 1735 1743 2258 2194 1734 1742 2259 2195 +2515 5 2 2 1 1734 1742 2259 2195 1733 1741 2260 2196 +2516 5 2 2 1 1733 1741 2260 2196 1732 1740 2261 2197 +2517 5 2 2 1 1732 1740 2261 2197 1731 1739 2262 2198 +2518 5 2 2 1 1731 1739 2262 2198 1730 1738 2263 2199 +2519 5 2 2 1 1730 1738 2263 2199 1729 1737 2264 2200 +2520 5 2 2 1 1729 1737 2264 2200 199 200 785 786 +2521 5 2 2 1 928 920 919 927 2193 2257 2265 2201 +2522 5 2 2 1 2193 2257 2265 2201 2194 2258 2266 2202 +2523 5 2 2 1 2194 2258 2266 2202 2195 2259 2267 2203 +2524 5 2 2 1 2195 2259 2267 2203 2196 2260 2268 2204 +2525 5 2 2 1 2196 2260 2268 2204 2197 2261 2269 2205 +2526 5 2 2 1 2197 2261 2269 2205 2198 2262 2270 2206 +2527 5 2 2 1 2198 2262 2270 2206 2199 2263 2271 2207 +2528 5 2 2 1 2199 2263 2271 2207 2200 2264 2272 2208 +2529 5 2 2 1 2200 2264 2272 2208 786 785 793 794 +2530 5 2 2 1 927 919 918 926 2201 2265 2273 2209 +2531 5 2 2 1 2201 2265 2273 2209 2202 2266 2274 2210 +2532 5 2 2 1 2202 2266 2274 2210 2203 2267 2275 2211 +2533 5 2 2 1 2203 2267 2275 2211 2204 2268 2276 2212 +2534 5 2 2 1 2204 2268 2276 2212 2205 2269 2277 2213 +2535 5 2 2 1 2205 2269 2277 2213 2206 2270 2278 2214 +2536 5 2 2 1 2206 2270 2278 2214 2207 2271 2279 2215 +2537 5 2 2 1 2207 2271 2279 2215 2208 2272 2280 2216 +2538 5 2 2 1 2208 2272 2280 2216 794 793 801 802 +2539 5 2 2 1 926 918 917 925 2209 2273 2281 2217 +2540 5 2 2 1 2209 2273 2281 2217 2210 2274 2282 2218 +2541 5 2 2 1 2210 2274 2282 2218 2211 2275 2283 2219 +2542 5 2 2 1 2211 2275 2283 2219 2212 2276 2284 2220 +2543 5 2 2 1 2212 2276 2284 2220 2213 2277 2285 2221 +2544 5 2 2 1 2213 2277 2285 2221 2214 2278 2286 2222 +2545 5 2 2 1 2214 2278 2286 2222 2215 2279 2287 2223 +2546 5 2 2 1 2215 2279 2287 2223 2216 2280 2288 2224 +2547 5 2 2 1 2216 2280 2288 2224 802 801 809 810 +2548 5 2 2 1 925 917 916 924 2217 2281 2289 2225 +2549 5 2 2 1 2217 2281 2289 2225 2218 2282 2290 2226 +2550 5 2 2 1 2218 2282 2290 2226 2219 2283 2291 2227 +2551 5 2 2 1 2219 2283 2291 2227 2220 2284 2292 2228 +2552 5 2 2 1 2220 2284 2292 2228 2221 2285 2293 2229 +2553 5 2 2 1 2221 2285 2293 2229 2222 2286 2294 2230 +2554 5 2 2 1 2222 2286 2294 2230 2223 2287 2295 2231 +2555 5 2 2 1 2223 2287 2295 2231 2224 2288 2296 2232 +2556 5 2 2 1 2224 2288 2296 2232 810 809 817 818 +2557 5 2 2 1 924 916 915 923 2225 2289 2297 2233 +2558 5 2 2 1 2225 2289 2297 2233 2226 2290 2298 2234 +2559 5 2 2 1 2226 2290 2298 2234 2227 2291 2299 2235 +2560 5 2 2 1 2227 2291 2299 2235 2228 2292 2300 2236 +2561 5 2 2 1 2228 2292 2300 2236 2229 2293 2301 2237 +2562 5 2 2 1 2229 2293 2301 2237 2230 2294 2302 2238 +2563 5 2 2 1 2230 2294 2302 2238 2231 2295 2303 2239 +2564 5 2 2 1 2231 2295 2303 2239 2232 2296 2304 2240 +2565 5 2 2 1 2232 2296 2304 2240 818 817 825 826 +2566 5 2 2 1 923 915 914 922 2233 2297 2305 2241 +2567 5 2 2 1 2233 2297 2305 2241 2234 2298 2306 2242 +2568 5 2 2 1 2234 2298 2306 2242 2235 2299 2307 2243 +2569 5 2 2 1 2235 2299 2307 2243 2236 2300 2308 2244 +2570 5 2 2 1 2236 2300 2308 2244 2237 2301 2309 2245 +2571 5 2 2 1 2237 2301 2309 2245 2238 2302 2310 2246 +2572 5 2 2 1 2238 2302 2310 2246 2239 2303 2311 2247 +2573 5 2 2 1 2239 2303 2311 2247 2240 2304 2312 2248 +2574 5 2 2 1 2240 2304 2312 2248 826 825 833 834 +2575 5 2 2 1 922 914 913 921 2241 2305 2313 2249 +2576 5 2 2 1 2241 2305 2313 2249 2242 2306 2314 2250 +2577 5 2 2 1 2242 2306 2314 2250 2243 2307 2315 2251 +2578 5 2 2 1 2243 2307 2315 2251 2244 2308 2316 2252 +2579 5 2 2 1 2244 2308 2316 2252 2245 2309 2317 2253 +2580 5 2 2 1 2245 2309 2317 2253 2246 2310 2318 2254 +2581 5 2 2 1 2246 2310 2318 2254 2247 2311 2319 2255 +2582 5 2 2 1 2247 2311 2319 2255 2248 2312 2320 2256 +2583 5 2 2 1 2248 2312 2320 2256 834 833 841 842 +2584 5 2 2 1 921 913 41 42 2249 2313 1233 1234 +2585 5 2 2 1 2249 2313 1233 1234 2250 2314 1241 1242 +2586 5 2 2 1 2250 2314 1241 1242 2251 2315 1249 1250 +2587 5 2 2 1 2251 2315 1249 1250 2252 2316 1257 1258 +2588 5 2 2 1 2252 2316 1257 1258 2253 2317 1265 1266 +2589 5 2 2 1 2253 2317 1265 1266 2254 2318 1273 1274 +2590 5 2 2 1 2254 2318 1273 1274 2255 2319 1281 1282 +2591 5 2 2 1 2255 2319 1281 1282 2256 2320 1289 1290 +2592 5 2 2 1 2256 2320 1289 1290 842 841 177 178 +2593 5 2 2 1 73 7 56 920 1744 225 1304 2257 +2594 5 2 2 1 1744 225 1304 2257 1743 226 1312 2258 +2595 5 2 2 1 1743 226 1312 2258 1742 227 1320 2259 +2596 5 2 2 1 1742 227 1320 2259 1741 228 1328 2260 +2597 5 2 2 1 1741 228 1328 2260 1740 229 1336 2261 +2598 5 2 2 1 1740 229 1336 2261 1739 230 1344 2262 +2599 5 2 2 1 1739 230 1344 2262 1738 231 1352 2263 +2600 5 2 2 1 1738 231 1352 2263 1737 232 1360 2264 +2601 5 2 2 1 1737 232 1360 2264 200 14 201 785 +2602 5 2 2 1 920 56 55 919 2257 1304 1303 2265 +2603 5 2 2 1 2257 1304 1303 2265 2258 1312 1311 2266 +2604 5 2 2 1 2258 1312 1311 2266 2259 1320 1319 2267 +2605 5 2 2 1 2259 1320 1319 2267 2260 1328 1327 2268 +2606 5 2 2 1 2260 1328 1327 2268 2261 1336 1335 2269 +2607 5 2 2 1 2261 1336 1335 2269 2262 1344 1343 2270 +2608 5 2 2 1 2262 1344 1343 2270 2263 1352 1351 2271 +2609 5 2 2 1 2263 1352 1351 2271 2264 1360 1359 2272 +2610 5 2 2 1 2264 1360 1359 2272 785 201 202 793 +2611 5 2 2 1 919 55 54 918 2265 1303 1302 2273 +2612 5 2 2 1 2265 1303 1302 2273 2266 1311 1310 2274 +2613 5 2 2 1 2266 1311 1310 2274 2267 1319 1318 2275 +2614 5 2 2 1 2267 1319 1318 2275 2268 1327 1326 2276 +2615 5 2 2 1 2268 1327 1326 2276 2269 1335 1334 2277 +2616 5 2 2 1 2269 1335 1334 2277 2270 1343 1342 2278 +2617 5 2 2 1 2270 1343 1342 2278 2271 1351 1350 2279 +2618 5 2 2 1 2271 1351 1350 2279 2272 1359 1358 2280 +2619 5 2 2 1 2272 1359 1358 2280 793 202 203 801 +2620 5 2 2 1 918 54 53 917 2273 1302 1301 2281 +2621 5 2 2 1 2273 1302 1301 2281 2274 1310 1309 2282 +2622 5 2 2 1 2274 1310 1309 2282 2275 1318 1317 2283 +2623 5 2 2 1 2275 1318 1317 2283 2276 1326 1325 2284 +2624 5 2 2 1 2276 1326 1325 2284 2277 1334 1333 2285 +2625 5 2 2 1 2277 1334 1333 2285 2278 1342 1341 2286 +2626 5 2 2 1 2278 1342 1341 2286 2279 1350 1349 2287 +2627 5 2 2 1 2279 1350 1349 2287 2280 1358 1357 2288 +2628 5 2 2 1 2280 1358 1357 2288 801 203 204 809 +2629 5 2 2 1 917 53 52 916 2281 1301 1300 2289 +2630 5 2 2 1 2281 1301 1300 2289 2282 1309 1308 2290 +2631 5 2 2 1 2282 1309 1308 2290 2283 1317 1316 2291 +2632 5 2 2 1 2283 1317 1316 2291 2284 1325 1324 2292 +2633 5 2 2 1 2284 1325 1324 2292 2285 1333 1332 2293 +2634 5 2 2 1 2285 1333 1332 2293 2286 1341 1340 2294 +2635 5 2 2 1 2286 1341 1340 2294 2287 1349 1348 2295 +2636 5 2 2 1 2287 1349 1348 2295 2288 1357 1356 2296 +2637 5 2 2 1 2288 1357 1356 2296 809 204 205 817 +2638 5 2 2 1 916 52 51 915 2289 1300 1299 2297 +2639 5 2 2 1 2289 1300 1299 2297 2290 1308 1307 2298 +2640 5 2 2 1 2290 1308 1307 2298 2291 1316 1315 2299 +2641 5 2 2 1 2291 1316 1315 2299 2292 1324 1323 2300 +2642 5 2 2 1 2292 1324 1323 2300 2293 1332 1331 2301 +2643 5 2 2 1 2293 1332 1331 2301 2294 1340 1339 2302 +2644 5 2 2 1 2294 1340 1339 2302 2295 1348 1347 2303 +2645 5 2 2 1 2295 1348 1347 2303 2296 1356 1355 2304 +2646 5 2 2 1 2296 1356 1355 2304 817 205 206 825 +2647 5 2 2 1 915 51 50 914 2297 1299 1298 2305 +2648 5 2 2 1 2297 1299 1298 2305 2298 1307 1306 2306 +2649 5 2 2 1 2298 1307 1306 2306 2299 1315 1314 2307 +2650 5 2 2 1 2299 1315 1314 2307 2300 1323 1322 2308 +2651 5 2 2 1 2300 1323 1322 2308 2301 1331 1330 2309 +2652 5 2 2 1 2301 1331 1330 2309 2302 1339 1338 2310 +2653 5 2 2 1 2302 1339 1338 2310 2303 1347 1346 2311 +2654 5 2 2 1 2303 1347 1346 2311 2304 1355 1354 2312 +2655 5 2 2 1 2304 1355 1354 2312 825 206 207 833 +2656 5 2 2 1 914 50 49 913 2305 1298 1297 2313 +2657 5 2 2 1 2305 1298 1297 2313 2306 1306 1305 2314 +2658 5 2 2 1 2306 1306 1305 2314 2307 1314 1313 2315 +2659 5 2 2 1 2307 1314 1313 2315 2308 1322 1321 2316 +2660 5 2 2 1 2308 1322 1321 2316 2309 1330 1329 2317 +2661 5 2 2 1 2309 1330 1329 2317 2310 1338 1337 2318 +2662 5 2 2 1 2310 1338 1337 2318 2311 1346 1345 2319 +2663 5 2 2 1 2311 1346 1345 2319 2312 1354 1353 2320 +2664 5 2 2 1 2312 1354 1353 2320 833 207 208 841 +2665 5 2 2 1 913 49 5 41 2313 1297 209 1233 +2666 5 2 2 1 2313 1297 209 1233 2314 1305 210 1241 +2667 5 2 2 1 2314 1305 210 1241 2315 1313 211 1249 +2668 5 2 2 1 2315 1313 211 1249 2316 1321 212 1257 +2669 5 2 2 1 2316 1321 212 1257 2317 1329 213 1265 +2670 5 2 2 1 2317 1329 213 1265 2318 1337 214 1273 +2671 5 2 2 1 2318 1337 214 1273 2319 1345 215 1281 +2672 5 2 2 1 2319 1345 215 1281 2320 1353 216 1289 +2673 5 2 2 1 2320 1353 216 1289 841 208 15 177 +2674 5 2 2 2 2 25 1040 104 249 1105 2321 1425 +2675 5 2 2 2 249 1105 2321 1425 250 1106 2322 1433 +2676 5 2 2 2 250 1106 2322 1433 251 1107 2323 1441 +2677 5 2 2 2 251 1107 2323 1441 252 1108 2324 1449 +2678 5 2 2 2 252 1108 2324 1449 253 1109 2325 1457 +2679 5 2 2 2 253 1109 2325 1457 254 1110 2326 1465 +2680 5 2 2 2 254 1110 2326 1465 255 1111 2327 1473 +2681 5 2 2 2 255 1111 2327 1473 256 1112 2328 1481 +2682 5 2 2 2 256 1112 2328 1481 12 129 728 128 +2683 5 2 2 2 104 1040 1039 103 1425 2321 2329 1426 +2684 5 2 2 2 1425 2321 2329 1426 1433 2322 2330 1434 +2685 5 2 2 2 1433 2322 2330 1434 1441 2323 2331 1442 +2686 5 2 2 2 1441 2323 2331 1442 1449 2324 2332 1450 +2687 5 2 2 2 1449 2324 2332 1450 1457 2325 2333 1458 +2688 5 2 2 2 1457 2325 2333 1458 1465 2326 2334 1466 +2689 5 2 2 2 1465 2326 2334 1466 1473 2327 2335 1474 +2690 5 2 2 2 1473 2327 2335 1474 1481 2328 2336 1482 +2691 5 2 2 2 1481 2328 2336 1482 128 728 736 127 +2692 5 2 2 2 103 1039 1038 102 1426 2329 2337 1427 +2693 5 2 2 2 1426 2329 2337 1427 1434 2330 2338 1435 +2694 5 2 2 2 1434 2330 2338 1435 1442 2331 2339 1443 +2695 5 2 2 2 1442 2331 2339 1443 1450 2332 2340 1451 +2696 5 2 2 2 1450 2332 2340 1451 1458 2333 2341 1459 +2697 5 2 2 2 1458 2333 2341 1459 1466 2334 2342 1467 +2698 5 2 2 2 1466 2334 2342 1467 1474 2335 2343 1475 +2699 5 2 2 2 1474 2335 2343 1475 1482 2336 2344 1483 +2700 5 2 2 2 1482 2336 2344 1483 127 736 744 126 +2701 5 2 2 2 102 1038 1037 101 1427 2337 2345 1428 +2702 5 2 2 2 1427 2337 2345 1428 1435 2338 2346 1436 +2703 5 2 2 2 1435 2338 2346 1436 1443 2339 2347 1444 +2704 5 2 2 2 1443 2339 2347 1444 1451 2340 2348 1452 +2705 5 2 2 2 1451 2340 2348 1452 1459 2341 2349 1460 +2706 5 2 2 2 1459 2341 2349 1460 1467 2342 2350 1468 +2707 5 2 2 2 1467 2342 2350 1468 1475 2343 2351 1476 +2708 5 2 2 2 1475 2343 2351 1476 1483 2344 2352 1484 +2709 5 2 2 2 1483 2344 2352 1484 126 744 752 125 +2710 5 2 2 2 101 1037 1036 100 1428 2345 2353 1429 +2711 5 2 2 2 1428 2345 2353 1429 1436 2346 2354 1437 +2712 5 2 2 2 1436 2346 2354 1437 1444 2347 2355 1445 +2713 5 2 2 2 1444 2347 2355 1445 1452 2348 2356 1453 +2714 5 2 2 2 1452 2348 2356 1453 1460 2349 2357 1461 +2715 5 2 2 2 1460 2349 2357 1461 1468 2350 2358 1469 +2716 5 2 2 2 1468 2350 2358 1469 1476 2351 2359 1477 +2717 5 2 2 2 1476 2351 2359 1477 1484 2352 2360 1485 +2718 5 2 2 2 1484 2352 2360 1485 125 752 760 124 +2719 5 2 2 2 100 1036 1035 99 1429 2353 2361 1430 +2720 5 2 2 2 1429 2353 2361 1430 1437 2354 2362 1438 +2721 5 2 2 2 1437 2354 2362 1438 1445 2355 2363 1446 +2722 5 2 2 2 1445 2355 2363 1446 1453 2356 2364 1454 +2723 5 2 2 2 1453 2356 2364 1454 1461 2357 2365 1462 +2724 5 2 2 2 1461 2357 2365 1462 1469 2358 2366 1470 +2725 5 2 2 2 1469 2358 2366 1470 1477 2359 2367 1478 +2726 5 2 2 2 1477 2359 2367 1478 1485 2360 2368 1486 +2727 5 2 2 2 1485 2360 2368 1486 124 760 768 123 +2728 5 2 2 2 99 1035 1034 98 1430 2361 2369 1431 +2729 5 2 2 2 1430 2361 2369 1431 1438 2362 2370 1439 +2730 5 2 2 2 1438 2362 2370 1439 1446 2363 2371 1447 +2731 5 2 2 2 1446 2363 2371 1447 1454 2364 2372 1455 +2732 5 2 2 2 1454 2364 2372 1455 1462 2365 2373 1463 +2733 5 2 2 2 1462 2365 2373 1463 1470 2366 2374 1471 +2734 5 2 2 2 1470 2366 2374 1471 1478 2367 2375 1479 +2735 5 2 2 2 1478 2367 2375 1479 1486 2368 2376 1487 +2736 5 2 2 2 1486 2368 2376 1487 123 768 776 122 +2737 5 2 2 2 98 1034 1033 97 1431 2369 2377 1432 +2738 5 2 2 2 1431 2369 2377 1432 1439 2370 2378 1440 +2739 5 2 2 2 1439 2370 2378 1440 1447 2371 2379 1448 +2740 5 2 2 2 1447 2371 2379 1448 1455 2372 2380 1456 +2741 5 2 2 2 1455 2372 2380 1456 1463 2373 2381 1464 +2742 5 2 2 2 1463 2373 2381 1464 1471 2374 2382 1472 +2743 5 2 2 2 1471 2374 2382 1472 1479 2375 2383 1480 +2744 5 2 2 2 1479 2375 2383 1480 1487 2376 2384 1488 +2745 5 2 2 2 1487 2376 2384 1488 122 776 784 121 +2746 5 2 2 2 97 1033 88 4 1432 2377 1361 265 +2747 5 2 2 2 1432 2377 1361 265 1440 2378 1369 266 +2748 5 2 2 2 1440 2378 1369 266 1448 2379 1377 267 +2749 5 2 2 2 1448 2379 1377 267 1456 2380 1385 268 +2750 5 2 2 2 1456 2380 1385 268 1464 2381 1393 269 +2751 5 2 2 2 1464 2381 1393 269 1472 2382 1401 270 +2752 5 2 2 2 1472 2382 1401 270 1480 2383 1409 271 +2753 5 2 2 2 1480 2383 1409 271 1488 2384 1417 272 +2754 5 2 2 2 1488 2384 1417 272 121 784 120 9 +2755 5 2 2 2 25 26 1032 1040 1105 1113 2385 2321 +2756 5 2 2 2 1105 1113 2385 2321 1106 1114 2386 2322 +2757 5 2 2 2 1106 1114 2386 2322 1107 1115 2387 2323 +2758 5 2 2 2 1107 1115 2387 2323 1108 1116 2388 2324 +2759 5 2 2 2 1108 1116 2388 2324 1109 1117 2389 2325 +2760 5 2 2 2 1109 1117 2389 2325 1110 1118 2390 2326 +2761 5 2 2 2 1110 1118 2390 2326 1111 1119 2391 2327 +2762 5 2 2 2 1111 1119 2391 2327 1112 1120 2392 2328 +2763 5 2 2 2 1112 1120 2392 2328 129 130 727 728 +2764 5 2 2 2 1040 1032 1031 1039 2321 2385 2393 2329 +2765 5 2 2 2 2321 2385 2393 2329 2322 2386 2394 2330 +2766 5 2 2 2 2322 2386 2394 2330 2323 2387 2395 2331 +2767 5 2 2 2 2323 2387 2395 2331 2324 2388 2396 2332 +2768 5 2 2 2 2324 2388 2396 2332 2325 2389 2397 2333 +2769 5 2 2 2 2325 2389 2397 2333 2326 2390 2398 2334 +2770 5 2 2 2 2326 2390 2398 2334 2327 2391 2399 2335 +2771 5 2 2 2 2327 2391 2399 2335 2328 2392 2400 2336 +2772 5 2 2 2 2328 2392 2400 2336 728 727 735 736 +2773 5 2 2 2 1039 1031 1030 1038 2329 2393 2401 2337 +2774 5 2 2 2 2329 2393 2401 2337 2330 2394 2402 2338 +2775 5 2 2 2 2330 2394 2402 2338 2331 2395 2403 2339 +2776 5 2 2 2 2331 2395 2403 2339 2332 2396 2404 2340 +2777 5 2 2 2 2332 2396 2404 2340 2333 2397 2405 2341 +2778 5 2 2 2 2333 2397 2405 2341 2334 2398 2406 2342 +2779 5 2 2 2 2334 2398 2406 2342 2335 2399 2407 2343 +2780 5 2 2 2 2335 2399 2407 2343 2336 2400 2408 2344 +2781 5 2 2 2 2336 2400 2408 2344 736 735 743 744 +2782 5 2 2 2 1038 1030 1029 1037 2337 2401 2409 2345 +2783 5 2 2 2 2337 2401 2409 2345 2338 2402 2410 2346 +2784 5 2 2 2 2338 2402 2410 2346 2339 2403 2411 2347 +2785 5 2 2 2 2339 2403 2411 2347 2340 2404 2412 2348 +2786 5 2 2 2 2340 2404 2412 2348 2341 2405 2413 2349 +2787 5 2 2 2 2341 2405 2413 2349 2342 2406 2414 2350 +2788 5 2 2 2 2342 2406 2414 2350 2343 2407 2415 2351 +2789 5 2 2 2 2343 2407 2415 2351 2344 2408 2416 2352 +2790 5 2 2 2 2344 2408 2416 2352 744 743 751 752 +2791 5 2 2 2 1037 1029 1028 1036 2345 2409 2417 2353 +2792 5 2 2 2 2345 2409 2417 2353 2346 2410 2418 2354 +2793 5 2 2 2 2346 2410 2418 2354 2347 2411 2419 2355 +2794 5 2 2 2 2347 2411 2419 2355 2348 2412 2420 2356 +2795 5 2 2 2 2348 2412 2420 2356 2349 2413 2421 2357 +2796 5 2 2 2 2349 2413 2421 2357 2350 2414 2422 2358 +2797 5 2 2 2 2350 2414 2422 2358 2351 2415 2423 2359 +2798 5 2 2 2 2351 2415 2423 2359 2352 2416 2424 2360 +2799 5 2 2 2 2352 2416 2424 2360 752 751 759 760 +2800 5 2 2 2 1036 1028 1027 1035 2353 2417 2425 2361 +2801 5 2 2 2 2353 2417 2425 2361 2354 2418 2426 2362 +2802 5 2 2 2 2354 2418 2426 2362 2355 2419 2427 2363 +2803 5 2 2 2 2355 2419 2427 2363 2356 2420 2428 2364 +2804 5 2 2 2 2356 2420 2428 2364 2357 2421 2429 2365 +2805 5 2 2 2 2357 2421 2429 2365 2358 2422 2430 2366 +2806 5 2 2 2 2358 2422 2430 2366 2359 2423 2431 2367 +2807 5 2 2 2 2359 2423 2431 2367 2360 2424 2432 2368 +2808 5 2 2 2 2360 2424 2432 2368 760 759 767 768 +2809 5 2 2 2 1035 1027 1026 1034 2361 2425 2433 2369 +2810 5 2 2 2 2361 2425 2433 2369 2362 2426 2434 2370 +2811 5 2 2 2 2362 2426 2434 2370 2363 2427 2435 2371 +2812 5 2 2 2 2363 2427 2435 2371 2364 2428 2436 2372 +2813 5 2 2 2 2364 2428 2436 2372 2365 2429 2437 2373 +2814 5 2 2 2 2365 2429 2437 2373 2366 2430 2438 2374 +2815 5 2 2 2 2366 2430 2438 2374 2367 2431 2439 2375 +2816 5 2 2 2 2367 2431 2439 2375 2368 2432 2440 2376 +2817 5 2 2 2 2368 2432 2440 2376 768 767 775 776 +2818 5 2 2 2 1034 1026 1025 1033 2369 2433 2441 2377 +2819 5 2 2 2 2369 2433 2441 2377 2370 2434 2442 2378 +2820 5 2 2 2 2370 2434 2442 2378 2371 2435 2443 2379 +2821 5 2 2 2 2371 2435 2443 2379 2372 2436 2444 2380 +2822 5 2 2 2 2372 2436 2444 2380 2373 2437 2445 2381 +2823 5 2 2 2 2373 2437 2445 2381 2374 2438 2446 2382 +2824 5 2 2 2 2374 2438 2446 2382 2375 2439 2447 2383 +2825 5 2 2 2 2375 2439 2447 2383 2376 2440 2448 2384 +2826 5 2 2 2 2376 2440 2448 2384 776 775 783 784 +2827 5 2 2 2 1033 1025 87 88 2377 2441 1362 1361 +2828 5 2 2 2 2377 2441 1362 1361 2378 2442 1370 1369 +2829 5 2 2 2 2378 2442 1370 1369 2379 2443 1378 1377 +2830 5 2 2 2 2379 2443 1378 1377 2380 2444 1386 1385 +2831 5 2 2 2 2380 2444 1386 1385 2381 2445 1394 1393 +2832 5 2 2 2 2381 2445 1394 1393 2382 2446 1402 1401 +2833 5 2 2 2 2382 2446 1402 1401 2383 2447 1410 1409 +2834 5 2 2 2 2383 2447 1410 1409 2384 2448 1418 1417 +2835 5 2 2 2 2384 2448 1418 1417 784 783 119 120 +2836 5 2 2 2 26 27 1024 1032 1113 1121 2449 2385 +2837 5 2 2 2 1113 1121 2449 2385 1114 1122 2450 2386 +2838 5 2 2 2 1114 1122 2450 2386 1115 1123 2451 2387 +2839 5 2 2 2 1115 1123 2451 2387 1116 1124 2452 2388 +2840 5 2 2 2 1116 1124 2452 2388 1117 1125 2453 2389 +2841 5 2 2 2 1117 1125 2453 2389 1118 1126 2454 2390 +2842 5 2 2 2 1118 1126 2454 2390 1119 1127 2455 2391 +2843 5 2 2 2 1119 1127 2455 2391 1120 1128 2456 2392 +2844 5 2 2 2 1120 1128 2456 2392 130 131 726 727 +2845 5 2 2 2 1032 1024 1023 1031 2385 2449 2457 2393 +2846 5 2 2 2 2385 2449 2457 2393 2386 2450 2458 2394 +2847 5 2 2 2 2386 2450 2458 2394 2387 2451 2459 2395 +2848 5 2 2 2 2387 2451 2459 2395 2388 2452 2460 2396 +2849 5 2 2 2 2388 2452 2460 2396 2389 2453 2461 2397 +2850 5 2 2 2 2389 2453 2461 2397 2390 2454 2462 2398 +2851 5 2 2 2 2390 2454 2462 2398 2391 2455 2463 2399 +2852 5 2 2 2 2391 2455 2463 2399 2392 2456 2464 2400 +2853 5 2 2 2 2392 2456 2464 2400 727 726 734 735 +2854 5 2 2 2 1031 1023 1022 1030 2393 2457 2465 2401 +2855 5 2 2 2 2393 2457 2465 2401 2394 2458 2466 2402 +2856 5 2 2 2 2394 2458 2466 2402 2395 2459 2467 2403 +2857 5 2 2 2 2395 2459 2467 2403 2396 2460 2468 2404 +2858 5 2 2 2 2396 2460 2468 2404 2397 2461 2469 2405 +2859 5 2 2 2 2397 2461 2469 2405 2398 2462 2470 2406 +2860 5 2 2 2 2398 2462 2470 2406 2399 2463 2471 2407 +2861 5 2 2 2 2399 2463 2471 2407 2400 2464 2472 2408 +2862 5 2 2 2 2400 2464 2472 2408 735 734 742 743 +2863 5 2 2 2 1030 1022 1021 1029 2401 2465 2473 2409 +2864 5 2 2 2 2401 2465 2473 2409 2402 2466 2474 2410 +2865 5 2 2 2 2402 2466 2474 2410 2403 2467 2475 2411 +2866 5 2 2 2 2403 2467 2475 2411 2404 2468 2476 2412 +2867 5 2 2 2 2404 2468 2476 2412 2405 2469 2477 2413 +2868 5 2 2 2 2405 2469 2477 2413 2406 2470 2478 2414 +2869 5 2 2 2 2406 2470 2478 2414 2407 2471 2479 2415 +2870 5 2 2 2 2407 2471 2479 2415 2408 2472 2480 2416 +2871 5 2 2 2 2408 2472 2480 2416 743 742 750 751 +2872 5 2 2 2 1029 1021 1020 1028 2409 2473 2481 2417 +2873 5 2 2 2 2409 2473 2481 2417 2410 2474 2482 2418 +2874 5 2 2 2 2410 2474 2482 2418 2411 2475 2483 2419 +2875 5 2 2 2 2411 2475 2483 2419 2412 2476 2484 2420 +2876 5 2 2 2 2412 2476 2484 2420 2413 2477 2485 2421 +2877 5 2 2 2 2413 2477 2485 2421 2414 2478 2486 2422 +2878 5 2 2 2 2414 2478 2486 2422 2415 2479 2487 2423 +2879 5 2 2 2 2415 2479 2487 2423 2416 2480 2488 2424 +2880 5 2 2 2 2416 2480 2488 2424 751 750 758 759 +2881 5 2 2 2 1028 1020 1019 1027 2417 2481 2489 2425 +2882 5 2 2 2 2417 2481 2489 2425 2418 2482 2490 2426 +2883 5 2 2 2 2418 2482 2490 2426 2419 2483 2491 2427 +2884 5 2 2 2 2419 2483 2491 2427 2420 2484 2492 2428 +2885 5 2 2 2 2420 2484 2492 2428 2421 2485 2493 2429 +2886 5 2 2 2 2421 2485 2493 2429 2422 2486 2494 2430 +2887 5 2 2 2 2422 2486 2494 2430 2423 2487 2495 2431 +2888 5 2 2 2 2423 2487 2495 2431 2424 2488 2496 2432 +2889 5 2 2 2 2424 2488 2496 2432 759 758 766 767 +2890 5 2 2 2 1027 1019 1018 1026 2425 2489 2497 2433 +2891 5 2 2 2 2425 2489 2497 2433 2426 2490 2498 2434 +2892 5 2 2 2 2426 2490 2498 2434 2427 2491 2499 2435 +2893 5 2 2 2 2427 2491 2499 2435 2428 2492 2500 2436 +2894 5 2 2 2 2428 2492 2500 2436 2429 2493 2501 2437 +2895 5 2 2 2 2429 2493 2501 2437 2430 2494 2502 2438 +2896 5 2 2 2 2430 2494 2502 2438 2431 2495 2503 2439 +2897 5 2 2 2 2431 2495 2503 2439 2432 2496 2504 2440 +2898 5 2 2 2 2432 2496 2504 2440 767 766 774 775 +2899 5 2 2 2 1026 1018 1017 1025 2433 2497 2505 2441 +2900 5 2 2 2 2433 2497 2505 2441 2434 2498 2506 2442 +2901 5 2 2 2 2434 2498 2506 2442 2435 2499 2507 2443 +2902 5 2 2 2 2435 2499 2507 2443 2436 2500 2508 2444 +2903 5 2 2 2 2436 2500 2508 2444 2437 2501 2509 2445 +2904 5 2 2 2 2437 2501 2509 2445 2438 2502 2510 2446 +2905 5 2 2 2 2438 2502 2510 2446 2439 2503 2511 2447 +2906 5 2 2 2 2439 2503 2511 2447 2440 2504 2512 2448 +2907 5 2 2 2 2440 2504 2512 2448 775 774 782 783 +2908 5 2 2 2 1025 1017 86 87 2441 2505 1363 1362 +2909 5 2 2 2 2441 2505 1363 1362 2442 2506 1371 1370 +2910 5 2 2 2 2442 2506 1371 1370 2443 2507 1379 1378 +2911 5 2 2 2 2443 2507 1379 1378 2444 2508 1387 1386 +2912 5 2 2 2 2444 2508 1387 1386 2445 2509 1395 1394 +2913 5 2 2 2 2445 2509 1395 1394 2446 2510 1403 1402 +2914 5 2 2 2 2446 2510 1403 1402 2447 2511 1411 1410 +2915 5 2 2 2 2447 2511 1411 1410 2448 2512 1419 1418 +2916 5 2 2 2 2448 2512 1419 1418 783 782 118 119 +2917 5 2 2 2 27 28 1016 1024 1121 1129 2513 2449 +2918 5 2 2 2 1121 1129 2513 2449 1122 1130 2514 2450 +2919 5 2 2 2 1122 1130 2514 2450 1123 1131 2515 2451 +2920 5 2 2 2 1123 1131 2515 2451 1124 1132 2516 2452 +2921 5 2 2 2 1124 1132 2516 2452 1125 1133 2517 2453 +2922 5 2 2 2 1125 1133 2517 2453 1126 1134 2518 2454 +2923 5 2 2 2 1126 1134 2518 2454 1127 1135 2519 2455 +2924 5 2 2 2 1127 1135 2519 2455 1128 1136 2520 2456 +2925 5 2 2 2 1128 1136 2520 2456 131 132 725 726 +2926 5 2 2 2 1024 1016 1015 1023 2449 2513 2521 2457 +2927 5 2 2 2 2449 2513 2521 2457 2450 2514 2522 2458 +2928 5 2 2 2 2450 2514 2522 2458 2451 2515 2523 2459 +2929 5 2 2 2 2451 2515 2523 2459 2452 2516 2524 2460 +2930 5 2 2 2 2452 2516 2524 2460 2453 2517 2525 2461 +2931 5 2 2 2 2453 2517 2525 2461 2454 2518 2526 2462 +2932 5 2 2 2 2454 2518 2526 2462 2455 2519 2527 2463 +2933 5 2 2 2 2455 2519 2527 2463 2456 2520 2528 2464 +2934 5 2 2 2 2456 2520 2528 2464 726 725 733 734 +2935 5 2 2 2 1023 1015 1014 1022 2457 2521 2529 2465 +2936 5 2 2 2 2457 2521 2529 2465 2458 2522 2530 2466 +2937 5 2 2 2 2458 2522 2530 2466 2459 2523 2531 2467 +2938 5 2 2 2 2459 2523 2531 2467 2460 2524 2532 2468 +2939 5 2 2 2 2460 2524 2532 2468 2461 2525 2533 2469 +2940 5 2 2 2 2461 2525 2533 2469 2462 2526 2534 2470 +2941 5 2 2 2 2462 2526 2534 2470 2463 2527 2535 2471 +2942 5 2 2 2 2463 2527 2535 2471 2464 2528 2536 2472 +2943 5 2 2 2 2464 2528 2536 2472 734 733 741 742 +2944 5 2 2 2 1022 1014 1013 1021 2465 2529 2537 2473 +2945 5 2 2 2 2465 2529 2537 2473 2466 2530 2538 2474 +2946 5 2 2 2 2466 2530 2538 2474 2467 2531 2539 2475 +2947 5 2 2 2 2467 2531 2539 2475 2468 2532 2540 2476 +2948 5 2 2 2 2468 2532 2540 2476 2469 2533 2541 2477 +2949 5 2 2 2 2469 2533 2541 2477 2470 2534 2542 2478 +2950 5 2 2 2 2470 2534 2542 2478 2471 2535 2543 2479 +2951 5 2 2 2 2471 2535 2543 2479 2472 2536 2544 2480 +2952 5 2 2 2 2472 2536 2544 2480 742 741 749 750 +2953 5 2 2 2 1021 1013 1012 1020 2473 2537 2545 2481 +2954 5 2 2 2 2473 2537 2545 2481 2474 2538 2546 2482 +2955 5 2 2 2 2474 2538 2546 2482 2475 2539 2547 2483 +2956 5 2 2 2 2475 2539 2547 2483 2476 2540 2548 2484 +2957 5 2 2 2 2476 2540 2548 2484 2477 2541 2549 2485 +2958 5 2 2 2 2477 2541 2549 2485 2478 2542 2550 2486 +2959 5 2 2 2 2478 2542 2550 2486 2479 2543 2551 2487 +2960 5 2 2 2 2479 2543 2551 2487 2480 2544 2552 2488 +2961 5 2 2 2 2480 2544 2552 2488 750 749 757 758 +2962 5 2 2 2 1020 1012 1011 1019 2481 2545 2553 2489 +2963 5 2 2 2 2481 2545 2553 2489 2482 2546 2554 2490 +2964 5 2 2 2 2482 2546 2554 2490 2483 2547 2555 2491 +2965 5 2 2 2 2483 2547 2555 2491 2484 2548 2556 2492 +2966 5 2 2 2 2484 2548 2556 2492 2485 2549 2557 2493 +2967 5 2 2 2 2485 2549 2557 2493 2486 2550 2558 2494 +2968 5 2 2 2 2486 2550 2558 2494 2487 2551 2559 2495 +2969 5 2 2 2 2487 2551 2559 2495 2488 2552 2560 2496 +2970 5 2 2 2 2488 2552 2560 2496 758 757 765 766 +2971 5 2 2 2 1019 1011 1010 1018 2489 2553 2561 2497 +2972 5 2 2 2 2489 2553 2561 2497 2490 2554 2562 2498 +2973 5 2 2 2 2490 2554 2562 2498 2491 2555 2563 2499 +2974 5 2 2 2 2491 2555 2563 2499 2492 2556 2564 2500 +2975 5 2 2 2 2492 2556 2564 2500 2493 2557 2565 2501 +2976 5 2 2 2 2493 2557 2565 2501 2494 2558 2566 2502 +2977 5 2 2 2 2494 2558 2566 2502 2495 2559 2567 2503 +2978 5 2 2 2 2495 2559 2567 2503 2496 2560 2568 2504 +2979 5 2 2 2 2496 2560 2568 2504 766 765 773 774 +2980 5 2 2 2 1018 1010 1009 1017 2497 2561 2569 2505 +2981 5 2 2 2 2497 2561 2569 2505 2498 2562 2570 2506 +2982 5 2 2 2 2498 2562 2570 2506 2499 2563 2571 2507 +2983 5 2 2 2 2499 2563 2571 2507 2500 2564 2572 2508 +2984 5 2 2 2 2500 2564 2572 2508 2501 2565 2573 2509 +2985 5 2 2 2 2501 2565 2573 2509 2502 2566 2574 2510 +2986 5 2 2 2 2502 2566 2574 2510 2503 2567 2575 2511 +2987 5 2 2 2 2503 2567 2575 2511 2504 2568 2576 2512 +2988 5 2 2 2 2504 2568 2576 2512 774 773 781 782 +2989 5 2 2 2 1017 1009 85 86 2505 2569 1364 1363 +2990 5 2 2 2 2505 2569 1364 1363 2506 2570 1372 1371 +2991 5 2 2 2 2506 2570 1372 1371 2507 2571 1380 1379 +2992 5 2 2 2 2507 2571 1380 1379 2508 2572 1388 1387 +2993 5 2 2 2 2508 2572 1388 1387 2509 2573 1396 1395 +2994 5 2 2 2 2509 2573 1396 1395 2510 2574 1404 1403 +2995 5 2 2 2 2510 2574 1404 1403 2511 2575 1412 1411 +2996 5 2 2 2 2511 2575 1412 1411 2512 2576 1420 1419 +2997 5 2 2 2 2512 2576 1420 1419 782 781 117 118 +2998 5 2 2 2 28 29 1008 1016 1129 1137 2577 2513 +2999 5 2 2 2 1129 1137 2577 2513 1130 1138 2578 2514 +3000 5 2 2 2 1130 1138 2578 2514 1131 1139 2579 2515 +3001 5 2 2 2 1131 1139 2579 2515 1132 1140 2580 2516 +3002 5 2 2 2 1132 1140 2580 2516 1133 1141 2581 2517 +3003 5 2 2 2 1133 1141 2581 2517 1134 1142 2582 2518 +3004 5 2 2 2 1134 1142 2582 2518 1135 1143 2583 2519 +3005 5 2 2 2 1135 1143 2583 2519 1136 1144 2584 2520 +3006 5 2 2 2 1136 1144 2584 2520 132 133 724 725 +3007 5 2 2 2 1016 1008 1007 1015 2513 2577 2585 2521 +3008 5 2 2 2 2513 2577 2585 2521 2514 2578 2586 2522 +3009 5 2 2 2 2514 2578 2586 2522 2515 2579 2587 2523 +3010 5 2 2 2 2515 2579 2587 2523 2516 2580 2588 2524 +3011 5 2 2 2 2516 2580 2588 2524 2517 2581 2589 2525 +3012 5 2 2 2 2517 2581 2589 2525 2518 2582 2590 2526 +3013 5 2 2 2 2518 2582 2590 2526 2519 2583 2591 2527 +3014 5 2 2 2 2519 2583 2591 2527 2520 2584 2592 2528 +3015 5 2 2 2 2520 2584 2592 2528 725 724 732 733 +3016 5 2 2 2 1015 1007 1006 1014 2521 2585 2593 2529 +3017 5 2 2 2 2521 2585 2593 2529 2522 2586 2594 2530 +3018 5 2 2 2 2522 2586 2594 2530 2523 2587 2595 2531 +3019 5 2 2 2 2523 2587 2595 2531 2524 2588 2596 2532 +3020 5 2 2 2 2524 2588 2596 2532 2525 2589 2597 2533 +3021 5 2 2 2 2525 2589 2597 2533 2526 2590 2598 2534 +3022 5 2 2 2 2526 2590 2598 2534 2527 2591 2599 2535 +3023 5 2 2 2 2527 2591 2599 2535 2528 2592 2600 2536 +3024 5 2 2 2 2528 2592 2600 2536 733 732 740 741 +3025 5 2 2 2 1014 1006 1005 1013 2529 2593 2601 2537 +3026 5 2 2 2 2529 2593 2601 2537 2530 2594 2602 2538 +3027 5 2 2 2 2530 2594 2602 2538 2531 2595 2603 2539 +3028 5 2 2 2 2531 2595 2603 2539 2532 2596 2604 2540 +3029 5 2 2 2 2532 2596 2604 2540 2533 2597 2605 2541 +3030 5 2 2 2 2533 2597 2605 2541 2534 2598 2606 2542 +3031 5 2 2 2 2534 2598 2606 2542 2535 2599 2607 2543 +3032 5 2 2 2 2535 2599 2607 2543 2536 2600 2608 2544 +3033 5 2 2 2 2536 2600 2608 2544 741 740 748 749 +3034 5 2 2 2 1013 1005 1004 1012 2537 2601 2609 2545 +3035 5 2 2 2 2537 2601 2609 2545 2538 2602 2610 2546 +3036 5 2 2 2 2538 2602 2610 2546 2539 2603 2611 2547 +3037 5 2 2 2 2539 2603 2611 2547 2540 2604 2612 2548 +3038 5 2 2 2 2540 2604 2612 2548 2541 2605 2613 2549 +3039 5 2 2 2 2541 2605 2613 2549 2542 2606 2614 2550 +3040 5 2 2 2 2542 2606 2614 2550 2543 2607 2615 2551 +3041 5 2 2 2 2543 2607 2615 2551 2544 2608 2616 2552 +3042 5 2 2 2 2544 2608 2616 2552 749 748 756 757 +3043 5 2 2 2 1012 1004 1003 1011 2545 2609 2617 2553 +3044 5 2 2 2 2545 2609 2617 2553 2546 2610 2618 2554 +3045 5 2 2 2 2546 2610 2618 2554 2547 2611 2619 2555 +3046 5 2 2 2 2547 2611 2619 2555 2548 2612 2620 2556 +3047 5 2 2 2 2548 2612 2620 2556 2549 2613 2621 2557 +3048 5 2 2 2 2549 2613 2621 2557 2550 2614 2622 2558 +3049 5 2 2 2 2550 2614 2622 2558 2551 2615 2623 2559 +3050 5 2 2 2 2551 2615 2623 2559 2552 2616 2624 2560 +3051 5 2 2 2 2552 2616 2624 2560 757 756 764 765 +3052 5 2 2 2 1011 1003 1002 1010 2553 2617 2625 2561 +3053 5 2 2 2 2553 2617 2625 2561 2554 2618 2626 2562 +3054 5 2 2 2 2554 2618 2626 2562 2555 2619 2627 2563 +3055 5 2 2 2 2555 2619 2627 2563 2556 2620 2628 2564 +3056 5 2 2 2 2556 2620 2628 2564 2557 2621 2629 2565 +3057 5 2 2 2 2557 2621 2629 2565 2558 2622 2630 2566 +3058 5 2 2 2 2558 2622 2630 2566 2559 2623 2631 2567 +3059 5 2 2 2 2559 2623 2631 2567 2560 2624 2632 2568 +3060 5 2 2 2 2560 2624 2632 2568 765 764 772 773 +3061 5 2 2 2 1010 1002 1001 1009 2561 2625 2633 2569 +3062 5 2 2 2 2561 2625 2633 2569 2562 2626 2634 2570 +3063 5 2 2 2 2562 2626 2634 2570 2563 2627 2635 2571 +3064 5 2 2 2 2563 2627 2635 2571 2564 2628 2636 2572 +3065 5 2 2 2 2564 2628 2636 2572 2565 2629 2637 2573 +3066 5 2 2 2 2565 2629 2637 2573 2566 2630 2638 2574 +3067 5 2 2 2 2566 2630 2638 2574 2567 2631 2639 2575 +3068 5 2 2 2 2567 2631 2639 2575 2568 2632 2640 2576 +3069 5 2 2 2 2568 2632 2640 2576 773 772 780 781 +3070 5 2 2 2 1009 1001 84 85 2569 2633 1365 1364 +3071 5 2 2 2 2569 2633 1365 1364 2570 2634 1373 1372 +3072 5 2 2 2 2570 2634 1373 1372 2571 2635 1381 1380 +3073 5 2 2 2 2571 2635 1381 1380 2572 2636 1389 1388 +3074 5 2 2 2 2572 2636 1389 1388 2573 2637 1397 1396 +3075 5 2 2 2 2573 2637 1397 1396 2574 2638 1405 1404 +3076 5 2 2 2 2574 2638 1405 1404 2575 2639 1413 1412 +3077 5 2 2 2 2575 2639 1413 1412 2576 2640 1421 1420 +3078 5 2 2 2 2576 2640 1421 1420 781 780 116 117 +3079 5 2 2 2 29 30 1000 1008 1137 1145 2641 2577 +3080 5 2 2 2 1137 1145 2641 2577 1138 1146 2642 2578 +3081 5 2 2 2 1138 1146 2642 2578 1139 1147 2643 2579 +3082 5 2 2 2 1139 1147 2643 2579 1140 1148 2644 2580 +3083 5 2 2 2 1140 1148 2644 2580 1141 1149 2645 2581 +3084 5 2 2 2 1141 1149 2645 2581 1142 1150 2646 2582 +3085 5 2 2 2 1142 1150 2646 2582 1143 1151 2647 2583 +3086 5 2 2 2 1143 1151 2647 2583 1144 1152 2648 2584 +3087 5 2 2 2 1144 1152 2648 2584 133 134 723 724 +3088 5 2 2 2 1008 1000 999 1007 2577 2641 2649 2585 +3089 5 2 2 2 2577 2641 2649 2585 2578 2642 2650 2586 +3090 5 2 2 2 2578 2642 2650 2586 2579 2643 2651 2587 +3091 5 2 2 2 2579 2643 2651 2587 2580 2644 2652 2588 +3092 5 2 2 2 2580 2644 2652 2588 2581 2645 2653 2589 +3093 5 2 2 2 2581 2645 2653 2589 2582 2646 2654 2590 +3094 5 2 2 2 2582 2646 2654 2590 2583 2647 2655 2591 +3095 5 2 2 2 2583 2647 2655 2591 2584 2648 2656 2592 +3096 5 2 2 2 2584 2648 2656 2592 724 723 731 732 +3097 5 2 2 2 1007 999 998 1006 2585 2649 2657 2593 +3098 5 2 2 2 2585 2649 2657 2593 2586 2650 2658 2594 +3099 5 2 2 2 2586 2650 2658 2594 2587 2651 2659 2595 +3100 5 2 2 2 2587 2651 2659 2595 2588 2652 2660 2596 +3101 5 2 2 2 2588 2652 2660 2596 2589 2653 2661 2597 +3102 5 2 2 2 2589 2653 2661 2597 2590 2654 2662 2598 +3103 5 2 2 2 2590 2654 2662 2598 2591 2655 2663 2599 +3104 5 2 2 2 2591 2655 2663 2599 2592 2656 2664 2600 +3105 5 2 2 2 2592 2656 2664 2600 732 731 739 740 +3106 5 2 2 2 1006 998 997 1005 2593 2657 2665 2601 +3107 5 2 2 2 2593 2657 2665 2601 2594 2658 2666 2602 +3108 5 2 2 2 2594 2658 2666 2602 2595 2659 2667 2603 +3109 5 2 2 2 2595 2659 2667 2603 2596 2660 2668 2604 +3110 5 2 2 2 2596 2660 2668 2604 2597 2661 2669 2605 +3111 5 2 2 2 2597 2661 2669 2605 2598 2662 2670 2606 +3112 5 2 2 2 2598 2662 2670 2606 2599 2663 2671 2607 +3113 5 2 2 2 2599 2663 2671 2607 2600 2664 2672 2608 +3114 5 2 2 2 2600 2664 2672 2608 740 739 747 748 +3115 5 2 2 2 1005 997 996 1004 2601 2665 2673 2609 +3116 5 2 2 2 2601 2665 2673 2609 2602 2666 2674 2610 +3117 5 2 2 2 2602 2666 2674 2610 2603 2667 2675 2611 +3118 5 2 2 2 2603 2667 2675 2611 2604 2668 2676 2612 +3119 5 2 2 2 2604 2668 2676 2612 2605 2669 2677 2613 +3120 5 2 2 2 2605 2669 2677 2613 2606 2670 2678 2614 +3121 5 2 2 2 2606 2670 2678 2614 2607 2671 2679 2615 +3122 5 2 2 2 2607 2671 2679 2615 2608 2672 2680 2616 +3123 5 2 2 2 2608 2672 2680 2616 748 747 755 756 +3124 5 2 2 2 1004 996 995 1003 2609 2673 2681 2617 +3125 5 2 2 2 2609 2673 2681 2617 2610 2674 2682 2618 +3126 5 2 2 2 2610 2674 2682 2618 2611 2675 2683 2619 +3127 5 2 2 2 2611 2675 2683 2619 2612 2676 2684 2620 +3128 5 2 2 2 2612 2676 2684 2620 2613 2677 2685 2621 +3129 5 2 2 2 2613 2677 2685 2621 2614 2678 2686 2622 +3130 5 2 2 2 2614 2678 2686 2622 2615 2679 2687 2623 +3131 5 2 2 2 2615 2679 2687 2623 2616 2680 2688 2624 +3132 5 2 2 2 2616 2680 2688 2624 756 755 763 764 +3133 5 2 2 2 1003 995 994 1002 2617 2681 2689 2625 +3134 5 2 2 2 2617 2681 2689 2625 2618 2682 2690 2626 +3135 5 2 2 2 2618 2682 2690 2626 2619 2683 2691 2627 +3136 5 2 2 2 2619 2683 2691 2627 2620 2684 2692 2628 +3137 5 2 2 2 2620 2684 2692 2628 2621 2685 2693 2629 +3138 5 2 2 2 2621 2685 2693 2629 2622 2686 2694 2630 +3139 5 2 2 2 2622 2686 2694 2630 2623 2687 2695 2631 +3140 5 2 2 2 2623 2687 2695 2631 2624 2688 2696 2632 +3141 5 2 2 2 2624 2688 2696 2632 764 763 771 772 +3142 5 2 2 2 1002 994 993 1001 2625 2689 2697 2633 +3143 5 2 2 2 2625 2689 2697 2633 2626 2690 2698 2634 +3144 5 2 2 2 2626 2690 2698 2634 2627 2691 2699 2635 +3145 5 2 2 2 2627 2691 2699 2635 2628 2692 2700 2636 +3146 5 2 2 2 2628 2692 2700 2636 2629 2693 2701 2637 +3147 5 2 2 2 2629 2693 2701 2637 2630 2694 2702 2638 +3148 5 2 2 2 2630 2694 2702 2638 2631 2695 2703 2639 +3149 5 2 2 2 2631 2695 2703 2639 2632 2696 2704 2640 +3150 5 2 2 2 2632 2696 2704 2640 772 771 779 780 +3151 5 2 2 2 1001 993 83 84 2633 2697 1366 1365 +3152 5 2 2 2 2633 2697 1366 1365 2634 2698 1374 1373 +3153 5 2 2 2 2634 2698 1374 1373 2635 2699 1382 1381 +3154 5 2 2 2 2635 2699 1382 1381 2636 2700 1390 1389 +3155 5 2 2 2 2636 2700 1390 1389 2637 2701 1398 1397 +3156 5 2 2 2 2637 2701 1398 1397 2638 2702 1406 1405 +3157 5 2 2 2 2638 2702 1406 1405 2639 2703 1414 1413 +3158 5 2 2 2 2639 2703 1414 1413 2640 2704 1422 1421 +3159 5 2 2 2 2640 2704 1422 1421 780 779 115 116 +3160 5 2 2 2 30 31 992 1000 1145 1153 2705 2641 +3161 5 2 2 2 1145 1153 2705 2641 1146 1154 2706 2642 +3162 5 2 2 2 1146 1154 2706 2642 1147 1155 2707 2643 +3163 5 2 2 2 1147 1155 2707 2643 1148 1156 2708 2644 +3164 5 2 2 2 1148 1156 2708 2644 1149 1157 2709 2645 +3165 5 2 2 2 1149 1157 2709 2645 1150 1158 2710 2646 +3166 5 2 2 2 1150 1158 2710 2646 1151 1159 2711 2647 +3167 5 2 2 2 1151 1159 2711 2647 1152 1160 2712 2648 +3168 5 2 2 2 1152 1160 2712 2648 134 135 722 723 +3169 5 2 2 2 1000 992 991 999 2641 2705 2713 2649 +3170 5 2 2 2 2641 2705 2713 2649 2642 2706 2714 2650 +3171 5 2 2 2 2642 2706 2714 2650 2643 2707 2715 2651 +3172 5 2 2 2 2643 2707 2715 2651 2644 2708 2716 2652 +3173 5 2 2 2 2644 2708 2716 2652 2645 2709 2717 2653 +3174 5 2 2 2 2645 2709 2717 2653 2646 2710 2718 2654 +3175 5 2 2 2 2646 2710 2718 2654 2647 2711 2719 2655 +3176 5 2 2 2 2647 2711 2719 2655 2648 2712 2720 2656 +3177 5 2 2 2 2648 2712 2720 2656 723 722 730 731 +3178 5 2 2 2 999 991 990 998 2649 2713 2721 2657 +3179 5 2 2 2 2649 2713 2721 2657 2650 2714 2722 2658 +3180 5 2 2 2 2650 2714 2722 2658 2651 2715 2723 2659 +3181 5 2 2 2 2651 2715 2723 2659 2652 2716 2724 2660 +3182 5 2 2 2 2652 2716 2724 2660 2653 2717 2725 2661 +3183 5 2 2 2 2653 2717 2725 2661 2654 2718 2726 2662 +3184 5 2 2 2 2654 2718 2726 2662 2655 2719 2727 2663 +3185 5 2 2 2 2655 2719 2727 2663 2656 2720 2728 2664 +3186 5 2 2 2 2656 2720 2728 2664 731 730 738 739 +3187 5 2 2 2 998 990 989 997 2657 2721 2729 2665 +3188 5 2 2 2 2657 2721 2729 2665 2658 2722 2730 2666 +3189 5 2 2 2 2658 2722 2730 2666 2659 2723 2731 2667 +3190 5 2 2 2 2659 2723 2731 2667 2660 2724 2732 2668 +3191 5 2 2 2 2660 2724 2732 2668 2661 2725 2733 2669 +3192 5 2 2 2 2661 2725 2733 2669 2662 2726 2734 2670 +3193 5 2 2 2 2662 2726 2734 2670 2663 2727 2735 2671 +3194 5 2 2 2 2663 2727 2735 2671 2664 2728 2736 2672 +3195 5 2 2 2 2664 2728 2736 2672 739 738 746 747 +3196 5 2 2 2 997 989 988 996 2665 2729 2737 2673 +3197 5 2 2 2 2665 2729 2737 2673 2666 2730 2738 2674 +3198 5 2 2 2 2666 2730 2738 2674 2667 2731 2739 2675 +3199 5 2 2 2 2667 2731 2739 2675 2668 2732 2740 2676 +3200 5 2 2 2 2668 2732 2740 2676 2669 2733 2741 2677 +3201 5 2 2 2 2669 2733 2741 2677 2670 2734 2742 2678 +3202 5 2 2 2 2670 2734 2742 2678 2671 2735 2743 2679 +3203 5 2 2 2 2671 2735 2743 2679 2672 2736 2744 2680 +3204 5 2 2 2 2672 2736 2744 2680 747 746 754 755 +3205 5 2 2 2 996 988 987 995 2673 2737 2745 2681 +3206 5 2 2 2 2673 2737 2745 2681 2674 2738 2746 2682 +3207 5 2 2 2 2674 2738 2746 2682 2675 2739 2747 2683 +3208 5 2 2 2 2675 2739 2747 2683 2676 2740 2748 2684 +3209 5 2 2 2 2676 2740 2748 2684 2677 2741 2749 2685 +3210 5 2 2 2 2677 2741 2749 2685 2678 2742 2750 2686 +3211 5 2 2 2 2678 2742 2750 2686 2679 2743 2751 2687 +3212 5 2 2 2 2679 2743 2751 2687 2680 2744 2752 2688 +3213 5 2 2 2 2680 2744 2752 2688 755 754 762 763 +3214 5 2 2 2 995 987 986 994 2681 2745 2753 2689 +3215 5 2 2 2 2681 2745 2753 2689 2682 2746 2754 2690 +3216 5 2 2 2 2682 2746 2754 2690 2683 2747 2755 2691 +3217 5 2 2 2 2683 2747 2755 2691 2684 2748 2756 2692 +3218 5 2 2 2 2684 2748 2756 2692 2685 2749 2757 2693 +3219 5 2 2 2 2685 2749 2757 2693 2686 2750 2758 2694 +3220 5 2 2 2 2686 2750 2758 2694 2687 2751 2759 2695 +3221 5 2 2 2 2687 2751 2759 2695 2688 2752 2760 2696 +3222 5 2 2 2 2688 2752 2760 2696 763 762 770 771 +3223 5 2 2 2 994 986 985 993 2689 2753 2761 2697 +3224 5 2 2 2 2689 2753 2761 2697 2690 2754 2762 2698 +3225 5 2 2 2 2690 2754 2762 2698 2691 2755 2763 2699 +3226 5 2 2 2 2691 2755 2763 2699 2692 2756 2764 2700 +3227 5 2 2 2 2692 2756 2764 2700 2693 2757 2765 2701 +3228 5 2 2 2 2693 2757 2765 2701 2694 2758 2766 2702 +3229 5 2 2 2 2694 2758 2766 2702 2695 2759 2767 2703 +3230 5 2 2 2 2695 2759 2767 2703 2696 2760 2768 2704 +3231 5 2 2 2 2696 2760 2768 2704 771 770 778 779 +3232 5 2 2 2 993 985 82 83 2697 2761 1367 1366 +3233 5 2 2 2 2697 2761 1367 1366 2698 2762 1375 1374 +3234 5 2 2 2 2698 2762 1375 1374 2699 2763 1383 1382 +3235 5 2 2 2 2699 2763 1383 1382 2700 2764 1391 1390 +3236 5 2 2 2 2700 2764 1391 1390 2701 2765 1399 1398 +3237 5 2 2 2 2701 2765 1399 1398 2702 2766 1407 1406 +3238 5 2 2 2 2702 2766 1407 1406 2703 2767 1415 1414 +3239 5 2 2 2 2703 2767 1415 1414 2704 2768 1423 1422 +3240 5 2 2 2 2704 2768 1423 1422 779 778 114 115 +3241 5 2 2 2 31 32 984 992 1153 1161 2769 2705 +3242 5 2 2 2 1153 1161 2769 2705 1154 1162 2770 2706 +3243 5 2 2 2 1154 1162 2770 2706 1155 1163 2771 2707 +3244 5 2 2 2 1155 1163 2771 2707 1156 1164 2772 2708 +3245 5 2 2 2 1156 1164 2772 2708 1157 1165 2773 2709 +3246 5 2 2 2 1157 1165 2773 2709 1158 1166 2774 2710 +3247 5 2 2 2 1158 1166 2774 2710 1159 1167 2775 2711 +3248 5 2 2 2 1159 1167 2775 2711 1160 1168 2776 2712 +3249 5 2 2 2 1160 1168 2776 2712 135 136 721 722 +3250 5 2 2 2 992 984 983 991 2705 2769 2777 2713 +3251 5 2 2 2 2705 2769 2777 2713 2706 2770 2778 2714 +3252 5 2 2 2 2706 2770 2778 2714 2707 2771 2779 2715 +3253 5 2 2 2 2707 2771 2779 2715 2708 2772 2780 2716 +3254 5 2 2 2 2708 2772 2780 2716 2709 2773 2781 2717 +3255 5 2 2 2 2709 2773 2781 2717 2710 2774 2782 2718 +3256 5 2 2 2 2710 2774 2782 2718 2711 2775 2783 2719 +3257 5 2 2 2 2711 2775 2783 2719 2712 2776 2784 2720 +3258 5 2 2 2 2712 2776 2784 2720 722 721 729 730 +3259 5 2 2 2 991 983 982 990 2713 2777 2785 2721 +3260 5 2 2 2 2713 2777 2785 2721 2714 2778 2786 2722 +3261 5 2 2 2 2714 2778 2786 2722 2715 2779 2787 2723 +3262 5 2 2 2 2715 2779 2787 2723 2716 2780 2788 2724 +3263 5 2 2 2 2716 2780 2788 2724 2717 2781 2789 2725 +3264 5 2 2 2 2717 2781 2789 2725 2718 2782 2790 2726 +3265 5 2 2 2 2718 2782 2790 2726 2719 2783 2791 2727 +3266 5 2 2 2 2719 2783 2791 2727 2720 2784 2792 2728 +3267 5 2 2 2 2720 2784 2792 2728 730 729 737 738 +3268 5 2 2 2 990 982 981 989 2721 2785 2793 2729 +3269 5 2 2 2 2721 2785 2793 2729 2722 2786 2794 2730 +3270 5 2 2 2 2722 2786 2794 2730 2723 2787 2795 2731 +3271 5 2 2 2 2723 2787 2795 2731 2724 2788 2796 2732 +3272 5 2 2 2 2724 2788 2796 2732 2725 2789 2797 2733 +3273 5 2 2 2 2725 2789 2797 2733 2726 2790 2798 2734 +3274 5 2 2 2 2726 2790 2798 2734 2727 2791 2799 2735 +3275 5 2 2 2 2727 2791 2799 2735 2728 2792 2800 2736 +3276 5 2 2 2 2728 2792 2800 2736 738 737 745 746 +3277 5 2 2 2 989 981 980 988 2729 2793 2801 2737 +3278 5 2 2 2 2729 2793 2801 2737 2730 2794 2802 2738 +3279 5 2 2 2 2730 2794 2802 2738 2731 2795 2803 2739 +3280 5 2 2 2 2731 2795 2803 2739 2732 2796 2804 2740 +3281 5 2 2 2 2732 2796 2804 2740 2733 2797 2805 2741 +3282 5 2 2 2 2733 2797 2805 2741 2734 2798 2806 2742 +3283 5 2 2 2 2734 2798 2806 2742 2735 2799 2807 2743 +3284 5 2 2 2 2735 2799 2807 2743 2736 2800 2808 2744 +3285 5 2 2 2 2736 2800 2808 2744 746 745 753 754 +3286 5 2 2 2 988 980 979 987 2737 2801 2809 2745 +3287 5 2 2 2 2737 2801 2809 2745 2738 2802 2810 2746 +3288 5 2 2 2 2738 2802 2810 2746 2739 2803 2811 2747 +3289 5 2 2 2 2739 2803 2811 2747 2740 2804 2812 2748 +3290 5 2 2 2 2740 2804 2812 2748 2741 2805 2813 2749 +3291 5 2 2 2 2741 2805 2813 2749 2742 2806 2814 2750 +3292 5 2 2 2 2742 2806 2814 2750 2743 2807 2815 2751 +3293 5 2 2 2 2743 2807 2815 2751 2744 2808 2816 2752 +3294 5 2 2 2 2744 2808 2816 2752 754 753 761 762 +3295 5 2 2 2 987 979 978 986 2745 2809 2817 2753 +3296 5 2 2 2 2745 2809 2817 2753 2746 2810 2818 2754 +3297 5 2 2 2 2746 2810 2818 2754 2747 2811 2819 2755 +3298 5 2 2 2 2747 2811 2819 2755 2748 2812 2820 2756 +3299 5 2 2 2 2748 2812 2820 2756 2749 2813 2821 2757 +3300 5 2 2 2 2749 2813 2821 2757 2750 2814 2822 2758 +3301 5 2 2 2 2750 2814 2822 2758 2751 2815 2823 2759 +3302 5 2 2 2 2751 2815 2823 2759 2752 2816 2824 2760 +3303 5 2 2 2 2752 2816 2824 2760 762 761 769 770 +3304 5 2 2 2 986 978 977 985 2753 2817 2825 2761 +3305 5 2 2 2 2753 2817 2825 2761 2754 2818 2826 2762 +3306 5 2 2 2 2754 2818 2826 2762 2755 2819 2827 2763 +3307 5 2 2 2 2755 2819 2827 2763 2756 2820 2828 2764 +3308 5 2 2 2 2756 2820 2828 2764 2757 2821 2829 2765 +3309 5 2 2 2 2757 2821 2829 2765 2758 2822 2830 2766 +3310 5 2 2 2 2758 2822 2830 2766 2759 2823 2831 2767 +3311 5 2 2 2 2759 2823 2831 2767 2760 2824 2832 2768 +3312 5 2 2 2 2760 2824 2832 2768 770 769 777 778 +3313 5 2 2 2 985 977 81 82 2761 2825 1368 1367 +3314 5 2 2 2 2761 2825 1368 1367 2762 2826 1376 1375 +3315 5 2 2 2 2762 2826 1376 1375 2763 2827 1384 1383 +3316 5 2 2 2 2763 2827 1384 1383 2764 2828 1392 1391 +3317 5 2 2 2 2764 2828 1392 1391 2765 2829 1400 1399 +3318 5 2 2 2 2765 2829 1400 1399 2766 2830 1408 1407 +3319 5 2 2 2 2766 2830 1408 1407 2767 2831 1416 1415 +3320 5 2 2 2 2767 2831 1416 1415 2768 2832 1424 1423 +3321 5 2 2 2 2768 2832 1424 1423 778 777 113 114 +3322 5 2 2 2 32 1 72 984 1161 217 1745 2769 +3323 5 2 2 2 1161 217 1745 2769 1162 218 1753 2770 +3324 5 2 2 2 1162 218 1753 2770 1163 219 1761 2771 +3325 5 2 2 2 1163 219 1761 2771 1164 220 1769 2772 +3326 5 2 2 2 1164 220 1769 2772 1165 221 1777 2773 +3327 5 2 2 2 1165 221 1777 2773 1166 222 1785 2774 +3328 5 2 2 2 1166 222 1785 2774 1167 223 1793 2775 +3329 5 2 2 2 1167 223 1793 2775 1168 224 1801 2776 +3330 5 2 2 2 1168 224 1801 2776 136 11 137 721 +3331 5 2 2 2 984 72 71 983 2769 1745 1746 2777 +3332 5 2 2 2 2769 1745 1746 2777 2770 1753 1754 2778 +3333 5 2 2 2 2770 1753 1754 2778 2771 1761 1762 2779 +3334 5 2 2 2 2771 1761 1762 2779 2772 1769 1770 2780 +3335 5 2 2 2 2772 1769 1770 2780 2773 1777 1778 2781 +3336 5 2 2 2 2773 1777 1778 2781 2774 1785 1786 2782 +3337 5 2 2 2 2774 1785 1786 2782 2775 1793 1794 2783 +3338 5 2 2 2 2775 1793 1794 2783 2776 1801 1802 2784 +3339 5 2 2 2 2776 1801 1802 2784 721 137 138 729 +3340 5 2 2 2 983 71 70 982 2777 1746 1747 2785 +3341 5 2 2 2 2777 1746 1747 2785 2778 1754 1755 2786 +3342 5 2 2 2 2778 1754 1755 2786 2779 1762 1763 2787 +3343 5 2 2 2 2779 1762 1763 2787 2780 1770 1771 2788 +3344 5 2 2 2 2780 1770 1771 2788 2781 1778 1779 2789 +3345 5 2 2 2 2781 1778 1779 2789 2782 1786 1787 2790 +3346 5 2 2 2 2782 1786 1787 2790 2783 1794 1795 2791 +3347 5 2 2 2 2783 1794 1795 2791 2784 1802 1803 2792 +3348 5 2 2 2 2784 1802 1803 2792 729 138 139 737 +3349 5 2 2 2 982 70 69 981 2785 1747 1748 2793 +3350 5 2 2 2 2785 1747 1748 2793 2786 1755 1756 2794 +3351 5 2 2 2 2786 1755 1756 2794 2787 1763 1764 2795 +3352 5 2 2 2 2787 1763 1764 2795 2788 1771 1772 2796 +3353 5 2 2 2 2788 1771 1772 2796 2789 1779 1780 2797 +3354 5 2 2 2 2789 1779 1780 2797 2790 1787 1788 2798 +3355 5 2 2 2 2790 1787 1788 2798 2791 1795 1796 2799 +3356 5 2 2 2 2791 1795 1796 2799 2792 1803 1804 2800 +3357 5 2 2 2 2792 1803 1804 2800 737 139 140 745 +3358 5 2 2 2 981 69 68 980 2793 1748 1749 2801 +3359 5 2 2 2 2793 1748 1749 2801 2794 1756 1757 2802 +3360 5 2 2 2 2794 1756 1757 2802 2795 1764 1765 2803 +3361 5 2 2 2 2795 1764 1765 2803 2796 1772 1773 2804 +3362 5 2 2 2 2796 1772 1773 2804 2797 1780 1781 2805 +3363 5 2 2 2 2797 1780 1781 2805 2798 1788 1789 2806 +3364 5 2 2 2 2798 1788 1789 2806 2799 1796 1797 2807 +3365 5 2 2 2 2799 1796 1797 2807 2800 1804 1805 2808 +3366 5 2 2 2 2800 1804 1805 2808 745 140 141 753 +3367 5 2 2 2 980 68 67 979 2801 1749 1750 2809 +3368 5 2 2 2 2801 1749 1750 2809 2802 1757 1758 2810 +3369 5 2 2 2 2802 1757 1758 2810 2803 1765 1766 2811 +3370 5 2 2 2 2803 1765 1766 2811 2804 1773 1774 2812 +3371 5 2 2 2 2804 1773 1774 2812 2805 1781 1782 2813 +3372 5 2 2 2 2805 1781 1782 2813 2806 1789 1790 2814 +3373 5 2 2 2 2806 1789 1790 2814 2807 1797 1798 2815 +3374 5 2 2 2 2807 1797 1798 2815 2808 1805 1806 2816 +3375 5 2 2 2 2808 1805 1806 2816 753 141 142 761 +3376 5 2 2 2 979 67 66 978 2809 1750 1751 2817 +3377 5 2 2 2 2809 1750 1751 2817 2810 1758 1759 2818 +3378 5 2 2 2 2810 1758 1759 2818 2811 1766 1767 2819 +3379 5 2 2 2 2811 1766 1767 2819 2812 1774 1775 2820 +3380 5 2 2 2 2812 1774 1775 2820 2813 1782 1783 2821 +3381 5 2 2 2 2813 1782 1783 2821 2814 1790 1791 2822 +3382 5 2 2 2 2814 1790 1791 2822 2815 1798 1799 2823 +3383 5 2 2 2 2815 1798 1799 2823 2816 1806 1807 2824 +3384 5 2 2 2 2816 1806 1807 2824 761 142 143 769 +3385 5 2 2 2 978 66 65 977 2817 1751 1752 2825 +3386 5 2 2 2 2817 1751 1752 2825 2818 1759 1760 2826 +3387 5 2 2 2 2818 1759 1760 2826 2819 1767 1768 2827 +3388 5 2 2 2 2819 1767 1768 2827 2820 1775 1776 2828 +3389 5 2 2 2 2820 1775 1776 2828 2821 1783 1784 2829 +3390 5 2 2 2 2821 1783 1784 2829 2822 1791 1792 2830 +3391 5 2 2 2 2822 1791 1792 2830 2823 1799 1800 2831 +3392 5 2 2 2 2823 1799 1800 2831 2824 1807 1808 2832 +3393 5 2 2 2 2824 1807 1808 2832 769 143 144 777 +3394 5 2 2 2 977 65 3 81 2825 1752 233 1368 +3395 5 2 2 2 2825 1752 233 1368 2826 1760 234 1376 +3396 5 2 2 2 2826 1760 234 1376 2827 1768 235 1384 +3397 5 2 2 2 2827 1768 235 1384 2828 1776 236 1392 +3398 5 2 2 2 2828 1776 236 1392 2829 1784 237 1400 +3399 5 2 2 2 2829 1784 237 1400 2830 1792 238 1408 +3400 5 2 2 2 2830 1792 238 1408 2831 1800 239 1416 +3401 5 2 2 2 2831 1800 239 1416 2832 1808 240 1424 +3402 5 2 2 2 2832 1808 240 1424 777 144 10 113 +3403 5 2 2 3 4 105 472 97 265 1553 2833 1432 +3404 5 2 2 3 265 1553 2833 1432 266 1554 2834 1440 +3405 5 2 2 3 266 1554 2834 1440 267 1555 2835 1448 +3406 5 2 2 3 267 1555 2835 1448 268 1556 2836 1456 +3407 5 2 2 3 268 1556 2836 1456 269 1557 2837 1464 +3408 5 2 2 3 269 1557 2837 1464 270 1558 2838 1472 +3409 5 2 2 3 270 1558 2838 1472 271 1559 2839 1480 +3410 5 2 2 3 271 1559 2839 1480 272 1560 2840 1488 +3411 5 2 2 3 272 1560 2840 1488 9 153 856 121 +3412 5 2 2 3 97 472 480 98 1432 2833 2841 1431 +3413 5 2 2 3 1432 2833 2841 1431 1440 2834 2842 1439 +3414 5 2 2 3 1440 2834 2842 1439 1448 2835 2843 1447 +3415 5 2 2 3 1448 2835 2843 1447 1456 2836 2844 1455 +3416 5 2 2 3 1456 2836 2844 1455 1464 2837 2845 1463 +3417 5 2 2 3 1464 2837 2845 1463 1472 2838 2846 1471 +3418 5 2 2 3 1472 2838 2846 1471 1480 2839 2847 1479 +3419 5 2 2 3 1480 2839 2847 1479 1488 2840 2848 1487 +3420 5 2 2 3 1488 2840 2848 1487 121 856 855 122 +3421 5 2 2 3 98 480 488 99 1431 2841 2849 1430 +3422 5 2 2 3 1431 2841 2849 1430 1439 2842 2850 1438 +3423 5 2 2 3 1439 2842 2850 1438 1447 2843 2851 1446 +3424 5 2 2 3 1447 2843 2851 1446 1455 2844 2852 1454 +3425 5 2 2 3 1455 2844 2852 1454 1463 2845 2853 1462 +3426 5 2 2 3 1463 2845 2853 1462 1471 2846 2854 1470 +3427 5 2 2 3 1471 2846 2854 1470 1479 2847 2855 1478 +3428 5 2 2 3 1479 2847 2855 1478 1487 2848 2856 1486 +3429 5 2 2 3 1487 2848 2856 1486 122 855 854 123 +3430 5 2 2 3 99 488 496 100 1430 2849 2857 1429 +3431 5 2 2 3 1430 2849 2857 1429 1438 2850 2858 1437 +3432 5 2 2 3 1438 2850 2858 1437 1446 2851 2859 1445 +3433 5 2 2 3 1446 2851 2859 1445 1454 2852 2860 1453 +3434 5 2 2 3 1454 2852 2860 1453 1462 2853 2861 1461 +3435 5 2 2 3 1462 2853 2861 1461 1470 2854 2862 1469 +3436 5 2 2 3 1470 2854 2862 1469 1478 2855 2863 1477 +3437 5 2 2 3 1478 2855 2863 1477 1486 2856 2864 1485 +3438 5 2 2 3 1486 2856 2864 1485 123 854 853 124 +3439 5 2 2 3 100 496 504 101 1429 2857 2865 1428 +3440 5 2 2 3 1429 2857 2865 1428 1437 2858 2866 1436 +3441 5 2 2 3 1437 2858 2866 1436 1445 2859 2867 1444 +3442 5 2 2 3 1445 2859 2867 1444 1453 2860 2868 1452 +3443 5 2 2 3 1453 2860 2868 1452 1461 2861 2869 1460 +3444 5 2 2 3 1461 2861 2869 1460 1469 2862 2870 1468 +3445 5 2 2 3 1469 2862 2870 1468 1477 2863 2871 1476 +3446 5 2 2 3 1477 2863 2871 1476 1485 2864 2872 1484 +3447 5 2 2 3 1485 2864 2872 1484 124 853 852 125 +3448 5 2 2 3 101 504 512 102 1428 2865 2873 1427 +3449 5 2 2 3 1428 2865 2873 1427 1436 2866 2874 1435 +3450 5 2 2 3 1436 2866 2874 1435 1444 2867 2875 1443 +3451 5 2 2 3 1444 2867 2875 1443 1452 2868 2876 1451 +3452 5 2 2 3 1452 2868 2876 1451 1460 2869 2877 1459 +3453 5 2 2 3 1460 2869 2877 1459 1468 2870 2878 1467 +3454 5 2 2 3 1468 2870 2878 1467 1476 2871 2879 1475 +3455 5 2 2 3 1476 2871 2879 1475 1484 2872 2880 1483 +3456 5 2 2 3 1484 2872 2880 1483 125 852 851 126 +3457 5 2 2 3 102 512 520 103 1427 2873 2881 1426 +3458 5 2 2 3 1427 2873 2881 1426 1435 2874 2882 1434 +3459 5 2 2 3 1435 2874 2882 1434 1443 2875 2883 1442 +3460 5 2 2 3 1443 2875 2883 1442 1451 2876 2884 1450 +3461 5 2 2 3 1451 2876 2884 1450 1459 2877 2885 1458 +3462 5 2 2 3 1459 2877 2885 1458 1467 2878 2886 1466 +3463 5 2 2 3 1467 2878 2886 1466 1475 2879 2887 1474 +3464 5 2 2 3 1475 2879 2887 1474 1483 2880 2888 1482 +3465 5 2 2 3 1483 2880 2888 1482 126 851 850 127 +3466 5 2 2 3 103 520 528 104 1426 2881 2889 1425 +3467 5 2 2 3 1426 2881 2889 1425 1434 2882 2890 1433 +3468 5 2 2 3 1434 2882 2890 1433 1442 2883 2891 1441 +3469 5 2 2 3 1442 2883 2891 1441 1450 2884 2892 1449 +3470 5 2 2 3 1450 2884 2892 1449 1458 2885 2893 1457 +3471 5 2 2 3 1458 2885 2893 1457 1466 2886 2894 1465 +3472 5 2 2 3 1466 2886 2894 1465 1474 2887 2895 1473 +3473 5 2 2 3 1474 2887 2895 1473 1482 2888 2896 1481 +3474 5 2 2 3 1482 2888 2896 1481 127 850 849 128 +3475 5 2 2 3 104 528 24 2 1425 2889 1048 249 +3476 5 2 2 3 1425 2889 1048 249 1433 2890 1056 250 +3477 5 2 2 3 1433 2890 1056 250 1441 2891 1064 251 +3478 5 2 2 3 1441 2891 1064 251 1449 2892 1072 252 +3479 5 2 2 3 1449 2892 1072 252 1457 2893 1080 253 +3480 5 2 2 3 1457 2893 1080 253 1465 2894 1088 254 +3481 5 2 2 3 1465 2894 1088 254 1473 2895 1096 255 +3482 5 2 2 3 1473 2895 1096 255 1481 2896 1104 256 +3483 5 2 2 3 1481 2896 1104 256 128 849 161 12 +3484 5 2 2 3 105 106 471 472 1553 1561 2897 2833 +3485 5 2 2 3 1553 1561 2897 2833 1554 1562 2898 2834 +3486 5 2 2 3 1554 1562 2898 2834 1555 1563 2899 2835 +3487 5 2 2 3 1555 1563 2899 2835 1556 1564 2900 2836 +3488 5 2 2 3 1556 1564 2900 2836 1557 1565 2901 2837 +3489 5 2 2 3 1557 1565 2901 2837 1558 1566 2902 2838 +3490 5 2 2 3 1558 1566 2902 2838 1559 1567 2903 2839 +3491 5 2 2 3 1559 1567 2903 2839 1560 1568 2904 2840 +3492 5 2 2 3 1560 1568 2904 2840 153 154 864 856 +3493 5 2 2 3 472 471 479 480 2833 2897 2905 2841 +3494 5 2 2 3 2833 2897 2905 2841 2834 2898 2906 2842 +3495 5 2 2 3 2834 2898 2906 2842 2835 2899 2907 2843 +3496 5 2 2 3 2835 2899 2907 2843 2836 2900 2908 2844 +3497 5 2 2 3 2836 2900 2908 2844 2837 2901 2909 2845 +3498 5 2 2 3 2837 2901 2909 2845 2838 2902 2910 2846 +3499 5 2 2 3 2838 2902 2910 2846 2839 2903 2911 2847 +3500 5 2 2 3 2839 2903 2911 2847 2840 2904 2912 2848 +3501 5 2 2 3 2840 2904 2912 2848 856 864 863 855 +3502 5 2 2 3 480 479 487 488 2841 2905 2913 2849 +3503 5 2 2 3 2841 2905 2913 2849 2842 2906 2914 2850 +3504 5 2 2 3 2842 2906 2914 2850 2843 2907 2915 2851 +3505 5 2 2 3 2843 2907 2915 2851 2844 2908 2916 2852 +3506 5 2 2 3 2844 2908 2916 2852 2845 2909 2917 2853 +3507 5 2 2 3 2845 2909 2917 2853 2846 2910 2918 2854 +3508 5 2 2 3 2846 2910 2918 2854 2847 2911 2919 2855 +3509 5 2 2 3 2847 2911 2919 2855 2848 2912 2920 2856 +3510 5 2 2 3 2848 2912 2920 2856 855 863 862 854 +3511 5 2 2 3 488 487 495 496 2849 2913 2921 2857 +3512 5 2 2 3 2849 2913 2921 2857 2850 2914 2922 2858 +3513 5 2 2 3 2850 2914 2922 2858 2851 2915 2923 2859 +3514 5 2 2 3 2851 2915 2923 2859 2852 2916 2924 2860 +3515 5 2 2 3 2852 2916 2924 2860 2853 2917 2925 2861 +3516 5 2 2 3 2853 2917 2925 2861 2854 2918 2926 2862 +3517 5 2 2 3 2854 2918 2926 2862 2855 2919 2927 2863 +3518 5 2 2 3 2855 2919 2927 2863 2856 2920 2928 2864 +3519 5 2 2 3 2856 2920 2928 2864 854 862 861 853 +3520 5 2 2 3 496 495 503 504 2857 2921 2929 2865 +3521 5 2 2 3 2857 2921 2929 2865 2858 2922 2930 2866 +3522 5 2 2 3 2858 2922 2930 2866 2859 2923 2931 2867 +3523 5 2 2 3 2859 2923 2931 2867 2860 2924 2932 2868 +3524 5 2 2 3 2860 2924 2932 2868 2861 2925 2933 2869 +3525 5 2 2 3 2861 2925 2933 2869 2862 2926 2934 2870 +3526 5 2 2 3 2862 2926 2934 2870 2863 2927 2935 2871 +3527 5 2 2 3 2863 2927 2935 2871 2864 2928 2936 2872 +3528 5 2 2 3 2864 2928 2936 2872 853 861 860 852 +3529 5 2 2 3 504 503 511 512 2865 2929 2937 2873 +3530 5 2 2 3 2865 2929 2937 2873 2866 2930 2938 2874 +3531 5 2 2 3 2866 2930 2938 2874 2867 2931 2939 2875 +3532 5 2 2 3 2867 2931 2939 2875 2868 2932 2940 2876 +3533 5 2 2 3 2868 2932 2940 2876 2869 2933 2941 2877 +3534 5 2 2 3 2869 2933 2941 2877 2870 2934 2942 2878 +3535 5 2 2 3 2870 2934 2942 2878 2871 2935 2943 2879 +3536 5 2 2 3 2871 2935 2943 2879 2872 2936 2944 2880 +3537 5 2 2 3 2872 2936 2944 2880 852 860 859 851 +3538 5 2 2 3 512 511 519 520 2873 2937 2945 2881 +3539 5 2 2 3 2873 2937 2945 2881 2874 2938 2946 2882 +3540 5 2 2 3 2874 2938 2946 2882 2875 2939 2947 2883 +3541 5 2 2 3 2875 2939 2947 2883 2876 2940 2948 2884 +3542 5 2 2 3 2876 2940 2948 2884 2877 2941 2949 2885 +3543 5 2 2 3 2877 2941 2949 2885 2878 2942 2950 2886 +3544 5 2 2 3 2878 2942 2950 2886 2879 2943 2951 2887 +3545 5 2 2 3 2879 2943 2951 2887 2880 2944 2952 2888 +3546 5 2 2 3 2880 2944 2952 2888 851 859 858 850 +3547 5 2 2 3 520 519 527 528 2881 2945 2953 2889 +3548 5 2 2 3 2881 2945 2953 2889 2882 2946 2954 2890 +3549 5 2 2 3 2882 2946 2954 2890 2883 2947 2955 2891 +3550 5 2 2 3 2883 2947 2955 2891 2884 2948 2956 2892 +3551 5 2 2 3 2884 2948 2956 2892 2885 2949 2957 2893 +3552 5 2 2 3 2885 2949 2957 2893 2886 2950 2958 2894 +3553 5 2 2 3 2886 2950 2958 2894 2887 2951 2959 2895 +3554 5 2 2 3 2887 2951 2959 2895 2888 2952 2960 2896 +3555 5 2 2 3 2888 2952 2960 2896 850 858 857 849 +3556 5 2 2 3 528 527 23 24 2889 2953 1047 1048 +3557 5 2 2 3 2889 2953 1047 1048 2890 2954 1055 1056 +3558 5 2 2 3 2890 2954 1055 1056 2891 2955 1063 1064 +3559 5 2 2 3 2891 2955 1063 1064 2892 2956 1071 1072 +3560 5 2 2 3 2892 2956 1071 1072 2893 2957 1079 1080 +3561 5 2 2 3 2893 2957 1079 1080 2894 2958 1087 1088 +3562 5 2 2 3 2894 2958 1087 1088 2895 2959 1095 1096 +3563 5 2 2 3 2895 2959 1095 1096 2896 2960 1103 1104 +3564 5 2 2 3 2896 2960 1103 1104 849 857 162 161 +3565 5 2 2 3 106 107 470 471 1561 1569 2961 2897 +3566 5 2 2 3 1561 1569 2961 2897 1562 1570 2962 2898 +3567 5 2 2 3 1562 1570 2962 2898 1563 1571 2963 2899 +3568 5 2 2 3 1563 1571 2963 2899 1564 1572 2964 2900 +3569 5 2 2 3 1564 1572 2964 2900 1565 1573 2965 2901 +3570 5 2 2 3 1565 1573 2965 2901 1566 1574 2966 2902 +3571 5 2 2 3 1566 1574 2966 2902 1567 1575 2967 2903 +3572 5 2 2 3 1567 1575 2967 2903 1568 1576 2968 2904 +3573 5 2 2 3 1568 1576 2968 2904 154 155 872 864 +3574 5 2 2 3 471 470 478 479 2897 2961 2969 2905 +3575 5 2 2 3 2897 2961 2969 2905 2898 2962 2970 2906 +3576 5 2 2 3 2898 2962 2970 2906 2899 2963 2971 2907 +3577 5 2 2 3 2899 2963 2971 2907 2900 2964 2972 2908 +3578 5 2 2 3 2900 2964 2972 2908 2901 2965 2973 2909 +3579 5 2 2 3 2901 2965 2973 2909 2902 2966 2974 2910 +3580 5 2 2 3 2902 2966 2974 2910 2903 2967 2975 2911 +3581 5 2 2 3 2903 2967 2975 2911 2904 2968 2976 2912 +3582 5 2 2 3 2904 2968 2976 2912 864 872 871 863 +3583 5 2 2 3 479 478 486 487 2905 2969 2977 2913 +3584 5 2 2 3 2905 2969 2977 2913 2906 2970 2978 2914 +3585 5 2 2 3 2906 2970 2978 2914 2907 2971 2979 2915 +3586 5 2 2 3 2907 2971 2979 2915 2908 2972 2980 2916 +3587 5 2 2 3 2908 2972 2980 2916 2909 2973 2981 2917 +3588 5 2 2 3 2909 2973 2981 2917 2910 2974 2982 2918 +3589 5 2 2 3 2910 2974 2982 2918 2911 2975 2983 2919 +3590 5 2 2 3 2911 2975 2983 2919 2912 2976 2984 2920 +3591 5 2 2 3 2912 2976 2984 2920 863 871 870 862 +3592 5 2 2 3 487 486 494 495 2913 2977 2985 2921 +3593 5 2 2 3 2913 2977 2985 2921 2914 2978 2986 2922 +3594 5 2 2 3 2914 2978 2986 2922 2915 2979 2987 2923 +3595 5 2 2 3 2915 2979 2987 2923 2916 2980 2988 2924 +3596 5 2 2 3 2916 2980 2988 2924 2917 2981 2989 2925 +3597 5 2 2 3 2917 2981 2989 2925 2918 2982 2990 2926 +3598 5 2 2 3 2918 2982 2990 2926 2919 2983 2991 2927 +3599 5 2 2 3 2919 2983 2991 2927 2920 2984 2992 2928 +3600 5 2 2 3 2920 2984 2992 2928 862 870 869 861 +3601 5 2 2 3 495 494 502 503 2921 2985 2993 2929 +3602 5 2 2 3 2921 2985 2993 2929 2922 2986 2994 2930 +3603 5 2 2 3 2922 2986 2994 2930 2923 2987 2995 2931 +3604 5 2 2 3 2923 2987 2995 2931 2924 2988 2996 2932 +3605 5 2 2 3 2924 2988 2996 2932 2925 2989 2997 2933 +3606 5 2 2 3 2925 2989 2997 2933 2926 2990 2998 2934 +3607 5 2 2 3 2926 2990 2998 2934 2927 2991 2999 2935 +3608 5 2 2 3 2927 2991 2999 2935 2928 2992 3000 2936 +3609 5 2 2 3 2928 2992 3000 2936 861 869 868 860 +3610 5 2 2 3 503 502 510 511 2929 2993 3001 2937 +3611 5 2 2 3 2929 2993 3001 2937 2930 2994 3002 2938 +3612 5 2 2 3 2930 2994 3002 2938 2931 2995 3003 2939 +3613 5 2 2 3 2931 2995 3003 2939 2932 2996 3004 2940 +3614 5 2 2 3 2932 2996 3004 2940 2933 2997 3005 2941 +3615 5 2 2 3 2933 2997 3005 2941 2934 2998 3006 2942 +3616 5 2 2 3 2934 2998 3006 2942 2935 2999 3007 2943 +3617 5 2 2 3 2935 2999 3007 2943 2936 3000 3008 2944 +3618 5 2 2 3 2936 3000 3008 2944 860 868 867 859 +3619 5 2 2 3 511 510 518 519 2937 3001 3009 2945 +3620 5 2 2 3 2937 3001 3009 2945 2938 3002 3010 2946 +3621 5 2 2 3 2938 3002 3010 2946 2939 3003 3011 2947 +3622 5 2 2 3 2939 3003 3011 2947 2940 3004 3012 2948 +3623 5 2 2 3 2940 3004 3012 2948 2941 3005 3013 2949 +3624 5 2 2 3 2941 3005 3013 2949 2942 3006 3014 2950 +3625 5 2 2 3 2942 3006 3014 2950 2943 3007 3015 2951 +3626 5 2 2 3 2943 3007 3015 2951 2944 3008 3016 2952 +3627 5 2 2 3 2944 3008 3016 2952 859 867 866 858 +3628 5 2 2 3 519 518 526 527 2945 3009 3017 2953 +3629 5 2 2 3 2945 3009 3017 2953 2946 3010 3018 2954 +3630 5 2 2 3 2946 3010 3018 2954 2947 3011 3019 2955 +3631 5 2 2 3 2947 3011 3019 2955 2948 3012 3020 2956 +3632 5 2 2 3 2948 3012 3020 2956 2949 3013 3021 2957 +3633 5 2 2 3 2949 3013 3021 2957 2950 3014 3022 2958 +3634 5 2 2 3 2950 3014 3022 2958 2951 3015 3023 2959 +3635 5 2 2 3 2951 3015 3023 2959 2952 3016 3024 2960 +3636 5 2 2 3 2952 3016 3024 2960 858 866 865 857 +3637 5 2 2 3 527 526 22 23 2953 3017 1046 1047 +3638 5 2 2 3 2953 3017 1046 1047 2954 3018 1054 1055 +3639 5 2 2 3 2954 3018 1054 1055 2955 3019 1062 1063 +3640 5 2 2 3 2955 3019 1062 1063 2956 3020 1070 1071 +3641 5 2 2 3 2956 3020 1070 1071 2957 3021 1078 1079 +3642 5 2 2 3 2957 3021 1078 1079 2958 3022 1086 1087 +3643 5 2 2 3 2958 3022 1086 1087 2959 3023 1094 1095 +3644 5 2 2 3 2959 3023 1094 1095 2960 3024 1102 1103 +3645 5 2 2 3 2960 3024 1102 1103 857 865 163 162 +3646 5 2 2 3 107 108 469 470 1569 1577 3025 2961 +3647 5 2 2 3 1569 1577 3025 2961 1570 1578 3026 2962 +3648 5 2 2 3 1570 1578 3026 2962 1571 1579 3027 2963 +3649 5 2 2 3 1571 1579 3027 2963 1572 1580 3028 2964 +3650 5 2 2 3 1572 1580 3028 2964 1573 1581 3029 2965 +3651 5 2 2 3 1573 1581 3029 2965 1574 1582 3030 2966 +3652 5 2 2 3 1574 1582 3030 2966 1575 1583 3031 2967 +3653 5 2 2 3 1575 1583 3031 2967 1576 1584 3032 2968 +3654 5 2 2 3 1576 1584 3032 2968 155 156 880 872 +3655 5 2 2 3 470 469 477 478 2961 3025 3033 2969 +3656 5 2 2 3 2961 3025 3033 2969 2962 3026 3034 2970 +3657 5 2 2 3 2962 3026 3034 2970 2963 3027 3035 2971 +3658 5 2 2 3 2963 3027 3035 2971 2964 3028 3036 2972 +3659 5 2 2 3 2964 3028 3036 2972 2965 3029 3037 2973 +3660 5 2 2 3 2965 3029 3037 2973 2966 3030 3038 2974 +3661 5 2 2 3 2966 3030 3038 2974 2967 3031 3039 2975 +3662 5 2 2 3 2967 3031 3039 2975 2968 3032 3040 2976 +3663 5 2 2 3 2968 3032 3040 2976 872 880 879 871 +3664 5 2 2 3 478 477 485 486 2969 3033 3041 2977 +3665 5 2 2 3 2969 3033 3041 2977 2970 3034 3042 2978 +3666 5 2 2 3 2970 3034 3042 2978 2971 3035 3043 2979 +3667 5 2 2 3 2971 3035 3043 2979 2972 3036 3044 2980 +3668 5 2 2 3 2972 3036 3044 2980 2973 3037 3045 2981 +3669 5 2 2 3 2973 3037 3045 2981 2974 3038 3046 2982 +3670 5 2 2 3 2974 3038 3046 2982 2975 3039 3047 2983 +3671 5 2 2 3 2975 3039 3047 2983 2976 3040 3048 2984 +3672 5 2 2 3 2976 3040 3048 2984 871 879 878 870 +3673 5 2 2 3 486 485 493 494 2977 3041 3049 2985 +3674 5 2 2 3 2977 3041 3049 2985 2978 3042 3050 2986 +3675 5 2 2 3 2978 3042 3050 2986 2979 3043 3051 2987 +3676 5 2 2 3 2979 3043 3051 2987 2980 3044 3052 2988 +3677 5 2 2 3 2980 3044 3052 2988 2981 3045 3053 2989 +3678 5 2 2 3 2981 3045 3053 2989 2982 3046 3054 2990 +3679 5 2 2 3 2982 3046 3054 2990 2983 3047 3055 2991 +3680 5 2 2 3 2983 3047 3055 2991 2984 3048 3056 2992 +3681 5 2 2 3 2984 3048 3056 2992 870 878 877 869 +3682 5 2 2 3 494 493 501 502 2985 3049 3057 2993 +3683 5 2 2 3 2985 3049 3057 2993 2986 3050 3058 2994 +3684 5 2 2 3 2986 3050 3058 2994 2987 3051 3059 2995 +3685 5 2 2 3 2987 3051 3059 2995 2988 3052 3060 2996 +3686 5 2 2 3 2988 3052 3060 2996 2989 3053 3061 2997 +3687 5 2 2 3 2989 3053 3061 2997 2990 3054 3062 2998 +3688 5 2 2 3 2990 3054 3062 2998 2991 3055 3063 2999 +3689 5 2 2 3 2991 3055 3063 2999 2992 3056 3064 3000 +3690 5 2 2 3 2992 3056 3064 3000 869 877 876 868 +3691 5 2 2 3 502 501 509 510 2993 3057 3065 3001 +3692 5 2 2 3 2993 3057 3065 3001 2994 3058 3066 3002 +3693 5 2 2 3 2994 3058 3066 3002 2995 3059 3067 3003 +3694 5 2 2 3 2995 3059 3067 3003 2996 3060 3068 3004 +3695 5 2 2 3 2996 3060 3068 3004 2997 3061 3069 3005 +3696 5 2 2 3 2997 3061 3069 3005 2998 3062 3070 3006 +3697 5 2 2 3 2998 3062 3070 3006 2999 3063 3071 3007 +3698 5 2 2 3 2999 3063 3071 3007 3000 3064 3072 3008 +3699 5 2 2 3 3000 3064 3072 3008 868 876 875 867 +3700 5 2 2 3 510 509 517 518 3001 3065 3073 3009 +3701 5 2 2 3 3001 3065 3073 3009 3002 3066 3074 3010 +3702 5 2 2 3 3002 3066 3074 3010 3003 3067 3075 3011 +3703 5 2 2 3 3003 3067 3075 3011 3004 3068 3076 3012 +3704 5 2 2 3 3004 3068 3076 3012 3005 3069 3077 3013 +3705 5 2 2 3 3005 3069 3077 3013 3006 3070 3078 3014 +3706 5 2 2 3 3006 3070 3078 3014 3007 3071 3079 3015 +3707 5 2 2 3 3007 3071 3079 3015 3008 3072 3080 3016 +3708 5 2 2 3 3008 3072 3080 3016 867 875 874 866 +3709 5 2 2 3 518 517 525 526 3009 3073 3081 3017 +3710 5 2 2 3 3009 3073 3081 3017 3010 3074 3082 3018 +3711 5 2 2 3 3010 3074 3082 3018 3011 3075 3083 3019 +3712 5 2 2 3 3011 3075 3083 3019 3012 3076 3084 3020 +3713 5 2 2 3 3012 3076 3084 3020 3013 3077 3085 3021 +3714 5 2 2 3 3013 3077 3085 3021 3014 3078 3086 3022 +3715 5 2 2 3 3014 3078 3086 3022 3015 3079 3087 3023 +3716 5 2 2 3 3015 3079 3087 3023 3016 3080 3088 3024 +3717 5 2 2 3 3016 3080 3088 3024 866 874 873 865 +3718 5 2 2 3 526 525 21 22 3017 3081 1045 1046 +3719 5 2 2 3 3017 3081 1045 1046 3018 3082 1053 1054 +3720 5 2 2 3 3018 3082 1053 1054 3019 3083 1061 1062 +3721 5 2 2 3 3019 3083 1061 1062 3020 3084 1069 1070 +3722 5 2 2 3 3020 3084 1069 1070 3021 3085 1077 1078 +3723 5 2 2 3 3021 3085 1077 1078 3022 3086 1085 1086 +3724 5 2 2 3 3022 3086 1085 1086 3023 3087 1093 1094 +3725 5 2 2 3 3023 3087 1093 1094 3024 3088 1101 1102 +3726 5 2 2 3 3024 3088 1101 1102 865 873 164 163 +3727 5 2 2 3 108 109 468 469 1577 1585 3089 3025 +3728 5 2 2 3 1577 1585 3089 3025 1578 1586 3090 3026 +3729 5 2 2 3 1578 1586 3090 3026 1579 1587 3091 3027 +3730 5 2 2 3 1579 1587 3091 3027 1580 1588 3092 3028 +3731 5 2 2 3 1580 1588 3092 3028 1581 1589 3093 3029 +3732 5 2 2 3 1581 1589 3093 3029 1582 1590 3094 3030 +3733 5 2 2 3 1582 1590 3094 3030 1583 1591 3095 3031 +3734 5 2 2 3 1583 1591 3095 3031 1584 1592 3096 3032 +3735 5 2 2 3 1584 1592 3096 3032 156 157 888 880 +3736 5 2 2 3 469 468 476 477 3025 3089 3097 3033 +3737 5 2 2 3 3025 3089 3097 3033 3026 3090 3098 3034 +3738 5 2 2 3 3026 3090 3098 3034 3027 3091 3099 3035 +3739 5 2 2 3 3027 3091 3099 3035 3028 3092 3100 3036 +3740 5 2 2 3 3028 3092 3100 3036 3029 3093 3101 3037 +3741 5 2 2 3 3029 3093 3101 3037 3030 3094 3102 3038 +3742 5 2 2 3 3030 3094 3102 3038 3031 3095 3103 3039 +3743 5 2 2 3 3031 3095 3103 3039 3032 3096 3104 3040 +3744 5 2 2 3 3032 3096 3104 3040 880 888 887 879 +3745 5 2 2 3 477 476 484 485 3033 3097 3105 3041 +3746 5 2 2 3 3033 3097 3105 3041 3034 3098 3106 3042 +3747 5 2 2 3 3034 3098 3106 3042 3035 3099 3107 3043 +3748 5 2 2 3 3035 3099 3107 3043 3036 3100 3108 3044 +3749 5 2 2 3 3036 3100 3108 3044 3037 3101 3109 3045 +3750 5 2 2 3 3037 3101 3109 3045 3038 3102 3110 3046 +3751 5 2 2 3 3038 3102 3110 3046 3039 3103 3111 3047 +3752 5 2 2 3 3039 3103 3111 3047 3040 3104 3112 3048 +3753 5 2 2 3 3040 3104 3112 3048 879 887 886 878 +3754 5 2 2 3 485 484 492 493 3041 3105 3113 3049 +3755 5 2 2 3 3041 3105 3113 3049 3042 3106 3114 3050 +3756 5 2 2 3 3042 3106 3114 3050 3043 3107 3115 3051 +3757 5 2 2 3 3043 3107 3115 3051 3044 3108 3116 3052 +3758 5 2 2 3 3044 3108 3116 3052 3045 3109 3117 3053 +3759 5 2 2 3 3045 3109 3117 3053 3046 3110 3118 3054 +3760 5 2 2 3 3046 3110 3118 3054 3047 3111 3119 3055 +3761 5 2 2 3 3047 3111 3119 3055 3048 3112 3120 3056 +3762 5 2 2 3 3048 3112 3120 3056 878 886 885 877 +3763 5 2 2 3 493 492 500 501 3049 3113 3121 3057 +3764 5 2 2 3 3049 3113 3121 3057 3050 3114 3122 3058 +3765 5 2 2 3 3050 3114 3122 3058 3051 3115 3123 3059 +3766 5 2 2 3 3051 3115 3123 3059 3052 3116 3124 3060 +3767 5 2 2 3 3052 3116 3124 3060 3053 3117 3125 3061 +3768 5 2 2 3 3053 3117 3125 3061 3054 3118 3126 3062 +3769 5 2 2 3 3054 3118 3126 3062 3055 3119 3127 3063 +3770 5 2 2 3 3055 3119 3127 3063 3056 3120 3128 3064 +3771 5 2 2 3 3056 3120 3128 3064 877 885 884 876 +3772 5 2 2 3 501 500 508 509 3057 3121 3129 3065 +3773 5 2 2 3 3057 3121 3129 3065 3058 3122 3130 3066 +3774 5 2 2 3 3058 3122 3130 3066 3059 3123 3131 3067 +3775 5 2 2 3 3059 3123 3131 3067 3060 3124 3132 3068 +3776 5 2 2 3 3060 3124 3132 3068 3061 3125 3133 3069 +3777 5 2 2 3 3061 3125 3133 3069 3062 3126 3134 3070 +3778 5 2 2 3 3062 3126 3134 3070 3063 3127 3135 3071 +3779 5 2 2 3 3063 3127 3135 3071 3064 3128 3136 3072 +3780 5 2 2 3 3064 3128 3136 3072 876 884 883 875 +3781 5 2 2 3 509 508 516 517 3065 3129 3137 3073 +3782 5 2 2 3 3065 3129 3137 3073 3066 3130 3138 3074 +3783 5 2 2 3 3066 3130 3138 3074 3067 3131 3139 3075 +3784 5 2 2 3 3067 3131 3139 3075 3068 3132 3140 3076 +3785 5 2 2 3 3068 3132 3140 3076 3069 3133 3141 3077 +3786 5 2 2 3 3069 3133 3141 3077 3070 3134 3142 3078 +3787 5 2 2 3 3070 3134 3142 3078 3071 3135 3143 3079 +3788 5 2 2 3 3071 3135 3143 3079 3072 3136 3144 3080 +3789 5 2 2 3 3072 3136 3144 3080 875 883 882 874 +3790 5 2 2 3 517 516 524 525 3073 3137 3145 3081 +3791 5 2 2 3 3073 3137 3145 3081 3074 3138 3146 3082 +3792 5 2 2 3 3074 3138 3146 3082 3075 3139 3147 3083 +3793 5 2 2 3 3075 3139 3147 3083 3076 3140 3148 3084 +3794 5 2 2 3 3076 3140 3148 3084 3077 3141 3149 3085 +3795 5 2 2 3 3077 3141 3149 3085 3078 3142 3150 3086 +3796 5 2 2 3 3078 3142 3150 3086 3079 3143 3151 3087 +3797 5 2 2 3 3079 3143 3151 3087 3080 3144 3152 3088 +3798 5 2 2 3 3080 3144 3152 3088 874 882 881 873 +3799 5 2 2 3 525 524 20 21 3081 3145 1044 1045 +3800 5 2 2 3 3081 3145 1044 1045 3082 3146 1052 1053 +3801 5 2 2 3 3082 3146 1052 1053 3083 3147 1060 1061 +3802 5 2 2 3 3083 3147 1060 1061 3084 3148 1068 1069 +3803 5 2 2 3 3084 3148 1068 1069 3085 3149 1076 1077 +3804 5 2 2 3 3085 3149 1076 1077 3086 3150 1084 1085 +3805 5 2 2 3 3086 3150 1084 1085 3087 3151 1092 1093 +3806 5 2 2 3 3087 3151 1092 1093 3088 3152 1100 1101 +3807 5 2 2 3 3088 3152 1100 1101 873 881 165 164 +3808 5 2 2 3 109 110 467 468 1585 1593 3153 3089 +3809 5 2 2 3 1585 1593 3153 3089 1586 1594 3154 3090 +3810 5 2 2 3 1586 1594 3154 3090 1587 1595 3155 3091 +3811 5 2 2 3 1587 1595 3155 3091 1588 1596 3156 3092 +3812 5 2 2 3 1588 1596 3156 3092 1589 1597 3157 3093 +3813 5 2 2 3 1589 1597 3157 3093 1590 1598 3158 3094 +3814 5 2 2 3 1590 1598 3158 3094 1591 1599 3159 3095 +3815 5 2 2 3 1591 1599 3159 3095 1592 1600 3160 3096 +3816 5 2 2 3 1592 1600 3160 3096 157 158 896 888 +3817 5 2 2 3 468 467 475 476 3089 3153 3161 3097 +3818 5 2 2 3 3089 3153 3161 3097 3090 3154 3162 3098 +3819 5 2 2 3 3090 3154 3162 3098 3091 3155 3163 3099 +3820 5 2 2 3 3091 3155 3163 3099 3092 3156 3164 3100 +3821 5 2 2 3 3092 3156 3164 3100 3093 3157 3165 3101 +3822 5 2 2 3 3093 3157 3165 3101 3094 3158 3166 3102 +3823 5 2 2 3 3094 3158 3166 3102 3095 3159 3167 3103 +3824 5 2 2 3 3095 3159 3167 3103 3096 3160 3168 3104 +3825 5 2 2 3 3096 3160 3168 3104 888 896 895 887 +3826 5 2 2 3 476 475 483 484 3097 3161 3169 3105 +3827 5 2 2 3 3097 3161 3169 3105 3098 3162 3170 3106 +3828 5 2 2 3 3098 3162 3170 3106 3099 3163 3171 3107 +3829 5 2 2 3 3099 3163 3171 3107 3100 3164 3172 3108 +3830 5 2 2 3 3100 3164 3172 3108 3101 3165 3173 3109 +3831 5 2 2 3 3101 3165 3173 3109 3102 3166 3174 3110 +3832 5 2 2 3 3102 3166 3174 3110 3103 3167 3175 3111 +3833 5 2 2 3 3103 3167 3175 3111 3104 3168 3176 3112 +3834 5 2 2 3 3104 3168 3176 3112 887 895 894 886 +3835 5 2 2 3 484 483 491 492 3105 3169 3177 3113 +3836 5 2 2 3 3105 3169 3177 3113 3106 3170 3178 3114 +3837 5 2 2 3 3106 3170 3178 3114 3107 3171 3179 3115 +3838 5 2 2 3 3107 3171 3179 3115 3108 3172 3180 3116 +3839 5 2 2 3 3108 3172 3180 3116 3109 3173 3181 3117 +3840 5 2 2 3 3109 3173 3181 3117 3110 3174 3182 3118 +3841 5 2 2 3 3110 3174 3182 3118 3111 3175 3183 3119 +3842 5 2 2 3 3111 3175 3183 3119 3112 3176 3184 3120 +3843 5 2 2 3 3112 3176 3184 3120 886 894 893 885 +3844 5 2 2 3 492 491 499 500 3113 3177 3185 3121 +3845 5 2 2 3 3113 3177 3185 3121 3114 3178 3186 3122 +3846 5 2 2 3 3114 3178 3186 3122 3115 3179 3187 3123 +3847 5 2 2 3 3115 3179 3187 3123 3116 3180 3188 3124 +3848 5 2 2 3 3116 3180 3188 3124 3117 3181 3189 3125 +3849 5 2 2 3 3117 3181 3189 3125 3118 3182 3190 3126 +3850 5 2 2 3 3118 3182 3190 3126 3119 3183 3191 3127 +3851 5 2 2 3 3119 3183 3191 3127 3120 3184 3192 3128 +3852 5 2 2 3 3120 3184 3192 3128 885 893 892 884 +3853 5 2 2 3 500 499 507 508 3121 3185 3193 3129 +3854 5 2 2 3 3121 3185 3193 3129 3122 3186 3194 3130 +3855 5 2 2 3 3122 3186 3194 3130 3123 3187 3195 3131 +3856 5 2 2 3 3123 3187 3195 3131 3124 3188 3196 3132 +3857 5 2 2 3 3124 3188 3196 3132 3125 3189 3197 3133 +3858 5 2 2 3 3125 3189 3197 3133 3126 3190 3198 3134 +3859 5 2 2 3 3126 3190 3198 3134 3127 3191 3199 3135 +3860 5 2 2 3 3127 3191 3199 3135 3128 3192 3200 3136 +3861 5 2 2 3 3128 3192 3200 3136 884 892 891 883 +3862 5 2 2 3 508 507 515 516 3129 3193 3201 3137 +3863 5 2 2 3 3129 3193 3201 3137 3130 3194 3202 3138 +3864 5 2 2 3 3130 3194 3202 3138 3131 3195 3203 3139 +3865 5 2 2 3 3131 3195 3203 3139 3132 3196 3204 3140 +3866 5 2 2 3 3132 3196 3204 3140 3133 3197 3205 3141 +3867 5 2 2 3 3133 3197 3205 3141 3134 3198 3206 3142 +3868 5 2 2 3 3134 3198 3206 3142 3135 3199 3207 3143 +3869 5 2 2 3 3135 3199 3207 3143 3136 3200 3208 3144 +3870 5 2 2 3 3136 3200 3208 3144 883 891 890 882 +3871 5 2 2 3 516 515 523 524 3137 3201 3209 3145 +3872 5 2 2 3 3137 3201 3209 3145 3138 3202 3210 3146 +3873 5 2 2 3 3138 3202 3210 3146 3139 3203 3211 3147 +3874 5 2 2 3 3139 3203 3211 3147 3140 3204 3212 3148 +3875 5 2 2 3 3140 3204 3212 3148 3141 3205 3213 3149 +3876 5 2 2 3 3141 3205 3213 3149 3142 3206 3214 3150 +3877 5 2 2 3 3142 3206 3214 3150 3143 3207 3215 3151 +3878 5 2 2 3 3143 3207 3215 3151 3144 3208 3216 3152 +3879 5 2 2 3 3144 3208 3216 3152 882 890 889 881 +3880 5 2 2 3 524 523 19 20 3145 3209 1043 1044 +3881 5 2 2 3 3145 3209 1043 1044 3146 3210 1051 1052 +3882 5 2 2 3 3146 3210 1051 1052 3147 3211 1059 1060 +3883 5 2 2 3 3147 3211 1059 1060 3148 3212 1067 1068 +3884 5 2 2 3 3148 3212 1067 1068 3149 3213 1075 1076 +3885 5 2 2 3 3149 3213 1075 1076 3150 3214 1083 1084 +3886 5 2 2 3 3150 3214 1083 1084 3151 3215 1091 1092 +3887 5 2 2 3 3151 3215 1091 1092 3152 3216 1099 1100 +3888 5 2 2 3 3152 3216 1099 1100 881 889 166 165 +3889 5 2 2 3 110 111 466 467 1593 1601 3217 3153 +3890 5 2 2 3 1593 1601 3217 3153 1594 1602 3218 3154 +3891 5 2 2 3 1594 1602 3218 3154 1595 1603 3219 3155 +3892 5 2 2 3 1595 1603 3219 3155 1596 1604 3220 3156 +3893 5 2 2 3 1596 1604 3220 3156 1597 1605 3221 3157 +3894 5 2 2 3 1597 1605 3221 3157 1598 1606 3222 3158 +3895 5 2 2 3 1598 1606 3222 3158 1599 1607 3223 3159 +3896 5 2 2 3 1599 1607 3223 3159 1600 1608 3224 3160 +3897 5 2 2 3 1600 1608 3224 3160 158 159 904 896 +3898 5 2 2 3 467 466 474 475 3153 3217 3225 3161 +3899 5 2 2 3 3153 3217 3225 3161 3154 3218 3226 3162 +3900 5 2 2 3 3154 3218 3226 3162 3155 3219 3227 3163 +3901 5 2 2 3 3155 3219 3227 3163 3156 3220 3228 3164 +3902 5 2 2 3 3156 3220 3228 3164 3157 3221 3229 3165 +3903 5 2 2 3 3157 3221 3229 3165 3158 3222 3230 3166 +3904 5 2 2 3 3158 3222 3230 3166 3159 3223 3231 3167 +3905 5 2 2 3 3159 3223 3231 3167 3160 3224 3232 3168 +3906 5 2 2 3 3160 3224 3232 3168 896 904 903 895 +3907 5 2 2 3 475 474 482 483 3161 3225 3233 3169 +3908 5 2 2 3 3161 3225 3233 3169 3162 3226 3234 3170 +3909 5 2 2 3 3162 3226 3234 3170 3163 3227 3235 3171 +3910 5 2 2 3 3163 3227 3235 3171 3164 3228 3236 3172 +3911 5 2 2 3 3164 3228 3236 3172 3165 3229 3237 3173 +3912 5 2 2 3 3165 3229 3237 3173 3166 3230 3238 3174 +3913 5 2 2 3 3166 3230 3238 3174 3167 3231 3239 3175 +3914 5 2 2 3 3167 3231 3239 3175 3168 3232 3240 3176 +3915 5 2 2 3 3168 3232 3240 3176 895 903 902 894 +3916 5 2 2 3 483 482 490 491 3169 3233 3241 3177 +3917 5 2 2 3 3169 3233 3241 3177 3170 3234 3242 3178 +3918 5 2 2 3 3170 3234 3242 3178 3171 3235 3243 3179 +3919 5 2 2 3 3171 3235 3243 3179 3172 3236 3244 3180 +3920 5 2 2 3 3172 3236 3244 3180 3173 3237 3245 3181 +3921 5 2 2 3 3173 3237 3245 3181 3174 3238 3246 3182 +3922 5 2 2 3 3174 3238 3246 3182 3175 3239 3247 3183 +3923 5 2 2 3 3175 3239 3247 3183 3176 3240 3248 3184 +3924 5 2 2 3 3176 3240 3248 3184 894 902 901 893 +3925 5 2 2 3 491 490 498 499 3177 3241 3249 3185 +3926 5 2 2 3 3177 3241 3249 3185 3178 3242 3250 3186 +3927 5 2 2 3 3178 3242 3250 3186 3179 3243 3251 3187 +3928 5 2 2 3 3179 3243 3251 3187 3180 3244 3252 3188 +3929 5 2 2 3 3180 3244 3252 3188 3181 3245 3253 3189 +3930 5 2 2 3 3181 3245 3253 3189 3182 3246 3254 3190 +3931 5 2 2 3 3182 3246 3254 3190 3183 3247 3255 3191 +3932 5 2 2 3 3183 3247 3255 3191 3184 3248 3256 3192 +3933 5 2 2 3 3184 3248 3256 3192 893 901 900 892 +3934 5 2 2 3 499 498 506 507 3185 3249 3257 3193 +3935 5 2 2 3 3185 3249 3257 3193 3186 3250 3258 3194 +3936 5 2 2 3 3186 3250 3258 3194 3187 3251 3259 3195 +3937 5 2 2 3 3187 3251 3259 3195 3188 3252 3260 3196 +3938 5 2 2 3 3188 3252 3260 3196 3189 3253 3261 3197 +3939 5 2 2 3 3189 3253 3261 3197 3190 3254 3262 3198 +3940 5 2 2 3 3190 3254 3262 3198 3191 3255 3263 3199 +3941 5 2 2 3 3191 3255 3263 3199 3192 3256 3264 3200 +3942 5 2 2 3 3192 3256 3264 3200 892 900 899 891 +3943 5 2 2 3 507 506 514 515 3193 3257 3265 3201 +3944 5 2 2 3 3193 3257 3265 3201 3194 3258 3266 3202 +3945 5 2 2 3 3194 3258 3266 3202 3195 3259 3267 3203 +3946 5 2 2 3 3195 3259 3267 3203 3196 3260 3268 3204 +3947 5 2 2 3 3196 3260 3268 3204 3197 3261 3269 3205 +3948 5 2 2 3 3197 3261 3269 3205 3198 3262 3270 3206 +3949 5 2 2 3 3198 3262 3270 3206 3199 3263 3271 3207 +3950 5 2 2 3 3199 3263 3271 3207 3200 3264 3272 3208 +3951 5 2 2 3 3200 3264 3272 3208 891 899 898 890 +3952 5 2 2 3 515 514 522 523 3201 3265 3273 3209 +3953 5 2 2 3 3201 3265 3273 3209 3202 3266 3274 3210 +3954 5 2 2 3 3202 3266 3274 3210 3203 3267 3275 3211 +3955 5 2 2 3 3203 3267 3275 3211 3204 3268 3276 3212 +3956 5 2 2 3 3204 3268 3276 3212 3205 3269 3277 3213 +3957 5 2 2 3 3205 3269 3277 3213 3206 3270 3278 3214 +3958 5 2 2 3 3206 3270 3278 3214 3207 3271 3279 3215 +3959 5 2 2 3 3207 3271 3279 3215 3208 3272 3280 3216 +3960 5 2 2 3 3208 3272 3280 3216 890 898 897 889 +3961 5 2 2 3 523 522 18 19 3209 3273 1042 1043 +3962 5 2 2 3 3209 3273 1042 1043 3210 3274 1050 1051 +3963 5 2 2 3 3210 3274 1050 1051 3211 3275 1058 1059 +3964 5 2 2 3 3211 3275 1058 1059 3212 3276 1066 1067 +3965 5 2 2 3 3212 3276 1066 1067 3213 3277 1074 1075 +3966 5 2 2 3 3213 3277 1074 1075 3214 3278 1082 1083 +3967 5 2 2 3 3214 3278 1082 1083 3215 3279 1090 1091 +3968 5 2 2 3 3215 3279 1090 1091 3216 3280 1098 1099 +3969 5 2 2 3 3216 3280 1098 1099 889 897 167 166 +3970 5 2 2 3 111 112 465 466 1601 1609 3281 3217 +3971 5 2 2 3 1601 1609 3281 3217 1602 1610 3282 3218 +3972 5 2 2 3 1602 1610 3282 3218 1603 1611 3283 3219 +3973 5 2 2 3 1603 1611 3283 3219 1604 1612 3284 3220 +3974 5 2 2 3 1604 1612 3284 3220 1605 1613 3285 3221 +3975 5 2 2 3 1605 1613 3285 3221 1606 1614 3286 3222 +3976 5 2 2 3 1606 1614 3286 3222 1607 1615 3287 3223 +3977 5 2 2 3 1607 1615 3287 3223 1608 1616 3288 3224 +3978 5 2 2 3 1608 1616 3288 3224 159 160 912 904 +3979 5 2 2 3 466 465 473 474 3217 3281 3289 3225 +3980 5 2 2 3 3217 3281 3289 3225 3218 3282 3290 3226 +3981 5 2 2 3 3218 3282 3290 3226 3219 3283 3291 3227 +3982 5 2 2 3 3219 3283 3291 3227 3220 3284 3292 3228 +3983 5 2 2 3 3220 3284 3292 3228 3221 3285 3293 3229 +3984 5 2 2 3 3221 3285 3293 3229 3222 3286 3294 3230 +3985 5 2 2 3 3222 3286 3294 3230 3223 3287 3295 3231 +3986 5 2 2 3 3223 3287 3295 3231 3224 3288 3296 3232 +3987 5 2 2 3 3224 3288 3296 3232 904 912 911 903 +3988 5 2 2 3 474 473 481 482 3225 3289 3297 3233 +3989 5 2 2 3 3225 3289 3297 3233 3226 3290 3298 3234 +3990 5 2 2 3 3226 3290 3298 3234 3227 3291 3299 3235 +3991 5 2 2 3 3227 3291 3299 3235 3228 3292 3300 3236 +3992 5 2 2 3 3228 3292 3300 3236 3229 3293 3301 3237 +3993 5 2 2 3 3229 3293 3301 3237 3230 3294 3302 3238 +3994 5 2 2 3 3230 3294 3302 3238 3231 3295 3303 3239 +3995 5 2 2 3 3231 3295 3303 3239 3232 3296 3304 3240 +3996 5 2 2 3 3232 3296 3304 3240 903 911 910 902 +3997 5 2 2 3 482 481 489 490 3233 3297 3305 3241 +3998 5 2 2 3 3233 3297 3305 3241 3234 3298 3306 3242 +3999 5 2 2 3 3234 3298 3306 3242 3235 3299 3307 3243 +4000 5 2 2 3 3235 3299 3307 3243 3236 3300 3308 3244 +4001 5 2 2 3 3236 3300 3308 3244 3237 3301 3309 3245 +4002 5 2 2 3 3237 3301 3309 3245 3238 3302 3310 3246 +4003 5 2 2 3 3238 3302 3310 3246 3239 3303 3311 3247 +4004 5 2 2 3 3239 3303 3311 3247 3240 3304 3312 3248 +4005 5 2 2 3 3240 3304 3312 3248 902 910 909 901 +4006 5 2 2 3 490 489 497 498 3241 3305 3313 3249 +4007 5 2 2 3 3241 3305 3313 3249 3242 3306 3314 3250 +4008 5 2 2 3 3242 3306 3314 3250 3243 3307 3315 3251 +4009 5 2 2 3 3243 3307 3315 3251 3244 3308 3316 3252 +4010 5 2 2 3 3244 3308 3316 3252 3245 3309 3317 3253 +4011 5 2 2 3 3245 3309 3317 3253 3246 3310 3318 3254 +4012 5 2 2 3 3246 3310 3318 3254 3247 3311 3319 3255 +4013 5 2 2 3 3247 3311 3319 3255 3248 3312 3320 3256 +4014 5 2 2 3 3248 3312 3320 3256 901 909 908 900 +4015 5 2 2 3 498 497 505 506 3249 3313 3321 3257 +4016 5 2 2 3 3249 3313 3321 3257 3250 3314 3322 3258 +4017 5 2 2 3 3250 3314 3322 3258 3251 3315 3323 3259 +4018 5 2 2 3 3251 3315 3323 3259 3252 3316 3324 3260 +4019 5 2 2 3 3252 3316 3324 3260 3253 3317 3325 3261 +4020 5 2 2 3 3253 3317 3325 3261 3254 3318 3326 3262 +4021 5 2 2 3 3254 3318 3326 3262 3255 3319 3327 3263 +4022 5 2 2 3 3255 3319 3327 3263 3256 3320 3328 3264 +4023 5 2 2 3 3256 3320 3328 3264 900 908 907 899 +4024 5 2 2 3 506 505 513 514 3257 3321 3329 3265 +4025 5 2 2 3 3257 3321 3329 3265 3258 3322 3330 3266 +4026 5 2 2 3 3258 3322 3330 3266 3259 3323 3331 3267 +4027 5 2 2 3 3259 3323 3331 3267 3260 3324 3332 3268 +4028 5 2 2 3 3260 3324 3332 3268 3261 3325 3333 3269 +4029 5 2 2 3 3261 3325 3333 3269 3262 3326 3334 3270 +4030 5 2 2 3 3262 3326 3334 3270 3263 3327 3335 3271 +4031 5 2 2 3 3263 3327 3335 3271 3264 3328 3336 3272 +4032 5 2 2 3 3264 3328 3336 3272 899 907 906 898 +4033 5 2 2 3 514 513 521 522 3265 3329 3337 3273 +4034 5 2 2 3 3265 3329 3337 3273 3266 3330 3338 3274 +4035 5 2 2 3 3266 3330 3338 3274 3267 3331 3339 3275 +4036 5 2 2 3 3267 3331 3339 3275 3268 3332 3340 3276 +4037 5 2 2 3 3268 3332 3340 3276 3269 3333 3341 3277 +4038 5 2 2 3 3269 3333 3341 3277 3270 3334 3342 3278 +4039 5 2 2 3 3270 3334 3342 3278 3271 3335 3343 3279 +4040 5 2 2 3 3271 3335 3343 3279 3272 3336 3344 3280 +4041 5 2 2 3 3272 3336 3344 3280 898 906 905 897 +4042 5 2 2 3 522 521 17 18 3273 3337 1041 1042 +4043 5 2 2 3 3273 3337 1041 1042 3274 3338 1049 1050 +4044 5 2 2 3 3274 3338 1049 1050 3275 3339 1057 1058 +4045 5 2 2 3 3275 3339 1057 1058 3276 3340 1065 1066 +4046 5 2 2 3 3276 3340 1065 1066 3277 3341 1073 1074 +4047 5 2 2 3 3277 3341 1073 1074 3278 3342 1081 1082 +4048 5 2 2 3 3278 3342 1081 1082 3279 3343 1089 1090 +4049 5 2 2 3 3279 3343 1089 1090 3280 3344 1097 1098 +4050 5 2 2 3 3280 3344 1097 1098 897 905 168 167 +4051 5 2 2 3 112 8 89 465 1609 257 1489 3281 +4052 5 2 2 3 1609 257 1489 3281 1610 258 1490 3282 +4053 5 2 2 3 1610 258 1490 3282 1611 259 1491 3283 +4054 5 2 2 3 1611 259 1491 3283 1612 260 1492 3284 +4055 5 2 2 3 1612 260 1492 3284 1613 261 1493 3285 +4056 5 2 2 3 1613 261 1493 3285 1614 262 1494 3286 +4057 5 2 2 3 1614 262 1494 3286 1615 263 1495 3287 +4058 5 2 2 3 1615 263 1495 3287 1616 264 1496 3288 +4059 5 2 2 3 1616 264 1496 3288 160 13 192 912 +4060 5 2 2 3 465 89 90 473 3281 1489 1497 3289 +4061 5 2 2 3 3281 1489 1497 3289 3282 1490 1498 3290 +4062 5 2 2 3 3282 1490 1498 3290 3283 1491 1499 3291 +4063 5 2 2 3 3283 1491 1499 3291 3284 1492 1500 3292 +4064 5 2 2 3 3284 1492 1500 3292 3285 1493 1501 3293 +4065 5 2 2 3 3285 1493 1501 3293 3286 1494 1502 3294 +4066 5 2 2 3 3286 1494 1502 3294 3287 1495 1503 3295 +4067 5 2 2 3 3287 1495 1503 3295 3288 1496 1504 3296 +4068 5 2 2 3 3288 1496 1504 3296 912 192 191 911 +4069 5 2 2 3 473 90 91 481 3289 1497 1505 3297 +4070 5 2 2 3 3289 1497 1505 3297 3290 1498 1506 3298 +4071 5 2 2 3 3290 1498 1506 3298 3291 1499 1507 3299 +4072 5 2 2 3 3291 1499 1507 3299 3292 1500 1508 3300 +4073 5 2 2 3 3292 1500 1508 3300 3293 1501 1509 3301 +4074 5 2 2 3 3293 1501 1509 3301 3294 1502 1510 3302 +4075 5 2 2 3 3294 1502 1510 3302 3295 1503 1511 3303 +4076 5 2 2 3 3295 1503 1511 3303 3296 1504 1512 3304 +4077 5 2 2 3 3296 1504 1512 3304 911 191 190 910 +4078 5 2 2 3 481 91 92 489 3297 1505 1513 3305 +4079 5 2 2 3 3297 1505 1513 3305 3298 1506 1514 3306 +4080 5 2 2 3 3298 1506 1514 3306 3299 1507 1515 3307 +4081 5 2 2 3 3299 1507 1515 3307 3300 1508 1516 3308 +4082 5 2 2 3 3300 1508 1516 3308 3301 1509 1517 3309 +4083 5 2 2 3 3301 1509 1517 3309 3302 1510 1518 3310 +4084 5 2 2 3 3302 1510 1518 3310 3303 1511 1519 3311 +4085 5 2 2 3 3303 1511 1519 3311 3304 1512 1520 3312 +4086 5 2 2 3 3304 1512 1520 3312 910 190 189 909 +4087 5 2 2 3 489 92 93 497 3305 1513 1521 3313 +4088 5 2 2 3 3305 1513 1521 3313 3306 1514 1522 3314 +4089 5 2 2 3 3306 1514 1522 3314 3307 1515 1523 3315 +4090 5 2 2 3 3307 1515 1523 3315 3308 1516 1524 3316 +4091 5 2 2 3 3308 1516 1524 3316 3309 1517 1525 3317 +4092 5 2 2 3 3309 1517 1525 3317 3310 1518 1526 3318 +4093 5 2 2 3 3310 1518 1526 3318 3311 1519 1527 3319 +4094 5 2 2 3 3311 1519 1527 3319 3312 1520 1528 3320 +4095 5 2 2 3 3312 1520 1528 3320 909 189 188 908 +4096 5 2 2 3 497 93 94 505 3313 1521 1529 3321 +4097 5 2 2 3 3313 1521 1529 3321 3314 1522 1530 3322 +4098 5 2 2 3 3314 1522 1530 3322 3315 1523 1531 3323 +4099 5 2 2 3 3315 1523 1531 3323 3316 1524 1532 3324 +4100 5 2 2 3 3316 1524 1532 3324 3317 1525 1533 3325 +4101 5 2 2 3 3317 1525 1533 3325 3318 1526 1534 3326 +4102 5 2 2 3 3318 1526 1534 3326 3319 1527 1535 3327 +4103 5 2 2 3 3319 1527 1535 3327 3320 1528 1536 3328 +4104 5 2 2 3 3320 1528 1536 3328 908 188 187 907 +4105 5 2 2 3 505 94 95 513 3321 1529 1537 3329 +4106 5 2 2 3 3321 1529 1537 3329 3322 1530 1538 3330 +4107 5 2 2 3 3322 1530 1538 3330 3323 1531 1539 3331 +4108 5 2 2 3 3323 1531 1539 3331 3324 1532 1540 3332 +4109 5 2 2 3 3324 1532 1540 3332 3325 1533 1541 3333 +4110 5 2 2 3 3325 1533 1541 3333 3326 1534 1542 3334 +4111 5 2 2 3 3326 1534 1542 3334 3327 1535 1543 3335 +4112 5 2 2 3 3327 1535 1543 3335 3328 1536 1544 3336 +4113 5 2 2 3 3328 1536 1544 3336 907 187 186 906 +4114 5 2 2 3 513 95 96 521 3329 1537 1545 3337 +4115 5 2 2 3 3329 1537 1545 3337 3330 1538 1546 3338 +4116 5 2 2 3 3330 1538 1546 3338 3331 1539 1547 3339 +4117 5 2 2 3 3331 1539 1547 3339 3332 1540 1548 3340 +4118 5 2 2 3 3332 1540 1548 3340 3333 1541 1549 3341 +4119 5 2 2 3 3333 1541 1549 3341 3334 1542 1550 3342 +4120 5 2 2 3 3334 1542 1550 3342 3335 1543 1551 3343 +4121 5 2 2 3 3335 1543 1551 3343 3336 1544 1552 3344 +4122 5 2 2 3 3336 1544 1552 3344 906 186 185 905 +4123 5 2 2 3 521 96 6 17 3337 1545 241 1041 +4124 5 2 2 3 3337 1545 241 1041 3338 1546 242 1049 +4125 5 2 2 3 3338 1546 242 1049 3339 1547 243 1057 +4126 5 2 2 3 3339 1547 243 1057 3340 1548 244 1065 +4127 5 2 2 3 3340 1548 244 1065 3341 1549 245 1073 +4128 5 2 2 3 3341 1549 245 1073 3342 1550 246 1081 +4129 5 2 2 3 3342 1550 246 1081 3343 1551 247 1089 +4130 5 2 2 3 3343 1551 247 1089 3344 1552 248 1097 +4131 5 2 2 3 3344 1552 248 1097 905 185 16 168 +4132 5 2 2 4 1 33 337 72 217 1169 3345 1745 +4133 5 2 2 4 217 1169 3345 1745 218 1177 3346 1753 +4134 5 2 2 4 218 1177 3346 1753 219 1185 3347 1761 +4135 5 2 2 4 219 1185 3347 1761 220 1193 3348 1769 +4136 5 2 2 4 220 1193 3348 1769 221 1201 3349 1777 +4137 5 2 2 4 221 1201 3349 1777 222 1209 3350 1785 +4138 5 2 2 4 222 1209 3350 1785 223 1217 3351 1793 +4139 5 2 2 4 223 1217 3351 1793 224 1225 3352 1801 +4140 5 2 2 4 224 1225 3352 1801 11 169 600 137 +4141 5 2 2 4 72 337 338 71 1745 3345 3353 1746 +4142 5 2 2 4 1745 3345 3353 1746 1753 3346 3354 1754 +4143 5 2 2 4 1753 3346 3354 1754 1761 3347 3355 1762 +4144 5 2 2 4 1761 3347 3355 1762 1769 3348 3356 1770 +4145 5 2 2 4 1769 3348 3356 1770 1777 3349 3357 1778 +4146 5 2 2 4 1777 3349 3357 1778 1785 3350 3358 1786 +4147 5 2 2 4 1785 3350 3358 1786 1793 3351 3359 1794 +4148 5 2 2 4 1793 3351 3359 1794 1801 3352 3360 1802 +4149 5 2 2 4 1801 3352 3360 1802 137 600 599 138 +4150 5 2 2 4 71 338 339 70 1746 3353 3361 1747 +4151 5 2 2 4 1746 3353 3361 1747 1754 3354 3362 1755 +4152 5 2 2 4 1754 3354 3362 1755 1762 3355 3363 1763 +4153 5 2 2 4 1762 3355 3363 1763 1770 3356 3364 1771 +4154 5 2 2 4 1770 3356 3364 1771 1778 3357 3365 1779 +4155 5 2 2 4 1778 3357 3365 1779 1786 3358 3366 1787 +4156 5 2 2 4 1786 3358 3366 1787 1794 3359 3367 1795 +4157 5 2 2 4 1794 3359 3367 1795 1802 3360 3368 1803 +4158 5 2 2 4 1802 3360 3368 1803 138 599 598 139 +4159 5 2 2 4 70 339 340 69 1747 3361 3369 1748 +4160 5 2 2 4 1747 3361 3369 1748 1755 3362 3370 1756 +4161 5 2 2 4 1755 3362 3370 1756 1763 3363 3371 1764 +4162 5 2 2 4 1763 3363 3371 1764 1771 3364 3372 1772 +4163 5 2 2 4 1771 3364 3372 1772 1779 3365 3373 1780 +4164 5 2 2 4 1779 3365 3373 1780 1787 3366 3374 1788 +4165 5 2 2 4 1787 3366 3374 1788 1795 3367 3375 1796 +4166 5 2 2 4 1795 3367 3375 1796 1803 3368 3376 1804 +4167 5 2 2 4 1803 3368 3376 1804 139 598 597 140 +4168 5 2 2 4 69 340 341 68 1748 3369 3377 1749 +4169 5 2 2 4 1748 3369 3377 1749 1756 3370 3378 1757 +4170 5 2 2 4 1756 3370 3378 1757 1764 3371 3379 1765 +4171 5 2 2 4 1764 3371 3379 1765 1772 3372 3380 1773 +4172 5 2 2 4 1772 3372 3380 1773 1780 3373 3381 1781 +4173 5 2 2 4 1780 3373 3381 1781 1788 3374 3382 1789 +4174 5 2 2 4 1788 3374 3382 1789 1796 3375 3383 1797 +4175 5 2 2 4 1796 3375 3383 1797 1804 3376 3384 1805 +4176 5 2 2 4 1804 3376 3384 1805 140 597 596 141 +4177 5 2 2 4 68 341 342 67 1749 3377 3385 1750 +4178 5 2 2 4 1749 3377 3385 1750 1757 3378 3386 1758 +4179 5 2 2 4 1757 3378 3386 1758 1765 3379 3387 1766 +4180 5 2 2 4 1765 3379 3387 1766 1773 3380 3388 1774 +4181 5 2 2 4 1773 3380 3388 1774 1781 3381 3389 1782 +4182 5 2 2 4 1781 3381 3389 1782 1789 3382 3390 1790 +4183 5 2 2 4 1789 3382 3390 1790 1797 3383 3391 1798 +4184 5 2 2 4 1797 3383 3391 1798 1805 3384 3392 1806 +4185 5 2 2 4 1805 3384 3392 1806 141 596 595 142 +4186 5 2 2 4 67 342 343 66 1750 3385 3393 1751 +4187 5 2 2 4 1750 3385 3393 1751 1758 3386 3394 1759 +4188 5 2 2 4 1758 3386 3394 1759 1766 3387 3395 1767 +4189 5 2 2 4 1766 3387 3395 1767 1774 3388 3396 1775 +4190 5 2 2 4 1774 3388 3396 1775 1782 3389 3397 1783 +4191 5 2 2 4 1782 3389 3397 1783 1790 3390 3398 1791 +4192 5 2 2 4 1790 3390 3398 1791 1798 3391 3399 1799 +4193 5 2 2 4 1798 3391 3399 1799 1806 3392 3400 1807 +4194 5 2 2 4 1806 3392 3400 1807 142 595 594 143 +4195 5 2 2 4 66 343 344 65 1751 3393 3401 1752 +4196 5 2 2 4 1751 3393 3401 1752 1759 3394 3402 1760 +4197 5 2 2 4 1759 3394 3402 1760 1767 3395 3403 1768 +4198 5 2 2 4 1767 3395 3403 1768 1775 3396 3404 1776 +4199 5 2 2 4 1775 3396 3404 1776 1783 3397 3405 1784 +4200 5 2 2 4 1783 3397 3405 1784 1791 3398 3406 1792 +4201 5 2 2 4 1791 3398 3406 1792 1799 3399 3407 1800 +4202 5 2 2 4 1799 3399 3407 1800 1807 3400 3408 1808 +4203 5 2 2 4 1807 3400 3408 1808 143 594 593 144 +4204 5 2 2 4 65 344 64 3 1752 3401 1673 233 +4205 5 2 2 4 1752 3401 1673 233 1760 3402 1674 234 +4206 5 2 2 4 1760 3402 1674 234 1768 3403 1675 235 +4207 5 2 2 4 1768 3403 1675 235 1776 3404 1676 236 +4208 5 2 2 4 1776 3404 1676 236 1784 3405 1677 237 +4209 5 2 2 4 1784 3405 1677 237 1792 3406 1678 238 +4210 5 2 2 4 1792 3406 1678 238 1800 3407 1679 239 +4211 5 2 2 4 1800 3407 1679 239 1808 3408 1680 240 +4212 5 2 2 4 1808 3408 1680 240 144 593 145 10 +4213 5 2 2 4 33 34 345 337 1169 1170 3409 3345 +4214 5 2 2 4 1169 1170 3409 3345 1177 1178 3410 3346 +4215 5 2 2 4 1177 1178 3410 3346 1185 1186 3411 3347 +4216 5 2 2 4 1185 1186 3411 3347 1193 1194 3412 3348 +4217 5 2 2 4 1193 1194 3412 3348 1201 1202 3413 3349 +4218 5 2 2 4 1201 1202 3413 3349 1209 1210 3414 3350 +4219 5 2 2 4 1209 1210 3414 3350 1217 1218 3415 3351 +4220 5 2 2 4 1217 1218 3415 3351 1225 1226 3416 3352 +4221 5 2 2 4 1225 1226 3416 3352 169 170 608 600 +4222 5 2 2 4 337 345 346 338 3345 3409 3417 3353 +4223 5 2 2 4 3345 3409 3417 3353 3346 3410 3418 3354 +4224 5 2 2 4 3346 3410 3418 3354 3347 3411 3419 3355 +4225 5 2 2 4 3347 3411 3419 3355 3348 3412 3420 3356 +4226 5 2 2 4 3348 3412 3420 3356 3349 3413 3421 3357 +4227 5 2 2 4 3349 3413 3421 3357 3350 3414 3422 3358 +4228 5 2 2 4 3350 3414 3422 3358 3351 3415 3423 3359 +4229 5 2 2 4 3351 3415 3423 3359 3352 3416 3424 3360 +4230 5 2 2 4 3352 3416 3424 3360 600 608 607 599 +4231 5 2 2 4 338 346 347 339 3353 3417 3425 3361 +4232 5 2 2 4 3353 3417 3425 3361 3354 3418 3426 3362 +4233 5 2 2 4 3354 3418 3426 3362 3355 3419 3427 3363 +4234 5 2 2 4 3355 3419 3427 3363 3356 3420 3428 3364 +4235 5 2 2 4 3356 3420 3428 3364 3357 3421 3429 3365 +4236 5 2 2 4 3357 3421 3429 3365 3358 3422 3430 3366 +4237 5 2 2 4 3358 3422 3430 3366 3359 3423 3431 3367 +4238 5 2 2 4 3359 3423 3431 3367 3360 3424 3432 3368 +4239 5 2 2 4 3360 3424 3432 3368 599 607 606 598 +4240 5 2 2 4 339 347 348 340 3361 3425 3433 3369 +4241 5 2 2 4 3361 3425 3433 3369 3362 3426 3434 3370 +4242 5 2 2 4 3362 3426 3434 3370 3363 3427 3435 3371 +4243 5 2 2 4 3363 3427 3435 3371 3364 3428 3436 3372 +4244 5 2 2 4 3364 3428 3436 3372 3365 3429 3437 3373 +4245 5 2 2 4 3365 3429 3437 3373 3366 3430 3438 3374 +4246 5 2 2 4 3366 3430 3438 3374 3367 3431 3439 3375 +4247 5 2 2 4 3367 3431 3439 3375 3368 3432 3440 3376 +4248 5 2 2 4 3368 3432 3440 3376 598 606 605 597 +4249 5 2 2 4 340 348 349 341 3369 3433 3441 3377 +4250 5 2 2 4 3369 3433 3441 3377 3370 3434 3442 3378 +4251 5 2 2 4 3370 3434 3442 3378 3371 3435 3443 3379 +4252 5 2 2 4 3371 3435 3443 3379 3372 3436 3444 3380 +4253 5 2 2 4 3372 3436 3444 3380 3373 3437 3445 3381 +4254 5 2 2 4 3373 3437 3445 3381 3374 3438 3446 3382 +4255 5 2 2 4 3374 3438 3446 3382 3375 3439 3447 3383 +4256 5 2 2 4 3375 3439 3447 3383 3376 3440 3448 3384 +4257 5 2 2 4 3376 3440 3448 3384 597 605 604 596 +4258 5 2 2 4 341 349 350 342 3377 3441 3449 3385 +4259 5 2 2 4 3377 3441 3449 3385 3378 3442 3450 3386 +4260 5 2 2 4 3378 3442 3450 3386 3379 3443 3451 3387 +4261 5 2 2 4 3379 3443 3451 3387 3380 3444 3452 3388 +4262 5 2 2 4 3380 3444 3452 3388 3381 3445 3453 3389 +4263 5 2 2 4 3381 3445 3453 3389 3382 3446 3454 3390 +4264 5 2 2 4 3382 3446 3454 3390 3383 3447 3455 3391 +4265 5 2 2 4 3383 3447 3455 3391 3384 3448 3456 3392 +4266 5 2 2 4 3384 3448 3456 3392 596 604 603 595 +4267 5 2 2 4 342 350 351 343 3385 3449 3457 3393 +4268 5 2 2 4 3385 3449 3457 3393 3386 3450 3458 3394 +4269 5 2 2 4 3386 3450 3458 3394 3387 3451 3459 3395 +4270 5 2 2 4 3387 3451 3459 3395 3388 3452 3460 3396 +4271 5 2 2 4 3388 3452 3460 3396 3389 3453 3461 3397 +4272 5 2 2 4 3389 3453 3461 3397 3390 3454 3462 3398 +4273 5 2 2 4 3390 3454 3462 3398 3391 3455 3463 3399 +4274 5 2 2 4 3391 3455 3463 3399 3392 3456 3464 3400 +4275 5 2 2 4 3392 3456 3464 3400 595 603 602 594 +4276 5 2 2 4 343 351 352 344 3393 3457 3465 3401 +4277 5 2 2 4 3393 3457 3465 3401 3394 3458 3466 3402 +4278 5 2 2 4 3394 3458 3466 3402 3395 3459 3467 3403 +4279 5 2 2 4 3395 3459 3467 3403 3396 3460 3468 3404 +4280 5 2 2 4 3396 3460 3468 3404 3397 3461 3469 3405 +4281 5 2 2 4 3397 3461 3469 3405 3398 3462 3470 3406 +4282 5 2 2 4 3398 3462 3470 3406 3399 3463 3471 3407 +4283 5 2 2 4 3399 3463 3471 3407 3400 3464 3472 3408 +4284 5 2 2 4 3400 3464 3472 3408 594 602 601 593 +4285 5 2 2 4 344 352 63 64 3401 3465 1665 1673 +4286 5 2 2 4 3401 3465 1665 1673 3402 3466 1666 1674 +4287 5 2 2 4 3402 3466 1666 1674 3403 3467 1667 1675 +4288 5 2 2 4 3403 3467 1667 1675 3404 3468 1668 1676 +4289 5 2 2 4 3404 3468 1668 1676 3405 3469 1669 1677 +4290 5 2 2 4 3405 3469 1669 1677 3406 3470 1670 1678 +4291 5 2 2 4 3406 3470 1670 1678 3407 3471 1671 1679 +4292 5 2 2 4 3407 3471 1671 1679 3408 3472 1672 1680 +4293 5 2 2 4 3408 3472 1672 1680 593 601 146 145 +4294 5 2 2 4 34 35 353 345 1170 1171 3473 3409 +4295 5 2 2 4 1170 1171 3473 3409 1178 1179 3474 3410 +4296 5 2 2 4 1178 1179 3474 3410 1186 1187 3475 3411 +4297 5 2 2 4 1186 1187 3475 3411 1194 1195 3476 3412 +4298 5 2 2 4 1194 1195 3476 3412 1202 1203 3477 3413 +4299 5 2 2 4 1202 1203 3477 3413 1210 1211 3478 3414 +4300 5 2 2 4 1210 1211 3478 3414 1218 1219 3479 3415 +4301 5 2 2 4 1218 1219 3479 3415 1226 1227 3480 3416 +4302 5 2 2 4 1226 1227 3480 3416 170 171 616 608 +4303 5 2 2 4 345 353 354 346 3409 3473 3481 3417 +4304 5 2 2 4 3409 3473 3481 3417 3410 3474 3482 3418 +4305 5 2 2 4 3410 3474 3482 3418 3411 3475 3483 3419 +4306 5 2 2 4 3411 3475 3483 3419 3412 3476 3484 3420 +4307 5 2 2 4 3412 3476 3484 3420 3413 3477 3485 3421 +4308 5 2 2 4 3413 3477 3485 3421 3414 3478 3486 3422 +4309 5 2 2 4 3414 3478 3486 3422 3415 3479 3487 3423 +4310 5 2 2 4 3415 3479 3487 3423 3416 3480 3488 3424 +4311 5 2 2 4 3416 3480 3488 3424 608 616 615 607 +4312 5 2 2 4 346 354 355 347 3417 3481 3489 3425 +4313 5 2 2 4 3417 3481 3489 3425 3418 3482 3490 3426 +4314 5 2 2 4 3418 3482 3490 3426 3419 3483 3491 3427 +4315 5 2 2 4 3419 3483 3491 3427 3420 3484 3492 3428 +4316 5 2 2 4 3420 3484 3492 3428 3421 3485 3493 3429 +4317 5 2 2 4 3421 3485 3493 3429 3422 3486 3494 3430 +4318 5 2 2 4 3422 3486 3494 3430 3423 3487 3495 3431 +4319 5 2 2 4 3423 3487 3495 3431 3424 3488 3496 3432 +4320 5 2 2 4 3424 3488 3496 3432 607 615 614 606 +4321 5 2 2 4 347 355 356 348 3425 3489 3497 3433 +4322 5 2 2 4 3425 3489 3497 3433 3426 3490 3498 3434 +4323 5 2 2 4 3426 3490 3498 3434 3427 3491 3499 3435 +4324 5 2 2 4 3427 3491 3499 3435 3428 3492 3500 3436 +4325 5 2 2 4 3428 3492 3500 3436 3429 3493 3501 3437 +4326 5 2 2 4 3429 3493 3501 3437 3430 3494 3502 3438 +4327 5 2 2 4 3430 3494 3502 3438 3431 3495 3503 3439 +4328 5 2 2 4 3431 3495 3503 3439 3432 3496 3504 3440 +4329 5 2 2 4 3432 3496 3504 3440 606 614 613 605 +4330 5 2 2 4 348 356 357 349 3433 3497 3505 3441 +4331 5 2 2 4 3433 3497 3505 3441 3434 3498 3506 3442 +4332 5 2 2 4 3434 3498 3506 3442 3435 3499 3507 3443 +4333 5 2 2 4 3435 3499 3507 3443 3436 3500 3508 3444 +4334 5 2 2 4 3436 3500 3508 3444 3437 3501 3509 3445 +4335 5 2 2 4 3437 3501 3509 3445 3438 3502 3510 3446 +4336 5 2 2 4 3438 3502 3510 3446 3439 3503 3511 3447 +4337 5 2 2 4 3439 3503 3511 3447 3440 3504 3512 3448 +4338 5 2 2 4 3440 3504 3512 3448 605 613 612 604 +4339 5 2 2 4 349 357 358 350 3441 3505 3513 3449 +4340 5 2 2 4 3441 3505 3513 3449 3442 3506 3514 3450 +4341 5 2 2 4 3442 3506 3514 3450 3443 3507 3515 3451 +4342 5 2 2 4 3443 3507 3515 3451 3444 3508 3516 3452 +4343 5 2 2 4 3444 3508 3516 3452 3445 3509 3517 3453 +4344 5 2 2 4 3445 3509 3517 3453 3446 3510 3518 3454 +4345 5 2 2 4 3446 3510 3518 3454 3447 3511 3519 3455 +4346 5 2 2 4 3447 3511 3519 3455 3448 3512 3520 3456 +4347 5 2 2 4 3448 3512 3520 3456 604 612 611 603 +4348 5 2 2 4 350 358 359 351 3449 3513 3521 3457 +4349 5 2 2 4 3449 3513 3521 3457 3450 3514 3522 3458 +4350 5 2 2 4 3450 3514 3522 3458 3451 3515 3523 3459 +4351 5 2 2 4 3451 3515 3523 3459 3452 3516 3524 3460 +4352 5 2 2 4 3452 3516 3524 3460 3453 3517 3525 3461 +4353 5 2 2 4 3453 3517 3525 3461 3454 3518 3526 3462 +4354 5 2 2 4 3454 3518 3526 3462 3455 3519 3527 3463 +4355 5 2 2 4 3455 3519 3527 3463 3456 3520 3528 3464 +4356 5 2 2 4 3456 3520 3528 3464 603 611 610 602 +4357 5 2 2 4 351 359 360 352 3457 3521 3529 3465 +4358 5 2 2 4 3457 3521 3529 3465 3458 3522 3530 3466 +4359 5 2 2 4 3458 3522 3530 3466 3459 3523 3531 3467 +4360 5 2 2 4 3459 3523 3531 3467 3460 3524 3532 3468 +4361 5 2 2 4 3460 3524 3532 3468 3461 3525 3533 3469 +4362 5 2 2 4 3461 3525 3533 3469 3462 3526 3534 3470 +4363 5 2 2 4 3462 3526 3534 3470 3463 3527 3535 3471 +4364 5 2 2 4 3463 3527 3535 3471 3464 3528 3536 3472 +4365 5 2 2 4 3464 3528 3536 3472 602 610 609 601 +4366 5 2 2 4 352 360 62 63 3465 3529 1657 1665 +4367 5 2 2 4 3465 3529 1657 1665 3466 3530 1658 1666 +4368 5 2 2 4 3466 3530 1658 1666 3467 3531 1659 1667 +4369 5 2 2 4 3467 3531 1659 1667 3468 3532 1660 1668 +4370 5 2 2 4 3468 3532 1660 1668 3469 3533 1661 1669 +4371 5 2 2 4 3469 3533 1661 1669 3470 3534 1662 1670 +4372 5 2 2 4 3470 3534 1662 1670 3471 3535 1663 1671 +4373 5 2 2 4 3471 3535 1663 1671 3472 3536 1664 1672 +4374 5 2 2 4 3472 3536 1664 1672 601 609 147 146 +4375 5 2 2 4 35 36 361 353 1171 1172 3537 3473 +4376 5 2 2 4 1171 1172 3537 3473 1179 1180 3538 3474 +4377 5 2 2 4 1179 1180 3538 3474 1187 1188 3539 3475 +4378 5 2 2 4 1187 1188 3539 3475 1195 1196 3540 3476 +4379 5 2 2 4 1195 1196 3540 3476 1203 1204 3541 3477 +4380 5 2 2 4 1203 1204 3541 3477 1211 1212 3542 3478 +4381 5 2 2 4 1211 1212 3542 3478 1219 1220 3543 3479 +4382 5 2 2 4 1219 1220 3543 3479 1227 1228 3544 3480 +4383 5 2 2 4 1227 1228 3544 3480 171 172 624 616 +4384 5 2 2 4 353 361 362 354 3473 3537 3545 3481 +4385 5 2 2 4 3473 3537 3545 3481 3474 3538 3546 3482 +4386 5 2 2 4 3474 3538 3546 3482 3475 3539 3547 3483 +4387 5 2 2 4 3475 3539 3547 3483 3476 3540 3548 3484 +4388 5 2 2 4 3476 3540 3548 3484 3477 3541 3549 3485 +4389 5 2 2 4 3477 3541 3549 3485 3478 3542 3550 3486 +4390 5 2 2 4 3478 3542 3550 3486 3479 3543 3551 3487 +4391 5 2 2 4 3479 3543 3551 3487 3480 3544 3552 3488 +4392 5 2 2 4 3480 3544 3552 3488 616 624 623 615 +4393 5 2 2 4 354 362 363 355 3481 3545 3553 3489 +4394 5 2 2 4 3481 3545 3553 3489 3482 3546 3554 3490 +4395 5 2 2 4 3482 3546 3554 3490 3483 3547 3555 3491 +4396 5 2 2 4 3483 3547 3555 3491 3484 3548 3556 3492 +4397 5 2 2 4 3484 3548 3556 3492 3485 3549 3557 3493 +4398 5 2 2 4 3485 3549 3557 3493 3486 3550 3558 3494 +4399 5 2 2 4 3486 3550 3558 3494 3487 3551 3559 3495 +4400 5 2 2 4 3487 3551 3559 3495 3488 3552 3560 3496 +4401 5 2 2 4 3488 3552 3560 3496 615 623 622 614 +4402 5 2 2 4 355 363 364 356 3489 3553 3561 3497 +4403 5 2 2 4 3489 3553 3561 3497 3490 3554 3562 3498 +4404 5 2 2 4 3490 3554 3562 3498 3491 3555 3563 3499 +4405 5 2 2 4 3491 3555 3563 3499 3492 3556 3564 3500 +4406 5 2 2 4 3492 3556 3564 3500 3493 3557 3565 3501 +4407 5 2 2 4 3493 3557 3565 3501 3494 3558 3566 3502 +4408 5 2 2 4 3494 3558 3566 3502 3495 3559 3567 3503 +4409 5 2 2 4 3495 3559 3567 3503 3496 3560 3568 3504 +4410 5 2 2 4 3496 3560 3568 3504 614 622 621 613 +4411 5 2 2 4 356 364 365 357 3497 3561 3569 3505 +4412 5 2 2 4 3497 3561 3569 3505 3498 3562 3570 3506 +4413 5 2 2 4 3498 3562 3570 3506 3499 3563 3571 3507 +4414 5 2 2 4 3499 3563 3571 3507 3500 3564 3572 3508 +4415 5 2 2 4 3500 3564 3572 3508 3501 3565 3573 3509 +4416 5 2 2 4 3501 3565 3573 3509 3502 3566 3574 3510 +4417 5 2 2 4 3502 3566 3574 3510 3503 3567 3575 3511 +4418 5 2 2 4 3503 3567 3575 3511 3504 3568 3576 3512 +4419 5 2 2 4 3504 3568 3576 3512 613 621 620 612 +4420 5 2 2 4 357 365 366 358 3505 3569 3577 3513 +4421 5 2 2 4 3505 3569 3577 3513 3506 3570 3578 3514 +4422 5 2 2 4 3506 3570 3578 3514 3507 3571 3579 3515 +4423 5 2 2 4 3507 3571 3579 3515 3508 3572 3580 3516 +4424 5 2 2 4 3508 3572 3580 3516 3509 3573 3581 3517 +4425 5 2 2 4 3509 3573 3581 3517 3510 3574 3582 3518 +4426 5 2 2 4 3510 3574 3582 3518 3511 3575 3583 3519 +4427 5 2 2 4 3511 3575 3583 3519 3512 3576 3584 3520 +4428 5 2 2 4 3512 3576 3584 3520 612 620 619 611 +4429 5 2 2 4 358 366 367 359 3513 3577 3585 3521 +4430 5 2 2 4 3513 3577 3585 3521 3514 3578 3586 3522 +4431 5 2 2 4 3514 3578 3586 3522 3515 3579 3587 3523 +4432 5 2 2 4 3515 3579 3587 3523 3516 3580 3588 3524 +4433 5 2 2 4 3516 3580 3588 3524 3517 3581 3589 3525 +4434 5 2 2 4 3517 3581 3589 3525 3518 3582 3590 3526 +4435 5 2 2 4 3518 3582 3590 3526 3519 3583 3591 3527 +4436 5 2 2 4 3519 3583 3591 3527 3520 3584 3592 3528 +4437 5 2 2 4 3520 3584 3592 3528 611 619 618 610 +4438 5 2 2 4 359 367 368 360 3521 3585 3593 3529 +4439 5 2 2 4 3521 3585 3593 3529 3522 3586 3594 3530 +4440 5 2 2 4 3522 3586 3594 3530 3523 3587 3595 3531 +4441 5 2 2 4 3523 3587 3595 3531 3524 3588 3596 3532 +4442 5 2 2 4 3524 3588 3596 3532 3525 3589 3597 3533 +4443 5 2 2 4 3525 3589 3597 3533 3526 3590 3598 3534 +4444 5 2 2 4 3526 3590 3598 3534 3527 3591 3599 3535 +4445 5 2 2 4 3527 3591 3599 3535 3528 3592 3600 3536 +4446 5 2 2 4 3528 3592 3600 3536 610 618 617 609 +4447 5 2 2 4 360 368 61 62 3529 3593 1649 1657 +4448 5 2 2 4 3529 3593 1649 1657 3530 3594 1650 1658 +4449 5 2 2 4 3530 3594 1650 1658 3531 3595 1651 1659 +4450 5 2 2 4 3531 3595 1651 1659 3532 3596 1652 1660 +4451 5 2 2 4 3532 3596 1652 1660 3533 3597 1653 1661 +4452 5 2 2 4 3533 3597 1653 1661 3534 3598 1654 1662 +4453 5 2 2 4 3534 3598 1654 1662 3535 3599 1655 1663 +4454 5 2 2 4 3535 3599 1655 1663 3536 3600 1656 1664 +4455 5 2 2 4 3536 3600 1656 1664 609 617 148 147 +4456 5 2 2 4 36 37 369 361 1172 1173 3601 3537 +4457 5 2 2 4 1172 1173 3601 3537 1180 1181 3602 3538 +4458 5 2 2 4 1180 1181 3602 3538 1188 1189 3603 3539 +4459 5 2 2 4 1188 1189 3603 3539 1196 1197 3604 3540 +4460 5 2 2 4 1196 1197 3604 3540 1204 1205 3605 3541 +4461 5 2 2 4 1204 1205 3605 3541 1212 1213 3606 3542 +4462 5 2 2 4 1212 1213 3606 3542 1220 1221 3607 3543 +4463 5 2 2 4 1220 1221 3607 3543 1228 1229 3608 3544 +4464 5 2 2 4 1228 1229 3608 3544 172 173 632 624 +4465 5 2 2 4 361 369 370 362 3537 3601 3609 3545 +4466 5 2 2 4 3537 3601 3609 3545 3538 3602 3610 3546 +4467 5 2 2 4 3538 3602 3610 3546 3539 3603 3611 3547 +4468 5 2 2 4 3539 3603 3611 3547 3540 3604 3612 3548 +4469 5 2 2 4 3540 3604 3612 3548 3541 3605 3613 3549 +4470 5 2 2 4 3541 3605 3613 3549 3542 3606 3614 3550 +4471 5 2 2 4 3542 3606 3614 3550 3543 3607 3615 3551 +4472 5 2 2 4 3543 3607 3615 3551 3544 3608 3616 3552 +4473 5 2 2 4 3544 3608 3616 3552 624 632 631 623 +4474 5 2 2 4 362 370 371 363 3545 3609 3617 3553 +4475 5 2 2 4 3545 3609 3617 3553 3546 3610 3618 3554 +4476 5 2 2 4 3546 3610 3618 3554 3547 3611 3619 3555 +4477 5 2 2 4 3547 3611 3619 3555 3548 3612 3620 3556 +4478 5 2 2 4 3548 3612 3620 3556 3549 3613 3621 3557 +4479 5 2 2 4 3549 3613 3621 3557 3550 3614 3622 3558 +4480 5 2 2 4 3550 3614 3622 3558 3551 3615 3623 3559 +4481 5 2 2 4 3551 3615 3623 3559 3552 3616 3624 3560 +4482 5 2 2 4 3552 3616 3624 3560 623 631 630 622 +4483 5 2 2 4 363 371 372 364 3553 3617 3625 3561 +4484 5 2 2 4 3553 3617 3625 3561 3554 3618 3626 3562 +4485 5 2 2 4 3554 3618 3626 3562 3555 3619 3627 3563 +4486 5 2 2 4 3555 3619 3627 3563 3556 3620 3628 3564 +4487 5 2 2 4 3556 3620 3628 3564 3557 3621 3629 3565 +4488 5 2 2 4 3557 3621 3629 3565 3558 3622 3630 3566 +4489 5 2 2 4 3558 3622 3630 3566 3559 3623 3631 3567 +4490 5 2 2 4 3559 3623 3631 3567 3560 3624 3632 3568 +4491 5 2 2 4 3560 3624 3632 3568 622 630 629 621 +4492 5 2 2 4 364 372 373 365 3561 3625 3633 3569 +4493 5 2 2 4 3561 3625 3633 3569 3562 3626 3634 3570 +4494 5 2 2 4 3562 3626 3634 3570 3563 3627 3635 3571 +4495 5 2 2 4 3563 3627 3635 3571 3564 3628 3636 3572 +4496 5 2 2 4 3564 3628 3636 3572 3565 3629 3637 3573 +4497 5 2 2 4 3565 3629 3637 3573 3566 3630 3638 3574 +4498 5 2 2 4 3566 3630 3638 3574 3567 3631 3639 3575 +4499 5 2 2 4 3567 3631 3639 3575 3568 3632 3640 3576 +4500 5 2 2 4 3568 3632 3640 3576 621 629 628 620 +4501 5 2 2 4 365 373 374 366 3569 3633 3641 3577 +4502 5 2 2 4 3569 3633 3641 3577 3570 3634 3642 3578 +4503 5 2 2 4 3570 3634 3642 3578 3571 3635 3643 3579 +4504 5 2 2 4 3571 3635 3643 3579 3572 3636 3644 3580 +4505 5 2 2 4 3572 3636 3644 3580 3573 3637 3645 3581 +4506 5 2 2 4 3573 3637 3645 3581 3574 3638 3646 3582 +4507 5 2 2 4 3574 3638 3646 3582 3575 3639 3647 3583 +4508 5 2 2 4 3575 3639 3647 3583 3576 3640 3648 3584 +4509 5 2 2 4 3576 3640 3648 3584 620 628 627 619 +4510 5 2 2 4 366 374 375 367 3577 3641 3649 3585 +4511 5 2 2 4 3577 3641 3649 3585 3578 3642 3650 3586 +4512 5 2 2 4 3578 3642 3650 3586 3579 3643 3651 3587 +4513 5 2 2 4 3579 3643 3651 3587 3580 3644 3652 3588 +4514 5 2 2 4 3580 3644 3652 3588 3581 3645 3653 3589 +4515 5 2 2 4 3581 3645 3653 3589 3582 3646 3654 3590 +4516 5 2 2 4 3582 3646 3654 3590 3583 3647 3655 3591 +4517 5 2 2 4 3583 3647 3655 3591 3584 3648 3656 3592 +4518 5 2 2 4 3584 3648 3656 3592 619 627 626 618 +4519 5 2 2 4 367 375 376 368 3585 3649 3657 3593 +4520 5 2 2 4 3585 3649 3657 3593 3586 3650 3658 3594 +4521 5 2 2 4 3586 3650 3658 3594 3587 3651 3659 3595 +4522 5 2 2 4 3587 3651 3659 3595 3588 3652 3660 3596 +4523 5 2 2 4 3588 3652 3660 3596 3589 3653 3661 3597 +4524 5 2 2 4 3589 3653 3661 3597 3590 3654 3662 3598 +4525 5 2 2 4 3590 3654 3662 3598 3591 3655 3663 3599 +4526 5 2 2 4 3591 3655 3663 3599 3592 3656 3664 3600 +4527 5 2 2 4 3592 3656 3664 3600 618 626 625 617 +4528 5 2 2 4 368 376 60 61 3593 3657 1641 1649 +4529 5 2 2 4 3593 3657 1641 1649 3594 3658 1642 1650 +4530 5 2 2 4 3594 3658 1642 1650 3595 3659 1643 1651 +4531 5 2 2 4 3595 3659 1643 1651 3596 3660 1644 1652 +4532 5 2 2 4 3596 3660 1644 1652 3597 3661 1645 1653 +4533 5 2 2 4 3597 3661 1645 1653 3598 3662 1646 1654 +4534 5 2 2 4 3598 3662 1646 1654 3599 3663 1647 1655 +4535 5 2 2 4 3599 3663 1647 1655 3600 3664 1648 1656 +4536 5 2 2 4 3600 3664 1648 1656 617 625 149 148 +4537 5 2 2 4 37 38 377 369 1173 1174 3665 3601 +4538 5 2 2 4 1173 1174 3665 3601 1181 1182 3666 3602 +4539 5 2 2 4 1181 1182 3666 3602 1189 1190 3667 3603 +4540 5 2 2 4 1189 1190 3667 3603 1197 1198 3668 3604 +4541 5 2 2 4 1197 1198 3668 3604 1205 1206 3669 3605 +4542 5 2 2 4 1205 1206 3669 3605 1213 1214 3670 3606 +4543 5 2 2 4 1213 1214 3670 3606 1221 1222 3671 3607 +4544 5 2 2 4 1221 1222 3671 3607 1229 1230 3672 3608 +4545 5 2 2 4 1229 1230 3672 3608 173 174 640 632 +4546 5 2 2 4 369 377 378 370 3601 3665 3673 3609 +4547 5 2 2 4 3601 3665 3673 3609 3602 3666 3674 3610 +4548 5 2 2 4 3602 3666 3674 3610 3603 3667 3675 3611 +4549 5 2 2 4 3603 3667 3675 3611 3604 3668 3676 3612 +4550 5 2 2 4 3604 3668 3676 3612 3605 3669 3677 3613 +4551 5 2 2 4 3605 3669 3677 3613 3606 3670 3678 3614 +4552 5 2 2 4 3606 3670 3678 3614 3607 3671 3679 3615 +4553 5 2 2 4 3607 3671 3679 3615 3608 3672 3680 3616 +4554 5 2 2 4 3608 3672 3680 3616 632 640 639 631 +4555 5 2 2 4 370 378 379 371 3609 3673 3681 3617 +4556 5 2 2 4 3609 3673 3681 3617 3610 3674 3682 3618 +4557 5 2 2 4 3610 3674 3682 3618 3611 3675 3683 3619 +4558 5 2 2 4 3611 3675 3683 3619 3612 3676 3684 3620 +4559 5 2 2 4 3612 3676 3684 3620 3613 3677 3685 3621 +4560 5 2 2 4 3613 3677 3685 3621 3614 3678 3686 3622 +4561 5 2 2 4 3614 3678 3686 3622 3615 3679 3687 3623 +4562 5 2 2 4 3615 3679 3687 3623 3616 3680 3688 3624 +4563 5 2 2 4 3616 3680 3688 3624 631 639 638 630 +4564 5 2 2 4 371 379 380 372 3617 3681 3689 3625 +4565 5 2 2 4 3617 3681 3689 3625 3618 3682 3690 3626 +4566 5 2 2 4 3618 3682 3690 3626 3619 3683 3691 3627 +4567 5 2 2 4 3619 3683 3691 3627 3620 3684 3692 3628 +4568 5 2 2 4 3620 3684 3692 3628 3621 3685 3693 3629 +4569 5 2 2 4 3621 3685 3693 3629 3622 3686 3694 3630 +4570 5 2 2 4 3622 3686 3694 3630 3623 3687 3695 3631 +4571 5 2 2 4 3623 3687 3695 3631 3624 3688 3696 3632 +4572 5 2 2 4 3624 3688 3696 3632 630 638 637 629 +4573 5 2 2 4 372 380 381 373 3625 3689 3697 3633 +4574 5 2 2 4 3625 3689 3697 3633 3626 3690 3698 3634 +4575 5 2 2 4 3626 3690 3698 3634 3627 3691 3699 3635 +4576 5 2 2 4 3627 3691 3699 3635 3628 3692 3700 3636 +4577 5 2 2 4 3628 3692 3700 3636 3629 3693 3701 3637 +4578 5 2 2 4 3629 3693 3701 3637 3630 3694 3702 3638 +4579 5 2 2 4 3630 3694 3702 3638 3631 3695 3703 3639 +4580 5 2 2 4 3631 3695 3703 3639 3632 3696 3704 3640 +4581 5 2 2 4 3632 3696 3704 3640 629 637 636 628 +4582 5 2 2 4 373 381 382 374 3633 3697 3705 3641 +4583 5 2 2 4 3633 3697 3705 3641 3634 3698 3706 3642 +4584 5 2 2 4 3634 3698 3706 3642 3635 3699 3707 3643 +4585 5 2 2 4 3635 3699 3707 3643 3636 3700 3708 3644 +4586 5 2 2 4 3636 3700 3708 3644 3637 3701 3709 3645 +4587 5 2 2 4 3637 3701 3709 3645 3638 3702 3710 3646 +4588 5 2 2 4 3638 3702 3710 3646 3639 3703 3711 3647 +4589 5 2 2 4 3639 3703 3711 3647 3640 3704 3712 3648 +4590 5 2 2 4 3640 3704 3712 3648 628 636 635 627 +4591 5 2 2 4 374 382 383 375 3641 3705 3713 3649 +4592 5 2 2 4 3641 3705 3713 3649 3642 3706 3714 3650 +4593 5 2 2 4 3642 3706 3714 3650 3643 3707 3715 3651 +4594 5 2 2 4 3643 3707 3715 3651 3644 3708 3716 3652 +4595 5 2 2 4 3644 3708 3716 3652 3645 3709 3717 3653 +4596 5 2 2 4 3645 3709 3717 3653 3646 3710 3718 3654 +4597 5 2 2 4 3646 3710 3718 3654 3647 3711 3719 3655 +4598 5 2 2 4 3647 3711 3719 3655 3648 3712 3720 3656 +4599 5 2 2 4 3648 3712 3720 3656 627 635 634 626 +4600 5 2 2 4 375 383 384 376 3649 3713 3721 3657 +4601 5 2 2 4 3649 3713 3721 3657 3650 3714 3722 3658 +4602 5 2 2 4 3650 3714 3722 3658 3651 3715 3723 3659 +4603 5 2 2 4 3651 3715 3723 3659 3652 3716 3724 3660 +4604 5 2 2 4 3652 3716 3724 3660 3653 3717 3725 3661 +4605 5 2 2 4 3653 3717 3725 3661 3654 3718 3726 3662 +4606 5 2 2 4 3654 3718 3726 3662 3655 3719 3727 3663 +4607 5 2 2 4 3655 3719 3727 3663 3656 3720 3728 3664 +4608 5 2 2 4 3656 3720 3728 3664 626 634 633 625 +4609 5 2 2 4 376 384 59 60 3657 3721 1633 1641 +4610 5 2 2 4 3657 3721 1633 1641 3658 3722 1634 1642 +4611 5 2 2 4 3658 3722 1634 1642 3659 3723 1635 1643 +4612 5 2 2 4 3659 3723 1635 1643 3660 3724 1636 1644 +4613 5 2 2 4 3660 3724 1636 1644 3661 3725 1637 1645 +4614 5 2 2 4 3661 3725 1637 1645 3662 3726 1638 1646 +4615 5 2 2 4 3662 3726 1638 1646 3663 3727 1639 1647 +4616 5 2 2 4 3663 3727 1639 1647 3664 3728 1640 1648 +4617 5 2 2 4 3664 3728 1640 1648 625 633 150 149 +4618 5 2 2 4 38 39 385 377 1174 1175 3729 3665 +4619 5 2 2 4 1174 1175 3729 3665 1182 1183 3730 3666 +4620 5 2 2 4 1182 1183 3730 3666 1190 1191 3731 3667 +4621 5 2 2 4 1190 1191 3731 3667 1198 1199 3732 3668 +4622 5 2 2 4 1198 1199 3732 3668 1206 1207 3733 3669 +4623 5 2 2 4 1206 1207 3733 3669 1214 1215 3734 3670 +4624 5 2 2 4 1214 1215 3734 3670 1222 1223 3735 3671 +4625 5 2 2 4 1222 1223 3735 3671 1230 1231 3736 3672 +4626 5 2 2 4 1230 1231 3736 3672 174 175 648 640 +4627 5 2 2 4 377 385 386 378 3665 3729 3737 3673 +4628 5 2 2 4 3665 3729 3737 3673 3666 3730 3738 3674 +4629 5 2 2 4 3666 3730 3738 3674 3667 3731 3739 3675 +4630 5 2 2 4 3667 3731 3739 3675 3668 3732 3740 3676 +4631 5 2 2 4 3668 3732 3740 3676 3669 3733 3741 3677 +4632 5 2 2 4 3669 3733 3741 3677 3670 3734 3742 3678 +4633 5 2 2 4 3670 3734 3742 3678 3671 3735 3743 3679 +4634 5 2 2 4 3671 3735 3743 3679 3672 3736 3744 3680 +4635 5 2 2 4 3672 3736 3744 3680 640 648 647 639 +4636 5 2 2 4 378 386 387 379 3673 3737 3745 3681 +4637 5 2 2 4 3673 3737 3745 3681 3674 3738 3746 3682 +4638 5 2 2 4 3674 3738 3746 3682 3675 3739 3747 3683 +4639 5 2 2 4 3675 3739 3747 3683 3676 3740 3748 3684 +4640 5 2 2 4 3676 3740 3748 3684 3677 3741 3749 3685 +4641 5 2 2 4 3677 3741 3749 3685 3678 3742 3750 3686 +4642 5 2 2 4 3678 3742 3750 3686 3679 3743 3751 3687 +4643 5 2 2 4 3679 3743 3751 3687 3680 3744 3752 3688 +4644 5 2 2 4 3680 3744 3752 3688 639 647 646 638 +4645 5 2 2 4 379 387 388 380 3681 3745 3753 3689 +4646 5 2 2 4 3681 3745 3753 3689 3682 3746 3754 3690 +4647 5 2 2 4 3682 3746 3754 3690 3683 3747 3755 3691 +4648 5 2 2 4 3683 3747 3755 3691 3684 3748 3756 3692 +4649 5 2 2 4 3684 3748 3756 3692 3685 3749 3757 3693 +4650 5 2 2 4 3685 3749 3757 3693 3686 3750 3758 3694 +4651 5 2 2 4 3686 3750 3758 3694 3687 3751 3759 3695 +4652 5 2 2 4 3687 3751 3759 3695 3688 3752 3760 3696 +4653 5 2 2 4 3688 3752 3760 3696 638 646 645 637 +4654 5 2 2 4 380 388 389 381 3689 3753 3761 3697 +4655 5 2 2 4 3689 3753 3761 3697 3690 3754 3762 3698 +4656 5 2 2 4 3690 3754 3762 3698 3691 3755 3763 3699 +4657 5 2 2 4 3691 3755 3763 3699 3692 3756 3764 3700 +4658 5 2 2 4 3692 3756 3764 3700 3693 3757 3765 3701 +4659 5 2 2 4 3693 3757 3765 3701 3694 3758 3766 3702 +4660 5 2 2 4 3694 3758 3766 3702 3695 3759 3767 3703 +4661 5 2 2 4 3695 3759 3767 3703 3696 3760 3768 3704 +4662 5 2 2 4 3696 3760 3768 3704 637 645 644 636 +4663 5 2 2 4 381 389 390 382 3697 3761 3769 3705 +4664 5 2 2 4 3697 3761 3769 3705 3698 3762 3770 3706 +4665 5 2 2 4 3698 3762 3770 3706 3699 3763 3771 3707 +4666 5 2 2 4 3699 3763 3771 3707 3700 3764 3772 3708 +4667 5 2 2 4 3700 3764 3772 3708 3701 3765 3773 3709 +4668 5 2 2 4 3701 3765 3773 3709 3702 3766 3774 3710 +4669 5 2 2 4 3702 3766 3774 3710 3703 3767 3775 3711 +4670 5 2 2 4 3703 3767 3775 3711 3704 3768 3776 3712 +4671 5 2 2 4 3704 3768 3776 3712 636 644 643 635 +4672 5 2 2 4 382 390 391 383 3705 3769 3777 3713 +4673 5 2 2 4 3705 3769 3777 3713 3706 3770 3778 3714 +4674 5 2 2 4 3706 3770 3778 3714 3707 3771 3779 3715 +4675 5 2 2 4 3707 3771 3779 3715 3708 3772 3780 3716 +4676 5 2 2 4 3708 3772 3780 3716 3709 3773 3781 3717 +4677 5 2 2 4 3709 3773 3781 3717 3710 3774 3782 3718 +4678 5 2 2 4 3710 3774 3782 3718 3711 3775 3783 3719 +4679 5 2 2 4 3711 3775 3783 3719 3712 3776 3784 3720 +4680 5 2 2 4 3712 3776 3784 3720 635 643 642 634 +4681 5 2 2 4 383 391 392 384 3713 3777 3785 3721 +4682 5 2 2 4 3713 3777 3785 3721 3714 3778 3786 3722 +4683 5 2 2 4 3714 3778 3786 3722 3715 3779 3787 3723 +4684 5 2 2 4 3715 3779 3787 3723 3716 3780 3788 3724 +4685 5 2 2 4 3716 3780 3788 3724 3717 3781 3789 3725 +4686 5 2 2 4 3717 3781 3789 3725 3718 3782 3790 3726 +4687 5 2 2 4 3718 3782 3790 3726 3719 3783 3791 3727 +4688 5 2 2 4 3719 3783 3791 3727 3720 3784 3792 3728 +4689 5 2 2 4 3720 3784 3792 3728 634 642 641 633 +4690 5 2 2 4 384 392 58 59 3721 3785 1625 1633 +4691 5 2 2 4 3721 3785 1625 1633 3722 3786 1626 1634 +4692 5 2 2 4 3722 3786 1626 1634 3723 3787 1627 1635 +4693 5 2 2 4 3723 3787 1627 1635 3724 3788 1628 1636 +4694 5 2 2 4 3724 3788 1628 1636 3725 3789 1629 1637 +4695 5 2 2 4 3725 3789 1629 1637 3726 3790 1630 1638 +4696 5 2 2 4 3726 3790 1630 1638 3727 3791 1631 1639 +4697 5 2 2 4 3727 3791 1631 1639 3728 3792 1632 1640 +4698 5 2 2 4 3728 3792 1632 1640 633 641 151 150 +4699 5 2 2 4 39 40 393 385 1175 1176 3793 3729 +4700 5 2 2 4 1175 1176 3793 3729 1183 1184 3794 3730 +4701 5 2 2 4 1183 1184 3794 3730 1191 1192 3795 3731 +4702 5 2 2 4 1191 1192 3795 3731 1199 1200 3796 3732 +4703 5 2 2 4 1199 1200 3796 3732 1207 1208 3797 3733 +4704 5 2 2 4 1207 1208 3797 3733 1215 1216 3798 3734 +4705 5 2 2 4 1215 1216 3798 3734 1223 1224 3799 3735 +4706 5 2 2 4 1223 1224 3799 3735 1231 1232 3800 3736 +4707 5 2 2 4 1231 1232 3800 3736 175 176 656 648 +4708 5 2 2 4 385 393 394 386 3729 3793 3801 3737 +4709 5 2 2 4 3729 3793 3801 3737 3730 3794 3802 3738 +4710 5 2 2 4 3730 3794 3802 3738 3731 3795 3803 3739 +4711 5 2 2 4 3731 3795 3803 3739 3732 3796 3804 3740 +4712 5 2 2 4 3732 3796 3804 3740 3733 3797 3805 3741 +4713 5 2 2 4 3733 3797 3805 3741 3734 3798 3806 3742 +4714 5 2 2 4 3734 3798 3806 3742 3735 3799 3807 3743 +4715 5 2 2 4 3735 3799 3807 3743 3736 3800 3808 3744 +4716 5 2 2 4 3736 3800 3808 3744 648 656 655 647 +4717 5 2 2 4 386 394 395 387 3737 3801 3809 3745 +4718 5 2 2 4 3737 3801 3809 3745 3738 3802 3810 3746 +4719 5 2 2 4 3738 3802 3810 3746 3739 3803 3811 3747 +4720 5 2 2 4 3739 3803 3811 3747 3740 3804 3812 3748 +4721 5 2 2 4 3740 3804 3812 3748 3741 3805 3813 3749 +4722 5 2 2 4 3741 3805 3813 3749 3742 3806 3814 3750 +4723 5 2 2 4 3742 3806 3814 3750 3743 3807 3815 3751 +4724 5 2 2 4 3743 3807 3815 3751 3744 3808 3816 3752 +4725 5 2 2 4 3744 3808 3816 3752 647 655 654 646 +4726 5 2 2 4 387 395 396 388 3745 3809 3817 3753 +4727 5 2 2 4 3745 3809 3817 3753 3746 3810 3818 3754 +4728 5 2 2 4 3746 3810 3818 3754 3747 3811 3819 3755 +4729 5 2 2 4 3747 3811 3819 3755 3748 3812 3820 3756 +4730 5 2 2 4 3748 3812 3820 3756 3749 3813 3821 3757 +4731 5 2 2 4 3749 3813 3821 3757 3750 3814 3822 3758 +4732 5 2 2 4 3750 3814 3822 3758 3751 3815 3823 3759 +4733 5 2 2 4 3751 3815 3823 3759 3752 3816 3824 3760 +4734 5 2 2 4 3752 3816 3824 3760 646 654 653 645 +4735 5 2 2 4 388 396 397 389 3753 3817 3825 3761 +4736 5 2 2 4 3753 3817 3825 3761 3754 3818 3826 3762 +4737 5 2 2 4 3754 3818 3826 3762 3755 3819 3827 3763 +4738 5 2 2 4 3755 3819 3827 3763 3756 3820 3828 3764 +4739 5 2 2 4 3756 3820 3828 3764 3757 3821 3829 3765 +4740 5 2 2 4 3757 3821 3829 3765 3758 3822 3830 3766 +4741 5 2 2 4 3758 3822 3830 3766 3759 3823 3831 3767 +4742 5 2 2 4 3759 3823 3831 3767 3760 3824 3832 3768 +4743 5 2 2 4 3760 3824 3832 3768 645 653 652 644 +4744 5 2 2 4 389 397 398 390 3761 3825 3833 3769 +4745 5 2 2 4 3761 3825 3833 3769 3762 3826 3834 3770 +4746 5 2 2 4 3762 3826 3834 3770 3763 3827 3835 3771 +4747 5 2 2 4 3763 3827 3835 3771 3764 3828 3836 3772 +4748 5 2 2 4 3764 3828 3836 3772 3765 3829 3837 3773 +4749 5 2 2 4 3765 3829 3837 3773 3766 3830 3838 3774 +4750 5 2 2 4 3766 3830 3838 3774 3767 3831 3839 3775 +4751 5 2 2 4 3767 3831 3839 3775 3768 3832 3840 3776 +4752 5 2 2 4 3768 3832 3840 3776 644 652 651 643 +4753 5 2 2 4 390 398 399 391 3769 3833 3841 3777 +4754 5 2 2 4 3769 3833 3841 3777 3770 3834 3842 3778 +4755 5 2 2 4 3770 3834 3842 3778 3771 3835 3843 3779 +4756 5 2 2 4 3771 3835 3843 3779 3772 3836 3844 3780 +4757 5 2 2 4 3772 3836 3844 3780 3773 3837 3845 3781 +4758 5 2 2 4 3773 3837 3845 3781 3774 3838 3846 3782 +4759 5 2 2 4 3774 3838 3846 3782 3775 3839 3847 3783 +4760 5 2 2 4 3775 3839 3847 3783 3776 3840 3848 3784 +4761 5 2 2 4 3776 3840 3848 3784 643 651 650 642 +4762 5 2 2 4 391 399 400 392 3777 3841 3849 3785 +4763 5 2 2 4 3777 3841 3849 3785 3778 3842 3850 3786 +4764 5 2 2 4 3778 3842 3850 3786 3779 3843 3851 3787 +4765 5 2 2 4 3779 3843 3851 3787 3780 3844 3852 3788 +4766 5 2 2 4 3780 3844 3852 3788 3781 3845 3853 3789 +4767 5 2 2 4 3781 3845 3853 3789 3782 3846 3854 3790 +4768 5 2 2 4 3782 3846 3854 3790 3783 3847 3855 3791 +4769 5 2 2 4 3783 3847 3855 3791 3784 3848 3856 3792 +4770 5 2 2 4 3784 3848 3856 3792 642 650 649 641 +4771 5 2 2 4 392 400 57 58 3785 3849 1617 1625 +4772 5 2 2 4 3785 3849 1617 1625 3786 3850 1618 1626 +4773 5 2 2 4 3786 3850 1618 1626 3787 3851 1619 1627 +4774 5 2 2 4 3787 3851 1619 1627 3788 3852 1620 1628 +4775 5 2 2 4 3788 3852 1620 1628 3789 3853 1621 1629 +4776 5 2 2 4 3789 3853 1621 1629 3790 3854 1622 1630 +4777 5 2 2 4 3790 3854 1622 1630 3791 3855 1623 1631 +4778 5 2 2 4 3791 3855 1623 1631 3792 3856 1624 1632 +4779 5 2 2 4 3792 3856 1624 1632 641 649 152 151 +4780 5 2 2 4 40 5 49 393 1176 209 1297 3793 +4781 5 2 2 4 1176 209 1297 3793 1184 210 1305 3794 +4782 5 2 2 4 1184 210 1305 3794 1192 211 1313 3795 +4783 5 2 2 4 1192 211 1313 3795 1200 212 1321 3796 +4784 5 2 2 4 1200 212 1321 3796 1208 213 1329 3797 +4785 5 2 2 4 1208 213 1329 3797 1216 214 1337 3798 +4786 5 2 2 4 1216 214 1337 3798 1224 215 1345 3799 +4787 5 2 2 4 1224 215 1345 3799 1232 216 1353 3800 +4788 5 2 2 4 1232 216 1353 3800 176 15 208 656 +4789 5 2 2 4 393 49 50 394 3793 1297 1298 3801 +4790 5 2 2 4 3793 1297 1298 3801 3794 1305 1306 3802 +4791 5 2 2 4 3794 1305 1306 3802 3795 1313 1314 3803 +4792 5 2 2 4 3795 1313 1314 3803 3796 1321 1322 3804 +4793 5 2 2 4 3796 1321 1322 3804 3797 1329 1330 3805 +4794 5 2 2 4 3797 1329 1330 3805 3798 1337 1338 3806 +4795 5 2 2 4 3798 1337 1338 3806 3799 1345 1346 3807 +4796 5 2 2 4 3799 1345 1346 3807 3800 1353 1354 3808 +4797 5 2 2 4 3800 1353 1354 3808 656 208 207 655 +4798 5 2 2 4 394 50 51 395 3801 1298 1299 3809 +4799 5 2 2 4 3801 1298 1299 3809 3802 1306 1307 3810 +4800 5 2 2 4 3802 1306 1307 3810 3803 1314 1315 3811 +4801 5 2 2 4 3803 1314 1315 3811 3804 1322 1323 3812 +4802 5 2 2 4 3804 1322 1323 3812 3805 1330 1331 3813 +4803 5 2 2 4 3805 1330 1331 3813 3806 1338 1339 3814 +4804 5 2 2 4 3806 1338 1339 3814 3807 1346 1347 3815 +4805 5 2 2 4 3807 1346 1347 3815 3808 1354 1355 3816 +4806 5 2 2 4 3808 1354 1355 3816 655 207 206 654 +4807 5 2 2 4 395 51 52 396 3809 1299 1300 3817 +4808 5 2 2 4 3809 1299 1300 3817 3810 1307 1308 3818 +4809 5 2 2 4 3810 1307 1308 3818 3811 1315 1316 3819 +4810 5 2 2 4 3811 1315 1316 3819 3812 1323 1324 3820 +4811 5 2 2 4 3812 1323 1324 3820 3813 1331 1332 3821 +4812 5 2 2 4 3813 1331 1332 3821 3814 1339 1340 3822 +4813 5 2 2 4 3814 1339 1340 3822 3815 1347 1348 3823 +4814 5 2 2 4 3815 1347 1348 3823 3816 1355 1356 3824 +4815 5 2 2 4 3816 1355 1356 3824 654 206 205 653 +4816 5 2 2 4 396 52 53 397 3817 1300 1301 3825 +4817 5 2 2 4 3817 1300 1301 3825 3818 1308 1309 3826 +4818 5 2 2 4 3818 1308 1309 3826 3819 1316 1317 3827 +4819 5 2 2 4 3819 1316 1317 3827 3820 1324 1325 3828 +4820 5 2 2 4 3820 1324 1325 3828 3821 1332 1333 3829 +4821 5 2 2 4 3821 1332 1333 3829 3822 1340 1341 3830 +4822 5 2 2 4 3822 1340 1341 3830 3823 1348 1349 3831 +4823 5 2 2 4 3823 1348 1349 3831 3824 1356 1357 3832 +4824 5 2 2 4 3824 1356 1357 3832 653 205 204 652 +4825 5 2 2 4 397 53 54 398 3825 1301 1302 3833 +4826 5 2 2 4 3825 1301 1302 3833 3826 1309 1310 3834 +4827 5 2 2 4 3826 1309 1310 3834 3827 1317 1318 3835 +4828 5 2 2 4 3827 1317 1318 3835 3828 1325 1326 3836 +4829 5 2 2 4 3828 1325 1326 3836 3829 1333 1334 3837 +4830 5 2 2 4 3829 1333 1334 3837 3830 1341 1342 3838 +4831 5 2 2 4 3830 1341 1342 3838 3831 1349 1350 3839 +4832 5 2 2 4 3831 1349 1350 3839 3832 1357 1358 3840 +4833 5 2 2 4 3832 1357 1358 3840 652 204 203 651 +4834 5 2 2 4 398 54 55 399 3833 1302 1303 3841 +4835 5 2 2 4 3833 1302 1303 3841 3834 1310 1311 3842 +4836 5 2 2 4 3834 1310 1311 3842 3835 1318 1319 3843 +4837 5 2 2 4 3835 1318 1319 3843 3836 1326 1327 3844 +4838 5 2 2 4 3836 1326 1327 3844 3837 1334 1335 3845 +4839 5 2 2 4 3837 1334 1335 3845 3838 1342 1343 3846 +4840 5 2 2 4 3838 1342 1343 3846 3839 1350 1351 3847 +4841 5 2 2 4 3839 1350 1351 3847 3840 1358 1359 3848 +4842 5 2 2 4 3840 1358 1359 3848 651 203 202 650 +4843 5 2 2 4 399 55 56 400 3841 1303 1304 3849 +4844 5 2 2 4 3841 1303 1304 3849 3842 1311 1312 3850 +4845 5 2 2 4 3842 1311 1312 3850 3843 1319 1320 3851 +4846 5 2 2 4 3843 1319 1320 3851 3844 1327 1328 3852 +4847 5 2 2 4 3844 1327 1328 3852 3845 1335 1336 3853 +4848 5 2 2 4 3845 1335 1336 3853 3846 1343 1344 3854 +4849 5 2 2 4 3846 1343 1344 3854 3847 1351 1352 3855 +4850 5 2 2 4 3847 1351 1352 3855 3848 1359 1360 3856 +4851 5 2 2 4 3848 1359 1360 3856 650 202 201 649 +4852 5 2 2 4 400 56 7 57 3849 1304 225 1617 +4853 5 2 2 4 3849 1304 225 1617 3850 1312 226 1618 +4854 5 2 2 4 3850 1312 226 1618 3851 1320 227 1619 +4855 5 2 2 4 3851 1320 227 1619 3852 1328 228 1620 +4856 5 2 2 4 3852 1328 228 1620 3853 1336 229 1621 +4857 5 2 2 4 3853 1336 229 1621 3854 1344 230 1622 +4858 5 2 2 4 3854 1344 230 1622 3855 1352 231 1623 +4859 5 2 2 4 3855 1352 231 1623 3856 1360 232 1624 +4860 5 2 2 4 3856 1360 232 1624 649 201 14 152 +4861 5 2 2 5 6 48 280 17 241 1240 3857 1041 +4862 5 2 2 5 241 1240 3857 1041 242 1248 3858 1049 +4863 5 2 2 5 242 1248 3858 1049 243 1256 3859 1057 +4864 5 2 2 5 243 1256 3859 1057 244 1264 3860 1065 +4865 5 2 2 5 244 1264 3860 1065 245 1272 3861 1073 +4866 5 2 2 5 245 1272 3861 1073 246 1280 3862 1081 +4867 5 2 2 5 246 1280 3862 1081 247 1288 3863 1089 +4868 5 2 2 5 247 1288 3863 1089 248 1296 3864 1097 +4869 5 2 2 5 248 1296 3864 1097 16 184 664 168 +4870 5 2 2 5 17 280 279 18 1041 3857 3865 1042 +4871 5 2 2 5 1041 3857 3865 1042 1049 3858 3866 1050 +4872 5 2 2 5 1049 3858 3866 1050 1057 3859 3867 1058 +4873 5 2 2 5 1057 3859 3867 1058 1065 3860 3868 1066 +4874 5 2 2 5 1065 3860 3868 1066 1073 3861 3869 1074 +4875 5 2 2 5 1073 3861 3869 1074 1081 3862 3870 1082 +4876 5 2 2 5 1081 3862 3870 1082 1089 3863 3871 1090 +4877 5 2 2 5 1089 3863 3871 1090 1097 3864 3872 1098 +4878 5 2 2 5 1097 3864 3872 1098 168 664 663 167 +4879 5 2 2 5 18 279 278 19 1042 3865 3873 1043 +4880 5 2 2 5 1042 3865 3873 1043 1050 3866 3874 1051 +4881 5 2 2 5 1050 3866 3874 1051 1058 3867 3875 1059 +4882 5 2 2 5 1058 3867 3875 1059 1066 3868 3876 1067 +4883 5 2 2 5 1066 3868 3876 1067 1074 3869 3877 1075 +4884 5 2 2 5 1074 3869 3877 1075 1082 3870 3878 1083 +4885 5 2 2 5 1082 3870 3878 1083 1090 3871 3879 1091 +4886 5 2 2 5 1090 3871 3879 1091 1098 3872 3880 1099 +4887 5 2 2 5 1098 3872 3880 1099 167 663 662 166 +4888 5 2 2 5 19 278 277 20 1043 3873 3881 1044 +4889 5 2 2 5 1043 3873 3881 1044 1051 3874 3882 1052 +4890 5 2 2 5 1051 3874 3882 1052 1059 3875 3883 1060 +4891 5 2 2 5 1059 3875 3883 1060 1067 3876 3884 1068 +4892 5 2 2 5 1067 3876 3884 1068 1075 3877 3885 1076 +4893 5 2 2 5 1075 3877 3885 1076 1083 3878 3886 1084 +4894 5 2 2 5 1083 3878 3886 1084 1091 3879 3887 1092 +4895 5 2 2 5 1091 3879 3887 1092 1099 3880 3888 1100 +4896 5 2 2 5 1099 3880 3888 1100 166 662 661 165 +4897 5 2 2 5 20 277 276 21 1044 3881 3889 1045 +4898 5 2 2 5 1044 3881 3889 1045 1052 3882 3890 1053 +4899 5 2 2 5 1052 3882 3890 1053 1060 3883 3891 1061 +4900 5 2 2 5 1060 3883 3891 1061 1068 3884 3892 1069 +4901 5 2 2 5 1068 3884 3892 1069 1076 3885 3893 1077 +4902 5 2 2 5 1076 3885 3893 1077 1084 3886 3894 1085 +4903 5 2 2 5 1084 3886 3894 1085 1092 3887 3895 1093 +4904 5 2 2 5 1092 3887 3895 1093 1100 3888 3896 1101 +4905 5 2 2 5 1100 3888 3896 1101 165 661 660 164 +4906 5 2 2 5 21 276 275 22 1045 3889 3897 1046 +4907 5 2 2 5 1045 3889 3897 1046 1053 3890 3898 1054 +4908 5 2 2 5 1053 3890 3898 1054 1061 3891 3899 1062 +4909 5 2 2 5 1061 3891 3899 1062 1069 3892 3900 1070 +4910 5 2 2 5 1069 3892 3900 1070 1077 3893 3901 1078 +4911 5 2 2 5 1077 3893 3901 1078 1085 3894 3902 1086 +4912 5 2 2 5 1085 3894 3902 1086 1093 3895 3903 1094 +4913 5 2 2 5 1093 3895 3903 1094 1101 3896 3904 1102 +4914 5 2 2 5 1101 3896 3904 1102 164 660 659 163 +4915 5 2 2 5 22 275 274 23 1046 3897 3905 1047 +4916 5 2 2 5 1046 3897 3905 1047 1054 3898 3906 1055 +4917 5 2 2 5 1054 3898 3906 1055 1062 3899 3907 1063 +4918 5 2 2 5 1062 3899 3907 1063 1070 3900 3908 1071 +4919 5 2 2 5 1070 3900 3908 1071 1078 3901 3909 1079 +4920 5 2 2 5 1078 3901 3909 1079 1086 3902 3910 1087 +4921 5 2 2 5 1086 3902 3910 1087 1094 3903 3911 1095 +4922 5 2 2 5 1094 3903 3911 1095 1102 3904 3912 1103 +4923 5 2 2 5 1102 3904 3912 1103 163 659 658 162 +4924 5 2 2 5 23 274 273 24 1047 3905 3913 1048 +4925 5 2 2 5 1047 3905 3913 1048 1055 3906 3914 1056 +4926 5 2 2 5 1055 3906 3914 1056 1063 3907 3915 1064 +4927 5 2 2 5 1063 3907 3915 1064 1071 3908 3916 1072 +4928 5 2 2 5 1071 3908 3916 1072 1079 3909 3917 1080 +4929 5 2 2 5 1079 3909 3917 1080 1087 3910 3918 1088 +4930 5 2 2 5 1087 3910 3918 1088 1095 3911 3919 1096 +4931 5 2 2 5 1095 3911 3919 1096 1103 3912 3920 1104 +4932 5 2 2 5 1103 3912 3920 1104 162 658 657 161 +4933 5 2 2 5 24 273 25 2 1048 3913 1105 249 +4934 5 2 2 5 1048 3913 1105 249 1056 3914 1106 250 +4935 5 2 2 5 1056 3914 1106 250 1064 3915 1107 251 +4936 5 2 2 5 1064 3915 1107 251 1072 3916 1108 252 +4937 5 2 2 5 1072 3916 1108 252 1080 3917 1109 253 +4938 5 2 2 5 1080 3917 1109 253 1088 3918 1110 254 +4939 5 2 2 5 1088 3918 1110 254 1096 3919 1111 255 +4940 5 2 2 5 1096 3919 1111 255 1104 3920 1112 256 +4941 5 2 2 5 1104 3920 1112 256 161 657 129 12 +4942 5 2 2 5 48 47 288 280 1240 1239 3921 3857 +4943 5 2 2 5 1240 1239 3921 3857 1248 1247 3922 3858 +4944 5 2 2 5 1248 1247 3922 3858 1256 1255 3923 3859 +4945 5 2 2 5 1256 1255 3923 3859 1264 1263 3924 3860 +4946 5 2 2 5 1264 1263 3924 3860 1272 1271 3925 3861 +4947 5 2 2 5 1272 1271 3925 3861 1280 1279 3926 3862 +4948 5 2 2 5 1280 1279 3926 3862 1288 1287 3927 3863 +4949 5 2 2 5 1288 1287 3927 3863 1296 1295 3928 3864 +4950 5 2 2 5 1296 1295 3928 3864 184 183 672 664 +4951 5 2 2 5 280 288 287 279 3857 3921 3929 3865 +4952 5 2 2 5 3857 3921 3929 3865 3858 3922 3930 3866 +4953 5 2 2 5 3858 3922 3930 3866 3859 3923 3931 3867 +4954 5 2 2 5 3859 3923 3931 3867 3860 3924 3932 3868 +4955 5 2 2 5 3860 3924 3932 3868 3861 3925 3933 3869 +4956 5 2 2 5 3861 3925 3933 3869 3862 3926 3934 3870 +4957 5 2 2 5 3862 3926 3934 3870 3863 3927 3935 3871 +4958 5 2 2 5 3863 3927 3935 3871 3864 3928 3936 3872 +4959 5 2 2 5 3864 3928 3936 3872 664 672 671 663 +4960 5 2 2 5 279 287 286 278 3865 3929 3937 3873 +4961 5 2 2 5 3865 3929 3937 3873 3866 3930 3938 3874 +4962 5 2 2 5 3866 3930 3938 3874 3867 3931 3939 3875 +4963 5 2 2 5 3867 3931 3939 3875 3868 3932 3940 3876 +4964 5 2 2 5 3868 3932 3940 3876 3869 3933 3941 3877 +4965 5 2 2 5 3869 3933 3941 3877 3870 3934 3942 3878 +4966 5 2 2 5 3870 3934 3942 3878 3871 3935 3943 3879 +4967 5 2 2 5 3871 3935 3943 3879 3872 3936 3944 3880 +4968 5 2 2 5 3872 3936 3944 3880 663 671 670 662 +4969 5 2 2 5 278 286 285 277 3873 3937 3945 3881 +4970 5 2 2 5 3873 3937 3945 3881 3874 3938 3946 3882 +4971 5 2 2 5 3874 3938 3946 3882 3875 3939 3947 3883 +4972 5 2 2 5 3875 3939 3947 3883 3876 3940 3948 3884 +4973 5 2 2 5 3876 3940 3948 3884 3877 3941 3949 3885 +4974 5 2 2 5 3877 3941 3949 3885 3878 3942 3950 3886 +4975 5 2 2 5 3878 3942 3950 3886 3879 3943 3951 3887 +4976 5 2 2 5 3879 3943 3951 3887 3880 3944 3952 3888 +4977 5 2 2 5 3880 3944 3952 3888 662 670 669 661 +4978 5 2 2 5 277 285 284 276 3881 3945 3953 3889 +4979 5 2 2 5 3881 3945 3953 3889 3882 3946 3954 3890 +4980 5 2 2 5 3882 3946 3954 3890 3883 3947 3955 3891 +4981 5 2 2 5 3883 3947 3955 3891 3884 3948 3956 3892 +4982 5 2 2 5 3884 3948 3956 3892 3885 3949 3957 3893 +4983 5 2 2 5 3885 3949 3957 3893 3886 3950 3958 3894 +4984 5 2 2 5 3886 3950 3958 3894 3887 3951 3959 3895 +4985 5 2 2 5 3887 3951 3959 3895 3888 3952 3960 3896 +4986 5 2 2 5 3888 3952 3960 3896 661 669 668 660 +4987 5 2 2 5 276 284 283 275 3889 3953 3961 3897 +4988 5 2 2 5 3889 3953 3961 3897 3890 3954 3962 3898 +4989 5 2 2 5 3890 3954 3962 3898 3891 3955 3963 3899 +4990 5 2 2 5 3891 3955 3963 3899 3892 3956 3964 3900 +4991 5 2 2 5 3892 3956 3964 3900 3893 3957 3965 3901 +4992 5 2 2 5 3893 3957 3965 3901 3894 3958 3966 3902 +4993 5 2 2 5 3894 3958 3966 3902 3895 3959 3967 3903 +4994 5 2 2 5 3895 3959 3967 3903 3896 3960 3968 3904 +4995 5 2 2 5 3896 3960 3968 3904 660 668 667 659 +4996 5 2 2 5 275 283 282 274 3897 3961 3969 3905 +4997 5 2 2 5 3897 3961 3969 3905 3898 3962 3970 3906 +4998 5 2 2 5 3898 3962 3970 3906 3899 3963 3971 3907 +4999 5 2 2 5 3899 3963 3971 3907 3900 3964 3972 3908 +5000 5 2 2 5 3900 3964 3972 3908 3901 3965 3973 3909 +5001 5 2 2 5 3901 3965 3973 3909 3902 3966 3974 3910 +5002 5 2 2 5 3902 3966 3974 3910 3903 3967 3975 3911 +5003 5 2 2 5 3903 3967 3975 3911 3904 3968 3976 3912 +5004 5 2 2 5 3904 3968 3976 3912 659 667 666 658 +5005 5 2 2 5 274 282 281 273 3905 3969 3977 3913 +5006 5 2 2 5 3905 3969 3977 3913 3906 3970 3978 3914 +5007 5 2 2 5 3906 3970 3978 3914 3907 3971 3979 3915 +5008 5 2 2 5 3907 3971 3979 3915 3908 3972 3980 3916 +5009 5 2 2 5 3908 3972 3980 3916 3909 3973 3981 3917 +5010 5 2 2 5 3909 3973 3981 3917 3910 3974 3982 3918 +5011 5 2 2 5 3910 3974 3982 3918 3911 3975 3983 3919 +5012 5 2 2 5 3911 3975 3983 3919 3912 3976 3984 3920 +5013 5 2 2 5 3912 3976 3984 3920 658 666 665 657 +5014 5 2 2 5 273 281 26 25 3913 3977 1113 1105 +5015 5 2 2 5 3913 3977 1113 1105 3914 3978 1114 1106 +5016 5 2 2 5 3914 3978 1114 1106 3915 3979 1115 1107 +5017 5 2 2 5 3915 3979 1115 1107 3916 3980 1116 1108 +5018 5 2 2 5 3916 3980 1116 1108 3917 3981 1117 1109 +5019 5 2 2 5 3917 3981 1117 1109 3918 3982 1118 1110 +5020 5 2 2 5 3918 3982 1118 1110 3919 3983 1119 1111 +5021 5 2 2 5 3919 3983 1119 1111 3920 3984 1120 1112 +5022 5 2 2 5 3920 3984 1120 1112 657 665 130 129 +5023 5 2 2 5 47 46 296 288 1239 1238 3985 3921 +5024 5 2 2 5 1239 1238 3985 3921 1247 1246 3986 3922 +5025 5 2 2 5 1247 1246 3986 3922 1255 1254 3987 3923 +5026 5 2 2 5 1255 1254 3987 3923 1263 1262 3988 3924 +5027 5 2 2 5 1263 1262 3988 3924 1271 1270 3989 3925 +5028 5 2 2 5 1271 1270 3989 3925 1279 1278 3990 3926 +5029 5 2 2 5 1279 1278 3990 3926 1287 1286 3991 3927 +5030 5 2 2 5 1287 1286 3991 3927 1295 1294 3992 3928 +5031 5 2 2 5 1295 1294 3992 3928 183 182 680 672 +5032 5 2 2 5 288 296 295 287 3921 3985 3993 3929 +5033 5 2 2 5 3921 3985 3993 3929 3922 3986 3994 3930 +5034 5 2 2 5 3922 3986 3994 3930 3923 3987 3995 3931 +5035 5 2 2 5 3923 3987 3995 3931 3924 3988 3996 3932 +5036 5 2 2 5 3924 3988 3996 3932 3925 3989 3997 3933 +5037 5 2 2 5 3925 3989 3997 3933 3926 3990 3998 3934 +5038 5 2 2 5 3926 3990 3998 3934 3927 3991 3999 3935 +5039 5 2 2 5 3927 3991 3999 3935 3928 3992 4000 3936 +5040 5 2 2 5 3928 3992 4000 3936 672 680 679 671 +5041 5 2 2 5 287 295 294 286 3929 3993 4001 3937 +5042 5 2 2 5 3929 3993 4001 3937 3930 3994 4002 3938 +5043 5 2 2 5 3930 3994 4002 3938 3931 3995 4003 3939 +5044 5 2 2 5 3931 3995 4003 3939 3932 3996 4004 3940 +5045 5 2 2 5 3932 3996 4004 3940 3933 3997 4005 3941 +5046 5 2 2 5 3933 3997 4005 3941 3934 3998 4006 3942 +5047 5 2 2 5 3934 3998 4006 3942 3935 3999 4007 3943 +5048 5 2 2 5 3935 3999 4007 3943 3936 4000 4008 3944 +5049 5 2 2 5 3936 4000 4008 3944 671 679 678 670 +5050 5 2 2 5 286 294 293 285 3937 4001 4009 3945 +5051 5 2 2 5 3937 4001 4009 3945 3938 4002 4010 3946 +5052 5 2 2 5 3938 4002 4010 3946 3939 4003 4011 3947 +5053 5 2 2 5 3939 4003 4011 3947 3940 4004 4012 3948 +5054 5 2 2 5 3940 4004 4012 3948 3941 4005 4013 3949 +5055 5 2 2 5 3941 4005 4013 3949 3942 4006 4014 3950 +5056 5 2 2 5 3942 4006 4014 3950 3943 4007 4015 3951 +5057 5 2 2 5 3943 4007 4015 3951 3944 4008 4016 3952 +5058 5 2 2 5 3944 4008 4016 3952 670 678 677 669 +5059 5 2 2 5 285 293 292 284 3945 4009 4017 3953 +5060 5 2 2 5 3945 4009 4017 3953 3946 4010 4018 3954 +5061 5 2 2 5 3946 4010 4018 3954 3947 4011 4019 3955 +5062 5 2 2 5 3947 4011 4019 3955 3948 4012 4020 3956 +5063 5 2 2 5 3948 4012 4020 3956 3949 4013 4021 3957 +5064 5 2 2 5 3949 4013 4021 3957 3950 4014 4022 3958 +5065 5 2 2 5 3950 4014 4022 3958 3951 4015 4023 3959 +5066 5 2 2 5 3951 4015 4023 3959 3952 4016 4024 3960 +5067 5 2 2 5 3952 4016 4024 3960 669 677 676 668 +5068 5 2 2 5 284 292 291 283 3953 4017 4025 3961 +5069 5 2 2 5 3953 4017 4025 3961 3954 4018 4026 3962 +5070 5 2 2 5 3954 4018 4026 3962 3955 4019 4027 3963 +5071 5 2 2 5 3955 4019 4027 3963 3956 4020 4028 3964 +5072 5 2 2 5 3956 4020 4028 3964 3957 4021 4029 3965 +5073 5 2 2 5 3957 4021 4029 3965 3958 4022 4030 3966 +5074 5 2 2 5 3958 4022 4030 3966 3959 4023 4031 3967 +5075 5 2 2 5 3959 4023 4031 3967 3960 4024 4032 3968 +5076 5 2 2 5 3960 4024 4032 3968 668 676 675 667 +5077 5 2 2 5 283 291 290 282 3961 4025 4033 3969 +5078 5 2 2 5 3961 4025 4033 3969 3962 4026 4034 3970 +5079 5 2 2 5 3962 4026 4034 3970 3963 4027 4035 3971 +5080 5 2 2 5 3963 4027 4035 3971 3964 4028 4036 3972 +5081 5 2 2 5 3964 4028 4036 3972 3965 4029 4037 3973 +5082 5 2 2 5 3965 4029 4037 3973 3966 4030 4038 3974 +5083 5 2 2 5 3966 4030 4038 3974 3967 4031 4039 3975 +5084 5 2 2 5 3967 4031 4039 3975 3968 4032 4040 3976 +5085 5 2 2 5 3968 4032 4040 3976 667 675 674 666 +5086 5 2 2 5 282 290 289 281 3969 4033 4041 3977 +5087 5 2 2 5 3969 4033 4041 3977 3970 4034 4042 3978 +5088 5 2 2 5 3970 4034 4042 3978 3971 4035 4043 3979 +5089 5 2 2 5 3971 4035 4043 3979 3972 4036 4044 3980 +5090 5 2 2 5 3972 4036 4044 3980 3973 4037 4045 3981 +5091 5 2 2 5 3973 4037 4045 3981 3974 4038 4046 3982 +5092 5 2 2 5 3974 4038 4046 3982 3975 4039 4047 3983 +5093 5 2 2 5 3975 4039 4047 3983 3976 4040 4048 3984 +5094 5 2 2 5 3976 4040 4048 3984 666 674 673 665 +5095 5 2 2 5 281 289 27 26 3977 4041 1121 1113 +5096 5 2 2 5 3977 4041 1121 1113 3978 4042 1122 1114 +5097 5 2 2 5 3978 4042 1122 1114 3979 4043 1123 1115 +5098 5 2 2 5 3979 4043 1123 1115 3980 4044 1124 1116 +5099 5 2 2 5 3980 4044 1124 1116 3981 4045 1125 1117 +5100 5 2 2 5 3981 4045 1125 1117 3982 4046 1126 1118 +5101 5 2 2 5 3982 4046 1126 1118 3983 4047 1127 1119 +5102 5 2 2 5 3983 4047 1127 1119 3984 4048 1128 1120 +5103 5 2 2 5 3984 4048 1128 1120 665 673 131 130 +5104 5 2 2 5 46 45 304 296 1238 1237 4049 3985 +5105 5 2 2 5 1238 1237 4049 3985 1246 1245 4050 3986 +5106 5 2 2 5 1246 1245 4050 3986 1254 1253 4051 3987 +5107 5 2 2 5 1254 1253 4051 3987 1262 1261 4052 3988 +5108 5 2 2 5 1262 1261 4052 3988 1270 1269 4053 3989 +5109 5 2 2 5 1270 1269 4053 3989 1278 1277 4054 3990 +5110 5 2 2 5 1278 1277 4054 3990 1286 1285 4055 3991 +5111 5 2 2 5 1286 1285 4055 3991 1294 1293 4056 3992 +5112 5 2 2 5 1294 1293 4056 3992 182 181 688 680 +5113 5 2 2 5 296 304 303 295 3985 4049 4057 3993 +5114 5 2 2 5 3985 4049 4057 3993 3986 4050 4058 3994 +5115 5 2 2 5 3986 4050 4058 3994 3987 4051 4059 3995 +5116 5 2 2 5 3987 4051 4059 3995 3988 4052 4060 3996 +5117 5 2 2 5 3988 4052 4060 3996 3989 4053 4061 3997 +5118 5 2 2 5 3989 4053 4061 3997 3990 4054 4062 3998 +5119 5 2 2 5 3990 4054 4062 3998 3991 4055 4063 3999 +5120 5 2 2 5 3991 4055 4063 3999 3992 4056 4064 4000 +5121 5 2 2 5 3992 4056 4064 4000 680 688 687 679 +5122 5 2 2 5 295 303 302 294 3993 4057 4065 4001 +5123 5 2 2 5 3993 4057 4065 4001 3994 4058 4066 4002 +5124 5 2 2 5 3994 4058 4066 4002 3995 4059 4067 4003 +5125 5 2 2 5 3995 4059 4067 4003 3996 4060 4068 4004 +5126 5 2 2 5 3996 4060 4068 4004 3997 4061 4069 4005 +5127 5 2 2 5 3997 4061 4069 4005 3998 4062 4070 4006 +5128 5 2 2 5 3998 4062 4070 4006 3999 4063 4071 4007 +5129 5 2 2 5 3999 4063 4071 4007 4000 4064 4072 4008 +5130 5 2 2 5 4000 4064 4072 4008 679 687 686 678 +5131 5 2 2 5 294 302 301 293 4001 4065 4073 4009 +5132 5 2 2 5 4001 4065 4073 4009 4002 4066 4074 4010 +5133 5 2 2 5 4002 4066 4074 4010 4003 4067 4075 4011 +5134 5 2 2 5 4003 4067 4075 4011 4004 4068 4076 4012 +5135 5 2 2 5 4004 4068 4076 4012 4005 4069 4077 4013 +5136 5 2 2 5 4005 4069 4077 4013 4006 4070 4078 4014 +5137 5 2 2 5 4006 4070 4078 4014 4007 4071 4079 4015 +5138 5 2 2 5 4007 4071 4079 4015 4008 4072 4080 4016 +5139 5 2 2 5 4008 4072 4080 4016 678 686 685 677 +5140 5 2 2 5 293 301 300 292 4009 4073 4081 4017 +5141 5 2 2 5 4009 4073 4081 4017 4010 4074 4082 4018 +5142 5 2 2 5 4010 4074 4082 4018 4011 4075 4083 4019 +5143 5 2 2 5 4011 4075 4083 4019 4012 4076 4084 4020 +5144 5 2 2 5 4012 4076 4084 4020 4013 4077 4085 4021 +5145 5 2 2 5 4013 4077 4085 4021 4014 4078 4086 4022 +5146 5 2 2 5 4014 4078 4086 4022 4015 4079 4087 4023 +5147 5 2 2 5 4015 4079 4087 4023 4016 4080 4088 4024 +5148 5 2 2 5 4016 4080 4088 4024 677 685 684 676 +5149 5 2 2 5 292 300 299 291 4017 4081 4089 4025 +5150 5 2 2 5 4017 4081 4089 4025 4018 4082 4090 4026 +5151 5 2 2 5 4018 4082 4090 4026 4019 4083 4091 4027 +5152 5 2 2 5 4019 4083 4091 4027 4020 4084 4092 4028 +5153 5 2 2 5 4020 4084 4092 4028 4021 4085 4093 4029 +5154 5 2 2 5 4021 4085 4093 4029 4022 4086 4094 4030 +5155 5 2 2 5 4022 4086 4094 4030 4023 4087 4095 4031 +5156 5 2 2 5 4023 4087 4095 4031 4024 4088 4096 4032 +5157 5 2 2 5 4024 4088 4096 4032 676 684 683 675 +5158 5 2 2 5 291 299 298 290 4025 4089 4097 4033 +5159 5 2 2 5 4025 4089 4097 4033 4026 4090 4098 4034 +5160 5 2 2 5 4026 4090 4098 4034 4027 4091 4099 4035 +5161 5 2 2 5 4027 4091 4099 4035 4028 4092 4100 4036 +5162 5 2 2 5 4028 4092 4100 4036 4029 4093 4101 4037 +5163 5 2 2 5 4029 4093 4101 4037 4030 4094 4102 4038 +5164 5 2 2 5 4030 4094 4102 4038 4031 4095 4103 4039 +5165 5 2 2 5 4031 4095 4103 4039 4032 4096 4104 4040 +5166 5 2 2 5 4032 4096 4104 4040 675 683 682 674 +5167 5 2 2 5 290 298 297 289 4033 4097 4105 4041 +5168 5 2 2 5 4033 4097 4105 4041 4034 4098 4106 4042 +5169 5 2 2 5 4034 4098 4106 4042 4035 4099 4107 4043 +5170 5 2 2 5 4035 4099 4107 4043 4036 4100 4108 4044 +5171 5 2 2 5 4036 4100 4108 4044 4037 4101 4109 4045 +5172 5 2 2 5 4037 4101 4109 4045 4038 4102 4110 4046 +5173 5 2 2 5 4038 4102 4110 4046 4039 4103 4111 4047 +5174 5 2 2 5 4039 4103 4111 4047 4040 4104 4112 4048 +5175 5 2 2 5 4040 4104 4112 4048 674 682 681 673 +5176 5 2 2 5 289 297 28 27 4041 4105 1129 1121 +5177 5 2 2 5 4041 4105 1129 1121 4042 4106 1130 1122 +5178 5 2 2 5 4042 4106 1130 1122 4043 4107 1131 1123 +5179 5 2 2 5 4043 4107 1131 1123 4044 4108 1132 1124 +5180 5 2 2 5 4044 4108 1132 1124 4045 4109 1133 1125 +5181 5 2 2 5 4045 4109 1133 1125 4046 4110 1134 1126 +5182 5 2 2 5 4046 4110 1134 1126 4047 4111 1135 1127 +5183 5 2 2 5 4047 4111 1135 1127 4048 4112 1136 1128 +5184 5 2 2 5 4048 4112 1136 1128 673 681 132 131 +5185 5 2 2 5 45 44 312 304 1237 1236 4113 4049 +5186 5 2 2 5 1237 1236 4113 4049 1245 1244 4114 4050 +5187 5 2 2 5 1245 1244 4114 4050 1253 1252 4115 4051 +5188 5 2 2 5 1253 1252 4115 4051 1261 1260 4116 4052 +5189 5 2 2 5 1261 1260 4116 4052 1269 1268 4117 4053 +5190 5 2 2 5 1269 1268 4117 4053 1277 1276 4118 4054 +5191 5 2 2 5 1277 1276 4118 4054 1285 1284 4119 4055 +5192 5 2 2 5 1285 1284 4119 4055 1293 1292 4120 4056 +5193 5 2 2 5 1293 1292 4120 4056 181 180 696 688 +5194 5 2 2 5 304 312 311 303 4049 4113 4121 4057 +5195 5 2 2 5 4049 4113 4121 4057 4050 4114 4122 4058 +5196 5 2 2 5 4050 4114 4122 4058 4051 4115 4123 4059 +5197 5 2 2 5 4051 4115 4123 4059 4052 4116 4124 4060 +5198 5 2 2 5 4052 4116 4124 4060 4053 4117 4125 4061 +5199 5 2 2 5 4053 4117 4125 4061 4054 4118 4126 4062 +5200 5 2 2 5 4054 4118 4126 4062 4055 4119 4127 4063 +5201 5 2 2 5 4055 4119 4127 4063 4056 4120 4128 4064 +5202 5 2 2 5 4056 4120 4128 4064 688 696 695 687 +5203 5 2 2 5 303 311 310 302 4057 4121 4129 4065 +5204 5 2 2 5 4057 4121 4129 4065 4058 4122 4130 4066 +5205 5 2 2 5 4058 4122 4130 4066 4059 4123 4131 4067 +5206 5 2 2 5 4059 4123 4131 4067 4060 4124 4132 4068 +5207 5 2 2 5 4060 4124 4132 4068 4061 4125 4133 4069 +5208 5 2 2 5 4061 4125 4133 4069 4062 4126 4134 4070 +5209 5 2 2 5 4062 4126 4134 4070 4063 4127 4135 4071 +5210 5 2 2 5 4063 4127 4135 4071 4064 4128 4136 4072 +5211 5 2 2 5 4064 4128 4136 4072 687 695 694 686 +5212 5 2 2 5 302 310 309 301 4065 4129 4137 4073 +5213 5 2 2 5 4065 4129 4137 4073 4066 4130 4138 4074 +5214 5 2 2 5 4066 4130 4138 4074 4067 4131 4139 4075 +5215 5 2 2 5 4067 4131 4139 4075 4068 4132 4140 4076 +5216 5 2 2 5 4068 4132 4140 4076 4069 4133 4141 4077 +5217 5 2 2 5 4069 4133 4141 4077 4070 4134 4142 4078 +5218 5 2 2 5 4070 4134 4142 4078 4071 4135 4143 4079 +5219 5 2 2 5 4071 4135 4143 4079 4072 4136 4144 4080 +5220 5 2 2 5 4072 4136 4144 4080 686 694 693 685 +5221 5 2 2 5 301 309 308 300 4073 4137 4145 4081 +5222 5 2 2 5 4073 4137 4145 4081 4074 4138 4146 4082 +5223 5 2 2 5 4074 4138 4146 4082 4075 4139 4147 4083 +5224 5 2 2 5 4075 4139 4147 4083 4076 4140 4148 4084 +5225 5 2 2 5 4076 4140 4148 4084 4077 4141 4149 4085 +5226 5 2 2 5 4077 4141 4149 4085 4078 4142 4150 4086 +5227 5 2 2 5 4078 4142 4150 4086 4079 4143 4151 4087 +5228 5 2 2 5 4079 4143 4151 4087 4080 4144 4152 4088 +5229 5 2 2 5 4080 4144 4152 4088 685 693 692 684 +5230 5 2 2 5 300 308 307 299 4081 4145 4153 4089 +5231 5 2 2 5 4081 4145 4153 4089 4082 4146 4154 4090 +5232 5 2 2 5 4082 4146 4154 4090 4083 4147 4155 4091 +5233 5 2 2 5 4083 4147 4155 4091 4084 4148 4156 4092 +5234 5 2 2 5 4084 4148 4156 4092 4085 4149 4157 4093 +5235 5 2 2 5 4085 4149 4157 4093 4086 4150 4158 4094 +5236 5 2 2 5 4086 4150 4158 4094 4087 4151 4159 4095 +5237 5 2 2 5 4087 4151 4159 4095 4088 4152 4160 4096 +5238 5 2 2 5 4088 4152 4160 4096 684 692 691 683 +5239 5 2 2 5 299 307 306 298 4089 4153 4161 4097 +5240 5 2 2 5 4089 4153 4161 4097 4090 4154 4162 4098 +5241 5 2 2 5 4090 4154 4162 4098 4091 4155 4163 4099 +5242 5 2 2 5 4091 4155 4163 4099 4092 4156 4164 4100 +5243 5 2 2 5 4092 4156 4164 4100 4093 4157 4165 4101 +5244 5 2 2 5 4093 4157 4165 4101 4094 4158 4166 4102 +5245 5 2 2 5 4094 4158 4166 4102 4095 4159 4167 4103 +5246 5 2 2 5 4095 4159 4167 4103 4096 4160 4168 4104 +5247 5 2 2 5 4096 4160 4168 4104 683 691 690 682 +5248 5 2 2 5 298 306 305 297 4097 4161 4169 4105 +5249 5 2 2 5 4097 4161 4169 4105 4098 4162 4170 4106 +5250 5 2 2 5 4098 4162 4170 4106 4099 4163 4171 4107 +5251 5 2 2 5 4099 4163 4171 4107 4100 4164 4172 4108 +5252 5 2 2 5 4100 4164 4172 4108 4101 4165 4173 4109 +5253 5 2 2 5 4101 4165 4173 4109 4102 4166 4174 4110 +5254 5 2 2 5 4102 4166 4174 4110 4103 4167 4175 4111 +5255 5 2 2 5 4103 4167 4175 4111 4104 4168 4176 4112 +5256 5 2 2 5 4104 4168 4176 4112 682 690 689 681 +5257 5 2 2 5 297 305 29 28 4105 4169 1137 1129 +5258 5 2 2 5 4105 4169 1137 1129 4106 4170 1138 1130 +5259 5 2 2 5 4106 4170 1138 1130 4107 4171 1139 1131 +5260 5 2 2 5 4107 4171 1139 1131 4108 4172 1140 1132 +5261 5 2 2 5 4108 4172 1140 1132 4109 4173 1141 1133 +5262 5 2 2 5 4109 4173 1141 1133 4110 4174 1142 1134 +5263 5 2 2 5 4110 4174 1142 1134 4111 4175 1143 1135 +5264 5 2 2 5 4111 4175 1143 1135 4112 4176 1144 1136 +5265 5 2 2 5 4112 4176 1144 1136 681 689 133 132 +5266 5 2 2 5 44 43 320 312 1236 1235 4177 4113 +5267 5 2 2 5 1236 1235 4177 4113 1244 1243 4178 4114 +5268 5 2 2 5 1244 1243 4178 4114 1252 1251 4179 4115 +5269 5 2 2 5 1252 1251 4179 4115 1260 1259 4180 4116 +5270 5 2 2 5 1260 1259 4180 4116 1268 1267 4181 4117 +5271 5 2 2 5 1268 1267 4181 4117 1276 1275 4182 4118 +5272 5 2 2 5 1276 1275 4182 4118 1284 1283 4183 4119 +5273 5 2 2 5 1284 1283 4183 4119 1292 1291 4184 4120 +5274 5 2 2 5 1292 1291 4184 4120 180 179 704 696 +5275 5 2 2 5 312 320 319 311 4113 4177 4185 4121 +5276 5 2 2 5 4113 4177 4185 4121 4114 4178 4186 4122 +5277 5 2 2 5 4114 4178 4186 4122 4115 4179 4187 4123 +5278 5 2 2 5 4115 4179 4187 4123 4116 4180 4188 4124 +5279 5 2 2 5 4116 4180 4188 4124 4117 4181 4189 4125 +5280 5 2 2 5 4117 4181 4189 4125 4118 4182 4190 4126 +5281 5 2 2 5 4118 4182 4190 4126 4119 4183 4191 4127 +5282 5 2 2 5 4119 4183 4191 4127 4120 4184 4192 4128 +5283 5 2 2 5 4120 4184 4192 4128 696 704 703 695 +5284 5 2 2 5 311 319 318 310 4121 4185 4193 4129 +5285 5 2 2 5 4121 4185 4193 4129 4122 4186 4194 4130 +5286 5 2 2 5 4122 4186 4194 4130 4123 4187 4195 4131 +5287 5 2 2 5 4123 4187 4195 4131 4124 4188 4196 4132 +5288 5 2 2 5 4124 4188 4196 4132 4125 4189 4197 4133 +5289 5 2 2 5 4125 4189 4197 4133 4126 4190 4198 4134 +5290 5 2 2 5 4126 4190 4198 4134 4127 4191 4199 4135 +5291 5 2 2 5 4127 4191 4199 4135 4128 4192 4200 4136 +5292 5 2 2 5 4128 4192 4200 4136 695 703 702 694 +5293 5 2 2 5 310 318 317 309 4129 4193 4201 4137 +5294 5 2 2 5 4129 4193 4201 4137 4130 4194 4202 4138 +5295 5 2 2 5 4130 4194 4202 4138 4131 4195 4203 4139 +5296 5 2 2 5 4131 4195 4203 4139 4132 4196 4204 4140 +5297 5 2 2 5 4132 4196 4204 4140 4133 4197 4205 4141 +5298 5 2 2 5 4133 4197 4205 4141 4134 4198 4206 4142 +5299 5 2 2 5 4134 4198 4206 4142 4135 4199 4207 4143 +5300 5 2 2 5 4135 4199 4207 4143 4136 4200 4208 4144 +5301 5 2 2 5 4136 4200 4208 4144 694 702 701 693 +5302 5 2 2 5 309 317 316 308 4137 4201 4209 4145 +5303 5 2 2 5 4137 4201 4209 4145 4138 4202 4210 4146 +5304 5 2 2 5 4138 4202 4210 4146 4139 4203 4211 4147 +5305 5 2 2 5 4139 4203 4211 4147 4140 4204 4212 4148 +5306 5 2 2 5 4140 4204 4212 4148 4141 4205 4213 4149 +5307 5 2 2 5 4141 4205 4213 4149 4142 4206 4214 4150 +5308 5 2 2 5 4142 4206 4214 4150 4143 4207 4215 4151 +5309 5 2 2 5 4143 4207 4215 4151 4144 4208 4216 4152 +5310 5 2 2 5 4144 4208 4216 4152 693 701 700 692 +5311 5 2 2 5 308 316 315 307 4145 4209 4217 4153 +5312 5 2 2 5 4145 4209 4217 4153 4146 4210 4218 4154 +5313 5 2 2 5 4146 4210 4218 4154 4147 4211 4219 4155 +5314 5 2 2 5 4147 4211 4219 4155 4148 4212 4220 4156 +5315 5 2 2 5 4148 4212 4220 4156 4149 4213 4221 4157 +5316 5 2 2 5 4149 4213 4221 4157 4150 4214 4222 4158 +5317 5 2 2 5 4150 4214 4222 4158 4151 4215 4223 4159 +5318 5 2 2 5 4151 4215 4223 4159 4152 4216 4224 4160 +5319 5 2 2 5 4152 4216 4224 4160 692 700 699 691 +5320 5 2 2 5 307 315 314 306 4153 4217 4225 4161 +5321 5 2 2 5 4153 4217 4225 4161 4154 4218 4226 4162 +5322 5 2 2 5 4154 4218 4226 4162 4155 4219 4227 4163 +5323 5 2 2 5 4155 4219 4227 4163 4156 4220 4228 4164 +5324 5 2 2 5 4156 4220 4228 4164 4157 4221 4229 4165 +5325 5 2 2 5 4157 4221 4229 4165 4158 4222 4230 4166 +5326 5 2 2 5 4158 4222 4230 4166 4159 4223 4231 4167 +5327 5 2 2 5 4159 4223 4231 4167 4160 4224 4232 4168 +5328 5 2 2 5 4160 4224 4232 4168 691 699 698 690 +5329 5 2 2 5 306 314 313 305 4161 4225 4233 4169 +5330 5 2 2 5 4161 4225 4233 4169 4162 4226 4234 4170 +5331 5 2 2 5 4162 4226 4234 4170 4163 4227 4235 4171 +5332 5 2 2 5 4163 4227 4235 4171 4164 4228 4236 4172 +5333 5 2 2 5 4164 4228 4236 4172 4165 4229 4237 4173 +5334 5 2 2 5 4165 4229 4237 4173 4166 4230 4238 4174 +5335 5 2 2 5 4166 4230 4238 4174 4167 4231 4239 4175 +5336 5 2 2 5 4167 4231 4239 4175 4168 4232 4240 4176 +5337 5 2 2 5 4168 4232 4240 4176 690 698 697 689 +5338 5 2 2 5 305 313 30 29 4169 4233 1145 1137 +5339 5 2 2 5 4169 4233 1145 1137 4170 4234 1146 1138 +5340 5 2 2 5 4170 4234 1146 1138 4171 4235 1147 1139 +5341 5 2 2 5 4171 4235 1147 1139 4172 4236 1148 1140 +5342 5 2 2 5 4172 4236 1148 1140 4173 4237 1149 1141 +5343 5 2 2 5 4173 4237 1149 1141 4174 4238 1150 1142 +5344 5 2 2 5 4174 4238 1150 1142 4175 4239 1151 1143 +5345 5 2 2 5 4175 4239 1151 1143 4176 4240 1152 1144 +5346 5 2 2 5 4176 4240 1152 1144 689 697 134 133 +5347 5 2 2 5 43 42 328 320 1235 1234 4241 4177 +5348 5 2 2 5 1235 1234 4241 4177 1243 1242 4242 4178 +5349 5 2 2 5 1243 1242 4242 4178 1251 1250 4243 4179 +5350 5 2 2 5 1251 1250 4243 4179 1259 1258 4244 4180 +5351 5 2 2 5 1259 1258 4244 4180 1267 1266 4245 4181 +5352 5 2 2 5 1267 1266 4245 4181 1275 1274 4246 4182 +5353 5 2 2 5 1275 1274 4246 4182 1283 1282 4247 4183 +5354 5 2 2 5 1283 1282 4247 4183 1291 1290 4248 4184 +5355 5 2 2 5 1291 1290 4248 4184 179 178 712 704 +5356 5 2 2 5 320 328 327 319 4177 4241 4249 4185 +5357 5 2 2 5 4177 4241 4249 4185 4178 4242 4250 4186 +5358 5 2 2 5 4178 4242 4250 4186 4179 4243 4251 4187 +5359 5 2 2 5 4179 4243 4251 4187 4180 4244 4252 4188 +5360 5 2 2 5 4180 4244 4252 4188 4181 4245 4253 4189 +5361 5 2 2 5 4181 4245 4253 4189 4182 4246 4254 4190 +5362 5 2 2 5 4182 4246 4254 4190 4183 4247 4255 4191 +5363 5 2 2 5 4183 4247 4255 4191 4184 4248 4256 4192 +5364 5 2 2 5 4184 4248 4256 4192 704 712 711 703 +5365 5 2 2 5 319 327 326 318 4185 4249 4257 4193 +5366 5 2 2 5 4185 4249 4257 4193 4186 4250 4258 4194 +5367 5 2 2 5 4186 4250 4258 4194 4187 4251 4259 4195 +5368 5 2 2 5 4187 4251 4259 4195 4188 4252 4260 4196 +5369 5 2 2 5 4188 4252 4260 4196 4189 4253 4261 4197 +5370 5 2 2 5 4189 4253 4261 4197 4190 4254 4262 4198 +5371 5 2 2 5 4190 4254 4262 4198 4191 4255 4263 4199 +5372 5 2 2 5 4191 4255 4263 4199 4192 4256 4264 4200 +5373 5 2 2 5 4192 4256 4264 4200 703 711 710 702 +5374 5 2 2 5 318 326 325 317 4193 4257 4265 4201 +5375 5 2 2 5 4193 4257 4265 4201 4194 4258 4266 4202 +5376 5 2 2 5 4194 4258 4266 4202 4195 4259 4267 4203 +5377 5 2 2 5 4195 4259 4267 4203 4196 4260 4268 4204 +5378 5 2 2 5 4196 4260 4268 4204 4197 4261 4269 4205 +5379 5 2 2 5 4197 4261 4269 4205 4198 4262 4270 4206 +5380 5 2 2 5 4198 4262 4270 4206 4199 4263 4271 4207 +5381 5 2 2 5 4199 4263 4271 4207 4200 4264 4272 4208 +5382 5 2 2 5 4200 4264 4272 4208 702 710 709 701 +5383 5 2 2 5 317 325 324 316 4201 4265 4273 4209 +5384 5 2 2 5 4201 4265 4273 4209 4202 4266 4274 4210 +5385 5 2 2 5 4202 4266 4274 4210 4203 4267 4275 4211 +5386 5 2 2 5 4203 4267 4275 4211 4204 4268 4276 4212 +5387 5 2 2 5 4204 4268 4276 4212 4205 4269 4277 4213 +5388 5 2 2 5 4205 4269 4277 4213 4206 4270 4278 4214 +5389 5 2 2 5 4206 4270 4278 4214 4207 4271 4279 4215 +5390 5 2 2 5 4207 4271 4279 4215 4208 4272 4280 4216 +5391 5 2 2 5 4208 4272 4280 4216 701 709 708 700 +5392 5 2 2 5 316 324 323 315 4209 4273 4281 4217 +5393 5 2 2 5 4209 4273 4281 4217 4210 4274 4282 4218 +5394 5 2 2 5 4210 4274 4282 4218 4211 4275 4283 4219 +5395 5 2 2 5 4211 4275 4283 4219 4212 4276 4284 4220 +5396 5 2 2 5 4212 4276 4284 4220 4213 4277 4285 4221 +5397 5 2 2 5 4213 4277 4285 4221 4214 4278 4286 4222 +5398 5 2 2 5 4214 4278 4286 4222 4215 4279 4287 4223 +5399 5 2 2 5 4215 4279 4287 4223 4216 4280 4288 4224 +5400 5 2 2 5 4216 4280 4288 4224 700 708 707 699 +5401 5 2 2 5 315 323 322 314 4217 4281 4289 4225 +5402 5 2 2 5 4217 4281 4289 4225 4218 4282 4290 4226 +5403 5 2 2 5 4218 4282 4290 4226 4219 4283 4291 4227 +5404 5 2 2 5 4219 4283 4291 4227 4220 4284 4292 4228 +5405 5 2 2 5 4220 4284 4292 4228 4221 4285 4293 4229 +5406 5 2 2 5 4221 4285 4293 4229 4222 4286 4294 4230 +5407 5 2 2 5 4222 4286 4294 4230 4223 4287 4295 4231 +5408 5 2 2 5 4223 4287 4295 4231 4224 4288 4296 4232 +5409 5 2 2 5 4224 4288 4296 4232 699 707 706 698 +5410 5 2 2 5 314 322 321 313 4225 4289 4297 4233 +5411 5 2 2 5 4225 4289 4297 4233 4226 4290 4298 4234 +5412 5 2 2 5 4226 4290 4298 4234 4227 4291 4299 4235 +5413 5 2 2 5 4227 4291 4299 4235 4228 4292 4300 4236 +5414 5 2 2 5 4228 4292 4300 4236 4229 4293 4301 4237 +5415 5 2 2 5 4229 4293 4301 4237 4230 4294 4302 4238 +5416 5 2 2 5 4230 4294 4302 4238 4231 4295 4303 4239 +5417 5 2 2 5 4231 4295 4303 4239 4232 4296 4304 4240 +5418 5 2 2 5 4232 4296 4304 4240 698 706 705 697 +5419 5 2 2 5 313 321 31 30 4233 4297 1153 1145 +5420 5 2 2 5 4233 4297 1153 1145 4234 4298 1154 1146 +5421 5 2 2 5 4234 4298 1154 1146 4235 4299 1155 1147 +5422 5 2 2 5 4235 4299 1155 1147 4236 4300 1156 1148 +5423 5 2 2 5 4236 4300 1156 1148 4237 4301 1157 1149 +5424 5 2 2 5 4237 4301 1157 1149 4238 4302 1158 1150 +5425 5 2 2 5 4238 4302 1158 1150 4239 4303 1159 1151 +5426 5 2 2 5 4239 4303 1159 1151 4240 4304 1160 1152 +5427 5 2 2 5 4240 4304 1160 1152 697 705 135 134 +5428 5 2 2 5 42 41 336 328 1234 1233 4305 4241 +5429 5 2 2 5 1234 1233 4305 4241 1242 1241 4306 4242 +5430 5 2 2 5 1242 1241 4306 4242 1250 1249 4307 4243 +5431 5 2 2 5 1250 1249 4307 4243 1258 1257 4308 4244 +5432 5 2 2 5 1258 1257 4308 4244 1266 1265 4309 4245 +5433 5 2 2 5 1266 1265 4309 4245 1274 1273 4310 4246 +5434 5 2 2 5 1274 1273 4310 4246 1282 1281 4311 4247 +5435 5 2 2 5 1282 1281 4311 4247 1290 1289 4312 4248 +5436 5 2 2 5 1290 1289 4312 4248 178 177 720 712 +5437 5 2 2 5 328 336 335 327 4241 4305 4313 4249 +5438 5 2 2 5 4241 4305 4313 4249 4242 4306 4314 4250 +5439 5 2 2 5 4242 4306 4314 4250 4243 4307 4315 4251 +5440 5 2 2 5 4243 4307 4315 4251 4244 4308 4316 4252 +5441 5 2 2 5 4244 4308 4316 4252 4245 4309 4317 4253 +5442 5 2 2 5 4245 4309 4317 4253 4246 4310 4318 4254 +5443 5 2 2 5 4246 4310 4318 4254 4247 4311 4319 4255 +5444 5 2 2 5 4247 4311 4319 4255 4248 4312 4320 4256 +5445 5 2 2 5 4248 4312 4320 4256 712 720 719 711 +5446 5 2 2 5 327 335 334 326 4249 4313 4321 4257 +5447 5 2 2 5 4249 4313 4321 4257 4250 4314 4322 4258 +5448 5 2 2 5 4250 4314 4322 4258 4251 4315 4323 4259 +5449 5 2 2 5 4251 4315 4323 4259 4252 4316 4324 4260 +5450 5 2 2 5 4252 4316 4324 4260 4253 4317 4325 4261 +5451 5 2 2 5 4253 4317 4325 4261 4254 4318 4326 4262 +5452 5 2 2 5 4254 4318 4326 4262 4255 4319 4327 4263 +5453 5 2 2 5 4255 4319 4327 4263 4256 4320 4328 4264 +5454 5 2 2 5 4256 4320 4328 4264 711 719 718 710 +5455 5 2 2 5 326 334 333 325 4257 4321 4329 4265 +5456 5 2 2 5 4257 4321 4329 4265 4258 4322 4330 4266 +5457 5 2 2 5 4258 4322 4330 4266 4259 4323 4331 4267 +5458 5 2 2 5 4259 4323 4331 4267 4260 4324 4332 4268 +5459 5 2 2 5 4260 4324 4332 4268 4261 4325 4333 4269 +5460 5 2 2 5 4261 4325 4333 4269 4262 4326 4334 4270 +5461 5 2 2 5 4262 4326 4334 4270 4263 4327 4335 4271 +5462 5 2 2 5 4263 4327 4335 4271 4264 4328 4336 4272 +5463 5 2 2 5 4264 4328 4336 4272 710 718 717 709 +5464 5 2 2 5 325 333 332 324 4265 4329 4337 4273 +5465 5 2 2 5 4265 4329 4337 4273 4266 4330 4338 4274 +5466 5 2 2 5 4266 4330 4338 4274 4267 4331 4339 4275 +5467 5 2 2 5 4267 4331 4339 4275 4268 4332 4340 4276 +5468 5 2 2 5 4268 4332 4340 4276 4269 4333 4341 4277 +5469 5 2 2 5 4269 4333 4341 4277 4270 4334 4342 4278 +5470 5 2 2 5 4270 4334 4342 4278 4271 4335 4343 4279 +5471 5 2 2 5 4271 4335 4343 4279 4272 4336 4344 4280 +5472 5 2 2 5 4272 4336 4344 4280 709 717 716 708 +5473 5 2 2 5 324 332 331 323 4273 4337 4345 4281 +5474 5 2 2 5 4273 4337 4345 4281 4274 4338 4346 4282 +5475 5 2 2 5 4274 4338 4346 4282 4275 4339 4347 4283 +5476 5 2 2 5 4275 4339 4347 4283 4276 4340 4348 4284 +5477 5 2 2 5 4276 4340 4348 4284 4277 4341 4349 4285 +5478 5 2 2 5 4277 4341 4349 4285 4278 4342 4350 4286 +5479 5 2 2 5 4278 4342 4350 4286 4279 4343 4351 4287 +5480 5 2 2 5 4279 4343 4351 4287 4280 4344 4352 4288 +5481 5 2 2 5 4280 4344 4352 4288 708 716 715 707 +5482 5 2 2 5 323 331 330 322 4281 4345 4353 4289 +5483 5 2 2 5 4281 4345 4353 4289 4282 4346 4354 4290 +5484 5 2 2 5 4282 4346 4354 4290 4283 4347 4355 4291 +5485 5 2 2 5 4283 4347 4355 4291 4284 4348 4356 4292 +5486 5 2 2 5 4284 4348 4356 4292 4285 4349 4357 4293 +5487 5 2 2 5 4285 4349 4357 4293 4286 4350 4358 4294 +5488 5 2 2 5 4286 4350 4358 4294 4287 4351 4359 4295 +5489 5 2 2 5 4287 4351 4359 4295 4288 4352 4360 4296 +5490 5 2 2 5 4288 4352 4360 4296 707 715 714 706 +5491 5 2 2 5 322 330 329 321 4289 4353 4361 4297 +5492 5 2 2 5 4289 4353 4361 4297 4290 4354 4362 4298 +5493 5 2 2 5 4290 4354 4362 4298 4291 4355 4363 4299 +5494 5 2 2 5 4291 4355 4363 4299 4292 4356 4364 4300 +5495 5 2 2 5 4292 4356 4364 4300 4293 4357 4365 4301 +5496 5 2 2 5 4293 4357 4365 4301 4294 4358 4366 4302 +5497 5 2 2 5 4294 4358 4366 4302 4295 4359 4367 4303 +5498 5 2 2 5 4295 4359 4367 4303 4296 4360 4368 4304 +5499 5 2 2 5 4296 4360 4368 4304 706 714 713 705 +5500 5 2 2 5 321 329 32 31 4297 4361 1161 1153 +5501 5 2 2 5 4297 4361 1161 1153 4298 4362 1162 1154 +5502 5 2 2 5 4298 4362 1162 1154 4299 4363 1163 1155 +5503 5 2 2 5 4299 4363 1163 1155 4300 4364 1164 1156 +5504 5 2 2 5 4300 4364 1164 1156 4301 4365 1165 1157 +5505 5 2 2 5 4301 4365 1165 1157 4302 4366 1166 1158 +5506 5 2 2 5 4302 4366 1166 1158 4303 4367 1167 1159 +5507 5 2 2 5 4303 4367 1167 1159 4304 4368 1168 1160 +5508 5 2 2 5 4304 4368 1168 1160 705 713 136 135 +5509 5 2 2 5 41 5 40 336 1233 209 1176 4305 +5510 5 2 2 5 1233 209 1176 4305 1241 210 1184 4306 +5511 5 2 2 5 1241 210 1184 4306 1249 211 1192 4307 +5512 5 2 2 5 1249 211 1192 4307 1257 212 1200 4308 +5513 5 2 2 5 1257 212 1200 4308 1265 213 1208 4309 +5514 5 2 2 5 1265 213 1208 4309 1273 214 1216 4310 +5515 5 2 2 5 1273 214 1216 4310 1281 215 1224 4311 +5516 5 2 2 5 1281 215 1224 4311 1289 216 1232 4312 +5517 5 2 2 5 1289 216 1232 4312 177 15 176 720 +5518 5 2 2 5 336 40 39 335 4305 1176 1175 4313 +5519 5 2 2 5 4305 1176 1175 4313 4306 1184 1183 4314 +5520 5 2 2 5 4306 1184 1183 4314 4307 1192 1191 4315 +5521 5 2 2 5 4307 1192 1191 4315 4308 1200 1199 4316 +5522 5 2 2 5 4308 1200 1199 4316 4309 1208 1207 4317 +5523 5 2 2 5 4309 1208 1207 4317 4310 1216 1215 4318 +5524 5 2 2 5 4310 1216 1215 4318 4311 1224 1223 4319 +5525 5 2 2 5 4311 1224 1223 4319 4312 1232 1231 4320 +5526 5 2 2 5 4312 1232 1231 4320 720 176 175 719 +5527 5 2 2 5 335 39 38 334 4313 1175 1174 4321 +5528 5 2 2 5 4313 1175 1174 4321 4314 1183 1182 4322 +5529 5 2 2 5 4314 1183 1182 4322 4315 1191 1190 4323 +5530 5 2 2 5 4315 1191 1190 4323 4316 1199 1198 4324 +5531 5 2 2 5 4316 1199 1198 4324 4317 1207 1206 4325 +5532 5 2 2 5 4317 1207 1206 4325 4318 1215 1214 4326 +5533 5 2 2 5 4318 1215 1214 4326 4319 1223 1222 4327 +5534 5 2 2 5 4319 1223 1222 4327 4320 1231 1230 4328 +5535 5 2 2 5 4320 1231 1230 4328 719 175 174 718 +5536 5 2 2 5 334 38 37 333 4321 1174 1173 4329 +5537 5 2 2 5 4321 1174 1173 4329 4322 1182 1181 4330 +5538 5 2 2 5 4322 1182 1181 4330 4323 1190 1189 4331 +5539 5 2 2 5 4323 1190 1189 4331 4324 1198 1197 4332 +5540 5 2 2 5 4324 1198 1197 4332 4325 1206 1205 4333 +5541 5 2 2 5 4325 1206 1205 4333 4326 1214 1213 4334 +5542 5 2 2 5 4326 1214 1213 4334 4327 1222 1221 4335 +5543 5 2 2 5 4327 1222 1221 4335 4328 1230 1229 4336 +5544 5 2 2 5 4328 1230 1229 4336 718 174 173 717 +5545 5 2 2 5 333 37 36 332 4329 1173 1172 4337 +5546 5 2 2 5 4329 1173 1172 4337 4330 1181 1180 4338 +5547 5 2 2 5 4330 1181 1180 4338 4331 1189 1188 4339 +5548 5 2 2 5 4331 1189 1188 4339 4332 1197 1196 4340 +5549 5 2 2 5 4332 1197 1196 4340 4333 1205 1204 4341 +5550 5 2 2 5 4333 1205 1204 4341 4334 1213 1212 4342 +5551 5 2 2 5 4334 1213 1212 4342 4335 1221 1220 4343 +5552 5 2 2 5 4335 1221 1220 4343 4336 1229 1228 4344 +5553 5 2 2 5 4336 1229 1228 4344 717 173 172 716 +5554 5 2 2 5 332 36 35 331 4337 1172 1171 4345 +5555 5 2 2 5 4337 1172 1171 4345 4338 1180 1179 4346 +5556 5 2 2 5 4338 1180 1179 4346 4339 1188 1187 4347 +5557 5 2 2 5 4339 1188 1187 4347 4340 1196 1195 4348 +5558 5 2 2 5 4340 1196 1195 4348 4341 1204 1203 4349 +5559 5 2 2 5 4341 1204 1203 4349 4342 1212 1211 4350 +5560 5 2 2 5 4342 1212 1211 4350 4343 1220 1219 4351 +5561 5 2 2 5 4343 1220 1219 4351 4344 1228 1227 4352 +5562 5 2 2 5 4344 1228 1227 4352 716 172 171 715 +5563 5 2 2 5 331 35 34 330 4345 1171 1170 4353 +5564 5 2 2 5 4345 1171 1170 4353 4346 1179 1178 4354 +5565 5 2 2 5 4346 1179 1178 4354 4347 1187 1186 4355 +5566 5 2 2 5 4347 1187 1186 4355 4348 1195 1194 4356 +5567 5 2 2 5 4348 1195 1194 4356 4349 1203 1202 4357 +5568 5 2 2 5 4349 1203 1202 4357 4350 1211 1210 4358 +5569 5 2 2 5 4350 1211 1210 4358 4351 1219 1218 4359 +5570 5 2 2 5 4351 1219 1218 4359 4352 1227 1226 4360 +5571 5 2 2 5 4352 1227 1226 4360 715 171 170 714 +5572 5 2 2 5 330 34 33 329 4353 1170 1169 4361 +5573 5 2 2 5 4353 1170 1169 4361 4354 1178 1177 4362 +5574 5 2 2 5 4354 1178 1177 4362 4355 1186 1185 4363 +5575 5 2 2 5 4355 1186 1185 4363 4356 1194 1193 4364 +5576 5 2 2 5 4356 1194 1193 4364 4357 1202 1201 4365 +5577 5 2 2 5 4357 1202 1201 4365 4358 1210 1209 4366 +5578 5 2 2 5 4358 1210 1209 4366 4359 1218 1217 4367 +5579 5 2 2 5 4359 1218 1217 4367 4360 1226 1225 4368 +5580 5 2 2 5 4360 1226 1225 4368 714 170 169 713 +5581 5 2 2 5 329 33 1 32 4361 1169 217 1161 +5582 5 2 2 5 4361 1169 217 1161 4362 1177 218 1162 +5583 5 2 2 5 4362 1177 218 1162 4363 1185 219 1163 +5584 5 2 2 5 4363 1185 219 1163 4364 1193 220 1164 +5585 5 2 2 5 4364 1193 220 1164 4365 1201 221 1165 +5586 5 2 2 5 4365 1201 221 1165 4366 1209 222 1166 +5587 5 2 2 5 4366 1209 222 1166 4367 1217 223 1167 +5588 5 2 2 5 4367 1217 223 1167 4368 1225 224 1168 +5589 5 2 2 5 4368 1225 224 1168 713 169 11 136 +5590 5 2 2 6 4 88 464 105 265 1361 4369 1553 +5591 5 2 2 6 265 1361 4369 1553 266 1369 4370 1554 +5592 5 2 2 6 266 1369 4370 1554 267 1377 4371 1555 +5593 5 2 2 6 267 1377 4371 1555 268 1385 4372 1556 +5594 5 2 2 6 268 1385 4372 1556 269 1393 4373 1557 +5595 5 2 2 6 269 1393 4373 1557 270 1401 4374 1558 +5596 5 2 2 6 270 1401 4374 1558 271 1409 4375 1559 +5597 5 2 2 6 271 1409 4375 1559 272 1417 4376 1560 +5598 5 2 2 6 272 1417 4376 1560 9 120 536 153 +5599 5 2 2 6 105 464 456 106 1553 4369 4377 1561 +5600 5 2 2 6 1553 4369 4377 1561 1554 4370 4378 1562 +5601 5 2 2 6 1554 4370 4378 1562 1555 4371 4379 1563 +5602 5 2 2 6 1555 4371 4379 1563 1556 4372 4380 1564 +5603 5 2 2 6 1556 4372 4380 1564 1557 4373 4381 1565 +5604 5 2 2 6 1557 4373 4381 1565 1558 4374 4382 1566 +5605 5 2 2 6 1558 4374 4382 1566 1559 4375 4383 1567 +5606 5 2 2 6 1559 4375 4383 1567 1560 4376 4384 1568 +5607 5 2 2 6 1560 4376 4384 1568 153 536 544 154 +5608 5 2 2 6 106 456 448 107 1561 4377 4385 1569 +5609 5 2 2 6 1561 4377 4385 1569 1562 4378 4386 1570 +5610 5 2 2 6 1562 4378 4386 1570 1563 4379 4387 1571 +5611 5 2 2 6 1563 4379 4387 1571 1564 4380 4388 1572 +5612 5 2 2 6 1564 4380 4388 1572 1565 4381 4389 1573 +5613 5 2 2 6 1565 4381 4389 1573 1566 4382 4390 1574 +5614 5 2 2 6 1566 4382 4390 1574 1567 4383 4391 1575 +5615 5 2 2 6 1567 4383 4391 1575 1568 4384 4392 1576 +5616 5 2 2 6 1568 4384 4392 1576 154 544 552 155 +5617 5 2 2 6 107 448 440 108 1569 4385 4393 1577 +5618 5 2 2 6 1569 4385 4393 1577 1570 4386 4394 1578 +5619 5 2 2 6 1570 4386 4394 1578 1571 4387 4395 1579 +5620 5 2 2 6 1571 4387 4395 1579 1572 4388 4396 1580 +5621 5 2 2 6 1572 4388 4396 1580 1573 4389 4397 1581 +5622 5 2 2 6 1573 4389 4397 1581 1574 4390 4398 1582 +5623 5 2 2 6 1574 4390 4398 1582 1575 4391 4399 1583 +5624 5 2 2 6 1575 4391 4399 1583 1576 4392 4400 1584 +5625 5 2 2 6 1576 4392 4400 1584 155 552 560 156 +5626 5 2 2 6 108 440 432 109 1577 4393 4401 1585 +5627 5 2 2 6 1577 4393 4401 1585 1578 4394 4402 1586 +5628 5 2 2 6 1578 4394 4402 1586 1579 4395 4403 1587 +5629 5 2 2 6 1579 4395 4403 1587 1580 4396 4404 1588 +5630 5 2 2 6 1580 4396 4404 1588 1581 4397 4405 1589 +5631 5 2 2 6 1581 4397 4405 1589 1582 4398 4406 1590 +5632 5 2 2 6 1582 4398 4406 1590 1583 4399 4407 1591 +5633 5 2 2 6 1583 4399 4407 1591 1584 4400 4408 1592 +5634 5 2 2 6 1584 4400 4408 1592 156 560 568 157 +5635 5 2 2 6 109 432 424 110 1585 4401 4409 1593 +5636 5 2 2 6 1585 4401 4409 1593 1586 4402 4410 1594 +5637 5 2 2 6 1586 4402 4410 1594 1587 4403 4411 1595 +5638 5 2 2 6 1587 4403 4411 1595 1588 4404 4412 1596 +5639 5 2 2 6 1588 4404 4412 1596 1589 4405 4413 1597 +5640 5 2 2 6 1589 4405 4413 1597 1590 4406 4414 1598 +5641 5 2 2 6 1590 4406 4414 1598 1591 4407 4415 1599 +5642 5 2 2 6 1591 4407 4415 1599 1592 4408 4416 1600 +5643 5 2 2 6 1592 4408 4416 1600 157 568 576 158 +5644 5 2 2 6 110 424 416 111 1593 4409 4417 1601 +5645 5 2 2 6 1593 4409 4417 1601 1594 4410 4418 1602 +5646 5 2 2 6 1594 4410 4418 1602 1595 4411 4419 1603 +5647 5 2 2 6 1595 4411 4419 1603 1596 4412 4420 1604 +5648 5 2 2 6 1596 4412 4420 1604 1597 4413 4421 1605 +5649 5 2 2 6 1597 4413 4421 1605 1598 4414 4422 1606 +5650 5 2 2 6 1598 4414 4422 1606 1599 4415 4423 1607 +5651 5 2 2 6 1599 4415 4423 1607 1600 4416 4424 1608 +5652 5 2 2 6 1600 4416 4424 1608 158 576 584 159 +5653 5 2 2 6 111 416 408 112 1601 4417 4425 1609 +5654 5 2 2 6 1601 4417 4425 1609 1602 4418 4426 1610 +5655 5 2 2 6 1602 4418 4426 1610 1603 4419 4427 1611 +5656 5 2 2 6 1603 4419 4427 1611 1604 4420 4428 1612 +5657 5 2 2 6 1604 4420 4428 1612 1605 4421 4429 1613 +5658 5 2 2 6 1605 4421 4429 1613 1606 4422 4430 1614 +5659 5 2 2 6 1606 4422 4430 1614 1607 4423 4431 1615 +5660 5 2 2 6 1607 4423 4431 1615 1608 4424 4432 1616 +5661 5 2 2 6 1608 4424 4432 1616 159 584 592 160 +5662 5 2 2 6 112 408 80 8 1609 4425 1688 257 +5663 5 2 2 6 1609 4425 1688 257 1610 4426 1687 258 +5664 5 2 2 6 1610 4426 1687 258 1611 4427 1686 259 +5665 5 2 2 6 1611 4427 1686 259 1612 4428 1685 260 +5666 5 2 2 6 1612 4428 1685 260 1613 4429 1684 261 +5667 5 2 2 6 1613 4429 1684 261 1614 4430 1683 262 +5668 5 2 2 6 1614 4430 1683 262 1615 4431 1682 263 +5669 5 2 2 6 1615 4431 1682 263 1616 4432 1681 264 +5670 5 2 2 6 1616 4432 1681 264 160 592 193 13 +5671 5 2 2 6 88 87 463 464 1361 1362 4433 4369 +5672 5 2 2 6 1361 1362 4433 4369 1369 1370 4434 4370 +5673 5 2 2 6 1369 1370 4434 4370 1377 1378 4435 4371 +5674 5 2 2 6 1377 1378 4435 4371 1385 1386 4436 4372 +5675 5 2 2 6 1385 1386 4436 4372 1393 1394 4437 4373 +5676 5 2 2 6 1393 1394 4437 4373 1401 1402 4438 4374 +5677 5 2 2 6 1401 1402 4438 4374 1409 1410 4439 4375 +5678 5 2 2 6 1409 1410 4439 4375 1417 1418 4440 4376 +5679 5 2 2 6 1417 1418 4440 4376 120 119 535 536 +5680 5 2 2 6 464 463 455 456 4369 4433 4441 4377 +5681 5 2 2 6 4369 4433 4441 4377 4370 4434 4442 4378 +5682 5 2 2 6 4370 4434 4442 4378 4371 4435 4443 4379 +5683 5 2 2 6 4371 4435 4443 4379 4372 4436 4444 4380 +5684 5 2 2 6 4372 4436 4444 4380 4373 4437 4445 4381 +5685 5 2 2 6 4373 4437 4445 4381 4374 4438 4446 4382 +5686 5 2 2 6 4374 4438 4446 4382 4375 4439 4447 4383 +5687 5 2 2 6 4375 4439 4447 4383 4376 4440 4448 4384 +5688 5 2 2 6 4376 4440 4448 4384 536 535 543 544 +5689 5 2 2 6 456 455 447 448 4377 4441 4449 4385 +5690 5 2 2 6 4377 4441 4449 4385 4378 4442 4450 4386 +5691 5 2 2 6 4378 4442 4450 4386 4379 4443 4451 4387 +5692 5 2 2 6 4379 4443 4451 4387 4380 4444 4452 4388 +5693 5 2 2 6 4380 4444 4452 4388 4381 4445 4453 4389 +5694 5 2 2 6 4381 4445 4453 4389 4382 4446 4454 4390 +5695 5 2 2 6 4382 4446 4454 4390 4383 4447 4455 4391 +5696 5 2 2 6 4383 4447 4455 4391 4384 4448 4456 4392 +5697 5 2 2 6 4384 4448 4456 4392 544 543 551 552 +5698 5 2 2 6 448 447 439 440 4385 4449 4457 4393 +5699 5 2 2 6 4385 4449 4457 4393 4386 4450 4458 4394 +5700 5 2 2 6 4386 4450 4458 4394 4387 4451 4459 4395 +5701 5 2 2 6 4387 4451 4459 4395 4388 4452 4460 4396 +5702 5 2 2 6 4388 4452 4460 4396 4389 4453 4461 4397 +5703 5 2 2 6 4389 4453 4461 4397 4390 4454 4462 4398 +5704 5 2 2 6 4390 4454 4462 4398 4391 4455 4463 4399 +5705 5 2 2 6 4391 4455 4463 4399 4392 4456 4464 4400 +5706 5 2 2 6 4392 4456 4464 4400 552 551 559 560 +5707 5 2 2 6 440 439 431 432 4393 4457 4465 4401 +5708 5 2 2 6 4393 4457 4465 4401 4394 4458 4466 4402 +5709 5 2 2 6 4394 4458 4466 4402 4395 4459 4467 4403 +5710 5 2 2 6 4395 4459 4467 4403 4396 4460 4468 4404 +5711 5 2 2 6 4396 4460 4468 4404 4397 4461 4469 4405 +5712 5 2 2 6 4397 4461 4469 4405 4398 4462 4470 4406 +5713 5 2 2 6 4398 4462 4470 4406 4399 4463 4471 4407 +5714 5 2 2 6 4399 4463 4471 4407 4400 4464 4472 4408 +5715 5 2 2 6 4400 4464 4472 4408 560 559 567 568 +5716 5 2 2 6 432 431 423 424 4401 4465 4473 4409 +5717 5 2 2 6 4401 4465 4473 4409 4402 4466 4474 4410 +5718 5 2 2 6 4402 4466 4474 4410 4403 4467 4475 4411 +5719 5 2 2 6 4403 4467 4475 4411 4404 4468 4476 4412 +5720 5 2 2 6 4404 4468 4476 4412 4405 4469 4477 4413 +5721 5 2 2 6 4405 4469 4477 4413 4406 4470 4478 4414 +5722 5 2 2 6 4406 4470 4478 4414 4407 4471 4479 4415 +5723 5 2 2 6 4407 4471 4479 4415 4408 4472 4480 4416 +5724 5 2 2 6 4408 4472 4480 4416 568 567 575 576 +5725 5 2 2 6 424 423 415 416 4409 4473 4481 4417 +5726 5 2 2 6 4409 4473 4481 4417 4410 4474 4482 4418 +5727 5 2 2 6 4410 4474 4482 4418 4411 4475 4483 4419 +5728 5 2 2 6 4411 4475 4483 4419 4412 4476 4484 4420 +5729 5 2 2 6 4412 4476 4484 4420 4413 4477 4485 4421 +5730 5 2 2 6 4413 4477 4485 4421 4414 4478 4486 4422 +5731 5 2 2 6 4414 4478 4486 4422 4415 4479 4487 4423 +5732 5 2 2 6 4415 4479 4487 4423 4416 4480 4488 4424 +5733 5 2 2 6 4416 4480 4488 4424 576 575 583 584 +5734 5 2 2 6 416 415 407 408 4417 4481 4489 4425 +5735 5 2 2 6 4417 4481 4489 4425 4418 4482 4490 4426 +5736 5 2 2 6 4418 4482 4490 4426 4419 4483 4491 4427 +5737 5 2 2 6 4419 4483 4491 4427 4420 4484 4492 4428 +5738 5 2 2 6 4420 4484 4492 4428 4421 4485 4493 4429 +5739 5 2 2 6 4421 4485 4493 4429 4422 4486 4494 4430 +5740 5 2 2 6 4422 4486 4494 4430 4423 4487 4495 4431 +5741 5 2 2 6 4423 4487 4495 4431 4424 4488 4496 4432 +5742 5 2 2 6 4424 4488 4496 4432 584 583 591 592 +5743 5 2 2 6 408 407 79 80 4425 4489 1696 1688 +5744 5 2 2 6 4425 4489 1696 1688 4426 4490 1695 1687 +5745 5 2 2 6 4426 4490 1695 1687 4427 4491 1694 1686 +5746 5 2 2 6 4427 4491 1694 1686 4428 4492 1693 1685 +5747 5 2 2 6 4428 4492 1693 1685 4429 4493 1692 1684 +5748 5 2 2 6 4429 4493 1692 1684 4430 4494 1691 1683 +5749 5 2 2 6 4430 4494 1691 1683 4431 4495 1690 1682 +5750 5 2 2 6 4431 4495 1690 1682 4432 4496 1689 1681 +5751 5 2 2 6 4432 4496 1689 1681 592 591 194 193 +5752 5 2 2 6 87 86 462 463 1362 1363 4497 4433 +5753 5 2 2 6 1362 1363 4497 4433 1370 1371 4498 4434 +5754 5 2 2 6 1370 1371 4498 4434 1378 1379 4499 4435 +5755 5 2 2 6 1378 1379 4499 4435 1386 1387 4500 4436 +5756 5 2 2 6 1386 1387 4500 4436 1394 1395 4501 4437 +5757 5 2 2 6 1394 1395 4501 4437 1402 1403 4502 4438 +5758 5 2 2 6 1402 1403 4502 4438 1410 1411 4503 4439 +5759 5 2 2 6 1410 1411 4503 4439 1418 1419 4504 4440 +5760 5 2 2 6 1418 1419 4504 4440 119 118 534 535 +5761 5 2 2 6 463 462 454 455 4433 4497 4505 4441 +5762 5 2 2 6 4433 4497 4505 4441 4434 4498 4506 4442 +5763 5 2 2 6 4434 4498 4506 4442 4435 4499 4507 4443 +5764 5 2 2 6 4435 4499 4507 4443 4436 4500 4508 4444 +5765 5 2 2 6 4436 4500 4508 4444 4437 4501 4509 4445 +5766 5 2 2 6 4437 4501 4509 4445 4438 4502 4510 4446 +5767 5 2 2 6 4438 4502 4510 4446 4439 4503 4511 4447 +5768 5 2 2 6 4439 4503 4511 4447 4440 4504 4512 4448 +5769 5 2 2 6 4440 4504 4512 4448 535 534 542 543 +5770 5 2 2 6 455 454 446 447 4441 4505 4513 4449 +5771 5 2 2 6 4441 4505 4513 4449 4442 4506 4514 4450 +5772 5 2 2 6 4442 4506 4514 4450 4443 4507 4515 4451 +5773 5 2 2 6 4443 4507 4515 4451 4444 4508 4516 4452 +5774 5 2 2 6 4444 4508 4516 4452 4445 4509 4517 4453 +5775 5 2 2 6 4445 4509 4517 4453 4446 4510 4518 4454 +5776 5 2 2 6 4446 4510 4518 4454 4447 4511 4519 4455 +5777 5 2 2 6 4447 4511 4519 4455 4448 4512 4520 4456 +5778 5 2 2 6 4448 4512 4520 4456 543 542 550 551 +5779 5 2 2 6 447 446 438 439 4449 4513 4521 4457 +5780 5 2 2 6 4449 4513 4521 4457 4450 4514 4522 4458 +5781 5 2 2 6 4450 4514 4522 4458 4451 4515 4523 4459 +5782 5 2 2 6 4451 4515 4523 4459 4452 4516 4524 4460 +5783 5 2 2 6 4452 4516 4524 4460 4453 4517 4525 4461 +5784 5 2 2 6 4453 4517 4525 4461 4454 4518 4526 4462 +5785 5 2 2 6 4454 4518 4526 4462 4455 4519 4527 4463 +5786 5 2 2 6 4455 4519 4527 4463 4456 4520 4528 4464 +5787 5 2 2 6 4456 4520 4528 4464 551 550 558 559 +5788 5 2 2 6 439 438 430 431 4457 4521 4529 4465 +5789 5 2 2 6 4457 4521 4529 4465 4458 4522 4530 4466 +5790 5 2 2 6 4458 4522 4530 4466 4459 4523 4531 4467 +5791 5 2 2 6 4459 4523 4531 4467 4460 4524 4532 4468 +5792 5 2 2 6 4460 4524 4532 4468 4461 4525 4533 4469 +5793 5 2 2 6 4461 4525 4533 4469 4462 4526 4534 4470 +5794 5 2 2 6 4462 4526 4534 4470 4463 4527 4535 4471 +5795 5 2 2 6 4463 4527 4535 4471 4464 4528 4536 4472 +5796 5 2 2 6 4464 4528 4536 4472 559 558 566 567 +5797 5 2 2 6 431 430 422 423 4465 4529 4537 4473 +5798 5 2 2 6 4465 4529 4537 4473 4466 4530 4538 4474 +5799 5 2 2 6 4466 4530 4538 4474 4467 4531 4539 4475 +5800 5 2 2 6 4467 4531 4539 4475 4468 4532 4540 4476 +5801 5 2 2 6 4468 4532 4540 4476 4469 4533 4541 4477 +5802 5 2 2 6 4469 4533 4541 4477 4470 4534 4542 4478 +5803 5 2 2 6 4470 4534 4542 4478 4471 4535 4543 4479 +5804 5 2 2 6 4471 4535 4543 4479 4472 4536 4544 4480 +5805 5 2 2 6 4472 4536 4544 4480 567 566 574 575 +5806 5 2 2 6 423 422 414 415 4473 4537 4545 4481 +5807 5 2 2 6 4473 4537 4545 4481 4474 4538 4546 4482 +5808 5 2 2 6 4474 4538 4546 4482 4475 4539 4547 4483 +5809 5 2 2 6 4475 4539 4547 4483 4476 4540 4548 4484 +5810 5 2 2 6 4476 4540 4548 4484 4477 4541 4549 4485 +5811 5 2 2 6 4477 4541 4549 4485 4478 4542 4550 4486 +5812 5 2 2 6 4478 4542 4550 4486 4479 4543 4551 4487 +5813 5 2 2 6 4479 4543 4551 4487 4480 4544 4552 4488 +5814 5 2 2 6 4480 4544 4552 4488 575 574 582 583 +5815 5 2 2 6 415 414 406 407 4481 4545 4553 4489 +5816 5 2 2 6 4481 4545 4553 4489 4482 4546 4554 4490 +5817 5 2 2 6 4482 4546 4554 4490 4483 4547 4555 4491 +5818 5 2 2 6 4483 4547 4555 4491 4484 4548 4556 4492 +5819 5 2 2 6 4484 4548 4556 4492 4485 4549 4557 4493 +5820 5 2 2 6 4485 4549 4557 4493 4486 4550 4558 4494 +5821 5 2 2 6 4486 4550 4558 4494 4487 4551 4559 4495 +5822 5 2 2 6 4487 4551 4559 4495 4488 4552 4560 4496 +5823 5 2 2 6 4488 4552 4560 4496 583 582 590 591 +5824 5 2 2 6 407 406 78 79 4489 4553 1704 1696 +5825 5 2 2 6 4489 4553 1704 1696 4490 4554 1703 1695 +5826 5 2 2 6 4490 4554 1703 1695 4491 4555 1702 1694 +5827 5 2 2 6 4491 4555 1702 1694 4492 4556 1701 1693 +5828 5 2 2 6 4492 4556 1701 1693 4493 4557 1700 1692 +5829 5 2 2 6 4493 4557 1700 1692 4494 4558 1699 1691 +5830 5 2 2 6 4494 4558 1699 1691 4495 4559 1698 1690 +5831 5 2 2 6 4495 4559 1698 1690 4496 4560 1697 1689 +5832 5 2 2 6 4496 4560 1697 1689 591 590 195 194 +5833 5 2 2 6 86 85 461 462 1363 1364 4561 4497 +5834 5 2 2 6 1363 1364 4561 4497 1371 1372 4562 4498 +5835 5 2 2 6 1371 1372 4562 4498 1379 1380 4563 4499 +5836 5 2 2 6 1379 1380 4563 4499 1387 1388 4564 4500 +5837 5 2 2 6 1387 1388 4564 4500 1395 1396 4565 4501 +5838 5 2 2 6 1395 1396 4565 4501 1403 1404 4566 4502 +5839 5 2 2 6 1403 1404 4566 4502 1411 1412 4567 4503 +5840 5 2 2 6 1411 1412 4567 4503 1419 1420 4568 4504 +5841 5 2 2 6 1419 1420 4568 4504 118 117 533 534 +5842 5 2 2 6 462 461 453 454 4497 4561 4569 4505 +5843 5 2 2 6 4497 4561 4569 4505 4498 4562 4570 4506 +5844 5 2 2 6 4498 4562 4570 4506 4499 4563 4571 4507 +5845 5 2 2 6 4499 4563 4571 4507 4500 4564 4572 4508 +5846 5 2 2 6 4500 4564 4572 4508 4501 4565 4573 4509 +5847 5 2 2 6 4501 4565 4573 4509 4502 4566 4574 4510 +5848 5 2 2 6 4502 4566 4574 4510 4503 4567 4575 4511 +5849 5 2 2 6 4503 4567 4575 4511 4504 4568 4576 4512 +5850 5 2 2 6 4504 4568 4576 4512 534 533 541 542 +5851 5 2 2 6 454 453 445 446 4505 4569 4577 4513 +5852 5 2 2 6 4505 4569 4577 4513 4506 4570 4578 4514 +5853 5 2 2 6 4506 4570 4578 4514 4507 4571 4579 4515 +5854 5 2 2 6 4507 4571 4579 4515 4508 4572 4580 4516 +5855 5 2 2 6 4508 4572 4580 4516 4509 4573 4581 4517 +5856 5 2 2 6 4509 4573 4581 4517 4510 4574 4582 4518 +5857 5 2 2 6 4510 4574 4582 4518 4511 4575 4583 4519 +5858 5 2 2 6 4511 4575 4583 4519 4512 4576 4584 4520 +5859 5 2 2 6 4512 4576 4584 4520 542 541 549 550 +5860 5 2 2 6 446 445 437 438 4513 4577 4585 4521 +5861 5 2 2 6 4513 4577 4585 4521 4514 4578 4586 4522 +5862 5 2 2 6 4514 4578 4586 4522 4515 4579 4587 4523 +5863 5 2 2 6 4515 4579 4587 4523 4516 4580 4588 4524 +5864 5 2 2 6 4516 4580 4588 4524 4517 4581 4589 4525 +5865 5 2 2 6 4517 4581 4589 4525 4518 4582 4590 4526 +5866 5 2 2 6 4518 4582 4590 4526 4519 4583 4591 4527 +5867 5 2 2 6 4519 4583 4591 4527 4520 4584 4592 4528 +5868 5 2 2 6 4520 4584 4592 4528 550 549 557 558 +5869 5 2 2 6 438 437 429 430 4521 4585 4593 4529 +5870 5 2 2 6 4521 4585 4593 4529 4522 4586 4594 4530 +5871 5 2 2 6 4522 4586 4594 4530 4523 4587 4595 4531 +5872 5 2 2 6 4523 4587 4595 4531 4524 4588 4596 4532 +5873 5 2 2 6 4524 4588 4596 4532 4525 4589 4597 4533 +5874 5 2 2 6 4525 4589 4597 4533 4526 4590 4598 4534 +5875 5 2 2 6 4526 4590 4598 4534 4527 4591 4599 4535 +5876 5 2 2 6 4527 4591 4599 4535 4528 4592 4600 4536 +5877 5 2 2 6 4528 4592 4600 4536 558 557 565 566 +5878 5 2 2 6 430 429 421 422 4529 4593 4601 4537 +5879 5 2 2 6 4529 4593 4601 4537 4530 4594 4602 4538 +5880 5 2 2 6 4530 4594 4602 4538 4531 4595 4603 4539 +5881 5 2 2 6 4531 4595 4603 4539 4532 4596 4604 4540 +5882 5 2 2 6 4532 4596 4604 4540 4533 4597 4605 4541 +5883 5 2 2 6 4533 4597 4605 4541 4534 4598 4606 4542 +5884 5 2 2 6 4534 4598 4606 4542 4535 4599 4607 4543 +5885 5 2 2 6 4535 4599 4607 4543 4536 4600 4608 4544 +5886 5 2 2 6 4536 4600 4608 4544 566 565 573 574 +5887 5 2 2 6 422 421 413 414 4537 4601 4609 4545 +5888 5 2 2 6 4537 4601 4609 4545 4538 4602 4610 4546 +5889 5 2 2 6 4538 4602 4610 4546 4539 4603 4611 4547 +5890 5 2 2 6 4539 4603 4611 4547 4540 4604 4612 4548 +5891 5 2 2 6 4540 4604 4612 4548 4541 4605 4613 4549 +5892 5 2 2 6 4541 4605 4613 4549 4542 4606 4614 4550 +5893 5 2 2 6 4542 4606 4614 4550 4543 4607 4615 4551 +5894 5 2 2 6 4543 4607 4615 4551 4544 4608 4616 4552 +5895 5 2 2 6 4544 4608 4616 4552 574 573 581 582 +5896 5 2 2 6 414 413 405 406 4545 4609 4617 4553 +5897 5 2 2 6 4545 4609 4617 4553 4546 4610 4618 4554 +5898 5 2 2 6 4546 4610 4618 4554 4547 4611 4619 4555 +5899 5 2 2 6 4547 4611 4619 4555 4548 4612 4620 4556 +5900 5 2 2 6 4548 4612 4620 4556 4549 4613 4621 4557 +5901 5 2 2 6 4549 4613 4621 4557 4550 4614 4622 4558 +5902 5 2 2 6 4550 4614 4622 4558 4551 4615 4623 4559 +5903 5 2 2 6 4551 4615 4623 4559 4552 4616 4624 4560 +5904 5 2 2 6 4552 4616 4624 4560 582 581 589 590 +5905 5 2 2 6 406 405 77 78 4553 4617 1712 1704 +5906 5 2 2 6 4553 4617 1712 1704 4554 4618 1711 1703 +5907 5 2 2 6 4554 4618 1711 1703 4555 4619 1710 1702 +5908 5 2 2 6 4555 4619 1710 1702 4556 4620 1709 1701 +5909 5 2 2 6 4556 4620 1709 1701 4557 4621 1708 1700 +5910 5 2 2 6 4557 4621 1708 1700 4558 4622 1707 1699 +5911 5 2 2 6 4558 4622 1707 1699 4559 4623 1706 1698 +5912 5 2 2 6 4559 4623 1706 1698 4560 4624 1705 1697 +5913 5 2 2 6 4560 4624 1705 1697 590 589 196 195 +5914 5 2 2 6 85 84 460 461 1364 1365 4625 4561 +5915 5 2 2 6 1364 1365 4625 4561 1372 1373 4626 4562 +5916 5 2 2 6 1372 1373 4626 4562 1380 1381 4627 4563 +5917 5 2 2 6 1380 1381 4627 4563 1388 1389 4628 4564 +5918 5 2 2 6 1388 1389 4628 4564 1396 1397 4629 4565 +5919 5 2 2 6 1396 1397 4629 4565 1404 1405 4630 4566 +5920 5 2 2 6 1404 1405 4630 4566 1412 1413 4631 4567 +5921 5 2 2 6 1412 1413 4631 4567 1420 1421 4632 4568 +5922 5 2 2 6 1420 1421 4632 4568 117 116 532 533 +5923 5 2 2 6 461 460 452 453 4561 4625 4633 4569 +5924 5 2 2 6 4561 4625 4633 4569 4562 4626 4634 4570 +5925 5 2 2 6 4562 4626 4634 4570 4563 4627 4635 4571 +5926 5 2 2 6 4563 4627 4635 4571 4564 4628 4636 4572 +5927 5 2 2 6 4564 4628 4636 4572 4565 4629 4637 4573 +5928 5 2 2 6 4565 4629 4637 4573 4566 4630 4638 4574 +5929 5 2 2 6 4566 4630 4638 4574 4567 4631 4639 4575 +5930 5 2 2 6 4567 4631 4639 4575 4568 4632 4640 4576 +5931 5 2 2 6 4568 4632 4640 4576 533 532 540 541 +5932 5 2 2 6 453 452 444 445 4569 4633 4641 4577 +5933 5 2 2 6 4569 4633 4641 4577 4570 4634 4642 4578 +5934 5 2 2 6 4570 4634 4642 4578 4571 4635 4643 4579 +5935 5 2 2 6 4571 4635 4643 4579 4572 4636 4644 4580 +5936 5 2 2 6 4572 4636 4644 4580 4573 4637 4645 4581 +5937 5 2 2 6 4573 4637 4645 4581 4574 4638 4646 4582 +5938 5 2 2 6 4574 4638 4646 4582 4575 4639 4647 4583 +5939 5 2 2 6 4575 4639 4647 4583 4576 4640 4648 4584 +5940 5 2 2 6 4576 4640 4648 4584 541 540 548 549 +5941 5 2 2 6 445 444 436 437 4577 4641 4649 4585 +5942 5 2 2 6 4577 4641 4649 4585 4578 4642 4650 4586 +5943 5 2 2 6 4578 4642 4650 4586 4579 4643 4651 4587 +5944 5 2 2 6 4579 4643 4651 4587 4580 4644 4652 4588 +5945 5 2 2 6 4580 4644 4652 4588 4581 4645 4653 4589 +5946 5 2 2 6 4581 4645 4653 4589 4582 4646 4654 4590 +5947 5 2 2 6 4582 4646 4654 4590 4583 4647 4655 4591 +5948 5 2 2 6 4583 4647 4655 4591 4584 4648 4656 4592 +5949 5 2 2 6 4584 4648 4656 4592 549 548 556 557 +5950 5 2 2 6 437 436 428 429 4585 4649 4657 4593 +5951 5 2 2 6 4585 4649 4657 4593 4586 4650 4658 4594 +5952 5 2 2 6 4586 4650 4658 4594 4587 4651 4659 4595 +5953 5 2 2 6 4587 4651 4659 4595 4588 4652 4660 4596 +5954 5 2 2 6 4588 4652 4660 4596 4589 4653 4661 4597 +5955 5 2 2 6 4589 4653 4661 4597 4590 4654 4662 4598 +5956 5 2 2 6 4590 4654 4662 4598 4591 4655 4663 4599 +5957 5 2 2 6 4591 4655 4663 4599 4592 4656 4664 4600 +5958 5 2 2 6 4592 4656 4664 4600 557 556 564 565 +5959 5 2 2 6 429 428 420 421 4593 4657 4665 4601 +5960 5 2 2 6 4593 4657 4665 4601 4594 4658 4666 4602 +5961 5 2 2 6 4594 4658 4666 4602 4595 4659 4667 4603 +5962 5 2 2 6 4595 4659 4667 4603 4596 4660 4668 4604 +5963 5 2 2 6 4596 4660 4668 4604 4597 4661 4669 4605 +5964 5 2 2 6 4597 4661 4669 4605 4598 4662 4670 4606 +5965 5 2 2 6 4598 4662 4670 4606 4599 4663 4671 4607 +5966 5 2 2 6 4599 4663 4671 4607 4600 4664 4672 4608 +5967 5 2 2 6 4600 4664 4672 4608 565 564 572 573 +5968 5 2 2 6 421 420 412 413 4601 4665 4673 4609 +5969 5 2 2 6 4601 4665 4673 4609 4602 4666 4674 4610 +5970 5 2 2 6 4602 4666 4674 4610 4603 4667 4675 4611 +5971 5 2 2 6 4603 4667 4675 4611 4604 4668 4676 4612 +5972 5 2 2 6 4604 4668 4676 4612 4605 4669 4677 4613 +5973 5 2 2 6 4605 4669 4677 4613 4606 4670 4678 4614 +5974 5 2 2 6 4606 4670 4678 4614 4607 4671 4679 4615 +5975 5 2 2 6 4607 4671 4679 4615 4608 4672 4680 4616 +5976 5 2 2 6 4608 4672 4680 4616 573 572 580 581 +5977 5 2 2 6 413 412 404 405 4609 4673 4681 4617 +5978 5 2 2 6 4609 4673 4681 4617 4610 4674 4682 4618 +5979 5 2 2 6 4610 4674 4682 4618 4611 4675 4683 4619 +5980 5 2 2 6 4611 4675 4683 4619 4612 4676 4684 4620 +5981 5 2 2 6 4612 4676 4684 4620 4613 4677 4685 4621 +5982 5 2 2 6 4613 4677 4685 4621 4614 4678 4686 4622 +5983 5 2 2 6 4614 4678 4686 4622 4615 4679 4687 4623 +5984 5 2 2 6 4615 4679 4687 4623 4616 4680 4688 4624 +5985 5 2 2 6 4616 4680 4688 4624 581 580 588 589 +5986 5 2 2 6 405 404 76 77 4617 4681 1720 1712 +5987 5 2 2 6 4617 4681 1720 1712 4618 4682 1719 1711 +5988 5 2 2 6 4618 4682 1719 1711 4619 4683 1718 1710 +5989 5 2 2 6 4619 4683 1718 1710 4620 4684 1717 1709 +5990 5 2 2 6 4620 4684 1717 1709 4621 4685 1716 1708 +5991 5 2 2 6 4621 4685 1716 1708 4622 4686 1715 1707 +5992 5 2 2 6 4622 4686 1715 1707 4623 4687 1714 1706 +5993 5 2 2 6 4623 4687 1714 1706 4624 4688 1713 1705 +5994 5 2 2 6 4624 4688 1713 1705 589 588 197 196 +5995 5 2 2 6 84 83 459 460 1365 1366 4689 4625 +5996 5 2 2 6 1365 1366 4689 4625 1373 1374 4690 4626 +5997 5 2 2 6 1373 1374 4690 4626 1381 1382 4691 4627 +5998 5 2 2 6 1381 1382 4691 4627 1389 1390 4692 4628 +5999 5 2 2 6 1389 1390 4692 4628 1397 1398 4693 4629 +6000 5 2 2 6 1397 1398 4693 4629 1405 1406 4694 4630 +6001 5 2 2 6 1405 1406 4694 4630 1413 1414 4695 4631 +6002 5 2 2 6 1413 1414 4695 4631 1421 1422 4696 4632 +6003 5 2 2 6 1421 1422 4696 4632 116 115 531 532 +6004 5 2 2 6 460 459 451 452 4625 4689 4697 4633 +6005 5 2 2 6 4625 4689 4697 4633 4626 4690 4698 4634 +6006 5 2 2 6 4626 4690 4698 4634 4627 4691 4699 4635 +6007 5 2 2 6 4627 4691 4699 4635 4628 4692 4700 4636 +6008 5 2 2 6 4628 4692 4700 4636 4629 4693 4701 4637 +6009 5 2 2 6 4629 4693 4701 4637 4630 4694 4702 4638 +6010 5 2 2 6 4630 4694 4702 4638 4631 4695 4703 4639 +6011 5 2 2 6 4631 4695 4703 4639 4632 4696 4704 4640 +6012 5 2 2 6 4632 4696 4704 4640 532 531 539 540 +6013 5 2 2 6 452 451 443 444 4633 4697 4705 4641 +6014 5 2 2 6 4633 4697 4705 4641 4634 4698 4706 4642 +6015 5 2 2 6 4634 4698 4706 4642 4635 4699 4707 4643 +6016 5 2 2 6 4635 4699 4707 4643 4636 4700 4708 4644 +6017 5 2 2 6 4636 4700 4708 4644 4637 4701 4709 4645 +6018 5 2 2 6 4637 4701 4709 4645 4638 4702 4710 4646 +6019 5 2 2 6 4638 4702 4710 4646 4639 4703 4711 4647 +6020 5 2 2 6 4639 4703 4711 4647 4640 4704 4712 4648 +6021 5 2 2 6 4640 4704 4712 4648 540 539 547 548 +6022 5 2 2 6 444 443 435 436 4641 4705 4713 4649 +6023 5 2 2 6 4641 4705 4713 4649 4642 4706 4714 4650 +6024 5 2 2 6 4642 4706 4714 4650 4643 4707 4715 4651 +6025 5 2 2 6 4643 4707 4715 4651 4644 4708 4716 4652 +6026 5 2 2 6 4644 4708 4716 4652 4645 4709 4717 4653 +6027 5 2 2 6 4645 4709 4717 4653 4646 4710 4718 4654 +6028 5 2 2 6 4646 4710 4718 4654 4647 4711 4719 4655 +6029 5 2 2 6 4647 4711 4719 4655 4648 4712 4720 4656 +6030 5 2 2 6 4648 4712 4720 4656 548 547 555 556 +6031 5 2 2 6 436 435 427 428 4649 4713 4721 4657 +6032 5 2 2 6 4649 4713 4721 4657 4650 4714 4722 4658 +6033 5 2 2 6 4650 4714 4722 4658 4651 4715 4723 4659 +6034 5 2 2 6 4651 4715 4723 4659 4652 4716 4724 4660 +6035 5 2 2 6 4652 4716 4724 4660 4653 4717 4725 4661 +6036 5 2 2 6 4653 4717 4725 4661 4654 4718 4726 4662 +6037 5 2 2 6 4654 4718 4726 4662 4655 4719 4727 4663 +6038 5 2 2 6 4655 4719 4727 4663 4656 4720 4728 4664 +6039 5 2 2 6 4656 4720 4728 4664 556 555 563 564 +6040 5 2 2 6 428 427 419 420 4657 4721 4729 4665 +6041 5 2 2 6 4657 4721 4729 4665 4658 4722 4730 4666 +6042 5 2 2 6 4658 4722 4730 4666 4659 4723 4731 4667 +6043 5 2 2 6 4659 4723 4731 4667 4660 4724 4732 4668 +6044 5 2 2 6 4660 4724 4732 4668 4661 4725 4733 4669 +6045 5 2 2 6 4661 4725 4733 4669 4662 4726 4734 4670 +6046 5 2 2 6 4662 4726 4734 4670 4663 4727 4735 4671 +6047 5 2 2 6 4663 4727 4735 4671 4664 4728 4736 4672 +6048 5 2 2 6 4664 4728 4736 4672 564 563 571 572 +6049 5 2 2 6 420 419 411 412 4665 4729 4737 4673 +6050 5 2 2 6 4665 4729 4737 4673 4666 4730 4738 4674 +6051 5 2 2 6 4666 4730 4738 4674 4667 4731 4739 4675 +6052 5 2 2 6 4667 4731 4739 4675 4668 4732 4740 4676 +6053 5 2 2 6 4668 4732 4740 4676 4669 4733 4741 4677 +6054 5 2 2 6 4669 4733 4741 4677 4670 4734 4742 4678 +6055 5 2 2 6 4670 4734 4742 4678 4671 4735 4743 4679 +6056 5 2 2 6 4671 4735 4743 4679 4672 4736 4744 4680 +6057 5 2 2 6 4672 4736 4744 4680 572 571 579 580 +6058 5 2 2 6 412 411 403 404 4673 4737 4745 4681 +6059 5 2 2 6 4673 4737 4745 4681 4674 4738 4746 4682 +6060 5 2 2 6 4674 4738 4746 4682 4675 4739 4747 4683 +6061 5 2 2 6 4675 4739 4747 4683 4676 4740 4748 4684 +6062 5 2 2 6 4676 4740 4748 4684 4677 4741 4749 4685 +6063 5 2 2 6 4677 4741 4749 4685 4678 4742 4750 4686 +6064 5 2 2 6 4678 4742 4750 4686 4679 4743 4751 4687 +6065 5 2 2 6 4679 4743 4751 4687 4680 4744 4752 4688 +6066 5 2 2 6 4680 4744 4752 4688 580 579 587 588 +6067 5 2 2 6 404 403 75 76 4681 4745 1728 1720 +6068 5 2 2 6 4681 4745 1728 1720 4682 4746 1727 1719 +6069 5 2 2 6 4682 4746 1727 1719 4683 4747 1726 1718 +6070 5 2 2 6 4683 4747 1726 1718 4684 4748 1725 1717 +6071 5 2 2 6 4684 4748 1725 1717 4685 4749 1724 1716 +6072 5 2 2 6 4685 4749 1724 1716 4686 4750 1723 1715 +6073 5 2 2 6 4686 4750 1723 1715 4687 4751 1722 1714 +6074 5 2 2 6 4687 4751 1722 1714 4688 4752 1721 1713 +6075 5 2 2 6 4688 4752 1721 1713 588 587 198 197 +6076 5 2 2 6 83 82 458 459 1366 1367 4753 4689 +6077 5 2 2 6 1366 1367 4753 4689 1374 1375 4754 4690 +6078 5 2 2 6 1374 1375 4754 4690 1382 1383 4755 4691 +6079 5 2 2 6 1382 1383 4755 4691 1390 1391 4756 4692 +6080 5 2 2 6 1390 1391 4756 4692 1398 1399 4757 4693 +6081 5 2 2 6 1398 1399 4757 4693 1406 1407 4758 4694 +6082 5 2 2 6 1406 1407 4758 4694 1414 1415 4759 4695 +6083 5 2 2 6 1414 1415 4759 4695 1422 1423 4760 4696 +6084 5 2 2 6 1422 1423 4760 4696 115 114 530 531 +6085 5 2 2 6 459 458 450 451 4689 4753 4761 4697 +6086 5 2 2 6 4689 4753 4761 4697 4690 4754 4762 4698 +6087 5 2 2 6 4690 4754 4762 4698 4691 4755 4763 4699 +6088 5 2 2 6 4691 4755 4763 4699 4692 4756 4764 4700 +6089 5 2 2 6 4692 4756 4764 4700 4693 4757 4765 4701 +6090 5 2 2 6 4693 4757 4765 4701 4694 4758 4766 4702 +6091 5 2 2 6 4694 4758 4766 4702 4695 4759 4767 4703 +6092 5 2 2 6 4695 4759 4767 4703 4696 4760 4768 4704 +6093 5 2 2 6 4696 4760 4768 4704 531 530 538 539 +6094 5 2 2 6 451 450 442 443 4697 4761 4769 4705 +6095 5 2 2 6 4697 4761 4769 4705 4698 4762 4770 4706 +6096 5 2 2 6 4698 4762 4770 4706 4699 4763 4771 4707 +6097 5 2 2 6 4699 4763 4771 4707 4700 4764 4772 4708 +6098 5 2 2 6 4700 4764 4772 4708 4701 4765 4773 4709 +6099 5 2 2 6 4701 4765 4773 4709 4702 4766 4774 4710 +6100 5 2 2 6 4702 4766 4774 4710 4703 4767 4775 4711 +6101 5 2 2 6 4703 4767 4775 4711 4704 4768 4776 4712 +6102 5 2 2 6 4704 4768 4776 4712 539 538 546 547 +6103 5 2 2 6 443 442 434 435 4705 4769 4777 4713 +6104 5 2 2 6 4705 4769 4777 4713 4706 4770 4778 4714 +6105 5 2 2 6 4706 4770 4778 4714 4707 4771 4779 4715 +6106 5 2 2 6 4707 4771 4779 4715 4708 4772 4780 4716 +6107 5 2 2 6 4708 4772 4780 4716 4709 4773 4781 4717 +6108 5 2 2 6 4709 4773 4781 4717 4710 4774 4782 4718 +6109 5 2 2 6 4710 4774 4782 4718 4711 4775 4783 4719 +6110 5 2 2 6 4711 4775 4783 4719 4712 4776 4784 4720 +6111 5 2 2 6 4712 4776 4784 4720 547 546 554 555 +6112 5 2 2 6 435 434 426 427 4713 4777 4785 4721 +6113 5 2 2 6 4713 4777 4785 4721 4714 4778 4786 4722 +6114 5 2 2 6 4714 4778 4786 4722 4715 4779 4787 4723 +6115 5 2 2 6 4715 4779 4787 4723 4716 4780 4788 4724 +6116 5 2 2 6 4716 4780 4788 4724 4717 4781 4789 4725 +6117 5 2 2 6 4717 4781 4789 4725 4718 4782 4790 4726 +6118 5 2 2 6 4718 4782 4790 4726 4719 4783 4791 4727 +6119 5 2 2 6 4719 4783 4791 4727 4720 4784 4792 4728 +6120 5 2 2 6 4720 4784 4792 4728 555 554 562 563 +6121 5 2 2 6 427 426 418 419 4721 4785 4793 4729 +6122 5 2 2 6 4721 4785 4793 4729 4722 4786 4794 4730 +6123 5 2 2 6 4722 4786 4794 4730 4723 4787 4795 4731 +6124 5 2 2 6 4723 4787 4795 4731 4724 4788 4796 4732 +6125 5 2 2 6 4724 4788 4796 4732 4725 4789 4797 4733 +6126 5 2 2 6 4725 4789 4797 4733 4726 4790 4798 4734 +6127 5 2 2 6 4726 4790 4798 4734 4727 4791 4799 4735 +6128 5 2 2 6 4727 4791 4799 4735 4728 4792 4800 4736 +6129 5 2 2 6 4728 4792 4800 4736 563 562 570 571 +6130 5 2 2 6 419 418 410 411 4729 4793 4801 4737 +6131 5 2 2 6 4729 4793 4801 4737 4730 4794 4802 4738 +6132 5 2 2 6 4730 4794 4802 4738 4731 4795 4803 4739 +6133 5 2 2 6 4731 4795 4803 4739 4732 4796 4804 4740 +6134 5 2 2 6 4732 4796 4804 4740 4733 4797 4805 4741 +6135 5 2 2 6 4733 4797 4805 4741 4734 4798 4806 4742 +6136 5 2 2 6 4734 4798 4806 4742 4735 4799 4807 4743 +6137 5 2 2 6 4735 4799 4807 4743 4736 4800 4808 4744 +6138 5 2 2 6 4736 4800 4808 4744 571 570 578 579 +6139 5 2 2 6 411 410 402 403 4737 4801 4809 4745 +6140 5 2 2 6 4737 4801 4809 4745 4738 4802 4810 4746 +6141 5 2 2 6 4738 4802 4810 4746 4739 4803 4811 4747 +6142 5 2 2 6 4739 4803 4811 4747 4740 4804 4812 4748 +6143 5 2 2 6 4740 4804 4812 4748 4741 4805 4813 4749 +6144 5 2 2 6 4741 4805 4813 4749 4742 4806 4814 4750 +6145 5 2 2 6 4742 4806 4814 4750 4743 4807 4815 4751 +6146 5 2 2 6 4743 4807 4815 4751 4744 4808 4816 4752 +6147 5 2 2 6 4744 4808 4816 4752 579 578 586 587 +6148 5 2 2 6 403 402 74 75 4745 4809 1736 1728 +6149 5 2 2 6 4745 4809 1736 1728 4746 4810 1735 1727 +6150 5 2 2 6 4746 4810 1735 1727 4747 4811 1734 1726 +6151 5 2 2 6 4747 4811 1734 1726 4748 4812 1733 1725 +6152 5 2 2 6 4748 4812 1733 1725 4749 4813 1732 1724 +6153 5 2 2 6 4749 4813 1732 1724 4750 4814 1731 1723 +6154 5 2 2 6 4750 4814 1731 1723 4751 4815 1730 1722 +6155 5 2 2 6 4751 4815 1730 1722 4752 4816 1729 1721 +6156 5 2 2 6 4752 4816 1729 1721 587 586 199 198 +6157 5 2 2 6 82 81 457 458 1367 1368 4817 4753 +6158 5 2 2 6 1367 1368 4817 4753 1375 1376 4818 4754 +6159 5 2 2 6 1375 1376 4818 4754 1383 1384 4819 4755 +6160 5 2 2 6 1383 1384 4819 4755 1391 1392 4820 4756 +6161 5 2 2 6 1391 1392 4820 4756 1399 1400 4821 4757 +6162 5 2 2 6 1399 1400 4821 4757 1407 1408 4822 4758 +6163 5 2 2 6 1407 1408 4822 4758 1415 1416 4823 4759 +6164 5 2 2 6 1415 1416 4823 4759 1423 1424 4824 4760 +6165 5 2 2 6 1423 1424 4824 4760 114 113 529 530 +6166 5 2 2 6 458 457 449 450 4753 4817 4825 4761 +6167 5 2 2 6 4753 4817 4825 4761 4754 4818 4826 4762 +6168 5 2 2 6 4754 4818 4826 4762 4755 4819 4827 4763 +6169 5 2 2 6 4755 4819 4827 4763 4756 4820 4828 4764 +6170 5 2 2 6 4756 4820 4828 4764 4757 4821 4829 4765 +6171 5 2 2 6 4757 4821 4829 4765 4758 4822 4830 4766 +6172 5 2 2 6 4758 4822 4830 4766 4759 4823 4831 4767 +6173 5 2 2 6 4759 4823 4831 4767 4760 4824 4832 4768 +6174 5 2 2 6 4760 4824 4832 4768 530 529 537 538 +6175 5 2 2 6 450 449 441 442 4761 4825 4833 4769 +6176 5 2 2 6 4761 4825 4833 4769 4762 4826 4834 4770 +6177 5 2 2 6 4762 4826 4834 4770 4763 4827 4835 4771 +6178 5 2 2 6 4763 4827 4835 4771 4764 4828 4836 4772 +6179 5 2 2 6 4764 4828 4836 4772 4765 4829 4837 4773 +6180 5 2 2 6 4765 4829 4837 4773 4766 4830 4838 4774 +6181 5 2 2 6 4766 4830 4838 4774 4767 4831 4839 4775 +6182 5 2 2 6 4767 4831 4839 4775 4768 4832 4840 4776 +6183 5 2 2 6 4768 4832 4840 4776 538 537 545 546 +6184 5 2 2 6 442 441 433 434 4769 4833 4841 4777 +6185 5 2 2 6 4769 4833 4841 4777 4770 4834 4842 4778 +6186 5 2 2 6 4770 4834 4842 4778 4771 4835 4843 4779 +6187 5 2 2 6 4771 4835 4843 4779 4772 4836 4844 4780 +6188 5 2 2 6 4772 4836 4844 4780 4773 4837 4845 4781 +6189 5 2 2 6 4773 4837 4845 4781 4774 4838 4846 4782 +6190 5 2 2 6 4774 4838 4846 4782 4775 4839 4847 4783 +6191 5 2 2 6 4775 4839 4847 4783 4776 4840 4848 4784 +6192 5 2 2 6 4776 4840 4848 4784 546 545 553 554 +6193 5 2 2 6 434 433 425 426 4777 4841 4849 4785 +6194 5 2 2 6 4777 4841 4849 4785 4778 4842 4850 4786 +6195 5 2 2 6 4778 4842 4850 4786 4779 4843 4851 4787 +6196 5 2 2 6 4779 4843 4851 4787 4780 4844 4852 4788 +6197 5 2 2 6 4780 4844 4852 4788 4781 4845 4853 4789 +6198 5 2 2 6 4781 4845 4853 4789 4782 4846 4854 4790 +6199 5 2 2 6 4782 4846 4854 4790 4783 4847 4855 4791 +6200 5 2 2 6 4783 4847 4855 4791 4784 4848 4856 4792 +6201 5 2 2 6 4784 4848 4856 4792 554 553 561 562 +6202 5 2 2 6 426 425 417 418 4785 4849 4857 4793 +6203 5 2 2 6 4785 4849 4857 4793 4786 4850 4858 4794 +6204 5 2 2 6 4786 4850 4858 4794 4787 4851 4859 4795 +6205 5 2 2 6 4787 4851 4859 4795 4788 4852 4860 4796 +6206 5 2 2 6 4788 4852 4860 4796 4789 4853 4861 4797 +6207 5 2 2 6 4789 4853 4861 4797 4790 4854 4862 4798 +6208 5 2 2 6 4790 4854 4862 4798 4791 4855 4863 4799 +6209 5 2 2 6 4791 4855 4863 4799 4792 4856 4864 4800 +6210 5 2 2 6 4792 4856 4864 4800 562 561 569 570 +6211 5 2 2 6 418 417 409 410 4793 4857 4865 4801 +6212 5 2 2 6 4793 4857 4865 4801 4794 4858 4866 4802 +6213 5 2 2 6 4794 4858 4866 4802 4795 4859 4867 4803 +6214 5 2 2 6 4795 4859 4867 4803 4796 4860 4868 4804 +6215 5 2 2 6 4796 4860 4868 4804 4797 4861 4869 4805 +6216 5 2 2 6 4797 4861 4869 4805 4798 4862 4870 4806 +6217 5 2 2 6 4798 4862 4870 4806 4799 4863 4871 4807 +6218 5 2 2 6 4799 4863 4871 4807 4800 4864 4872 4808 +6219 5 2 2 6 4800 4864 4872 4808 570 569 577 578 +6220 5 2 2 6 410 409 401 402 4801 4865 4873 4809 +6221 5 2 2 6 4801 4865 4873 4809 4802 4866 4874 4810 +6222 5 2 2 6 4802 4866 4874 4810 4803 4867 4875 4811 +6223 5 2 2 6 4803 4867 4875 4811 4804 4868 4876 4812 +6224 5 2 2 6 4804 4868 4876 4812 4805 4869 4877 4813 +6225 5 2 2 6 4805 4869 4877 4813 4806 4870 4878 4814 +6226 5 2 2 6 4806 4870 4878 4814 4807 4871 4879 4815 +6227 5 2 2 6 4807 4871 4879 4815 4808 4872 4880 4816 +6228 5 2 2 6 4808 4872 4880 4816 578 577 585 586 +6229 5 2 2 6 402 401 73 74 4809 4873 1744 1736 +6230 5 2 2 6 4809 4873 1744 1736 4810 4874 1743 1735 +6231 5 2 2 6 4810 4874 1743 1735 4811 4875 1742 1734 +6232 5 2 2 6 4811 4875 1742 1734 4812 4876 1741 1733 +6233 5 2 2 6 4812 4876 1741 1733 4813 4877 1740 1732 +6234 5 2 2 6 4813 4877 1740 1732 4814 4878 1739 1731 +6235 5 2 2 6 4814 4878 1739 1731 4815 4879 1738 1730 +6236 5 2 2 6 4815 4879 1738 1730 4816 4880 1737 1729 +6237 5 2 2 6 4816 4880 1737 1729 586 585 200 199 +6238 5 2 2 6 81 3 64 457 1368 233 1673 4817 +6239 5 2 2 6 1368 233 1673 4817 1376 234 1674 4818 +6240 5 2 2 6 1376 234 1674 4818 1384 235 1675 4819 +6241 5 2 2 6 1384 235 1675 4819 1392 236 1676 4820 +6242 5 2 2 6 1392 236 1676 4820 1400 237 1677 4821 +6243 5 2 2 6 1400 237 1677 4821 1408 238 1678 4822 +6244 5 2 2 6 1408 238 1678 4822 1416 239 1679 4823 +6245 5 2 2 6 1416 239 1679 4823 1424 240 1680 4824 +6246 5 2 2 6 1424 240 1680 4824 113 10 145 529 +6247 5 2 2 6 457 64 63 449 4817 1673 1665 4825 +6248 5 2 2 6 4817 1673 1665 4825 4818 1674 1666 4826 +6249 5 2 2 6 4818 1674 1666 4826 4819 1675 1667 4827 +6250 5 2 2 6 4819 1675 1667 4827 4820 1676 1668 4828 +6251 5 2 2 6 4820 1676 1668 4828 4821 1677 1669 4829 +6252 5 2 2 6 4821 1677 1669 4829 4822 1678 1670 4830 +6253 5 2 2 6 4822 1678 1670 4830 4823 1679 1671 4831 +6254 5 2 2 6 4823 1679 1671 4831 4824 1680 1672 4832 +6255 5 2 2 6 4824 1680 1672 4832 529 145 146 537 +6256 5 2 2 6 449 63 62 441 4825 1665 1657 4833 +6257 5 2 2 6 4825 1665 1657 4833 4826 1666 1658 4834 +6258 5 2 2 6 4826 1666 1658 4834 4827 1667 1659 4835 +6259 5 2 2 6 4827 1667 1659 4835 4828 1668 1660 4836 +6260 5 2 2 6 4828 1668 1660 4836 4829 1669 1661 4837 +6261 5 2 2 6 4829 1669 1661 4837 4830 1670 1662 4838 +6262 5 2 2 6 4830 1670 1662 4838 4831 1671 1663 4839 +6263 5 2 2 6 4831 1671 1663 4839 4832 1672 1664 4840 +6264 5 2 2 6 4832 1672 1664 4840 537 146 147 545 +6265 5 2 2 6 441 62 61 433 4833 1657 1649 4841 +6266 5 2 2 6 4833 1657 1649 4841 4834 1658 1650 4842 +6267 5 2 2 6 4834 1658 1650 4842 4835 1659 1651 4843 +6268 5 2 2 6 4835 1659 1651 4843 4836 1660 1652 4844 +6269 5 2 2 6 4836 1660 1652 4844 4837 1661 1653 4845 +6270 5 2 2 6 4837 1661 1653 4845 4838 1662 1654 4846 +6271 5 2 2 6 4838 1662 1654 4846 4839 1663 1655 4847 +6272 5 2 2 6 4839 1663 1655 4847 4840 1664 1656 4848 +6273 5 2 2 6 4840 1664 1656 4848 545 147 148 553 +6274 5 2 2 6 433 61 60 425 4841 1649 1641 4849 +6275 5 2 2 6 4841 1649 1641 4849 4842 1650 1642 4850 +6276 5 2 2 6 4842 1650 1642 4850 4843 1651 1643 4851 +6277 5 2 2 6 4843 1651 1643 4851 4844 1652 1644 4852 +6278 5 2 2 6 4844 1652 1644 4852 4845 1653 1645 4853 +6279 5 2 2 6 4845 1653 1645 4853 4846 1654 1646 4854 +6280 5 2 2 6 4846 1654 1646 4854 4847 1655 1647 4855 +6281 5 2 2 6 4847 1655 1647 4855 4848 1656 1648 4856 +6282 5 2 2 6 4848 1656 1648 4856 553 148 149 561 +6283 5 2 2 6 425 60 59 417 4849 1641 1633 4857 +6284 5 2 2 6 4849 1641 1633 4857 4850 1642 1634 4858 +6285 5 2 2 6 4850 1642 1634 4858 4851 1643 1635 4859 +6286 5 2 2 6 4851 1643 1635 4859 4852 1644 1636 4860 +6287 5 2 2 6 4852 1644 1636 4860 4853 1645 1637 4861 +6288 5 2 2 6 4853 1645 1637 4861 4854 1646 1638 4862 +6289 5 2 2 6 4854 1646 1638 4862 4855 1647 1639 4863 +6290 5 2 2 6 4855 1647 1639 4863 4856 1648 1640 4864 +6291 5 2 2 6 4856 1648 1640 4864 561 149 150 569 +6292 5 2 2 6 417 59 58 409 4857 1633 1625 4865 +6293 5 2 2 6 4857 1633 1625 4865 4858 1634 1626 4866 +6294 5 2 2 6 4858 1634 1626 4866 4859 1635 1627 4867 +6295 5 2 2 6 4859 1635 1627 4867 4860 1636 1628 4868 +6296 5 2 2 6 4860 1636 1628 4868 4861 1637 1629 4869 +6297 5 2 2 6 4861 1637 1629 4869 4862 1638 1630 4870 +6298 5 2 2 6 4862 1638 1630 4870 4863 1639 1631 4871 +6299 5 2 2 6 4863 1639 1631 4871 4864 1640 1632 4872 +6300 5 2 2 6 4864 1640 1632 4872 569 150 151 577 +6301 5 2 2 6 409 58 57 401 4865 1625 1617 4873 +6302 5 2 2 6 4865 1625 1617 4873 4866 1626 1618 4874 +6303 5 2 2 6 4866 1626 1618 4874 4867 1627 1619 4875 +6304 5 2 2 6 4867 1627 1619 4875 4868 1628 1620 4876 +6305 5 2 2 6 4868 1628 1620 4876 4869 1629 1621 4877 +6306 5 2 2 6 4869 1629 1621 4877 4870 1630 1622 4878 +6307 5 2 2 6 4870 1630 1622 4878 4871 1631 1623 4879 +6308 5 2 2 6 4871 1631 1623 4879 4872 1632 1624 4880 +6309 5 2 2 6 4872 1632 1624 4880 577 151 152 585 +6310 5 2 2 6 401 57 7 73 4873 1617 225 1744 +6311 5 2 2 6 4873 1617 225 1744 4874 1618 226 1743 +6312 5 2 2 6 4874 1618 226 1743 4875 1619 227 1742 +6313 5 2 2 6 4875 1619 227 1742 4876 1620 228 1741 +6314 5 2 2 6 4876 1620 228 1741 4877 1621 229 1740 +6315 5 2 2 6 4877 1621 229 1740 4878 1622 230 1739 +6316 5 2 2 6 4878 1622 230 1739 4879 1623 231 1738 +6317 5 2 2 6 4879 1623 231 1738 4880 1624 232 1737 +6318 5 2 2 6 4880 1624 232 1737 585 152 14 200 +$EndElements diff --git a/data/disc-nurbs.mesh b/data/disc-nurbs.mesh new file mode 100644 index 000000000..13655d872 --- /dev/null +++ b/data/disc-nurbs.mesh @@ -0,0 +1,110 @@ +MFEM NURBS mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# SEGMENT = 1 +# SQUARE = 3 +# CUBE = 5 +# + +dimension +2 + +elements +5 +1 3 4 5 6 7 +1 3 0 1 5 4 +1 3 1 2 6 5 +1 3 3 7 6 2 +1 3 0 4 7 3 + +boundary +4 +1 1 0 1 +1 1 2 3 +1 1 1 2 +1 1 3 0 + +edges +12 +0 0 1 +0 4 5 +0 7 6 +0 3 2 +1 1 2 +1 5 6 +1 4 7 +1 0 3 +2 0 4 +2 1 5 +2 2 6 +2 3 7 + +vertices +8 + +knotvectors +3 +2 3 0 0 0 1 1 1 +2 3 0 0 0 1 1 1 +2 3 0 0 0 1 1 1 + +weights +1 1 1 1 1 1 1 1 + +0.7071067811865475244 +1 +1 +0.7071067811865475244 + +0.7071067811865475244 +1 +1 +0.7071067811865475244 + +1 +1 +1 +1 + +1 +0.8535533905932737622 +0.8535533905932737622 +0.8535533905932737622 +0.8535533905932737622 + +FiniteElementSpace +FiniteElementCollection: NURBS2 +VDim: 2 +Ordering: 1 + +-2 -2 +2 -2 +2 2 +-2 2 +-1 -1 +1 -1 +1 1 +-1 1 + +0 -4 +0 -1 +0 1 +0 4 + +4 0 +1 0 +-1 0 +-4 0 + +-1.5 -1.5 +1.5 -1.5 +1.5 1.5 +-1.5 1.5 + +0 0 +0 -2.5 +2.5 0 +0 2.5 +-2.5 0 diff --git a/data/refined.mesh b/data/refined.mesh new file mode 100644 index 000000000..04a6ac0c2 --- /dev/null +++ b/data/refined.mesh @@ -0,0 +1,69 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# PRISM = 6 +# PYRAMID = 7 +# + +dimension +2 + +elements +4 +1 3 0 1 5 4 +1 3 1 2 6 5 +1 3 2 3 7 6 +1 3 3 0 4 7 + +boundary +8 +1 1 0 1 +1 1 1 2 +1 1 2 3 +1 1 3 0 +1 1 5 4 +1 1 6 5 +1 1 7 6 +1 1 4 7 + +vertices +8 + +nodes +FiniteElementSpace +FiniteElementCollection: H1_2D_P2 +VDim: 2 +Ordering: 1 + +0 0 +1 0 +1 1 +0 1 +0.35857864 0.35857864 +0.64142136 0.35857864 +0.64142136 0.64142136 +0.35857864 0.64142136 +0.5 0 +0.83535534 0.16464466 +0.5 0.3 +0.16464466 0.16464466 +1 0.5 +0.83535534 0.83535534 +0.7 0.5 +0.5 1 +0.16464466 0.83535534 +0.5 0.7 +0 0.5 +0.3 0.5 +0.5 0.13453718 +0.86546282 0.5 +0.5 0.86546282 +0.13453718 0.5 diff --git a/data/trapezoid_quad.mesh b/data/trapezoid_quad.mesh new file mode 100644 index 000000000..dfccafeb7 --- /dev/null +++ b/data/trapezoid_quad.mesh @@ -0,0 +1,61 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see mesh/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# + +dimension +2 + +elements +4 +1 3 0 1 4 3 +1 3 1 2 5 4 +1 3 3 4 7 6 +1 3 4 5 8 7 + +boundary +8 +2 1 0 1 +2 1 1 2 +2 1 7 6 +2 1 8 7 +1 1 3 0 +1 1 6 3 +1 1 2 5 +1 1 5 8 + +vertices +9 + +nodes +FiniteElementSpace +FiniteElementCollection: Linear +VDim: 2 +Ordering: 0 + +0 +0.5 +1 +-0.25 +0.375 +1 +-0.5 +0.25 +1 +0 +0.125 +0.25 +0.5 +0.5 +0.5 +1 +1 +1 diff --git a/laghos.cpp b/laghos.cpp index 959b78579..c4a0bf974 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -58,6 +58,25 @@ // -m data/cube_922_hex.mesh -pt 911 for 9 / 72 / 576 / 4608 ... tasks. // -m data/cube_522_hex.mesh -pt 521 for 10 / 80 / 640 / 5120 ... tasks. // -m data/cube_12_hex.mesh -pt 322 for 12 / 96 / 768 / 6144 ... tasks. +// +// Wall BC tests: +// * penPar is the penalty Parameter +// * per is the perimeter of the bounding box of the domain +// 2D square: +// mpirun -np 4 laghos -m data/square01_quad.mesh -p 1 -rs 3 -tf 0.8 -s 7 -fa -vs 20 -vis +// 2D trapezoid: +// mpirun -np 4 laghos -m data/trapezoid_quad.mesh -p 1 -rs 2 -tf 1.5 -s 7 -fa -vs 20 -vis +// 2D circular hole: +// mpirun -np 4 laghos -m data/refined.mesh -p 1 -rs 2 -tf 0.8 -s 7 -fa -vs 20 -vis +// 2D disc (inside): +// mpirun -np 4 laghos -m data/disc-nurbs.mesh -p 1 -rs 3 -tf 10 -s 7 -fa -vs 20 -vis +// 2D disc (outside): +// mpirun -np 4 laghos -m data/convex.mesh -p 1 -rs 3 -tf 0.1 -s 7 -fa -vs 20 -vis +// 3D cube: +// mpirun -np 4 laghos -m data/cube01_hex.mesh -p 1 -rs 1 -tf 0.8 -s 7 -fa -vs 20 -vis +// 3D spherical hole: +// mpirun -np 4 laghos -m data/cube_gmsh_19.msh -p 1 -rs 0 -tf 0.8 -s 7 -fa -ok 3 -ot 2 -vs 1000 + #include #include @@ -201,6 +220,16 @@ int main(int argc, char *argv[]) } if (Mpi::Root()) { args.PrintOptions(cout); } + if (strcmp(mesh_file, "data/disc-nurbs.mesh") == 0) + { + blast_position[0] = - sqrt(8.0); + } + if (strcmp(mesh_file, "data/convex.mesh") == 0) + { + blast_position[0] = 0.7; + blast_position[1] = 0.5; + } + // Configure the device from the command line options Device backend; backend.Configure(device, dev); @@ -417,6 +446,8 @@ int main(int argc, char *argv[]) // Boundary conditions: all tests use v.n = 0 on the boundary, and we assume // that the boundaries are straight. Array ess_tdofs, ess_vdofs; + const bool BC_strong = false; + if (BC_strong) { Array ess_bdr(pmesh->bdr_attributes.Max()), dofs_marker, dofs_list; for (int d = 0; d < pmesh->Dimension(); d++) @@ -553,12 +584,13 @@ int main(int argc, char *argv[]) if (impose_visc) { visc = true; } hydrodynamics::LagrangianHydroOperator hydro(S.Size(), - H1FESpace, L2FESpace, ess_tdofs, + H1FESpace, L2FESpace, + ess_tdofs, BC_strong, rho0_coeff, rho0_gf, mat_gf, source, cfl, visc, vorticity, p_assembly, cg_tol, cg_max_iter, ftz_tol, - order_q); + order_q, 20.0, 12.0); socketstream vis_rho, vis_v, vis_e; char vishost[] = "localhost"; diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 0699352e7..f0676a25e 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -40,12 +40,18 @@ struct QuadratureData // It must be recomputed in every time step. DenseTensor stressJinvT; + // Quadrature data for the boundary force; + DenseTensor be_force_data; + // Quadrature data for the boundary mass matrix; + DenseTensor be_mass_data; + // Quadrature data used for full/partial assembly of the mass matrices. // At time zero, we compute and store (rho0 * det(J0) * qp_weight) at each // quadrature point. Note the at any other time, we can compute // rho = rho0 * det(J0) / det(J), representing the notion of pointwise mass // conservation. Vector rho0DetJ0w; + Vector rho0DetJ0_be; // Initial length scale. This represents a notion of local mesh size. // We assume that all initial zones have similar size. @@ -55,12 +61,51 @@ struct QuadratureData // recomputed at every time step to achieve adaptive time stepping. double dt_est; - QuadratureData(int dim, int NE, int quads_per_el) + QuadratureData(int dim, int NE, int quads_per_el, int NBE, int quads_per_be) : Jac0inv(dim, dim, NE * quads_per_el), stressJinvT(NE * quads_per_el, dim, dim), - rho0DetJ0w(NE * quads_per_el) { } + be_force_data(NBE, quads_per_be, dim), + be_mass_data(dim, dim, NBE * quads_per_be), + rho0DetJ0w(NE * quads_per_el), + rho0DetJ0_be(NBE * quads_per_be) { } +}; + +class BdrForceCoefficient : public VectorCoefficient +{ +private: + const QuadratureData &qdata; + +public: + BdrForceCoefficient(const QuadratureData &qd) + : VectorCoefficient(qd.Jac0inv.SizeI()), qdata(qd) { } + + void Eval(Vector &V, ElementTransformation &Tr_f, + const IntegrationPoint &ip_f) override + { + for (int d = 0; d < vdim; d++) + { + V(d) = qdata.be_force_data(Tr_f.ElementNo, ip_f.index, d); + } + } }; +class BdrMassCoefficient : public MatrixCoefficient +{ +private: + const QuadratureData &qdata; + const int nqp_per_face; + +public: + BdrMassCoefficient(const QuadratureData &qd) + : MatrixCoefficient(qd.Jac0inv.SizeI()), + qdata(qd), nqp_per_face(qdata.be_force_data.SizeJ()) { } + + void Eval(DenseMatrix &K, ElementTransformation &Tr_f, + const IntegrationPoint &ip) override + { + K.Set(1.0, qdata.be_mass_data(Tr_f.ElementNo * nqp_per_face + ip.index)); + } +}; // This class is used only for visualization. It assembles (rho, phi) in each // zone, which is used by LagrangianHydroOperator::ComputeDensity to do an L2 // projection of the density. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index fe9f9acdc..c7209419d 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -92,6 +92,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, ParFiniteElementSpace &h1, ParFiniteElementSpace &l2, const Array &ess_tdofs, + bool bcs, Coefficient &rho0_coeff, ParGridFunction &rho0_gf, ParGridFunction &gamma_gf, @@ -103,7 +104,9 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, const double cgt, const int cgiter, double ftz, - const int oq) : + const int oq, + double bc_penalty, + double perimeter) : TimeDependentOperator(size), H1(h1), L2(l2), H1c(H1.GetParMesh(), H1.FEColl(), 1), pmesh(H1.GetParMesh()), @@ -116,8 +119,9 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, block_offsets(4), x_gf(&H1), ess_tdofs(ess_tdofs), + BC_strong(bcs), dim(pmesh->Dimension()), - NE(pmesh->GetNE()), + NE(pmesh->GetNE()), NBE(pmesh->GetNBE()), l2dofs_cnt(L2.GetFE(0)->GetDof()), h1dofs_cnt(H1.GetFE(0)->GetDof()), source_type(source), cfl(cfl), @@ -131,11 +135,16 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Me_inv(l2dofs_cnt, l2dofs_cnt, NE), ir(IntRules.Get(pmesh->GetElementBaseGeometry(0), (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1)), + b_ir(IntRules.Get(pmesh->GetBdrElementBaseGeometry(0), + 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1 )), Q1D(int(floor(0.7 + pow(ir.GetNPoints(), 1.0 / dim)))), - qdata(dim, NE, ir.GetNPoints()), + qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), + bdr_force_coeff(qdata), bdr_mass_coeff(qdata), qdata_is_current(false), forcemat_is_assembled(false), - Force(&L2, &H1), + Force(&L2, &H1), Force_be(&L2, &H1), + wall_bc_penalty(bc_penalty), C_I(0.0), + rho0_max(rho0_gf.Max()), perimeter(perimeter), ForcePA(nullptr), VMassPA(nullptr), EMassPA(nullptr), VMassPA_Jprec(nullptr), CG_VMass(H1.GetParMesh()->GetComm()), @@ -157,6 +166,30 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, one.UseDevice(true); one = 1.0; + const int order_v = H1.GetElementOrder(0); + switch (pmesh->GetElementBaseGeometry(0)) + { + case Geometry::TRIANGLE: + case Geometry::TETRAHEDRON: + { + C_I = (order_v+1)*(order_v+dim)/dim; + break; + } + case Geometry::SQUARE: + case Geometry::CUBE: + { + C_I = order_v*order_v; + break; + } + default: MFEM_ABORT("Unknown zone type!"); + } + + rho0_max = rho0_gf.Max(); + MPI_Allreduce(MPI_IN_PLACE, &rho0_max, 1, + MPI_DOUBLE, MPI_MAX, pmesh->GetComm()); + + UpdateBdrQuadratureData(); + if (p_assembly) { qupdate = new QUpdate(dim, NE, Q1D, visc, vort, cfl, @@ -203,6 +236,14 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, // Standard assembly for the velocity mass matrix. VectorMassIntegrator *vmi = new VectorMassIntegrator(rho0_coeff, &ir); Mv.AddDomainIntegrator(vmi); + + if (BC_strong == false) + { + auto nvmi = new BoundaryVectorMassIntegrator(bdr_mass_coeff); + nvmi->SetIntRule(&b_ir); + Mv.AddBdrFaceIntegrator(nvmi); + } + Mv.Assemble(); Mv_spmat_copy = Mv.SpMat(); } @@ -234,6 +275,21 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, } } for (int e = 0; e < NE; e++) { vol += pmesh->GetElementVolume(e); } + + for (int be = 0; be < NBE; be++) + { + int b_nqp = b_ir.GetNPoints(); + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + for (int q = 0; q < b_nqp; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + qdata.rho0DetJ0_be(be * b_nqp + q) = + tr_el.Weight() * rho0_gf.GetValue(tr_el); + } + } } MPI_Allreduce(&vol, &Volume, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); MPI_Allreduce(&ne, &Ne, 1, MPI_INT, MPI_SUM, pmesh->GetComm()); @@ -246,7 +302,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, case Geometry::TETRAHEDRON: qdata.h0 = pow(6.0 * Volume / Ne, 1./3.); break; default: MFEM_ABORT("Unknown zone type!"); } - qdata.h0 /= (double) H1.GetOrder(0); + qdata.h0 /= (double) H1.GetOrder(0); if (p_assembly) { @@ -277,6 +333,13 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, // Make a dummy assembly to figure out the sparsity. Force.Assemble(0); Force.Finalize(0); + + auto vpb = new BoundaryMixedForceIntegrator(bdr_force_coeff); + vpb->SetIntRule(&b_ir); + Force_be.AddBdrFaceIntegrator(vpb); + // Make a dummy assembly to figure out the sparsity. + Force_be.Assemble(0); + Force_be.Finalize(0); } } @@ -318,6 +381,7 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S, { UpdateQuadratureData(S); AssembleForceMatrix(); + // The monolithic BlockVector stores the unknown fields as follows: // (Position, Velocity, Specific Internal Energy). ParGridFunction dv; @@ -380,6 +444,7 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S, { timer.sw_force.Start(); Force.Mult(one, rhs); + if (BC_strong == false) { Force_be.AddMult(one, rhs); } timer.sw_force.Stop(); rhs.Neg(); @@ -401,6 +466,8 @@ void LagrangianHydroOperator::SolveVelocity(const Vector &S, cg.SetRelTol(cg_rel_tol); cg.SetAbsTol(0.0); cg.SetMaxIter(cg_max_iter); + IterativeSolver::PrintLevel print_level; + print_level.Summary(); cg.SetPrintLevel(-1); timer.sw_cgH1.Start(); cg.Mult(B, X); @@ -414,7 +481,6 @@ void LagrangianHydroOperator::SolveEnergy(const Vector &S, const Vector &v, Vector &dS_dt) const { UpdateQuadratureData(S); - AssembleForceMatrix(); // The monolithic BlockVector stores the unknown fields as follows: // (Position, Velocity, Specific Internal Energy). @@ -455,7 +521,9 @@ void LagrangianHydroOperator::SolveEnergy(const Vector &S, const Vector &v, { timer.sw_force.Start(); Force.MultTranspose(v, e_rhs); + if (BC_strong == false) { Force_be.AddMultTranspose(v, e_rhs); } timer.sw_force.Stop(); + if (e_source) { e_rhs += *e_source; } Vector loc_rhs(l2dofs_cnt), loc_de(l2dofs_cnt); for (int e = 0; e < NE; e++) @@ -625,6 +693,12 @@ double LagrangianHydroOperator::KineticEnergy(const ParGridFunction &v) const { double glob_ke = 0.0, kinetic_energy = 0.0; + // This should be turned into a kernel so that it could be displayed in pa + double loc_ke = 0.5 * Mv_spmat_copy.InnerProduct(v, v); + MPI_Allreduce(&loc_ke, &glob_ke, 1, MPI_DOUBLE, MPI_SUM, + H1.GetParMesh()->GetComm()); + return glob_ke; + if (H1.GetNE() > 0) // UsesTensorBasis does not handle empty local mesh { auto H1ordering = @@ -916,6 +990,96 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const delete [] Jpr_b; timer.sw_qdata.Stop(); timer.quad_tstep += NE; + + // Boundary integrals data. + int nqp_be = b_ir.GetNPoints(); + for (int be = 0; be < NBE; be++) + { + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + const int z_id = tr_el.ElementNo; + + double en = fmax(0.0, e.GetValue(tr_el)); + double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); + double p = (gamma_gf(z_id) - 1.0) * rho * en; + double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + + double penalty_force = wall_bc_penalty * C_I * rho * cs; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + Vector vShape; + v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); + double vDotn = 0.0; + for (int d = 0; d < dim; d++) + { + vDotn += vShape(d) * nor(d) / nor_norm; + } + + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + + for (int d = 0; d < dim; d++) + { + qdata.be_force_data(be, q, d) = + ip_f.weight * nor_norm * + (vDotn * tn(d) * penalty_force - weightedNormalStress(d)); + } + } + } +} + +void LagrangianHydroOperator::UpdateBdrQuadratureData() const +{ + // Boundary mass term data. + int nqp_be = b_ir.GetNPoints(); + for (int be = 0; be < NBE; be++) + { + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + + double penalty_mass = wall_bc_penalty * C_I * perimeter / + std::pow(tr_el.Weight(), 1.0/dim); + penalty_mass *= rho0_max * perimeter; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + for (int dx = 0; dx < dim; dx++) + { + for (int dy = 0; dy < dim; dy++) + { + qdata.be_mass_data(dx, dy, be * nqp_be + q) = + ip_f.weight * nor_norm * + tn(dx) * tn(dy) * penalty_mass; + } + } + } + } } /// Trace of a square matrix @@ -1338,10 +1502,15 @@ void QUpdate::UpdateQuadratureData(const Vector &S, QuadratureData &qdata) void LagrangianHydroOperator::AssembleForceMatrix() const { if (forcemat_is_assembled || p_assembly) { return; } + Force = 0.0; + Force_be = 0.0; + timer.sw_force.Start(); Force.Assemble(); + if (BC_strong == false) { Force_be.Assemble(); } timer.sw_force.Stop(); + forcemat_is_assembled = true; } diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 2bbd1c1c1..3c7be0e30 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -111,7 +111,9 @@ class LagrangianHydroOperator : public TimeDependentOperator // Reference to the current mesh configuration. mutable ParGridFunction x_gf; const Array &ess_tdofs; - const int dim, NE, l2dofs_cnt, h1dofs_cnt, source_type; + bool BC_strong; + + const int dim, NE, NBE, l2dofs_cnt, h1dofs_cnt, source_type; const double cfl; const bool use_viscosity, use_vorticity, p_assembly; const double cg_rel_tol; @@ -123,17 +125,27 @@ class LagrangianHydroOperator : public TimeDependentOperator mutable ParBilinearForm Mv; SparseMatrix Mv_spmat_copy; DenseTensor Me, Me_inv; + // Integration rule for all assemblies. const IntegrationRule &ir; + const IntegrationRule &b_ir; + // Data associated with each quadrature point in the mesh. // These values are recomputed at each time step. const int Q1D; mutable QuadratureData qdata; + BdrForceCoefficient bdr_force_coeff; + BdrMassCoefficient bdr_mass_coeff; mutable bool qdata_is_current, forcemat_is_assembled; + // Force matrix that combines the kinematic and thermodynamic spaces. It is // assembled in each time step and then it is used to compute the final // right-hand sides for momentum and specific internal energy. - mutable MixedBilinearForm Force; + mutable MixedBilinearForm Force, Force_be; + + double wall_bc_penalty, C_I; + double rho0_max, perimeter; + // Same as above, but done through partial assembly. ForcePAOperator *ForcePA; // Mass matrices done through partial assembly: @@ -160,13 +172,14 @@ class LagrangianHydroOperator : public TimeDependentOperator } void UpdateQuadratureData(const Vector &S) const; + void UpdateBdrQuadratureData() const; void AssembleForceMatrix() const; public: LagrangianHydroOperator(const int size, ParFiniteElementSpace &h1_fes, ParFiniteElementSpace &l2_fes, - const Array &ess_tdofs, + const Array &ess_tdofs, bool bcs, Coefficient &rho0_coeff, ParGridFunction &rho0_gf, ParGridFunction &gamma_gf, @@ -174,7 +187,8 @@ class LagrangianHydroOperator : public TimeDependentOperator const double cfl, const bool visc, const bool vort, const bool pa, const double cgt, const int cgiter, double ftz_tol, - const int order_q); + const int order_q, + double bc_penalty, double perimeter); ~LagrangianHydroOperator(); // Solve for dx_dt, dv_dt and de_dt. From 77f9aa79ab2bbd1ef629c25f822255c825798302 Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Mon, 25 Dec 2023 22:31:38 -0800 Subject: [PATCH 02/44] fixed the 3d cube+hole run. --- autotest/baseline.out | 135 +++++++++++++++--------------------------- autotest/test.sh | 10 +++- laghos.cpp | 8 ++- 3 files changed, 64 insertions(+), 89 deletions(-) diff --git a/autotest/baseline.out b/autotest/baseline.out index 589e82ef5..7c3fb0b92 100644 --- a/autotest/baseline.out +++ b/autotest/baseline.out @@ -80,21 +80,6 @@ Repeating step 577 Repeating step 578 step 599, t = 1.5000, dt = 0.000836, |e| = 5.1280144682e+00 -CG (H1) total time: 0.8104044760 -CG (H1) rate (megadofs x cg_iterations / second): 34.2393024986 - -CG (L2) total time: 0.0034025740 -CG (L2) rate (megadofs x cg_iterations / second): 5.8402844435 - -Forces total time: 0.0450997310 -Forces rate (megadofs x timesteps / second): 6.2238065234 - -UpdateQuadData total time: 0.1341821530 -UpdateQuadData rate (megaquads x timesteps / second): 2.4134357123 - -Major kernels total time (seconds): 0.9665720920 -Major kernels total rate (megadofs x time steps / second): 29.3327484154 - Energy diff: 2.56e-09 mpirun -np X laghos -m data/refined.mesh -tf 0.4 -rs 2 @@ -181,21 +166,6 @@ step 600, t = 0.3937, dt = 0.000157, |e| = 1.5653880319e+01 Repeating step 613 step 641, t = 0.4000, dt = 0.000081, |e| = 1.5588910706e+01 -CG (H1) total time: 1.3691227860 -CG (H1) rate (megadofs x cg_iterations / second): 87.7755371752 - -CG (L2) total time: 0.0119968820 -CG (L2) rate (megadofs x cg_iterations / second): 7.0845074579 - -Forces total time: 0.1376031190 -Forces rate (megadofs x timesteps / second): 8.0295854340 - -UpdateQuadData total time: 0.4728397010 -UpdateQuadData rate (megaquads x timesteps / second): 2.9279436500 - -Major kernels total time (seconds): 1.9758756710 -Major kernels total rate (megadofs x time steps / second): 62.0812502529 - Energy diff: 2.39e-11 mpirun -np X laghos -m data/refined.mesh -tf 0.8 -rs 1 -ok 3 -ot 2 @@ -287,21 +257,6 @@ step 850, t = 0.7794, dt = 0.000441, |e| = 1.0614503933e+01 Repeating step 882 step 900, t = 0.8000, dt = 0.000206, |e| = 1.0612158294e+01 -CG (H1) total time: 1.7539920820 -CG (H1) rate (megadofs x cg_iterations / second): 34.7234771611 - -CG (L2) total time: 0.0051643120 -CG (L2) rate (megadofs x cg_iterations / second): 5.7192516641 - -Forces total time: 0.2709946540 -Forces rate (megadofs x timesteps / second): 3.2697323985 - -UpdateQuadData total time: 0.4927314770 -UpdateQuadData rate (megaquads x timesteps / second): 2.1860182478 - -Major kernels total time (seconds): 2.4693193520 -Major kernels total rate (megadofs x time steps / second): 25.4596085148 - Energy diff: 1.23e-11 mpirun -np X laghos -m data/disc-nurbs.mesh -tf 5.0 -rs 2 @@ -365,21 +320,6 @@ Repeating step 106 step 150, t = 4.9204, dt = 0.023550, |e| = 6.3632879715e-01 step 154, t = 5.0000, dt = 0.008689, |e| = 6.3356639142e-01 -CG (H1) total time: 0.3888873590 -CG (H1) rate (megadofs x cg_iterations / second): 92.7408391282 - -CG (L2) total time: 0.0035654420 -CG (L2) rate (megadofs x cg_iterations / second): 7.3146611276 - -Forces total time: 0.0358676950 -Forces rate (megadofs x timesteps / second): 9.0344249888 - -UpdateQuadData total time: 0.1404389280 -UpdateQuadData rate (megaquads x timesteps / second): 3.0623987674 - -Major kernels total time (seconds): 0.5642913130 -Major kernels total rate (megadofs x time steps / second): 65.2497445056 - Energy diff: 5.49e-12 mpirun -np X laghos -m data/convex.mesh -tf 0.1 -rs 2 @@ -434,21 +374,6 @@ step 50, t = 0.0585, dt = 0.001024, |e| = 5.1668713215e+01 Repeating step 65 step 96, t = 0.1000, dt = 0.000179, |e| = 4.3862262944e+01 -CG (H1) total time: 0.1867480800 -CG (H1) rate (megadofs x cg_iterations / second): 90.7483064886 - -CG (L2) total time: 0.0017315280 -CG (L2) rate (megadofs x cg_iterations / second): 7.2444684695 - -Forces total time: 0.0194407860 -Forces rate (megadofs x timesteps / second): 8.3881382162 - -UpdateQuadData total time: 0.0661514630 -UpdateQuadData rate (megaquads x timesteps / second): 3.0804458550 - -Major kernels total time (seconds): 0.2708007110 -Major kernels total rate (megadofs x time steps / second): 63.9360212020 - Energy diff: 2.61e-12 mpirun -np X laghos -m data/cube01_hex.mesh -tf 0.25 -rs 1 @@ -507,20 +432,56 @@ Repeating step 72 Repeating step 77 step 91, t = 0.2500, dt = 0.000526, |e| = 4.3152920230e+01 -CG (H1) total time: 0.2802593920 -CG (H1) rate (megadofs x cg_iterations / second): 34.1870683856 - -CG (L2) total time: 0.0020680030 -CG (L2) rate (megadofs x cg_iterations / second): 6.0038597623 +Energy diff: 1.44e-12 -Forces total time: 0.4019293110 -Forces rate (megadofs x timesteps / second): 1.3027315642 +mpirun -np X laghos -m data/cube_gmsh_19.msh -tf 0.0002 -rs 0 -UpdateQuadData total time: 0.6963818660 -UpdateQuadData rate (megaquads x timesteps / second): 1.1822479019 + __ __ + / / ____ ____ / /_ ____ _____ + / / / __ `/ __ `/ __ \/ __ \/ ___/ + / /___/ /_/ / /_/ / / / / /_/ (__ ) + /_____/\__,_/\__, /_/ /_/\____/____/ + /____/ -Major kernels total time (seconds): 1.3444451610 -Major kernels total rate (megadofs x time steps / second): 8.1283709570 +Options used: + --dimension 3 + --mesh data/cube_gmsh_19.msh + --refine-serial 0 + --refine-parallel 0 + --cartesian-partitioning '' + --problem 1 + --order-kinematic 2 + --order-thermo 1 + --order-intrule -1 + --ode-solver 7 + --t-final 0.0002 + --cfl 0.5 + --cg-tol 1e-08 + --ftz-tol 0 + --cg-max-steps 300 + --max-steps -1 + --full-assembly + --no-impose-viscosity + --no-visualization + --visualization-steps 50 + --no-visit + --no-print + --outputfilename results/Laghos + --partition 0 + --device cpu + --no-checks + --no-mem + --no-fom + --no-gpu-aware-mpi + --dev 0 +Device configuration: cpu +Memory configuration: host-std +Number of zones in the serial mesh: 4374 +Non-Cartesian partitioning through METIS will be used. +Zones min/max: 1064 1121 +Number of kinematic (position, velocity) dofs: 110922 +Number of specific internal energy dofs: 34992 +step 2, t = 0.0002, dt = 0.000079, |e| = 2.3426708103e+03 -Energy diff: 1.44e-12 +Energy diff: 5.43e-14 diff --git a/autotest/test.sh b/autotest/test.sh index 977ed3a92..44adb2d05 100755 --- a/autotest/test.sh +++ b/autotest/test.sh @@ -17,7 +17,7 @@ cd .. file="autotest/run_"$((ntask))".out" rm -f $file -command="mpirun -np "$((ntask))" laghos -p 1 -s 7 -vs 50 -fa" +command="time mpirun -np "$((ntask))" laghos -p 1 -s 7 -vs 50 -fa" comment="mpirun -np X laghos" @@ -69,6 +69,14 @@ echo -e $com_line >> $file $run_line >> $file echo -e >> $file +# 3D cube with hole. +params="-m data/cube_gmsh_19.msh -tf 0.0002 -rs 0" +run_line=$command" "$params +com_line=$comment" "$params +echo -e $com_line >> $file +$run_line >> $file +echo -e >> $file + tkdiff autotest/baseline.out $file & cd autotest diff --git a/laghos.cpp b/laghos.cpp index c4a0bf974..ab2495411 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -229,6 +229,12 @@ int main(int argc, char *argv[]) blast_position[0] = 0.7; blast_position[1] = 0.5; } + if (strcmp(mesh_file, "data/cube_gmsh_19.msh") == 0) + { + blast_position[0] = -0.5; + blast_position[1] = -0.5; + blast_position[2] = -0.5; + } // Configure the device from the command line options Device backend; @@ -842,7 +848,7 @@ int main(int argc, char *argv[]) case 7: steps *= 2; } - hydro.PrintTimingData(Mpi::Root(), steps, fom); +// hydro.PrintTimingData(Mpi::Root(), steps, fom); if (mem_usage) { From 8b91a173443455f32678e27d6684d9816ebd7ebe Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Mon, 25 Dec 2023 22:37:02 -0800 Subject: [PATCH 03/44] minor --- laghos.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/laghos.cpp b/laghos.cpp index ab2495411..2ec7bf264 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -589,6 +589,8 @@ int main(int argc, char *argv[]) } if (impose_visc) { visc = true; } + const double pen_param = 20.0, + perimeter = 12.0; // TODO fix this. hydrodynamics::LagrangianHydroOperator hydro(S.Size(), H1FESpace, L2FESpace, ess_tdofs, BC_strong, @@ -596,7 +598,7 @@ int main(int argc, char *argv[]) mat_gf, source, cfl, visc, vorticity, p_assembly, cg_tol, cg_max_iter, ftz_tol, - order_q, 20.0, 12.0); + order_q, pen_param, perimeter); socketstream vis_rho, vis_v, vis_e; char vishost[] = "localhost"; From 1f5a40380b140b4ad9a5cf62eea15bfb2c7dd665 Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Fri, 16 Feb 2024 13:57:09 -0800 Subject: [PATCH 04/44] minor --- laghos_solver.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/laghos_solver.cpp b/laghos_solver.cpp index c7209419d..ddc1b283f 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -159,6 +159,18 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, rhs_c_gf(&H1c), dvc_gf(&H1c) { +// H1.ExchangeFaceNbrData(); +// int n_bdr = 0; +// for (int be = 0; be < NBE; be++) +// { +// auto b_face_tr = pmesh->GetBdrFaceTransformations(be); +// if (b_face_tr == nullptr) { continue; } +// n_bdr++; +// } +// std::cout << NBE << " " << n_bdr << " " +// << H1.GetNFbyType(FaceType::Boundary) << std::endl; +// MFEM_ABORT("faces"); + block_offsets[0] = 0; block_offsets[1] = block_offsets[0] + H1Vsize; block_offsets[2] = block_offsets[1] + H1Vsize; From f94953eac1cc2effd14476d3581f9d5b05775fe0 Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Fri, 16 Feb 2024 14:07:16 -0800 Subject: [PATCH 05/44] updated metis & computer -> new autotest numbers --- autotest/baseline.out | 157 +++++++++++++++++++++--------------------- 1 file changed, 80 insertions(+), 77 deletions(-) diff --git a/autotest/baseline.out b/autotest/baseline.out index 7c3fb0b92..8e739cb2c 100644 --- a/autotest/baseline.out +++ b/autotest/baseline.out @@ -42,13 +42,13 @@ Device configuration: cpu Memory configuration: host-std Number of zones in the serial mesh: 16 Non-Cartesian partitioning through METIS will be used. -Zones min/max: 3 5 +Zones min/max: 4 4 Number of kinematic (position, velocity) dofs: 162 Number of specific internal energy dofs: 64 Repeating step 11 Repeating step 26 Repeating step 41 -step 50, t = 0.3704, dt = 0.005729, |e| = 7.9356590849e+00 +step 50, t = 0.3704, dt = 0.005729, |e| = 7.9356590770e+00 Repeating step 59 Repeating step 61 Repeating step 63 @@ -60,27 +60,27 @@ Repeating step 70 Repeating step 72 Repeating step 79 Repeating step 89 -step 100, t = 0.5082, dt = 0.001542, |e| = 7.1849903144e+00 -step 150, t = 0.5869, dt = 0.001636, |e| = 6.8605869051e+00 -step 200, t = 0.6687, dt = 0.001636, |e| = 6.5796490985e+00 -step 250, t = 0.7510, dt = 0.001669, |e| = 6.3419949788e+00 -step 300, t = 0.8394, dt = 0.001880, |e| = 6.1214363408e+00 -step 350, t = 0.9419, dt = 0.002202, |e| = 5.9002366993e+00 -step 400, t = 1.0520, dt = 0.002247, |e| = 5.6955733646e+00 -step 450, t = 1.1651, dt = 0.002384, |e| = 5.5167267410e+00 -step 500, t = 1.3071, dt = 0.003338, |e| = 5.3299133588e+00 -Repeating step 505 -Repeating step 519 +step 100, t = 0.5082, dt = 0.001542, |e| = 7.1849903106e+00 +step 150, t = 0.5869, dt = 0.001636, |e| = 6.8605869032e+00 +step 200, t = 0.6687, dt = 0.001636, |e| = 6.5796481625e+00 +step 250, t = 0.7509, dt = 0.001669, |e| = 6.3421719397e+00 +step 300, t = 0.8395, dt = 0.001880, |e| = 6.1212469230e+00 +step 350, t = 0.9421, dt = 0.002202, |e| = 5.8998111212e+00 +step 400, t = 1.0523, dt = 0.002202, |e| = 5.6952978991e+00 +step 450, t = 1.1633, dt = 0.002384, |e| = 5.5193782288e+00 +step 500, t = 1.3043, dt = 0.003338, |e| = 5.3332508435e+00 +Repeating step 506 +Repeating step 520 Repeating step 540 -step 550, t = 1.4333, dt = 0.002050, |e| = 5.1918518846e+00 -Repeating step 553 -Repeating step 576 -Repeating step 577 +step 550, t = 1.4315, dt = 0.002050, |e| = 5.1937367367e+00 +Repeating step 554 Repeating step 577 Repeating step 578 -step 599, t = 1.5000, dt = 0.000836, |e| = 5.1280144682e+00 +Repeating step 578 +Repeating step 579 +step 600, t = 1.5000, dt = 0.000646, |e| = 5.1280262407e+00 -Energy diff: 2.56e-09 +Energy diff: 3.58e-09 mpirun -np X laghos -m data/refined.mesh -tf 0.4 -rs 2 @@ -133,40 +133,42 @@ step 50, t = 0.0870, dt = 0.001779, |e| = 2.4251235295e+01 Repeating step 64 Repeating step 83 Repeating step 91 -step 100, t = 0.1601, dt = 0.001093, |e| = 2.0424240125e+01 +step 100, t = 0.1601, dt = 0.001093, |e| = 2.0424240126e+01 Repeating step 128 Repeating step 136 Repeating step 141 -step 150, t = 0.2117, dt = 0.000818, |e| = 1.8715722763e+01 +step 150, t = 0.2117, dt = 0.000818, |e| = 1.8715722764e+01 Repeating step 166 Repeating step 175 -step 200, t = 0.2493, dt = 0.000827, |e| = 1.7751066144e+01 -Repeating step 219 -Repeating step 223 -step 250, t = 0.2845, dt = 0.000673, |e| = 1.7066329939e+01 -Repeating step 276 -Repeating step 287 -Repeating step 298 -step 300, t = 0.3193, dt = 0.000494, |e| = 1.6573105801e+01 -Repeating step 318 -Repeating step 322 -step 350, t = 0.3398, dt = 0.000357, |e| = 1.6326887606e+01 -Repeating step 367 -Repeating step 397 -step 400, t = 0.3556, dt = 0.000258, |e| = 1.6131565499e+01 -step 450, t = 0.3685, dt = 0.000258, |e| = 1.5961746334e+01 -Repeating step 453 -Repeating step 487 -Repeating step 495 -Repeating step 498 -step 500, t = 0.3791, dt = 0.000161, |e| = 1.5825105291e+01 -Repeating step 501 -step 550, t = 0.3861, dt = 0.000148, |e| = 1.5740216854e+01 -step 600, t = 0.3937, dt = 0.000157, |e| = 1.5653880319e+01 -Repeating step 613 -step 641, t = 0.4000, dt = 0.000081, |e| = 1.5588910706e+01 +step 200, t = 0.2493, dt = 0.000827, |e| = 1.7751065253e+01 +Repeating step 222 +Repeating step 224 +Repeating step 231 +step 250, t = 0.2841, dt = 0.000644, |e| = 1.7073792865e+01 +Repeating step 279 +Repeating step 290 +step 300, t = 0.3188, dt = 0.000568, |e| = 1.6579554966e+01 +Repeating step 301 +Repeating step 320 +Repeating step 325 +step 350, t = 0.3391, dt = 0.000349, |e| = 1.6334815125e+01 +Repeating step 371 +step 400, t = 0.3549, dt = 0.000296, |e| = 1.6139946838e+01 +Repeating step 408 +Repeating step 409 +step 450, t = 0.3675, dt = 0.000246, |e| = 1.5975283862e+01 +Repeating step 467 +Repeating step 474 +Repeating step 488 +step 500, t = 0.3775, dt = 0.000192, |e| = 1.5844560481e+01 +Repeating step 505 +Repeating step 544 +step 550, t = 0.3861, dt = 0.000165, |e| = 1.5739754640e+01 +Repeating step 559 +step 600, t = 0.3936, dt = 0.000146, |e| = 1.5655162761e+01 +step 644, t = 0.4000, dt = 0.000103, |e| = 1.5589352982e+01 -Energy diff: 2.39e-11 +Energy diff: 4.10e-11 mpirun -np X laghos -m data/refined.mesh -tf 0.8 -rs 1 -ok 3 -ot 2 @@ -215,7 +217,7 @@ Non-Cartesian partitioning through METIS will be used. Zones min/max: 4 4 Number of kinematic (position, velocity) dofs: 336 Number of specific internal energy dofs: 144 -step 50, t = 0.1902, dt = 0.004435, |e| = 1.3124098067e+01 +step 50, t = 0.1902, dt = 0.004435, |e| = 1.3124098064e+01 Repeating step 51 Repeating step 58 Repeating step 74 @@ -224,7 +226,7 @@ Repeating step 88 Repeating step 90 Repeating step 93 Repeating step 98 -step 100, t = 0.3422, dt = 0.001444, |e| = 1.1153585219e+01 +step 100, t = 0.3422, dt = 0.001444, |e| = 1.1153585280e+01 Repeating step 110 Repeating step 117 Repeating step 123 @@ -232,32 +234,33 @@ Repeating step 135 Repeating step 139 Repeating step 142 Repeating step 147 -step 150, t = 0.3902, dt = 0.000463, |e| = 1.0787292121e+01 -step 200, t = 0.4133, dt = 0.000463, |e| = 1.0598946447e+01 -step 250, t = 0.4365, dt = 0.000463, |e| = 1.0439590872e+01 -step 300, t = 0.4611, dt = 0.000532, |e| = 1.0324140035e+01 -step 350, t = 0.4893, dt = 0.000587, |e| = 1.0252490890e+01 +step 150, t = 0.3902, dt = 0.000463, |e| = 1.0787292133e+01 +step 200, t = 0.4133, dt = 0.000463, |e| = 1.0598946420e+01 +step 250, t = 0.4365, dt = 0.000463, |e| = 1.0439590795e+01 +step 300, t = 0.4611, dt = 0.000532, |e| = 1.0324139882e+01 +step 350, t = 0.4893, dt = 0.000587, |e| = 1.0252490626e+01 Repeating step 382 Repeating step 382 -step 400, t = 0.5186, dt = 0.000656, |e| = 1.0237017438e+01 +step 400, t = 0.5186, dt = 0.000656, |e| = 1.0237017103e+01 Repeating step 405 -step 450, t = 0.5498, dt = 0.000693, |e| = 1.0266298395e+01 -step 500, t = 0.5845, dt = 0.000693, |e| = 1.0329364257e+01 -step 550, t = 0.6191, dt = 0.000693, |e| = 1.0404029116e+01 +step 450, t = 0.5498, dt = 0.000693, |e| = 1.0266298090e+01 +step 500, t = 0.5845, dt = 0.000693, |e| = 1.0329364000e+01 +step 550, t = 0.6191, dt = 0.000693, |e| = 1.0404028934e+01 Repeating step 576 -step 600, t = 0.6517, dt = 0.000613, |e| = 1.0472982985e+01 -Repeating step 635 +step 600, t = 0.6517, dt = 0.000613, |e| = 1.0472982881e+01 +Repeating step 634 Repeating step 636 -step 650, t = 0.6799, dt = 0.000479, |e| = 1.0524538066e+01 -step 700, t = 0.7057, dt = 0.000519, |e| = 1.0562315097e+01 -step 750, t = 0.7317, dt = 0.000519, |e| = 1.0590770048e+01 +step 650, t = 0.6798, dt = 0.000470, |e| = 1.0524370187e+01 +step 700, t = 0.7055, dt = 0.000519, |e| = 1.0561922273e+01 +step 750, t = 0.7314, dt = 0.000519, |e| = 1.0590491041e+01 Repeating step 797 -step 800, t = 0.7573, dt = 0.000441, |e| = 1.0608296551e+01 -step 850, t = 0.7794, dt = 0.000441, |e| = 1.0614503933e+01 -Repeating step 882 -step 900, t = 0.8000, dt = 0.000206, |e| = 1.0612158294e+01 +step 800, t = 0.7570, dt = 0.000441, |e| = 1.0608131942e+01 +step 850, t = 0.7791, dt = 0.000441, |e| = 1.0614454249e+01 +Repeating step 883 +step 900, t = 0.8000, dt = 0.000375, |e| = 1.0612142441e+01 +step 901, t = 0.8000, dt = 0.000049, |e| = 1.0612128297e+01 -Energy diff: 1.23e-11 +Energy diff: 1.81e-11 mpirun -np X laghos -m data/disc-nurbs.mesh -tf 5.0 -rs 2 @@ -311,16 +314,16 @@ Repeating step 5 Repeating step 10 Repeating step 48 Repeating step 49 -step 50, t = 2.2836, dt = 0.034191, |e| = 8.0841244798e-01 +step 50, t = 2.2836, dt = 0.034191, |e| = 8.0841244800e-01 Repeating step 51 -step 100, t = 3.7890, dt = 0.033384, |e| = 6.8577525144e-01 +step 100, t = 3.7890, dt = 0.033384, |e| = 6.8577525148e-01 Repeating step 104 Repeating step 105 Repeating step 106 -step 150, t = 4.9204, dt = 0.023550, |e| = 6.3632879715e-01 -step 154, t = 5.0000, dt = 0.008689, |e| = 6.3356639142e-01 +step 150, t = 4.9204, dt = 0.023550, |e| = 6.3632879721e-01 +step 154, t = 5.0000, dt = 0.008689, |e| = 6.3356639148e-01 -Energy diff: 5.49e-12 +Energy diff: 6.48e-12 mpirun -np X laghos -m data/convex.mesh -tf 0.1 -rs 2 @@ -374,7 +377,7 @@ step 50, t = 0.0585, dt = 0.001024, |e| = 5.1668713215e+01 Repeating step 65 step 96, t = 0.1000, dt = 0.000179, |e| = 4.3862262944e+01 -Energy diff: 2.61e-12 +Energy diff: 1.69e-13 mpirun -np X laghos -m data/cube01_hex.mesh -tf 0.25 -rs 1 @@ -432,7 +435,7 @@ Repeating step 72 Repeating step 77 step 91, t = 0.2500, dt = 0.000526, |e| = 4.3152920230e+01 -Energy diff: 1.44e-12 +Energy diff: 3.08e-12 mpirun -np X laghos -m data/cube_gmsh_19.msh -tf 0.0002 -rs 0 @@ -478,10 +481,10 @@ Device configuration: cpu Memory configuration: host-std Number of zones in the serial mesh: 4374 Non-Cartesian partitioning through METIS will be used. -Zones min/max: 1064 1121 +Zones min/max: 1062 1126 Number of kinematic (position, velocity) dofs: 110922 Number of specific internal energy dofs: 34992 step 2, t = 0.0002, dt = 0.000079, |e| = 2.3426708103e+03 -Energy diff: 5.43e-14 +Energy diff: 3.63e-14 From a1389174e669cec68407dec68e670824b1acffbf Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Sun, 18 Feb 2024 15:29:30 -0800 Subject: [PATCH 06/44] added momentum output --- autotest/baseline.out | 7 +++++++ laghos.cpp | 4 ++++ laghos_solver.cpp | 12 ++++++++++++ laghos_solver.hpp | 1 + 4 files changed, 24 insertions(+) diff --git a/autotest/baseline.out b/autotest/baseline.out index 8e739cb2c..9a8447777 100644 --- a/autotest/baseline.out +++ b/autotest/baseline.out @@ -81,6 +81,7 @@ Repeating step 579 step 600, t = 1.5000, dt = 0.000646, |e| = 5.1280262407e+00 Energy diff: 3.58e-09 +Moment diff: 4.25e-01 mpirun -np X laghos -m data/refined.mesh -tf 0.4 -rs 2 @@ -169,6 +170,7 @@ step 600, t = 0.3936, dt = 0.000146, |e| = 1.5655162761e+01 step 644, t = 0.4000, dt = 0.000103, |e| = 1.5589352982e+01 Energy diff: 4.10e-11 +Moment diff: 2.72e-01 mpirun -np X laghos -m data/refined.mesh -tf 0.8 -rs 1 -ok 3 -ot 2 @@ -261,6 +263,7 @@ step 900, t = 0.8000, dt = 0.000375, |e| = 1.0612142441e+01 step 901, t = 0.8000, dt = 0.000049, |e| = 1.0612128297e+01 Energy diff: 1.81e-11 +Moment diff: 4.82e-01 mpirun -np X laghos -m data/disc-nurbs.mesh -tf 5.0 -rs 2 @@ -324,6 +327,7 @@ step 150, t = 4.9204, dt = 0.023550, |e| = 6.3632879721e-01 step 154, t = 5.0000, dt = 0.008689, |e| = 6.3356639148e-01 Energy diff: 6.48e-12 +Moment diff: 1.12e+00 mpirun -np X laghos -m data/convex.mesh -tf 0.1 -rs 2 @@ -378,6 +382,7 @@ Repeating step 65 step 96, t = 0.1000, dt = 0.000179, |e| = 4.3862262944e+01 Energy diff: 1.69e-13 +Moment diff: 1.97e-02 mpirun -np X laghos -m data/cube01_hex.mesh -tf 0.25 -rs 1 @@ -436,6 +441,7 @@ Repeating step 77 step 91, t = 0.2500, dt = 0.000526, |e| = 4.3152920230e+01 Energy diff: 3.08e-12 +Moment diff: 2.46e-01 mpirun -np X laghos -m data/cube_gmsh_19.msh -tf 0.0002 -rs 0 @@ -487,4 +493,5 @@ Number of specific internal energy dofs: 34992 step 2, t = 0.0002, dt = 0.000079, |e| = 2.3426708103e+03 Energy diff: 3.63e-14 +Moment diff: 1.00e-03 diff --git a/laghos.cpp b/laghos.cpp index 2ec7bf264..a9ff930da 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -608,6 +608,7 @@ int main(int argc, char *argv[]) if (visualization || visit) { hydro.ComputeDensity(rho_gf); } const double energy_init = hydro.InternalEnergy(e_gf) + hydro.KineticEnergy(v_gf); + const double momentum_in = hydro.Momentum(v_gf); if (visualization) { @@ -861,11 +862,14 @@ int main(int argc, char *argv[]) const double energy_final = hydro.InternalEnergy(e_gf) + hydro.KineticEnergy(v_gf); + const double momentum_out = hydro.Momentum(v_gf); if (Mpi::Root()) { cout << endl; cout << "Energy diff: " << std::scientific << std::setprecision(2) << fabs(energy_init - energy_final) << endl; + cout << "Moment diff: " << std::scientific << std::setprecision(2) + << fabs(momentum_in - momentum_out) << endl; if (mem_usage) { cout << "Maximum memory resident set size: " diff --git a/laghos_solver.cpp b/laghos_solver.cpp index ddc1b283f..2a5111248 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -249,6 +249,8 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, VectorMassIntegrator *vmi = new VectorMassIntegrator(rho0_coeff, &ir); Mv.AddDomainIntegrator(vmi); + Mv.BilinearForm::operator=(0.0); + if (BC_strong == false) { auto nvmi = new BoundaryVectorMassIntegrator(bdr_mass_coeff); @@ -737,6 +739,16 @@ double LagrangianHydroOperator::KineticEnergy(const ParGridFunction &v) const return 0.5*glob_ke; } +double LagrangianHydroOperator::Momentum(const ParGridFunction &v) const +{ + Vector one(Mv_spmat_copy.Height()); + one = 1.0; + double momentum = Mv_spmat_copy.InnerProduct(one, v); + + MPI_Allreduce(MPI_IN_PLACE, &momentum, 1, MPI_DOUBLE, MPI_SUM, H1.GetComm()); + return momentum; +} + void LagrangianHydroOperator::PrintTimingData(bool IamRoot, int steps, const bool fom) const { diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 3c7be0e30..2834fa44b 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -211,6 +211,7 @@ class LagrangianHydroOperator : public TimeDependentOperator void ComputeDensity(ParGridFunction &rho) const; double InternalEnergy(const ParGridFunction &e) const; double KineticEnergy(const ParGridFunction &v) const; + double Momentum(const ParGridFunction &v) const; int GetH1VSize() const { return H1.GetVSize(); } const Array &GetBlockOffsets() const { return block_offsets; } From 2bf85aeae74d204ec439b14d07bbd80eb391f078 Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Mon, 19 Feb 2024 21:49:49 -0800 Subject: [PATCH 07/44] Position errors for the hole tests. --- autotest/baseline.out | 12 +++-- data/convex.mesh | 8 ++-- data/refined.mesh | 8 ++-- laghos.cpp | 106 ++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 120 insertions(+), 14 deletions(-) diff --git a/autotest/baseline.out b/autotest/baseline.out index 9a8447777..9a95ec7e9 100644 --- a/autotest/baseline.out +++ b/autotest/baseline.out @@ -171,6 +171,9 @@ step 644, t = 0.4000, dt = 0.000103, |e| = 1.5589352982e+01 Energy diff: 4.10e-11 Moment diff: 2.72e-01 +-- Points per face: 7 +-- Perimeter error: 2.68e-03 +-- Position error: 1.73e-03 mpirun -np X laghos -m data/refined.mesh -tf 0.8 -rs 1 -ok 3 -ot 2 @@ -264,6 +267,9 @@ step 901, t = 0.8000, dt = 0.000049, |e| = 1.0612128297e+01 Energy diff: 1.81e-11 Moment diff: 4.82e-01 +-- Points per face: 7 +-- Perimeter error: 1.40e-03 +-- Position error: 1.93e-03 mpirun -np X laghos -m data/disc-nurbs.mesh -tf 5.0 -rs 2 @@ -490,8 +496,8 @@ Non-Cartesian partitioning through METIS will be used. Zones min/max: 1062 1126 Number of kinematic (position, velocity) dofs: 110922 Number of specific internal energy dofs: 34992 -step 2, t = 0.0002, dt = 0.000079, |e| = 2.3426708103e+03 +step 1, t = 0.0002, dt = 0.000204, |e| = nan -Energy diff: 3.63e-14 -Moment diff: 1.00e-03 +Energy diff: nan +Moment diff: 0.00e+00 diff --git a/data/convex.mesh b/data/convex.mesh index 04a6ac0c2..5a4ad4b46 100644 --- a/data/convex.mesh +++ b/data/convex.mesh @@ -29,10 +29,10 @@ boundary 1 1 1 2 1 1 2 3 1 1 3 0 -1 1 5 4 -1 1 6 5 -1 1 7 6 -1 1 4 7 +4 1 5 4 +4 1 6 5 +4 1 7 6 +4 1 4 7 vertices 8 diff --git a/data/refined.mesh b/data/refined.mesh index 04a6ac0c2..5a4ad4b46 100644 --- a/data/refined.mesh +++ b/data/refined.mesh @@ -29,10 +29,10 @@ boundary 1 1 1 2 1 1 2 3 1 1 3 0 -1 1 5 4 -1 1 6 5 -1 1 7 6 -1 1 4 7 +4 1 5 4 +4 1 6 5 +4 1 7 6 +4 1 4 7 vertices 8 diff --git a/laghos.cpp b/laghos.cpp index a9ff930da..725505c76 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -62,6 +62,8 @@ // Wall BC tests: // * penPar is the penalty Parameter // * per is the perimeter of the bounding box of the domain +// TG 2D (rates): +// mpirun -np 4 laghos -m data/square01_quad.mesh -p 0 -rs 3 -tf 0.5 -s 4 -fa -vs 20 -vis // 2D square: // mpirun -np 4 laghos -m data/square01_quad.mesh -p 1 -rs 3 -tf 0.8 -s 7 -fa -vs 20 -vis // 2D trapezoid: @@ -75,7 +77,7 @@ // 3D cube: // mpirun -np 4 laghos -m data/cube01_hex.mesh -p 1 -rs 1 -tf 0.8 -s 7 -fa -vs 20 -vis // 3D spherical hole: -// mpirun -np 4 laghos -m data/cube_gmsh_19.msh -p 1 -rs 0 -tf 0.8 -s 7 -fa -ok 3 -ot 2 -vs 1000 +// mpirun -np 4 laghos -m data/sphere_hole_V4.msh -p 1 -rs 0 -tf 0.8 -s 7 -fa -ok 3 -ot 2 -vs 1000 #include @@ -229,7 +231,7 @@ int main(int argc, char *argv[]) blast_position[0] = 0.7; blast_position[1] = 0.5; } - if (strcmp(mesh_file, "data/cube_gmsh_19.msh") == 0) + if (strcmp(mesh_file, "data/sphere_hole_V4.msh") == 0) { blast_position[0] = -0.5; blast_position[1] = -0.5; @@ -389,6 +391,7 @@ int main(int argc, char *argv[]) { cout << "Unknown partition type: " << partition_type << '\n'; } + delete[] nxyz; delete mesh; MPI_Finalize(); return 3; @@ -783,7 +786,6 @@ int main(int argc, char *argv[]) hydrodynamics::VisualizeField(vis_e, vishost, visport, e_gf, "Specific Internal Energy", Wx, Wy, Ww,Wh); - Wx += offx; } if (visit) @@ -877,6 +879,104 @@ int main(int argc, char *argv[]) } } + // Position errors w.r.t. a perfect circle. + pmesh->ExchangeFaceNbrData(); + if (strcmp(mesh_file, "data/refined.mesh") == 0) + { + auto ir = IntRules.Get(Geometry::SEGMENT, 12); + + double perim = 0.0, pos_error = 0.0; + for (int i = 0; i < pmesh->GetNBE(); i++) + { + auto Tr = pmesh->GetBdrFaceTransformations(i); + if (Tr == NULL) { continue; } + + auto ip_c = Geometries.GetCenter(Geometry::SEGMENT); + Vector pos(dim); + Tr->Transform(ip_c, pos); + if (!(pos(0) > 0.2 && pos(0) < 0.8 && + pos(1) > 0.2 && pos(1) < 0.8)) { continue; } + + for (int p = 0; p < ir.GetNPoints(); p++) + { + const IntegrationPoint &ip = ir.IntPoint(p); + Tr->SetAllIntPoints(&ip); + Vector vals; + x_gf.GetVectorValue(*Tr, ip, vals); + double err = sqrt((vals(0) - 0.5) * (vals(0) - 0.5) + + (vals(1) - 0.5) * (vals(1) - 0.5)); + err = fabs(err - 0.2); + + Vector nor(2); + CalcOrtho(Tr->Jacobian(), nor); + + double w = ip.weight * nor.Norml2(); + perim += w; + pos_error += w * err; + } + } + + MPI_Allreduce(MPI_IN_PLACE, &perim, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(MPI_IN_PLACE, &pos_error, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + + if (Mpi::Root()) + { + cout << "-- Points per face: " << ir.GetNPoints() << endl; + cout << "-- Perimeter error: " << fabs(perim - 2 * M_PI * 0.2) << endl + << "-- Position error: " << pos_error << endl; + } + } + + // Position errors w.r.t. a perfect sphere. + pmesh->ExchangeFaceNbrData(); + if (strcmp(mesh_file, "data/sphere_hole_V4.msh") == 0) + { + auto ir = IntRules.Get(Geometry::SQUARE, 12); + + double perim = 0.0, pos_error = 0.0; + for (int i = 0; i < pmesh->GetNBE(); i++) + { + auto Tr = pmesh->GetBdrFaceTransformations(i); + if (Tr == NULL) { continue; } + + auto ip_c = Geometries.GetCenter(Geometry::SQUARE); + Vector pos(dim); + Tr->Transform(ip_c, pos); + if (!(pos(0) > -0.3 && pos(0) < 0.3 && + pos(1) > -0.3 && pos(1) < 0.3 && + pos(2) > -0.3 && pos(2) < 0.3)) { continue; } + + for (int p = 0; p < ir.GetNPoints(); p++) + { + const IntegrationPoint &ip = ir.IntPoint(p); + Tr->SetAllIntPoints(&ip); + Vector vals; + x_gf.GetVectorValue(*Tr, ip, vals); + double err = sqrt((vals(0) - 0.0) * (vals(0) - 0.0) + + (vals(1) - 0.0) * (vals(1) - 0.0) + + (vals(2) - 0.0) * (vals(2) - 0.0)); + err = fabs(err - 0.2); + + Vector nor(3); + CalcOrtho(Tr->Jacobian(), nor); + + double w = ip.weight * nor.Norml2(); + perim += w; + pos_error += w * err; + } + } + + MPI_Allreduce(MPI_IN_PLACE, &perim, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(MPI_IN_PLACE, &pos_error, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + + if (Mpi::Root()) + { + cout << "-- Points per face: " << ir.GetNPoints() << endl; + cout << "-- Perimeter error: " << fabs(perim - 4 * M_PI * 0.04) << endl + << "-- Position error: " << pos_error << endl; + } + } + // Print the error. // For problems 0 and 4 the exact velocity is constant in time. if (problem == 0 || problem == 4) From 07d9ec0a32587a7c89602b264cba81cfcfadbeac Mon Sep 17 00:00:00 2001 From: Vladimir Z Tomov Date: Sat, 15 Mar 2025 16:01:19 -0700 Subject: [PATCH 08/44] added missing mesh --- data/sphere_hole_V4.msh | 1271 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 1271 insertions(+) create mode 100644 data/sphere_hole_V4.msh diff --git a/data/sphere_hole_V4.msh b/data/sphere_hole_V4.msh new file mode 100644 index 000000000..f6cc5ca3d --- /dev/null +++ b/data/sphere_hole_V4.msh @@ -0,0 +1,1271 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$PhysicalNames +1 +3 2 "1" +$EndPhysicalNames +$Nodes +490 +1 0.1154700538379251 0.1154700538379252 -0.1154700538379251 +2 -0.1154700538379251 0.1154700538379252 -0.1154700538379251 +3 0.1154700538379251 -0.1154700538379252 -0.1154700538379251 +4 -0.1154700538379251 -0.1154700538379252 -0.1154700538379251 +5 0.1154700538379251 0.1154700538379252 0.1154700538379251 +6 -0.1154700538379251 0.1154700538379252 0.1154700538379251 +7 0.1154700538379251 -0.1154700538379252 0.1154700538379251 +8 -0.1154700538379251 -0.1154700538379252 0.1154700538379251 +9 -0.5 -0.5 -0.5 +10 0.5 -0.5 -0.5 +11 0.5 0.5 -0.5 +12 -0.5 0.5 -0.5 +13 -0.5 -0.5 0.5 +14 0.5 -0.5 0.5 +15 0.5 0.5 0.5 +16 -0.5 0.5 0.5 +17 -0.1347774677709476 0.1347774677709476 0.06058108914919204 +18 -0.1414213562373095 0.1414213562373095 -3.415857319222226e-10 +19 -0.1347774676986409 0.1347774676986409 -0.06058108947092039 +20 -0.06058108914919204 0.1347774677709476 -0.1347774677709476 +21 3.415857319222226e-10 0.1414213562373095 -0.1414213562373095 +22 0.06058108947092039 0.1347774676986409 -0.1347774676986409 +23 0.1347774677709476 0.1347774677709476 -0.06058108914919204 +24 0.1414213562373095 0.1414213562373095 3.415857319222226e-10 +25 0.1347774676986409 0.1347774676986409 0.06058108947092039 +26 0.06058108914919204 0.1347774677709476 0.1347774677709476 +27 -3.415857319222226e-10 0.1414213562373095 0.1414213562373095 +28 -0.06058108947092039 0.1347774676986409 0.1347774676986409 +29 0.1347774677699377 0.06058108915368551 0.1347774677699377 +30 0.1414213562373095 -3.50977677476827e-10 0.1414213562373095 +31 0.1347774676952951 -0.06058108948580694 0.1347774676952951 +32 0.1347774677709476 -0.1347774677709476 0.06058108914919204 +33 0.1414213562373095 -0.1414213562373095 -3.415857319222226e-10 +34 0.1347774676986409 -0.1347774676986409 -0.06058108947092039 +35 0.1347774677699377 -0.06058108915368551 -0.1347774677699377 +36 0.1414213562373095 3.50977677476827e-10 -0.1414213562373095 +37 0.1347774676952951 0.06058108948580694 -0.1347774676952951 +38 0.06058108914919204 -0.1347774677709476 0.1347774677709476 +39 -3.415857319222226e-10 -0.1414213562373095 0.1414213562373095 +40 -0.06058108947092039 -0.1347774676986409 0.1347774676986409 +41 0.06058108914919204 -0.1347774677709476 -0.1347774677709476 +42 -3.415857319222226e-10 -0.1414213562373095 -0.1414213562373095 +43 -0.06058108947092039 -0.1347774676986409 -0.1347774676986409 +44 -0.1347774677699377 -0.06058108915368551 0.1347774677699377 +45 -0.1414213562373095 3.50977677476827e-10 0.1414213562373095 +46 -0.1347774676952951 0.06058108948580694 0.1347774676952951 +47 -0.1347774677699377 -0.06058108915368551 -0.1347774677699377 +48 -0.1414213562373095 3.50977677476827e-10 -0.1414213562373095 +49 -0.1347774676952951 0.06058108948580694 -0.1347774676952951 +50 -0.1347774677709476 -0.1347774677709476 -0.06058108914919204 +51 -0.1414213562373095 -0.1414213562373095 3.415857319222226e-10 +52 -0.1347774676986409 -0.1347774676986409 0.06058108947092039 +53 0.2500000000006933 -0.5 -0.5 +54 1.375122238300719e-12 -0.5 -0.5 +55 -0.249999999999307 -0.5 -0.5 +56 -0.5 -0.2500000000006933 -0.5 +57 -0.5 -1.375122238300719e-12 -0.5 +58 -0.5 0.249999999999307 -0.5 +59 -0.2500000000006933 0.5 -0.5 +60 -1.375122238300719e-12 0.5 -0.5 +61 0.249999999999307 0.5 -0.5 +62 0.5 0.2500000000006933 -0.5 +63 0.5 1.375122238300719e-12 -0.5 +64 0.5 -0.249999999999307 -0.5 +65 0.5 -0.5 -0.2500000000006933 +66 0.5 -0.5 -1.375122238300719e-12 +67 0.5 -0.5 0.249999999999307 +68 -0.5 -0.5 -0.2500000000006933 +69 -0.5 -0.5 -1.375122238300719e-12 +70 -0.5 -0.5 0.249999999999307 +71 -0.5 0.5 -0.2500000000006933 +72 -0.5 0.5 -1.375122238300719e-12 +73 -0.5 0.5 0.249999999999307 +74 0.5 0.5 -0.2500000000006933 +75 0.5 0.5 -1.375122238300719e-12 +76 0.5 0.5 0.249999999999307 +77 0.2500000000006933 0.5 0.5 +78 1.375122238300719e-12 0.5 0.5 +79 -0.249999999999307 0.5 0.5 +80 -0.5 0.2500000000006933 0.5 +81 -0.5 1.375122238300719e-12 0.5 +82 -0.5 -0.249999999999307 0.5 +83 -0.2500000000006933 -0.5 0.5 +84 -1.375122238300719e-12 -0.5 0.5 +85 0.249999999999307 -0.5 0.5 +86 0.5 -0.2500000000006933 0.5 +87 0.5 -1.375122238300719e-12 0.5 +88 0.5 0.249999999999307 0.5 +89 0.211602540378208 0.211602540378208 0.211602540378208 +90 0.3077350269184547 0.3077350269184547 0.3077350269184547 +91 0.4038675134592797 0.4038675134592797 0.4038675134592797 +92 0.211602540378208 0.211602540378208 -0.211602540378208 +93 0.3077350269184547 0.3077350269184547 -0.3077350269184547 +94 0.4038675134592797 0.4038675134592797 -0.4038675134592797 +95 0.211602540378208 -0.211602540378208 0.211602540378208 +96 0.3077350269184547 -0.3077350269184547 0.3077350269184547 +97 0.4038675134592797 -0.4038675134592797 0.4038675134592797 +98 0.211602540378208 -0.211602540378208 -0.211602540378208 +99 0.3077350269184547 -0.3077350269184547 -0.3077350269184547 +100 0.4038675134592797 -0.4038675134592797 -0.4038675134592797 +101 -0.211602540378208 0.211602540378208 0.211602540378208 +102 -0.3077350269184547 0.3077350269184547 0.3077350269184547 +103 -0.4038675134592797 0.4038675134592797 0.4038675134592797 +104 -0.211602540378208 0.211602540378208 -0.211602540378208 +105 -0.3077350269184547 0.3077350269184547 -0.3077350269184547 +106 -0.4038675134592797 0.4038675134592797 -0.4038675134592797 +107 -0.211602540378208 -0.211602540378208 0.211602540378208 +108 -0.3077350269184547 -0.3077350269184547 0.3077350269184547 +109 -0.4038675134592797 -0.4038675134592797 0.4038675134592797 +110 -0.211602540378208 -0.211602540378208 -0.211602540378208 +111 -0.3077350269184547 -0.3077350269184547 -0.3077350269184547 +112 -0.4038675134592797 -0.4038675134592797 -0.4038675134592797 +113 -0.07662331939815963 0.1681003682758387 -0.07662331962226009 +114 -0.08322750060678351 0.1818603396641166 -2.235581706783347e-10 +115 -0.07662331962226011 0.1681003682758387 0.07662331939815965 +116 2.235581647899539e-10 0.1818603396641166 -0.08322750060678352 +117 -1.658310015608723e-17 0.2 1.658310015608722e-17 +118 -2.235581667527475e-10 0.1818603396641165 0.08322750060678362 +119 0.0766233196222601 0.1681003682758387 -0.07662331939815964 +120 0.08322750060678355 0.1818603396641166 2.235581706783347e-10 +121 0.07662331939815957 0.1681003682758387 0.07662331962226017 +122 0.1681003682704119 0.07662331963677234 -0.07662331939555292 +123 0.1818603396641166 2.297048943565593e-10 -0.08322750060678355 +124 0.1681003682727068 -0.07662331940653483 -0.07662331962075573 +125 0.1818603396586234 0.08322750061878674 2.235581726374048e-10 +126 0.2 0 1.658310015608722e-17 +127 0.1818603396586234 -0.08322750061878678 -2.235581667490239e-10 +128 0.1681003682727068 0.07662331940653484 0.07662331962075573 +129 0.1818603396641166 -2.297049139844953e-10 0.08322750060678358 +130 0.168100368270412 -0.07662331963677228 0.07662331939555295 +131 0.07662331933729562 -0.1681003683823992 0.07662331944934583 +132 -4.471163413566693e-10 -0.1818603396641166 0.08322750060678351 +133 -0.07662331968312419 -0.1681003681692781 0.07662331957107392 +134 0.08322750040751906 -0.181860339755309 -2.235581903680863e-10 +135 -4.942257691236638e-10 -0.2 1.658310029413927e-17 +136 -0.08322750080604802 -0.1818603395729241 2.235581745421064e-10 +137 0.07662331930317152 -0.1681003683113588 -0.07662331963932223 +138 -4.471163413566695e-10 -0.1818603396641166 -0.08322750060678355 +139 -0.07662331971724834 -0.1681003682403185 -0.07662331938109747 +140 -0.1681003683093744 -0.07662331930847815 0.07662331963836902 +141 -0.1818603397527617 -0.0832275004130852 2.235581864407724e-10 +142 -0.1681003683804148 -0.07662331934260226 -0.07662331944839278 +143 -0.1818603396641165 4.594098966667664e-10 0.08322750060678355 +144 -0.2 5.07814608132468e-10 -1.658310015608722e-17 +145 -0.1818603396641165 4.594099300342575e-10 -0.08322750060678358 +146 -0.1681003682337442 0.07662331973482905 0.07662331937793967 +147 -0.1818603395644851 0.08322750082448825 -2.235581745363859e-10 +148 -0.1681003681627039 0.07662331970070489 -0.07662331956791607 +149 0.2500000000003467 -0.5 -0.2500000000006933 +150 6.875611191503594e-13 -0.5 -0.2500000000006933 +151 -0.2499999999996536 -0.5 -0.2500000000006933 +152 0.2500000000000001 -0.5 -1.375122238300718e-12 +153 0 -0.5 -1.375122238300719e-12 +154 -0.2500000000000001 -0.5 -1.375122238300719e-12 +155 0.2499999999996536 -0.5 0.249999999999307 +156 -6.875611191503594e-13 -0.5 0.249999999999307 +157 -0.2500000000003467 -0.5 0.2499999999993071 +158 0.5 -0.2499999999996535 -0.2500000000006933 +159 0.5 6.875611191503594e-13 -0.2500000000006933 +160 0.5 0.2500000000003467 -0.2500000000006933 +161 0.5 -0.2500000000000001 -1.375122238300719e-12 +162 0.5 0 -1.375122238300719e-12 +163 0.5 0.2500000000000002 -1.375122238300719e-12 +164 0.5 -0.2500000000003467 0.249999999999307 +165 0.5 -6.875611191503594e-13 0.249999999999307 +166 0.5 0.2499999999996536 0.249999999999307 +167 -0.2500000000003467 0.5 -0.2500000000006933 +168 -0.2500000000000001 0.5 -1.375122238300719e-12 +169 -0.2499999999996536 0.5 0.249999999999307 +170 -6.875611191522658e-13 0.5 -0.2500000000006933 +171 -3.782089480442652e-24 0.5 -1.375122238300719e-12 +172 6.875611191484535e-13 0.5 0.249999999999307 +173 0.2499999999996536 0.5 -0.2500000000006933 +174 0.2500000000000002 0.5 -1.375122238300719e-12 +175 0.2500000000003467 0.5 0.249999999999307 +176 0.2499999999996535 0.2500000000003467 -0.5 +177 -6.875611191503594e-13 0.2500000000000001 -0.5 +178 -0.2500000000003467 0.2499999999996536 -0.5 +179 0.2500000000000001 6.875611191522658e-13 -0.5 +180 0 3.782089480442652e-24 -0.5 +181 -0.2500000000000002 -6.875611191484535e-13 -0.5 +182 0.2500000000003467 -0.2499999999996536 -0.5 +183 6.875611191503594e-13 -0.2500000000000002 -0.5 +184 -0.2499999999996536 -0.2500000000003467 -0.5 +185 0.2499999999996535 -0.2500000000003467 0.5 +186 -6.875611191503594e-13 -0.2500000000000001 0.5 +187 -0.2500000000003467 -0.2499999999996536 0.5 +188 0.2500000000000001 -6.875611191522658e-13 0.5 +189 0 -3.782089480442652e-24 0.5 +190 -0.2500000000000002 6.875611191484535e-13 0.5 +191 0.2500000000003467 0.2499999999996536 0.5 +192 6.875611191503594e-13 0.2500000000000002 0.5 +193 -0.2499999999996536 0.2500000000003467 0.5 +194 -0.5 0.2499999999996535 -0.2500000000006933 +195 -0.5 -6.875611191503594e-13 -0.2500000000006933 +196 -0.5 -0.2500000000003467 -0.2500000000006933 +197 -0.5 0.2500000000000001 -1.375122238300719e-12 +198 -0.5 0 -1.375122238300719e-12 +199 -0.5 -0.2500000000000002 -1.375122238300719e-12 +200 -0.5 0.2500000000003467 0.249999999999307 +201 -0.5 6.875611191503594e-13 0.249999999999307 +202 -0.5 -0.2499999999996536 0.249999999999307 +203 0.07662331933579124 0.076623319457721 0.1681003683792674 +204 0.08322750040751908 -2.297050043365159e-10 0.181860339755309 +205 0.07662331930056478 -0.0766233196538344 0.1681003683059321 +206 -4.471163374236351e-10 0.08322750061878675 0.1818603396586234 +207 -4.942258354560647e-10 8.29155007804361e-18 0.2 +208 -4.471163413492223e-10 -0.08322750061878673 0.1818603396586234 +209 -0.07662331968051746 0.07662331958558612 0.1681003681638513 +210 -0.08322750080604797 2.297049158837736e-10 0.1818603395729242 +211 -0.07662331971574397 -0.07662331938947281 0.1681003682371865 +212 0.07662331944839268 -0.07662331934260225 -0.1681003683804148 +213 0.08322750060678358 4.594099300342575e-10 -0.1818603396641165 +214 0.07662331956791602 0.07662331970070484 -0.1681003681627039 +215 -2.235581805523915e-10 -0.08322750041308523 -0.1818603397527616 +216 -1.658310001423938e-17 5.07814608132468e-10 -0.2 +217 2.23558174536386e-10 0.08322750082448824 -0.1818603395644851 +218 -0.07662331963836898 -0.07662331930847815 -0.1681003683093744 +219 -0.08322750060678358 4.594098966667665e-10 -0.1818603396641165 +220 -0.07662331937793966 0.076623319734829 -0.1681003682337443 +221 -0.2260831008214052 0.2260831008214052 0.1079358167660764 +222 -0.2310660171777622 0.2310660171777623 -4.524434646380193e-10 +223 -0.2260831007807189 0.2260831007807189 -0.1079358172043036 +224 -0.3173887338762161 0.3173887338762161 0.1552905444466284 +225 -0.3207106781181812 0.3207106781181812 -4.326941756283009e-10 +226 -0.3173887338581212 0.3173887338581211 -0.1552905448702982 +227 -0.4086943669359639 0.4086943669359639 0.2026452721911508 +228 -0.4103553390591393 0.4103553390591393 -2.823380227529038e-10 +229 -0.4086943669314311 0.4086943669314311 -0.2026452724692069 +230 -0.107935816766224 0.2260831008213915 -0.2260831008213915 +231 -0.1552905444470564 0.3173887338761979 -0.3173887338761979 +232 -0.2026452721919916 0.4086943669359503 -0.4086943669359503 +233 4.521446168854379e-10 0.2310660171777622 -0.2310660171777622 +234 4.31837315905546e-10 0.3207106781181812 -0.3207106781181812 +235 2.80664300827823e-10 0.4103553390591395 -0.4103553390591395 +236 0.1079358172041559 0.2260831007807326 -0.2260831007807326 +237 0.1552905448698703 0.3173887338581395 -0.3173887338581394 +238 0.2026452724683662 0.4086943669314449 -0.4086943669314449 +239 0.2260831008213916 0.2260831008213916 -0.107935816766224 +240 0.2310660171777622 0.2310660171777622 4.521445648442146e-10 +241 0.2260831007807327 0.2260831007807327 0.107935817204156 +242 0.3173887338761979 0.3173887338761979 -0.1552905444470564 +243 0.320710678118181 0.3207106781181812 4.31837392234069e-10 +244 0.3173887338581394 0.3173887338581394 0.1552905448698703 +245 0.4086943669359503 0.4086943669359503 -0.2026452721919917 +246 0.4103553390591395 0.4103553390591395 2.806641585806346e-10 +247 0.4086943669314449 0.4086943669314449 0.202645272468366 +248 0.107935816766224 0.2260831008213916 0.2260831008213916 +249 -4.521445648442146e-10 0.2310660171777622 0.2310660171777622 +250 -0.107935817204156 0.2260831007807327 0.2260831007807327 +251 0.1552905444470564 0.3173887338761979 0.3173887338761979 +252 -4.31837392234069e-10 0.3207106781181812 0.320710678118181 +253 -0.1552905448698703 0.3173887338581394 0.3173887338581394 +254 0.2026452721919917 0.4086943669359503 0.4086943669359503 +255 -2.806641585806346e-10 0.4103553390591395 0.4103553390591395 +256 -0.202645272468366 0.4086943669314449 0.4086943669314449 +257 0.2260831008208372 0.1079358167721949 0.2260831008208372 +258 0.2310660171777622 -4.648793711092836e-10 0.2310660171777622 +259 0.226083100778837 -0.1079358172245738 0.226083100778837 +260 0.3173887338759636 0.1552905444525396 0.3173887338759636 +261 0.3207106781181812 -4.445794600516084e-10 0.3207106781181812 +262 0.3173887338572848 -0.1552905448898819 0.3173887338572848 +263 0.408694366935901 0.2026452721950226 0.408694366935901 +264 0.4103553390591393 -2.900779321607372e-10 0.4103553390591393 +265 0.4086943669312221 -0.2026452724820339 0.4086943669312221 +266 -0.1079358172041559 -0.2260831007807327 -0.2260831007807327 +267 -4.521445787220024e-10 -0.2310660171777622 -0.2310660171777622 +268 0.1079358167662241 -0.2260831008213915 -0.2260831008213915 +269 -0.1552905448698703 -0.3173887338581395 -0.3173887338581395 +270 -4.31837395703516e-10 -0.3207106781181813 -0.3207106781181812 +271 0.1552905444470564 -0.3173887338761979 -0.3173887338761979 +272 -0.2026452724683662 -0.4086943669314448 -0.4086943669314448 +273 -2.806641759278694e-10 -0.4103553390591393 -0.4103553390591393 +274 0.2026452721919914 -0.4086943669359504 -0.4086943669359504 +275 -0.2260831007788507 0.1079358172244262 -0.2260831007788507 +276 -0.2310660171777623 4.64580464376585e-10 -0.2310660171777623 +277 -0.2260831008208235 -0.1079358167723425 -0.2260831008208235 +278 -0.317388733857303 0.1552905448894541 -0.317388733857303 +279 -0.3207106781181812 4.437226037989905e-10 -0.3207106781181812 +280 -0.3173887338759454 -0.1552905444529677 -0.3173887338759454 +281 -0.4086943669312356 0.2026452724811932 -0.4086943669312356 +282 -0.4103553390591393 2.884040610495742e-10 -0.4103553390591393 +283 -0.4086943669358871 -0.2026452721958633 -0.4086943669358871 +284 -0.2260831008208372 -0.1079358167721949 0.2260831008208372 +285 -0.3173887338759637 -0.1552905444525397 0.3173887338759637 +286 -0.4086943669359009 -0.2026452721950226 0.4086943669359009 +287 -0.2310660171777622 4.648792878420623e-10 0.2310660171777622 +288 -0.3207106781181812 4.445794565814511e-10 0.3207106781181812 +289 -0.4103553390591395 2.900779408342133e-10 0.4103553390591395 +290 -0.226083100778837 0.1079358172245738 0.226083100778837 +291 -0.3173887338572848 0.1552905448898819 0.3173887338572848 +292 -0.408694366931222 0.2026452724820339 0.408694366931222 +293 -0.2260831008213915 -0.2260831008213915 -0.107935816766224 +294 -0.3173887338761979 -0.3173887338761979 -0.1552905444470564 +295 -0.4086943669359503 -0.4086943669359503 -0.2026452721919916 +296 -0.2310660171777622 -0.2310660171777622 4.521446168854379e-10 +297 -0.3207106781181812 -0.3207106781181812 4.31837315905546e-10 +298 -0.4103553390591395 -0.4103553390591395 2.80664300827823e-10 +299 -0.2260831007807326 -0.2260831007807326 0.1079358172041559 +300 -0.3173887338581394 -0.3173887338581395 0.1552905448698703 +301 -0.4086943669314449 -0.4086943669314449 0.2026452724683662 +302 0.2260831008214053 -0.2260831008214053 0.1079358167660765 +303 0.3173887338762162 -0.3173887338762162 0.1552905444466284 +304 0.4086943669359641 -0.408694366935964 0.2026452721911509 +305 0.2310660171777622 -0.2310660171777622 -4.524434195347276e-10 +306 0.3207106781181812 -0.3207106781181812 -4.326943317527224e-10 +307 0.4103553390591395 -0.4103553390591395 -2.823381771431556e-10 +308 0.226083100780719 -0.226083100780719 -0.1079358172043035 +309 0.3173887338581211 -0.3173887338581212 -0.1552905448702982 +310 0.4086943669314311 -0.4086943669314311 -0.2026452724692069 +311 -0.202645272469207 -0.4086943669314311 0.4086943669314311 +312 -0.1552905448702983 -0.3173887338581213 0.3173887338581213 +313 -0.1079358172043035 -0.2260831007807189 0.2260831007807189 +314 -2.823381650000914e-10 -0.4103553390591394 0.4103553390591394 +315 -4.326941860359505e-10 -0.3207106781181813 0.3207106781181813 +316 -4.524434264736214e-10 -0.2310660171777622 0.2310660171777621 +317 0.202645272191151 -0.408694366935964 0.408694366935964 +318 0.1552905444466284 -0.3173887338762162 0.3173887338762162 +319 0.1079358167660764 -0.2260831008214052 0.2260831008214052 +320 0.226083100778837 0.1079358172245738 -0.226083100778837 +321 0.2310660171777622 4.64879336414814e-10 -0.2310660171777622 +322 0.2260831008208372 -0.1079358167721948 -0.2260831008208372 +323 0.3173887338572847 0.1552905448898819 -0.3173887338572847 +324 0.3207106781181811 4.445794669905023e-10 -0.3207106781181811 +325 0.3173887338759637 -0.1552905444525397 -0.3173887338759637 +326 0.4086943669312221 0.2026452724820339 -0.4086943669312221 +327 0.4103553390591395 2.900780605302744e-10 -0.4103553390591395 +328 0.4086943669359009 -0.2026452721950226 -0.4086943669359009 +329 -0.1199674898812026 -0.1199674895033449 0.2510752761817555 +330 -0.1633116599837023 -0.1633116596429121 0.3340501841235806 +331 -0.2066558300235196 -0.2066558298084508 0.4170250920631918 +332 -0.1249206257055894 2.731085635421238e-10 0.2613952546864671 +333 -0.1666137505376781 2.494068146452477e-10 0.3409301697953344 +334 -0.2083068753025804 1.585999109821046e-10 0.4204650849000335 +335 -0.1199674898686908 0.1199674897520875 0.2510752761337519 +336 -0.1633116599845174 0.1633116598766275 0.334050184096243 +337 -0.2066558300282741 0.2066558299594833 0.4170250920518557 +338 -5.245257769792566e-10 -0.1249206254726785 0.2613952547443711 +339 -4.75924133436223e-10 -0.1666137503207611 0.3409301698296899 +340 -3.013113994421168e-10 -0.2083068751633001 0.4204650849150879 +341 -5.667740721193582e-10 -1.387778780781446e-17 0.2749999999998161 +342 -5.085857984754583e-10 -6.938893903907228e-17 0.3499999999996037 +343 -3.196612835543178e-10 1.387778780781446e-17 0.4249999999998429 +344 -5.383581358486822e-10 0.1249206254726787 0.261395254744371 +345 -4.941381331891037e-10 0.1666137503207609 0.3409301698296898 +346 -3.144561000478774e-10 0.2083068751633003 0.4204650849150878 +347 0.1199674893869429 -0.1199674897964948 0.2510752762267548 +348 0.1633116595321633 -0.1633116599017135 0.3340501841492071 +349 0.2066558297365029 -0.2066558299697666 0.4170250920738185 +350 0.1249206252099093 -2.731086329310628e-10 0.2613952548096984 +351 0.1666137500760358 -2.494070054648301e-10 0.34093016986845 +352 0.2083068750061649 -1.585998554709533e-10 0.4204650849320722 +353 0.1199674893994548 0.1199674895477523 0.2510752762747585 +354 0.1633116595313481 0.1633116596679975 0.334050184176544 +355 0.2066558297317482 0.2066558298187341 0.4170250920851546 +356 -0.1199674894907585 0.1199674899045491 -0.2510752761795023 +357 -0.1633116596320123 0.1633116600051727 -0.3340501841222974 +358 -0.2066558298019775 0.206655830036977 -0.4170250920626598 +359 -0.1249206254577494 5.391937174525907e-10 -0.2613952547480828 +360 -0.1666137503068569 4.891054644629023e-10 -0.3409301698318918 +361 -0.2083068751543725 3.091450151426756e-10 -0.4204650849160528 +362 -0.1199674897773869 -0.1199674893952907 -0.2510752762290082 +363 -0.1633116598838532 -0.1633116595394527 -0.33405018415049 +364 -0.2066558299580447 -0.2066558297412405 -0.4170250920743505 +365 2.656394392647199e-10 0.1249206257285248 -0.2613952546807653 +366 2.422921308031789e-10 0.1666137505590385 -0.340930169791951 +367 1.535167340471766e-10 0.2083068753162957 -0.4204650848985511 +368 0 5.823576065822067e-10 -0.2749999999998161 +369 -9.71445146547012e-17 5.225694113542012e-10 -0.3499999999996039 +370 1.804112415015879e-16 3.284503641287628e-10 -0.4249999999998426 +371 -2.656394201827617e-10 -0.1249206252168324 -0.2613952548079772 +372 -2.422922140699058e-10 -0.1666137500824837 -0.3409301698674289 +373 -1.535165328192534e-10 -0.2083068750103047 -0.4204650849316246 +374 0.1199674897315449 0.119967489892601 -0.2510752761330007 +375 0.163311659857957 0.1633116600064196 -0.3340501840958154 +376 0.2066558299474292 0.2066558300424374 -0.4170250920516786 +377 0.1249206254577494 5.529144364579963e-10 -0.2613952547480828 +378 0.1666137503068569 5.076288937810869e-10 -0.3409301698318919 +379 0.2083068751543725 3.235532536338681e-10 -0.4204650849160529 +380 0.1199674895366006 -0.1199674894072388 -0.2510752762755097 +381 0.1633116596579084 -0.1633116595382057 -0.3340501841769719 +382 0.2066558298125931 -0.20665582973578 -0.4170250920853319 +383 -0.2510752762754994 -0.1199674894073159 -0.1199674895366238 +384 -0.3340501841769581 -0.1633116595384243 -0.1633116596579972 +385 -0.4170250920853217 -0.2066558297362039 -0.2066558298127896 +386 -0.261395254748076 5.52758123995023e-10 -0.1249206254578233 +387 -0.3409301698318828 5.071912750898022e-10 -0.1666137503070709 +388 -0.420465084916046 3.227092759683359e-10 -0.2083068751547929 +389 -0.2510752761329973 0.1199674898925169 -0.1199674897316695 +390 -0.3340501840958108 0.1633116600061919 -0.1633116598582963 +391 -0.4170250920516748 0.2066558300420067 -0.2066558299480734 +392 -0.2613952548079772 -0.1249206252168323 2.65578411692835e-10 +393 -0.3409301698674287 -0.1666137500824835 2.420962735838472e-10 +394 -0.4204650849316246 -0.2083068750103048 1.531119120379287e-10 +395 -0.2749999999998161 5.823576204599945e-10 -1.494498969023539e-13 +396 -0.3499999999996039 5.225694876820342e-10 -4.284628207784635e-13 +397 -0.4249999999998426 3.284501420841579e-10 -8.367195825087492e-13 +398 -0.2613952546807652 0.1249206257285249 -2.658773062824693e-10 +399 -0.340930169791951 0.1666137505590385 -2.429530465697383e-10 +400 -0.4204650848985508 0.2083068753162955 -1.547856010031268e-10 +401 -0.2510752762290184 -0.1199674893952135 0.1199674897773637 +402 -0.3340501841505038 -0.1633116595392342 0.1633116598837644 +403 -0.4170250920743609 -0.2066558297408167 0.2066558299578484 +404 -0.2613952547480896 5.393500125683293e-10 0.1249206254576755 +405 -0.3409301698319011 4.895429617235436e-10 0.1666137503066429 +406 -0.4204650849160597 3.099886389246187e-10 0.2083068751539523 +407 -0.2510752761795056 0.1199674899046332 0.1199674894906341 +408 -0.3340501841223018 0.1633116600054003 0.1633116596316731 +409 -0.417025092062663 0.2066558300374073 0.2066558298013333 +410 0.2510752762034939 0.1199674897802987 -0.1199674895074905 +411 0.334050184135952 0.1633116598886495 -0.1633116596455727 +412 0.4170250920683175 0.2066558299621015 -0.2066558298100763 +413 0.261395254748076 2.663229567434477e-10 -0.1249206254578232 +414 0.3409301698318828 2.403593712951846e-10 -0.1666137503070708 +415 0.420465084916046 1.518143388778981e-10 -0.2083068751547929 +416 0.2510752762050028 -0.1199674895195341 -0.1199674897608026 +417 0.3340501841368168 -0.1633116596559667 -0.1633116598707207 +418 0.417025092068679 -0.2066558298161091 -0.2066558299507867 +419 0.2613952547443711 0.1249206254726787 2.585806273963653e-10 +420 0.3409301698296895 0.166613750320761 2.327659454071096e-10 +421 0.420465084915088 0.2083068751633003 1.461140097802627e-10 +422 0.2749999999998161 -2.775557561562891e-17 -1.494082635389304e-13 +423 0.3499999999996036 0 -4.284489429906557e-13 +424 0.4249999999998428 6.938893903907228e-17 -8.369971382649055e-13 +425 0.2613952547443711 -0.1249206254726786 -2.588795358637874e-10 +426 0.3409301698296897 -0.166613750320761 -2.336228432930909e-10 +427 0.420465084915088 -0.2083068751633003 -1.477879763012169e-10 +428 0.2510752762050166 0.1199674895195411 0.119967489760655 +429 0.3340501841368351 0.1633116596559757 0.1633116598702927 +430 0.4170250920686928 0.206655829816116 0.2066558299499461 +431 0.2613952547480897 -2.663229949073642e-10 0.1249206254576757 +432 0.3409301698319011 -2.40359482317487e-10 0.166613750306643 +433 0.4204650849160595 -1.518141098943993e-10 0.2083068751539521 +434 0.2510752762035076 -0.1199674897803055 0.1199674895073431 +435 0.3340501841359704 -0.1633116598886586 0.1633116596451448 +436 0.4170250920683313 -0.2066558299621082 0.2066558298092355 +437 -0.1199674897618316 0.2510752762070667 0.1199674895088886 +438 -0.1633116598711672 0.3340501841380025 0.1633116596459023 +439 -0.2066558299505437 0.4170250920691769 0.2066558298094779 +440 -0.1249206254577494 0.2613952547480828 -2.590848161010406e-10 +441 -0.1666137503068569 0.3409301698318921 -2.338964716352976e-10 +442 -0.2083068751543724 0.4204650849160528 -1.479931732717432e-10 +443 -0.119967489508989 0.2510752762070459 -0.1199674897619319 +444 -0.1633116596462095 0.3340501841379752 -0.1633116598714743 +445 -0.2066558298100981 0.4170250920691565 -0.206655829951164 +446 -2.588674760661824e-10 0.2613952547480896 0.1249206254576756 +447 -2.332630477663855e-10 0.3409301698319011 0.1666137503066429 +448 -1.467445401304168e-10 0.4204650849160597 0.2083068751539521 +449 0 0.274999999999816 -1.4944295800845e-13 +450 -6.938893903907228e-17 0.3499999999996038 -4.284211874150401e-13 +451 6.938893903907228e-17 0.4249999999998426 -8.368999937502508e-13 +452 2.588676009662727e-10 0.2613952547480759 -0.1249206254578232 +453 2.332629228662952e-10 0.3409301698318828 -0.1666137503070709 +454 1.467447552361278e-10 0.420465084916046 -0.2083068751547929 +455 0.1199674895089958 0.2510752762070598 0.1199674897617846 +456 0.1633116596462186 0.3340501841379934 0.1633116598710464 +457 0.206655829810105 0.41702509206917 0.2066558299503232 +458 0.1249206254577494 0.2613952547480828 2.587859839614515e-10 +459 0.1666137503068568 0.3409301698318919 2.330397472216639e-10 +460 0.2083068751543727 0.4204650849160528 1.463193177730915e-10 +461 0.1199674897618247 0.2510752762070529 -0.1199674895090361 +462 0.163311659871158 0.3340501841379844 -0.1633116596463302 +463 0.2066558299505369 0.4170250920691632 -0.2066558298103187 +464 -0.1199674898822616 -0.2510752761838021 -0.1199674894928502 +465 -0.1633116599842466 -0.3340501841247434 -0.16331165963328 +466 -0.20665583002348 -0.4170250920636723 -0.2066558298026637 +467 -0.1249206257055893 -0.2613952546864672 2.6556472992878e-10 +468 -0.166613750537678 -0.3409301697953342 2.420779549039409e-10 +469 -0.2083068753025804 -0.4204650849000334 1.530981452724234e-10 +470 -0.1199674898703066 -0.2510752761373074 0.1199674897335627 +471 -0.1633116599854842 -0.3340501840982708 0.1633116598590109 +472 -0.2066558300289335 -0.417025092052698 0.2066558299476948 +473 -5.245884768245723e-10 -0.2613952547480759 -0.1249206254578232 +474 -4.757785970754824e-10 -0.3409301698318831 -0.1666137503070708 +475 -3.006865936794334e-10 -0.420465084916046 -0.2083068751547928 +476 -5.667740339554417e-10 -0.274999999999816 -1.49439488561498e-13 +477 -5.085857707198826e-10 -0.3499999999996038 -4.284628207784635e-13 +478 -3.196612419209544e-10 -0.4249999999998428 -8.369277493258664e-13 +479 -5.382953666144275e-10 -0.2613952547480894 0.1249206254576755 +480 -4.942836417942686e-10 -0.3409301698319013 0.166613750306643 +481 -3.150810723440145e-10 -0.4204650849160595 0.2083068751539521 +482 0.1199674893885521 -0.2510752762302968 -0.1199674897781179 +483 0.163311659533121 -0.3340501841512161 -0.1633116598845245 +484 0.206655829737155 -0.4170250920746471 -0.206655829958819 +485 0.1249206252099094 -0.2613952548096982 -2.658635447211344e-10 +486 0.1666137500760357 -0.3409301698684499 -2.429349291177552e-10 +487 0.2083068750061647 -0.4204650849320722 -1.547721117933776e-10 +488 0.1199674894005208 -0.2510752762768189 0.1199674895371101 +489 0.1633116595319016 -0.3340501841777254 0.1633116596579379 +490 0.2066558297317153 -0.417025092085649 0.2066558298121061 +$EndNodes +$Elements +768 +1 3 2 1 1 2 20 113 19 +2 3 2 1 1 19 113 114 18 +3 3 2 1 1 18 114 115 17 +4 3 2 1 1 17 115 28 6 +5 3 2 1 1 20 21 116 113 +6 3 2 1 1 113 116 117 114 +7 3 2 1 1 114 117 118 115 +8 3 2 1 1 115 118 27 28 +9 3 2 1 1 21 22 119 116 +10 3 2 1 1 116 119 120 117 +11 3 2 1 1 117 120 121 118 +12 3 2 1 1 118 121 26 27 +13 3 2 1 1 22 1 23 119 +14 3 2 1 1 119 23 24 120 +15 3 2 1 1 120 24 25 121 +16 3 2 1 1 121 25 5 26 +17 3 2 1 2 1 23 122 37 +18 3 2 1 2 37 122 123 36 +19 3 2 1 2 36 123 124 35 +20 3 2 1 2 35 124 34 3 +21 3 2 1 2 23 24 125 122 +22 3 2 1 2 122 125 126 123 +23 3 2 1 2 123 126 127 124 +24 3 2 1 2 124 127 33 34 +25 3 2 1 2 24 25 128 125 +26 3 2 1 2 125 128 129 126 +27 3 2 1 2 126 129 130 127 +28 3 2 1 2 127 130 32 33 +29 3 2 1 2 25 5 29 128 +30 3 2 1 2 128 29 30 129 +31 3 2 1 2 129 30 31 130 +32 3 2 1 2 130 31 7 32 +33 3 2 1 3 7 32 131 38 +34 3 2 1 3 38 131 132 39 +35 3 2 1 3 39 132 133 40 +36 3 2 1 3 40 133 52 8 +37 3 2 1 3 32 33 134 131 +38 3 2 1 3 131 134 135 132 +39 3 2 1 3 132 135 136 133 +40 3 2 1 3 133 136 51 52 +41 3 2 1 3 33 34 137 134 +42 3 2 1 3 134 137 138 135 +43 3 2 1 3 135 138 139 136 +44 3 2 1 3 136 139 50 51 +45 3 2 1 3 34 3 41 137 +46 3 2 1 3 137 41 42 138 +47 3 2 1 3 138 42 43 139 +48 3 2 1 3 139 43 4 50 +49 3 2 1 4 8 44 140 52 +50 3 2 1 4 52 140 141 51 +51 3 2 1 4 51 141 142 50 +52 3 2 1 4 50 142 47 4 +53 3 2 1 4 44 45 143 140 +54 3 2 1 4 140 143 144 141 +55 3 2 1 4 141 144 145 142 +56 3 2 1 4 142 145 48 47 +57 3 2 1 4 45 46 146 143 +58 3 2 1 4 143 146 147 144 +59 3 2 1 4 144 147 148 145 +60 3 2 1 4 145 148 49 48 +61 3 2 1 4 46 6 17 146 +62 3 2 1 4 146 17 18 147 +63 3 2 1 4 147 18 19 148 +64 3 2 1 4 148 19 2 49 +65 3 2 1 25 10 65 149 53 +66 3 2 1 25 53 149 150 54 +67 3 2 1 25 54 150 151 55 +68 3 2 1 25 55 151 68 9 +69 3 2 1 25 65 66 152 149 +70 3 2 1 25 149 152 153 150 +71 3 2 1 25 150 153 154 151 +72 3 2 1 25 151 154 69 68 +73 3 2 1 25 66 67 155 152 +74 3 2 1 25 152 155 156 153 +75 3 2 1 25 153 156 157 154 +76 3 2 1 25 154 157 70 69 +77 3 2 1 25 67 14 85 155 +78 3 2 1 25 155 85 84 156 +79 3 2 1 25 156 84 83 157 +80 3 2 1 25 157 83 13 70 +81 3 2 1 26 10 65 158 64 +82 3 2 1 26 64 158 159 63 +83 3 2 1 26 63 159 160 62 +84 3 2 1 26 62 160 74 11 +85 3 2 1 26 65 66 161 158 +86 3 2 1 26 158 161 162 159 +87 3 2 1 26 159 162 163 160 +88 3 2 1 26 160 163 75 74 +89 3 2 1 26 66 67 164 161 +90 3 2 1 26 161 164 165 162 +91 3 2 1 26 162 165 166 163 +92 3 2 1 26 163 166 76 75 +93 3 2 1 26 67 14 86 164 +94 3 2 1 26 164 86 87 165 +95 3 2 1 26 165 87 88 166 +96 3 2 1 26 166 88 15 76 +97 3 2 1 27 12 59 167 71 +98 3 2 1 27 71 167 168 72 +99 3 2 1 27 72 168 169 73 +100 3 2 1 27 73 169 79 16 +101 3 2 1 27 59 60 170 167 +102 3 2 1 27 167 170 171 168 +103 3 2 1 27 168 171 172 169 +104 3 2 1 27 169 172 78 79 +105 3 2 1 27 60 61 173 170 +106 3 2 1 27 170 173 174 171 +107 3 2 1 27 171 174 175 172 +108 3 2 1 27 172 175 77 78 +109 3 2 1 27 61 11 74 173 +110 3 2 1 27 173 74 75 174 +111 3 2 1 27 174 75 76 175 +112 3 2 1 27 175 76 15 77 +113 3 2 1 28 11 62 176 61 +114 3 2 1 28 61 176 177 60 +115 3 2 1 28 60 177 178 59 +116 3 2 1 28 59 178 58 12 +117 3 2 1 28 62 63 179 176 +118 3 2 1 28 176 179 180 177 +119 3 2 1 28 177 180 181 178 +120 3 2 1 28 178 181 57 58 +121 3 2 1 28 63 64 182 179 +122 3 2 1 28 179 182 183 180 +123 3 2 1 28 180 183 184 181 +124 3 2 1 28 181 184 56 57 +125 3 2 1 28 64 10 53 182 +126 3 2 1 28 182 53 54 183 +127 3 2 1 28 183 54 55 184 +128 3 2 1 28 184 55 9 56 +129 3 2 1 29 14 86 185 85 +130 3 2 1 29 85 185 186 84 +131 3 2 1 29 84 186 187 83 +132 3 2 1 29 83 187 82 13 +133 3 2 1 29 86 87 188 185 +134 3 2 1 29 185 188 189 186 +135 3 2 1 29 186 189 190 187 +136 3 2 1 29 187 190 81 82 +137 3 2 1 29 87 88 191 188 +138 3 2 1 29 188 191 192 189 +139 3 2 1 29 189 192 193 190 +140 3 2 1 29 190 193 80 81 +141 3 2 1 29 88 15 77 191 +142 3 2 1 29 191 77 78 192 +143 3 2 1 29 192 78 79 193 +144 3 2 1 29 193 79 16 80 +145 3 2 1 30 12 71 194 58 +146 3 2 1 30 58 194 195 57 +147 3 2 1 30 57 195 196 56 +148 3 2 1 30 56 196 68 9 +149 3 2 1 30 71 72 197 194 +150 3 2 1 30 194 197 198 195 +151 3 2 1 30 195 198 199 196 +152 3 2 1 30 196 199 69 68 +153 3 2 1 30 72 73 200 197 +154 3 2 1 30 197 200 201 198 +155 3 2 1 30 198 201 202 199 +156 3 2 1 30 199 202 70 69 +157 3 2 1 30 73 16 80 200 +158 3 2 1 30 200 80 81 201 +159 3 2 1 30 201 81 82 202 +160 3 2 1 30 202 82 13 70 +161 3 2 1 31 5 26 203 29 +162 3 2 1 31 29 203 204 30 +163 3 2 1 31 30 204 205 31 +164 3 2 1 31 31 205 38 7 +165 3 2 1 31 26 27 206 203 +166 3 2 1 31 203 206 207 204 +167 3 2 1 31 204 207 208 205 +168 3 2 1 31 205 208 39 38 +169 3 2 1 31 27 28 209 206 +170 3 2 1 31 206 209 210 207 +171 3 2 1 31 207 210 211 208 +172 3 2 1 31 208 211 40 39 +173 3 2 1 31 28 6 46 209 +174 3 2 1 31 209 46 45 210 +175 3 2 1 31 210 45 44 211 +176 3 2 1 31 211 44 8 40 +177 3 2 1 32 3 41 212 35 +178 3 2 1 32 35 212 213 36 +179 3 2 1 32 36 213 214 37 +180 3 2 1 32 37 214 22 1 +181 3 2 1 32 41 42 215 212 +182 3 2 1 32 212 215 216 213 +183 3 2 1 32 213 216 217 214 +184 3 2 1 32 214 217 21 22 +185 3 2 1 32 42 43 218 215 +186 3 2 1 32 215 218 219 216 +187 3 2 1 32 216 219 220 217 +188 3 2 1 32 217 220 20 21 +189 3 2 1 32 43 4 47 218 +190 3 2 1 32 218 47 48 219 +191 3 2 1 32 219 48 49 220 +192 3 2 1 32 220 49 2 20 +193 3 2 1 33 6 101 221 17 +194 3 2 1 33 17 221 222 18 +195 3 2 1 33 18 222 223 19 +196 3 2 1 33 19 223 104 2 +197 3 2 1 33 101 102 224 221 +198 3 2 1 33 221 224 225 222 +199 3 2 1 33 222 225 226 223 +200 3 2 1 33 223 226 105 104 +201 3 2 1 33 102 103 227 224 +202 3 2 1 33 224 227 228 225 +203 3 2 1 33 225 228 229 226 +204 3 2 1 33 226 229 106 105 +205 3 2 1 33 103 16 73 227 +206 3 2 1 33 227 73 72 228 +207 3 2 1 33 228 72 71 229 +208 3 2 1 33 229 71 12 106 +209 3 2 1 34 2 20 230 104 +210 3 2 1 34 104 230 231 105 +211 3 2 1 34 105 231 232 106 +212 3 2 1 34 106 232 59 12 +213 3 2 1 34 20 21 233 230 +214 3 2 1 34 230 233 234 231 +215 3 2 1 34 231 234 235 232 +216 3 2 1 34 232 235 60 59 +217 3 2 1 34 21 22 236 233 +218 3 2 1 34 233 236 237 234 +219 3 2 1 34 234 237 238 235 +220 3 2 1 34 235 238 61 60 +221 3 2 1 34 22 1 92 236 +222 3 2 1 34 236 92 93 237 +223 3 2 1 34 237 93 94 238 +224 3 2 1 34 238 94 11 61 +225 3 2 1 35 1 92 239 23 +226 3 2 1 35 23 239 240 24 +227 3 2 1 35 24 240 241 25 +228 3 2 1 35 25 241 89 5 +229 3 2 1 35 92 93 242 239 +230 3 2 1 35 239 242 243 240 +231 3 2 1 35 240 243 244 241 +232 3 2 1 35 241 244 90 89 +233 3 2 1 35 93 94 245 242 +234 3 2 1 35 242 245 246 243 +235 3 2 1 35 243 246 247 244 +236 3 2 1 35 244 247 91 90 +237 3 2 1 35 94 11 74 245 +238 3 2 1 35 245 74 75 246 +239 3 2 1 35 246 75 76 247 +240 3 2 1 35 247 76 15 91 +241 3 2 1 36 5 89 248 26 +242 3 2 1 36 26 248 249 27 +243 3 2 1 36 27 249 250 28 +244 3 2 1 36 28 250 101 6 +245 3 2 1 36 89 90 251 248 +246 3 2 1 36 248 251 252 249 +247 3 2 1 36 249 252 253 250 +248 3 2 1 36 250 253 102 101 +249 3 2 1 36 90 91 254 251 +250 3 2 1 36 251 254 255 252 +251 3 2 1 36 252 255 256 253 +252 3 2 1 36 253 256 103 102 +253 3 2 1 36 91 15 77 254 +254 3 2 1 36 254 77 78 255 +255 3 2 1 36 255 78 79 256 +256 3 2 1 36 256 79 16 103 +257 3 2 1 37 5 89 257 29 +258 3 2 1 37 29 257 258 30 +259 3 2 1 37 30 258 259 31 +260 3 2 1 37 31 259 95 7 +261 3 2 1 37 89 90 260 257 +262 3 2 1 37 257 260 261 258 +263 3 2 1 37 258 261 262 259 +264 3 2 1 37 259 262 96 95 +265 3 2 1 37 90 91 263 260 +266 3 2 1 37 260 263 264 261 +267 3 2 1 37 261 264 265 262 +268 3 2 1 37 262 265 97 96 +269 3 2 1 37 91 15 88 263 +270 3 2 1 37 263 88 87 264 +271 3 2 1 37 264 87 86 265 +272 3 2 1 37 265 86 14 97 +273 3 2 1 38 4 110 266 43 +274 3 2 1 38 43 266 267 42 +275 3 2 1 38 42 267 268 41 +276 3 2 1 38 41 268 98 3 +277 3 2 1 38 110 111 269 266 +278 3 2 1 38 266 269 270 267 +279 3 2 1 38 267 270 271 268 +280 3 2 1 38 268 271 99 98 +281 3 2 1 38 111 112 272 269 +282 3 2 1 38 269 272 273 270 +283 3 2 1 38 270 273 274 271 +284 3 2 1 38 271 274 100 99 +285 3 2 1 38 112 9 55 272 +286 3 2 1 38 272 55 54 273 +287 3 2 1 38 273 54 53 274 +288 3 2 1 38 274 53 10 100 +289 3 2 1 39 2 104 275 49 +290 3 2 1 39 49 275 276 48 +291 3 2 1 39 48 276 277 47 +292 3 2 1 39 47 277 110 4 +293 3 2 1 39 104 105 278 275 +294 3 2 1 39 275 278 279 276 +295 3 2 1 39 276 279 280 277 +296 3 2 1 39 277 280 111 110 +297 3 2 1 39 105 106 281 278 +298 3 2 1 39 278 281 282 279 +299 3 2 1 39 279 282 283 280 +300 3 2 1 39 280 283 112 111 +301 3 2 1 39 106 12 58 281 +302 3 2 1 39 281 58 57 282 +303 3 2 1 39 282 57 56 283 +304 3 2 1 39 283 56 9 112 +305 3 2 1 41 8 44 284 107 +306 3 2 1 41 107 284 285 108 +307 3 2 1 41 108 285 286 109 +308 3 2 1 41 109 286 82 13 +309 3 2 1 41 44 45 287 284 +310 3 2 1 41 284 287 288 285 +311 3 2 1 41 285 288 289 286 +312 3 2 1 41 286 289 81 82 +313 3 2 1 41 45 46 290 287 +314 3 2 1 41 287 290 291 288 +315 3 2 1 41 288 291 292 289 +316 3 2 1 41 289 292 80 81 +317 3 2 1 41 46 6 101 290 +318 3 2 1 41 290 101 102 291 +319 3 2 1 41 291 102 103 292 +320 3 2 1 41 292 103 16 80 +321 3 2 1 42 4 50 293 110 +322 3 2 1 42 110 293 294 111 +323 3 2 1 42 111 294 295 112 +324 3 2 1 42 112 295 68 9 +325 3 2 1 42 50 51 296 293 +326 3 2 1 42 293 296 297 294 +327 3 2 1 42 294 297 298 295 +328 3 2 1 42 295 298 69 68 +329 3 2 1 42 51 52 299 296 +330 3 2 1 42 296 299 300 297 +331 3 2 1 42 297 300 301 298 +332 3 2 1 42 298 301 70 69 +333 3 2 1 42 52 8 107 299 +334 3 2 1 42 299 107 108 300 +335 3 2 1 42 300 108 109 301 +336 3 2 1 42 301 109 13 70 +337 3 2 1 43 7 32 302 95 +338 3 2 1 43 95 302 303 96 +339 3 2 1 43 96 303 304 97 +340 3 2 1 43 97 304 67 14 +341 3 2 1 43 32 33 305 302 +342 3 2 1 43 302 305 306 303 +343 3 2 1 43 303 306 307 304 +344 3 2 1 43 304 307 66 67 +345 3 2 1 43 33 34 308 305 +346 3 2 1 43 305 308 309 306 +347 3 2 1 43 306 309 310 307 +348 3 2 1 43 307 310 65 66 +349 3 2 1 43 34 3 98 308 +350 3 2 1 43 308 98 99 309 +351 3 2 1 43 309 99 100 310 +352 3 2 1 43 310 100 10 65 +353 3 2 1 44 13 83 311 109 +354 3 2 1 44 109 311 312 108 +355 3 2 1 44 108 312 313 107 +356 3 2 1 44 107 313 40 8 +357 3 2 1 44 83 84 314 311 +358 3 2 1 44 311 314 315 312 +359 3 2 1 44 312 315 316 313 +360 3 2 1 44 313 316 39 40 +361 3 2 1 44 84 85 317 314 +362 3 2 1 44 314 317 318 315 +363 3 2 1 44 315 318 319 316 +364 3 2 1 44 316 319 38 39 +365 3 2 1 44 85 14 97 317 +366 3 2 1 44 317 97 96 318 +367 3 2 1 44 318 96 95 319 +368 3 2 1 44 319 95 7 38 +369 3 2 1 45 1 92 320 37 +370 3 2 1 45 37 320 321 36 +371 3 2 1 45 36 321 322 35 +372 3 2 1 45 35 322 98 3 +373 3 2 1 45 92 93 323 320 +374 3 2 1 45 320 323 324 321 +375 3 2 1 45 321 324 325 322 +376 3 2 1 45 322 325 99 98 +377 3 2 1 45 93 94 326 323 +378 3 2 1 45 323 326 327 324 +379 3 2 1 45 324 327 328 325 +380 3 2 1 45 325 328 100 99 +381 3 2 1 45 94 11 62 326 +382 3 2 1 45 326 62 63 327 +383 3 2 1 45 327 63 64 328 +384 3 2 1 45 328 64 10 100 +385 5 2 2 1 8 40 211 44 107 313 329 284 +386 5 2 2 1 107 313 329 284 108 312 330 285 +387 5 2 2 1 108 312 330 285 109 311 331 286 +388 5 2 2 1 109 311 331 286 13 83 187 82 +389 5 2 2 1 44 211 210 45 284 329 332 287 +390 5 2 2 1 284 329 332 287 285 330 333 288 +391 5 2 2 1 285 330 333 288 286 331 334 289 +392 5 2 2 1 286 331 334 289 82 187 190 81 +393 5 2 2 1 45 210 209 46 287 332 335 290 +394 5 2 2 1 287 332 335 290 288 333 336 291 +395 5 2 2 1 288 333 336 291 289 334 337 292 +396 5 2 2 1 289 334 337 292 81 190 193 80 +397 5 2 2 1 46 209 28 6 290 335 250 101 +398 5 2 2 1 290 335 250 101 291 336 253 102 +399 5 2 2 1 291 336 253 102 292 337 256 103 +400 5 2 2 1 292 337 256 103 80 193 79 16 +401 5 2 2 1 40 39 208 211 313 316 338 329 +402 5 2 2 1 313 316 338 329 312 315 339 330 +403 5 2 2 1 312 315 339 330 311 314 340 331 +404 5 2 2 1 311 314 340 331 83 84 186 187 +405 5 2 2 1 211 208 207 210 329 338 341 332 +406 5 2 2 1 329 338 341 332 330 339 342 333 +407 5 2 2 1 330 339 342 333 331 340 343 334 +408 5 2 2 1 331 340 343 334 187 186 189 190 +409 5 2 2 1 210 207 206 209 332 341 344 335 +410 5 2 2 1 332 341 344 335 333 342 345 336 +411 5 2 2 1 333 342 345 336 334 343 346 337 +412 5 2 2 1 334 343 346 337 190 189 192 193 +413 5 2 2 1 209 206 27 28 335 344 249 250 +414 5 2 2 1 335 344 249 250 336 345 252 253 +415 5 2 2 1 336 345 252 253 337 346 255 256 +416 5 2 2 1 337 346 255 256 193 192 78 79 +417 5 2 2 1 39 38 205 208 316 319 347 338 +418 5 2 2 1 316 319 347 338 315 318 348 339 +419 5 2 2 1 315 318 348 339 314 317 349 340 +420 5 2 2 1 314 317 349 340 84 85 185 186 +421 5 2 2 1 208 205 204 207 338 347 350 341 +422 5 2 2 1 338 347 350 341 339 348 351 342 +423 5 2 2 1 339 348 351 342 340 349 352 343 +424 5 2 2 1 340 349 352 343 186 185 188 189 +425 5 2 2 1 207 204 203 206 341 350 353 344 +426 5 2 2 1 341 350 353 344 342 351 354 345 +427 5 2 2 1 342 351 354 345 343 352 355 346 +428 5 2 2 1 343 352 355 346 189 188 191 192 +429 5 2 2 1 206 203 26 27 344 353 248 249 +430 5 2 2 1 344 353 248 249 345 354 251 252 +431 5 2 2 1 345 354 251 252 346 355 254 255 +432 5 2 2 1 346 355 254 255 192 191 77 78 +433 5 2 2 1 38 7 31 205 319 95 259 347 +434 5 2 2 1 319 95 259 347 318 96 262 348 +435 5 2 2 1 318 96 262 348 317 97 265 349 +436 5 2 2 1 317 97 265 349 85 14 86 185 +437 5 2 2 1 205 31 30 204 347 259 258 350 +438 5 2 2 1 347 259 258 350 348 262 261 351 +439 5 2 2 1 348 262 261 351 349 265 264 352 +440 5 2 2 1 349 265 264 352 185 86 87 188 +441 5 2 2 1 204 30 29 203 350 258 257 353 +442 5 2 2 1 350 258 257 353 351 261 260 354 +443 5 2 2 1 351 261 260 354 352 264 263 355 +444 5 2 2 1 352 264 263 355 188 87 88 191 +445 5 2 2 1 203 29 5 26 353 257 89 248 +446 5 2 2 1 353 257 89 248 354 260 90 251 +447 5 2 2 1 354 260 90 251 355 263 91 254 +448 5 2 2 1 355 263 91 254 191 88 15 77 +449 5 2 2 2 2 20 220 49 104 230 356 275 +450 5 2 2 2 104 230 356 275 105 231 357 278 +451 5 2 2 2 105 231 357 278 106 232 358 281 +452 5 2 2 2 106 232 358 281 12 59 178 58 +453 5 2 2 2 49 220 219 48 275 356 359 276 +454 5 2 2 2 275 356 359 276 278 357 360 279 +455 5 2 2 2 278 357 360 279 281 358 361 282 +456 5 2 2 2 281 358 361 282 58 178 181 57 +457 5 2 2 2 48 219 218 47 276 359 362 277 +458 5 2 2 2 276 359 362 277 279 360 363 280 +459 5 2 2 2 279 360 363 280 282 361 364 283 +460 5 2 2 2 282 361 364 283 57 181 184 56 +461 5 2 2 2 47 218 43 4 277 362 266 110 +462 5 2 2 2 277 362 266 110 280 363 269 111 +463 5 2 2 2 280 363 269 111 283 364 272 112 +464 5 2 2 2 283 364 272 112 56 184 55 9 +465 5 2 2 2 20 21 217 220 230 233 365 356 +466 5 2 2 2 230 233 365 356 231 234 366 357 +467 5 2 2 2 231 234 366 357 232 235 367 358 +468 5 2 2 2 232 235 367 358 59 60 177 178 +469 5 2 2 2 220 217 216 219 356 365 368 359 +470 5 2 2 2 356 365 368 359 357 366 369 360 +471 5 2 2 2 357 366 369 360 358 367 370 361 +472 5 2 2 2 358 367 370 361 178 177 180 181 +473 5 2 2 2 219 216 215 218 359 368 371 362 +474 5 2 2 2 359 368 371 362 360 369 372 363 +475 5 2 2 2 360 369 372 363 361 370 373 364 +476 5 2 2 2 361 370 373 364 181 180 183 184 +477 5 2 2 2 218 215 42 43 362 371 267 266 +478 5 2 2 2 362 371 267 266 363 372 270 269 +479 5 2 2 2 363 372 270 269 364 373 273 272 +480 5 2 2 2 364 373 273 272 184 183 54 55 +481 5 2 2 2 21 22 214 217 233 236 374 365 +482 5 2 2 2 233 236 374 365 234 237 375 366 +483 5 2 2 2 234 237 375 366 235 238 376 367 +484 5 2 2 2 235 238 376 367 60 61 176 177 +485 5 2 2 2 217 214 213 216 365 374 377 368 +486 5 2 2 2 365 374 377 368 366 375 378 369 +487 5 2 2 2 366 375 378 369 367 376 379 370 +488 5 2 2 2 367 376 379 370 177 176 179 180 +489 5 2 2 2 216 213 212 215 368 377 380 371 +490 5 2 2 2 368 377 380 371 369 378 381 372 +491 5 2 2 2 369 378 381 372 370 379 382 373 +492 5 2 2 2 370 379 382 373 180 179 182 183 +493 5 2 2 2 215 212 41 42 371 380 268 267 +494 5 2 2 2 371 380 268 267 372 381 271 270 +495 5 2 2 2 372 381 271 270 373 382 274 273 +496 5 2 2 2 373 382 274 273 183 182 53 54 +497 5 2 2 2 22 1 37 214 236 92 320 374 +498 5 2 2 2 236 92 320 374 237 93 323 375 +499 5 2 2 2 237 93 323 375 238 94 326 376 +500 5 2 2 2 238 94 326 376 61 11 62 176 +501 5 2 2 2 214 37 36 213 374 320 321 377 +502 5 2 2 2 374 320 321 377 375 323 324 378 +503 5 2 2 2 375 323 324 378 376 326 327 379 +504 5 2 2 2 376 326 327 379 176 62 63 179 +505 5 2 2 2 213 36 35 212 377 321 322 380 +506 5 2 2 2 377 321 322 380 378 324 325 381 +507 5 2 2 2 378 324 325 381 379 327 328 382 +508 5 2 2 2 379 327 328 382 179 63 64 182 +509 5 2 2 2 212 35 3 41 380 322 98 268 +510 5 2 2 2 380 322 98 268 381 325 99 271 +511 5 2 2 2 381 325 99 271 382 328 100 274 +512 5 2 2 2 382 328 100 274 182 64 10 53 +513 5 2 2 3 4 50 142 47 110 293 383 277 +514 5 2 2 3 110 293 383 277 111 294 384 280 +515 5 2 2 3 111 294 384 280 112 295 385 283 +516 5 2 2 3 112 295 385 283 9 68 196 56 +517 5 2 2 3 47 142 145 48 277 383 386 276 +518 5 2 2 3 277 383 386 276 280 384 387 279 +519 5 2 2 3 280 384 387 279 283 385 388 282 +520 5 2 2 3 283 385 388 282 56 196 195 57 +521 5 2 2 3 48 145 148 49 276 386 389 275 +522 5 2 2 3 276 386 389 275 279 387 390 278 +523 5 2 2 3 279 387 390 278 282 388 391 281 +524 5 2 2 3 282 388 391 281 57 195 194 58 +525 5 2 2 3 49 148 19 2 275 389 223 104 +526 5 2 2 3 275 389 223 104 278 390 226 105 +527 5 2 2 3 278 390 226 105 281 391 229 106 +528 5 2 2 3 281 391 229 106 58 194 71 12 +529 5 2 2 3 50 51 141 142 293 296 392 383 +530 5 2 2 3 293 296 392 383 294 297 393 384 +531 5 2 2 3 294 297 393 384 295 298 394 385 +532 5 2 2 3 295 298 394 385 68 69 199 196 +533 5 2 2 3 142 141 144 145 383 392 395 386 +534 5 2 2 3 383 392 395 386 384 393 396 387 +535 5 2 2 3 384 393 396 387 385 394 397 388 +536 5 2 2 3 385 394 397 388 196 199 198 195 +537 5 2 2 3 145 144 147 148 386 395 398 389 +538 5 2 2 3 386 395 398 389 387 396 399 390 +539 5 2 2 3 387 396 399 390 388 397 400 391 +540 5 2 2 3 388 397 400 391 195 198 197 194 +541 5 2 2 3 148 147 18 19 389 398 222 223 +542 5 2 2 3 389 398 222 223 390 399 225 226 +543 5 2 2 3 390 399 225 226 391 400 228 229 +544 5 2 2 3 391 400 228 229 194 197 72 71 +545 5 2 2 3 51 52 140 141 296 299 401 392 +546 5 2 2 3 296 299 401 392 297 300 402 393 +547 5 2 2 3 297 300 402 393 298 301 403 394 +548 5 2 2 3 298 301 403 394 69 70 202 199 +549 5 2 2 3 141 140 143 144 392 401 404 395 +550 5 2 2 3 392 401 404 395 393 402 405 396 +551 5 2 2 3 393 402 405 396 394 403 406 397 +552 5 2 2 3 394 403 406 397 199 202 201 198 +553 5 2 2 3 144 143 146 147 395 404 407 398 +554 5 2 2 3 395 404 407 398 396 405 408 399 +555 5 2 2 3 396 405 408 399 397 406 409 400 +556 5 2 2 3 397 406 409 400 198 201 200 197 +557 5 2 2 3 147 146 17 18 398 407 221 222 +558 5 2 2 3 398 407 221 222 399 408 224 225 +559 5 2 2 3 399 408 224 225 400 409 227 228 +560 5 2 2 3 400 409 227 228 197 200 73 72 +561 5 2 2 3 52 8 44 140 299 107 284 401 +562 5 2 2 3 299 107 284 401 300 108 285 402 +563 5 2 2 3 300 108 285 402 301 109 286 403 +564 5 2 2 3 301 109 286 403 70 13 82 202 +565 5 2 2 3 140 44 45 143 401 284 287 404 +566 5 2 2 3 401 284 287 404 402 285 288 405 +567 5 2 2 3 402 285 288 405 403 286 289 406 +568 5 2 2 3 403 286 289 406 202 82 81 201 +569 5 2 2 3 143 45 46 146 404 287 290 407 +570 5 2 2 3 404 287 290 407 405 288 291 408 +571 5 2 2 3 405 288 291 408 406 289 292 409 +572 5 2 2 3 406 289 292 409 201 81 80 200 +573 5 2 2 3 146 46 6 17 407 290 101 221 +574 5 2 2 3 407 290 101 221 408 291 102 224 +575 5 2 2 3 408 291 102 224 409 292 103 227 +576 5 2 2 3 409 292 103 227 200 80 16 73 +577 5 2 2 4 1 23 122 37 92 239 410 320 +578 5 2 2 4 92 239 410 320 93 242 411 323 +579 5 2 2 4 93 242 411 323 94 245 412 326 +580 5 2 2 4 94 245 412 326 11 74 160 62 +581 5 2 2 4 37 122 123 36 320 410 413 321 +582 5 2 2 4 320 410 413 321 323 411 414 324 +583 5 2 2 4 323 411 414 324 326 412 415 327 +584 5 2 2 4 326 412 415 327 62 160 159 63 +585 5 2 2 4 36 123 124 35 321 413 416 322 +586 5 2 2 4 321 413 416 322 324 414 417 325 +587 5 2 2 4 324 414 417 325 327 415 418 328 +588 5 2 2 4 327 415 418 328 63 159 158 64 +589 5 2 2 4 35 124 34 3 322 416 308 98 +590 5 2 2 4 322 416 308 98 325 417 309 99 +591 5 2 2 4 325 417 309 99 328 418 310 100 +592 5 2 2 4 328 418 310 100 64 158 65 10 +593 5 2 2 4 23 24 125 122 239 240 419 410 +594 5 2 2 4 239 240 419 410 242 243 420 411 +595 5 2 2 4 242 243 420 411 245 246 421 412 +596 5 2 2 4 245 246 421 412 74 75 163 160 +597 5 2 2 4 122 125 126 123 410 419 422 413 +598 5 2 2 4 410 419 422 413 411 420 423 414 +599 5 2 2 4 411 420 423 414 412 421 424 415 +600 5 2 2 4 412 421 424 415 160 163 162 159 +601 5 2 2 4 123 126 127 124 413 422 425 416 +602 5 2 2 4 413 422 425 416 414 423 426 417 +603 5 2 2 4 414 423 426 417 415 424 427 418 +604 5 2 2 4 415 424 427 418 159 162 161 158 +605 5 2 2 4 124 127 33 34 416 425 305 308 +606 5 2 2 4 416 425 305 308 417 426 306 309 +607 5 2 2 4 417 426 306 309 418 427 307 310 +608 5 2 2 4 418 427 307 310 158 161 66 65 +609 5 2 2 4 24 25 128 125 240 241 428 419 +610 5 2 2 4 240 241 428 419 243 244 429 420 +611 5 2 2 4 243 244 429 420 246 247 430 421 +612 5 2 2 4 246 247 430 421 75 76 166 163 +613 5 2 2 4 125 128 129 126 419 428 431 422 +614 5 2 2 4 419 428 431 422 420 429 432 423 +615 5 2 2 4 420 429 432 423 421 430 433 424 +616 5 2 2 4 421 430 433 424 163 166 165 162 +617 5 2 2 4 126 129 130 127 422 431 434 425 +618 5 2 2 4 422 431 434 425 423 432 435 426 +619 5 2 2 4 423 432 435 426 424 433 436 427 +620 5 2 2 4 424 433 436 427 162 165 164 161 +621 5 2 2 4 127 130 32 33 425 434 302 305 +622 5 2 2 4 425 434 302 305 426 435 303 306 +623 5 2 2 4 426 435 303 306 427 436 304 307 +624 5 2 2 4 427 436 304 307 161 164 67 66 +625 5 2 2 4 25 5 29 128 241 89 257 428 +626 5 2 2 4 241 89 257 428 244 90 260 429 +627 5 2 2 4 244 90 260 429 247 91 263 430 +628 5 2 2 4 247 91 263 430 76 15 88 166 +629 5 2 2 4 128 29 30 129 428 257 258 431 +630 5 2 2 4 428 257 258 431 429 260 261 432 +631 5 2 2 4 429 260 261 432 430 263 264 433 +632 5 2 2 4 430 263 264 433 166 88 87 165 +633 5 2 2 4 129 30 31 130 431 258 259 434 +634 5 2 2 4 431 258 259 434 432 261 262 435 +635 5 2 2 4 432 261 262 435 433 264 265 436 +636 5 2 2 4 433 264 265 436 165 87 86 164 +637 5 2 2 4 130 31 7 32 434 259 95 302 +638 5 2 2 4 434 259 95 302 435 262 96 303 +639 5 2 2 4 435 262 96 303 436 265 97 304 +640 5 2 2 4 436 265 97 304 164 86 14 67 +641 5 2 2 5 6 28 115 17 101 250 437 221 +642 5 2 2 5 101 250 437 221 102 253 438 224 +643 5 2 2 5 102 253 438 224 103 256 439 227 +644 5 2 2 5 103 256 439 227 16 79 169 73 +645 5 2 2 5 17 115 114 18 221 437 440 222 +646 5 2 2 5 221 437 440 222 224 438 441 225 +647 5 2 2 5 224 438 441 225 227 439 442 228 +648 5 2 2 5 227 439 442 228 73 169 168 72 +649 5 2 2 5 18 114 113 19 222 440 443 223 +650 5 2 2 5 222 440 443 223 225 441 444 226 +651 5 2 2 5 225 441 444 226 228 442 445 229 +652 5 2 2 5 228 442 445 229 72 168 167 71 +653 5 2 2 5 19 113 20 2 223 443 230 104 +654 5 2 2 5 223 443 230 104 226 444 231 105 +655 5 2 2 5 226 444 231 105 229 445 232 106 +656 5 2 2 5 229 445 232 106 71 167 59 12 +657 5 2 2 5 28 27 118 115 250 249 446 437 +658 5 2 2 5 250 249 446 437 253 252 447 438 +659 5 2 2 5 253 252 447 438 256 255 448 439 +660 5 2 2 5 256 255 448 439 79 78 172 169 +661 5 2 2 5 115 118 117 114 437 446 449 440 +662 5 2 2 5 437 446 449 440 438 447 450 441 +663 5 2 2 5 438 447 450 441 439 448 451 442 +664 5 2 2 5 439 448 451 442 169 172 171 168 +665 5 2 2 5 114 117 116 113 440 449 452 443 +666 5 2 2 5 440 449 452 443 441 450 453 444 +667 5 2 2 5 441 450 453 444 442 451 454 445 +668 5 2 2 5 442 451 454 445 168 171 170 167 +669 5 2 2 5 113 116 21 20 443 452 233 230 +670 5 2 2 5 443 452 233 230 444 453 234 231 +671 5 2 2 5 444 453 234 231 445 454 235 232 +672 5 2 2 5 445 454 235 232 167 170 60 59 +673 5 2 2 5 27 26 121 118 249 248 455 446 +674 5 2 2 5 249 248 455 446 252 251 456 447 +675 5 2 2 5 252 251 456 447 255 254 457 448 +676 5 2 2 5 255 254 457 448 78 77 175 172 +677 5 2 2 5 118 121 120 117 446 455 458 449 +678 5 2 2 5 446 455 458 449 447 456 459 450 +679 5 2 2 5 447 456 459 450 448 457 460 451 +680 5 2 2 5 448 457 460 451 172 175 174 171 +681 5 2 2 5 117 120 119 116 449 458 461 452 +682 5 2 2 5 449 458 461 452 450 459 462 453 +683 5 2 2 5 450 459 462 453 451 460 463 454 +684 5 2 2 5 451 460 463 454 171 174 173 170 +685 5 2 2 5 116 119 22 21 452 461 236 233 +686 5 2 2 5 452 461 236 233 453 462 237 234 +687 5 2 2 5 453 462 237 234 454 463 238 235 +688 5 2 2 5 454 463 238 235 170 173 61 60 +689 5 2 2 5 26 5 25 121 248 89 241 455 +690 5 2 2 5 248 89 241 455 251 90 244 456 +691 5 2 2 5 251 90 244 456 254 91 247 457 +692 5 2 2 5 254 91 247 457 77 15 76 175 +693 5 2 2 5 121 25 24 120 455 241 240 458 +694 5 2 2 5 455 241 240 458 456 244 243 459 +695 5 2 2 5 456 244 243 459 457 247 246 460 +696 5 2 2 5 457 247 246 460 175 76 75 174 +697 5 2 2 5 120 24 23 119 458 240 239 461 +698 5 2 2 5 458 240 239 461 459 243 242 462 +699 5 2 2 5 459 243 242 462 460 246 245 463 +700 5 2 2 5 460 246 245 463 174 75 74 173 +701 5 2 2 5 119 23 1 22 461 239 92 236 +702 5 2 2 5 461 239 92 236 462 242 93 237 +703 5 2 2 5 462 242 93 237 463 245 94 238 +704 5 2 2 5 463 245 94 238 173 74 11 61 +705 5 2 2 6 4 43 139 50 110 266 464 293 +706 5 2 2 6 110 266 464 293 111 269 465 294 +707 5 2 2 6 111 269 465 294 112 272 466 295 +708 5 2 2 6 112 272 466 295 9 55 151 68 +709 5 2 2 6 50 139 136 51 293 464 467 296 +710 5 2 2 6 293 464 467 296 294 465 468 297 +711 5 2 2 6 294 465 468 297 295 466 469 298 +712 5 2 2 6 295 466 469 298 68 151 154 69 +713 5 2 2 6 51 136 133 52 296 467 470 299 +714 5 2 2 6 296 467 470 299 297 468 471 300 +715 5 2 2 6 297 468 471 300 298 469 472 301 +716 5 2 2 6 298 469 472 301 69 154 157 70 +717 5 2 2 6 52 133 40 8 299 470 313 107 +718 5 2 2 6 299 470 313 107 300 471 312 108 +719 5 2 2 6 300 471 312 108 301 472 311 109 +720 5 2 2 6 301 472 311 109 70 157 83 13 +721 5 2 2 6 43 42 138 139 266 267 473 464 +722 5 2 2 6 266 267 473 464 269 270 474 465 +723 5 2 2 6 269 270 474 465 272 273 475 466 +724 5 2 2 6 272 273 475 466 55 54 150 151 +725 5 2 2 6 139 138 135 136 464 473 476 467 +726 5 2 2 6 464 473 476 467 465 474 477 468 +727 5 2 2 6 465 474 477 468 466 475 478 469 +728 5 2 2 6 466 475 478 469 151 150 153 154 +729 5 2 2 6 136 135 132 133 467 476 479 470 +730 5 2 2 6 467 476 479 470 468 477 480 471 +731 5 2 2 6 468 477 480 471 469 478 481 472 +732 5 2 2 6 469 478 481 472 154 153 156 157 +733 5 2 2 6 133 132 39 40 470 479 316 313 +734 5 2 2 6 470 479 316 313 471 480 315 312 +735 5 2 2 6 471 480 315 312 472 481 314 311 +736 5 2 2 6 472 481 314 311 157 156 84 83 +737 5 2 2 6 42 41 137 138 267 268 482 473 +738 5 2 2 6 267 268 482 473 270 271 483 474 +739 5 2 2 6 270 271 483 474 273 274 484 475 +740 5 2 2 6 273 274 484 475 54 53 149 150 +741 5 2 2 6 138 137 134 135 473 482 485 476 +742 5 2 2 6 473 482 485 476 474 483 486 477 +743 5 2 2 6 474 483 486 477 475 484 487 478 +744 5 2 2 6 475 484 487 478 150 149 152 153 +745 5 2 2 6 135 134 131 132 476 485 488 479 +746 5 2 2 6 476 485 488 479 477 486 489 480 +747 5 2 2 6 477 486 489 480 478 487 490 481 +748 5 2 2 6 478 487 490 481 153 152 155 156 +749 5 2 2 6 132 131 38 39 479 488 319 316 +750 5 2 2 6 479 488 319 316 480 489 318 315 +751 5 2 2 6 480 489 318 315 481 490 317 314 +752 5 2 2 6 481 490 317 314 156 155 85 84 +753 5 2 2 6 41 3 34 137 268 98 308 482 +754 5 2 2 6 268 98 308 482 271 99 309 483 +755 5 2 2 6 271 99 309 483 274 100 310 484 +756 5 2 2 6 274 100 310 484 53 10 65 149 +757 5 2 2 6 137 34 33 134 482 308 305 485 +758 5 2 2 6 482 308 305 485 483 309 306 486 +759 5 2 2 6 483 309 306 486 484 310 307 487 +760 5 2 2 6 484 310 307 487 149 65 66 152 +761 5 2 2 6 134 33 32 131 485 305 302 488 +762 5 2 2 6 485 305 302 488 486 306 303 489 +763 5 2 2 6 486 306 303 489 487 307 304 490 +764 5 2 2 6 487 307 304 490 152 66 67 155 +765 5 2 2 6 131 32 7 38 488 302 95 319 +766 5 2 2 6 488 302 95 319 489 303 96 318 +767 5 2 2 6 489 303 96 318 490 304 97 317 +768 5 2 2 6 490 304 97 317 155 67 14 85 +$EndElements From 626f14cd342d61d4f3e1169c7ac3f1ee0a5f2f11 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Fri, 4 Jul 2025 18:01:54 -0700 Subject: [PATCH 09/44] added submesh, need to add line --- laghos.cpp | 130 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 92 insertions(+), 38 deletions(-) diff --git a/laghos.cpp b/laghos.cpp index 725505c76..1937cca47 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -84,6 +84,7 @@ #include #include #include "laghos_solver.hpp" +#include "AnalyticalSurface.hpp" using std::cout; using std::endl; @@ -145,6 +146,8 @@ int main(int argc, char *argv[]) int dev = 0; double blast_energy = 0.25; double blast_position[] = {0.0, 0.0, 0.0}; + bool useEmbedded = false; + int geometricShape = 0; OptionsParser args(argc, argv); args.AddOption(&dim, "-dim", "--dimension", "Dimension of the problem."); @@ -214,12 +217,22 @@ int main(int argc, char *argv[]) args.AddOption(&gpu_aware_mpi, "-gam", "--gpu-aware-mpi", "-no-gam", "--no-gpu-aware-mpi", "Enable GPU aware MPI communications."); args.AddOption(&dev, "-dev", "--dev", "GPU device to use."); + args.AddOption(&useEmbedded, "-emb", "--use-embedded", "-no-emb", + "--no-embedded", + "Use Embedded when there is surface that will be embedded in a pre-existing mesh"); + args.AddOption(&geometricShape, "-gS", "--geometricShape", + "Shape of the embedded geometry that will be embedded"); args.Parse(); if (!args.Good()) { if (Mpi::Root()) { args.PrintUsage(cout); } return 1; } + if (useEmbedded) + { + p_assembly = false; + } + if (Mpi::Root()) { args.PrintOptions(cout); } if (strcmp(mesh_file, "data/disc-nurbs.mesh") == 0) @@ -438,9 +451,47 @@ int main(int argc, char *argv[]) // Refine the mesh further in parallel to increase the resolution. for (int lev = 0; lev < rp_levels; lev++) { pmesh->UniformRefinement(); } - int NE = pmesh->GetNE(), ne_min, ne_max; - MPI_Reduce(&NE, &ne_min, 1, MPI_INT, MPI_MIN, 0, pmesh->GetComm()); - MPI_Reduce(&NE, &ne_max, 1, MPI_INT, MPI_MAX, 0, pmesh->GetComm()); + // embedded + AnalyticalSurface *analyticalSurface = NULL; + Array cond_attr; + Array submesh_elems; + int max_attr = pmesh->attributes.Max(); + int submesh_attr = max_attr + 1; + if (useEmbedded) + { + analyticalSurface = new AnalyticalSurface(geometricShape, pmesh); + analyticalSurface->SetupElementStatus(); + + ParGridFunction &alpha = analyticalSurface->GetAlpha(); + for (int e = 0; e < pmesh->GetNE(); e++) + { + double volfrac = alpha[e]; + if (volfrac == 1) + { + submesh_elems.Append(e); + } + } + + if (cond_attr.Size() == 0 && submesh_elems.Size() > 0) + { + for (int i=0; iSetAttribute(submesh_elems[i], submesh_attr); + } + pmesh->SetAttributes(); + + if (cond_attr.Size() == 0) + { + cond_attr.Append(submesh_attr); + } + } + } + + ParSubMesh pmesh_cond(ParSubMesh::CreateFromDomain(*pmesh, cond_attr)); + + int NE = pmesh_cond.GetNE(), ne_min, ne_max; + MPI_Reduce(&NE, &ne_min, 1, MPI_INT, MPI_MIN, 0, pmesh_cond.GetComm()); + MPI_Reduce(&NE, &ne_max, 1, MPI_INT, MPI_MAX, 0, pmesh_cond.GetComm()); if (myid == 0) { cout << "Zones min/max: " << ne_min << " " << ne_max << endl; } @@ -449,8 +500,8 @@ int main(int argc, char *argv[]) // - L2 (Bernstein, discontinuous) for specific internal energy. L2_FECollection L2FEC(order_e, dim, BasisType::Positive); H1_FECollection H1FEC(order_v, dim); - ParFiniteElementSpace L2FESpace(pmesh, &L2FEC); - ParFiniteElementSpace H1FESpace(pmesh, &H1FEC, pmesh->Dimension()); + ParFiniteElementSpace L2FESpace(&pmesh_cond, &L2FEC); + ParFiniteElementSpace H1FESpace(&pmesh_cond, &H1FEC, pmesh_cond.Dimension()); // Boundary conditions: all tests use v.n = 0 on the boundary, and we assume // that the boundaries are straight. @@ -458,8 +509,8 @@ int main(int argc, char *argv[]) const bool BC_strong = false; if (BC_strong) { - Array ess_bdr(pmesh->bdr_attributes.Max()), dofs_marker, dofs_list; - for (int d = 0; d < pmesh->Dimension(); d++) + Array ess_bdr(pmesh_cond.bdr_attributes.Max()), dofs_marker, dofs_list; + for (int d = 0; d < pmesh_cond.Dimension(); d++) { // Attributes 1/2/3 correspond to fixed-x/y/z boundaries, // i.e., we must enforce v_x/y/z = 0 for the velocity components. @@ -487,7 +538,6 @@ int main(int argc, char *argv[]) { cout << "Unknown ODE solver type: " << ode_solver_type << '\n'; } - delete pmesh; MPI_Finalize(); return 3; } @@ -525,12 +575,12 @@ int main(int argc, char *argv[]) e_gf.MakeRef(&L2FESpace, S, offset[2]); // Initialize x_gf using the starting mesh coordinates. - pmesh->SetNodalGridFunction(&x_gf); + pmesh_cond.SetNodalGridFunction(&x_gf); // Sync the data location of x_gf with its base, S x_gf.SyncAliasMemory(S); // Initialize the velocity. - VectorFunctionCoefficient v_coeff(pmesh->Dimension(), v0); + VectorFunctionCoefficient v_coeff(pmesh_cond.Dimension(), v0); v_gf.ProjectCoefficient(v_coeff); for (int i = 0; i < ess_vdofs.Size(); i++) { @@ -547,8 +597,8 @@ int main(int argc, char *argv[]) // time evolution. ParGridFunction rho0_gf(&L2FESpace); FunctionCoefficient rho0_coeff(rho0); - L2_FECollection l2_fec(order_e, pmesh->Dimension()); - ParFiniteElementSpace l2_fes(pmesh, &l2_fec); + L2_FECollection l2_fec(order_e, pmesh_cond.Dimension()); + ParFiniteElementSpace l2_fes(&pmesh_cond, &l2_fec); ParGridFunction l2_rho0_gf(&l2_fes), l2_e(&l2_fes); l2_rho0_gf.ProjectCoefficient(rho0_coeff); rho0_gf.ProjectGridFunction(l2_rho0_gf); @@ -570,8 +620,8 @@ int main(int argc, char *argv[]) // Piecewise constant ideal gas coefficient over the Lagrangian mesh. The // gamma values are projected on function that's constant on the moving mesh. - L2_FECollection mat_fec(0, pmesh->Dimension()); - ParFiniteElementSpace mat_fes(pmesh, &mat_fec); + L2_FECollection mat_fec(0, pmesh_cond.Dimension()); + ParFiniteElementSpace mat_fes(&pmesh_cond, &mat_fec); ParGridFunction mat_gf(&mat_fes); FunctionCoefficient mat_coeff(gamma_func); mat_gf.ProjectCoefficient(mat_coeff); @@ -580,7 +630,7 @@ int main(int argc, char *argv[]) int source = 0; bool visc = true, vorticity = false; switch (problem) { - case 0: if (pmesh->Dimension() == 2) { source = 1; } visc = false; break; + case 0: if (pmesh_cond.Dimension() == 2) { source = 1; } visc = false; break; case 1: visc = true; break; case 2: visc = true; break; case 3: visc = true; S.HostRead(); break; @@ -592,11 +642,16 @@ int main(int argc, char *argv[]) } if (impose_visc) { visc = true; } + if (useEmbedded) + { + ess_vdofs.SetSize(0); + } + // const double pen_param = 20.0, perimeter = 12.0; // TODO fix this. hydrodynamics::LagrangianHydroOperator hydro(S.Size(), H1FESpace, L2FESpace, - ess_tdofs, BC_strong, + ess_vdofs, BC_strong, rho0_coeff, rho0_gf, mat_gf, source, cfl, visc, vorticity, p_assembly, @@ -617,7 +672,7 @@ int main(int argc, char *argv[]) { // Make sure all MPI ranks have sent their 'v' solution before initiating // another set of GLVis connections (one from each rank): - MPI_Barrier(pmesh->GetComm()); + MPI_Barrier(pmesh_cond.GetComm()); vis_rho.precision(8); vis_v.precision(8); vis_e.precision(8); @@ -638,7 +693,7 @@ int main(int argc, char *argv[]) } // Save data for VisIt visualization. - VisItDataCollection visit_dc(basename, pmesh); + VisItDataCollection visit_dc(basename, &pmesh_cond); if (visit) { visit_dc.RegisterField("Density", &rho_gf); @@ -726,17 +781,17 @@ int main(int argc, char *argv[]) // Make sure that the mesh corresponds to the new solution state. This is // needed, because some time integrators use different S-type vectors // and the oper object might have redirected the mesh positions to those. - pmesh->NewNodes(x_gf, false); + pmesh_cond.NewNodes(x_gf, false); if (last_step || (ti % vis_steps) == 0) { double lnorm = e_gf * e_gf, norm; - MPI_Allreduce(&lnorm, &norm, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(&lnorm, &norm, 1, MPI_DOUBLE, MPI_SUM, pmesh_cond.GetComm()); if (mem_usage) { mem = GetMaxRssMB(); - MPI_Reduce(&mem, &mmax, 1, MPI_LONG, MPI_MAX, 0, pmesh->GetComm()); - MPI_Reduce(&mem, &msum, 1, MPI_LONG, MPI_SUM, 0, pmesh->GetComm()); + MPI_Reduce(&mem, &mmax, 1, MPI_LONG, MPI_MAX, 0, pmesh_cond.GetComm()); + MPI_Reduce(&mem, &msum, 1, MPI_LONG, MPI_SUM, 0, pmesh_cond.GetComm()); } // const double internal_energy = hydro.InternalEnergy(e_gf); // const double kinetic_energy = hydro.KineticEnergy(v_gf); @@ -766,7 +821,7 @@ int main(int argc, char *argv[]) // Make sure all ranks have sent their 'v' solution before initiating // another set of GLVis connections (one from each rank): - MPI_Barrier(pmesh->GetComm()); + MPI_Barrier(pmesh_cond.GetComm()); if (visualization || visit || gfprint) { hydro.ComputeDensity(rho_gf); } if (visualization) @@ -805,7 +860,7 @@ int main(int argc, char *argv[]) std::ofstream mesh_ofs(mesh_name.str().c_str()); mesh_ofs.precision(8); - pmesh->PrintAsOne(mesh_ofs); + pmesh_cond.PrintAsOne(mesh_ofs); mesh_ofs.close(); std::ofstream rho_ofs(rho_name.str().c_str()); @@ -829,7 +884,7 @@ int main(int argc, char *argv[]) if (check) { double lnorm = e_gf * e_gf, norm; - MPI_Allreduce(&lnorm, &norm, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(&lnorm, &norm, 1, MPI_DOUBLE, MPI_SUM, pmesh_cond.GetComm()); const double e_norm = sqrt(norm); MFEM_VERIFY(rs_levels==0 && rp_levels==0, "check: rs, rp"); MFEM_VERIFY(order_v==2, "check: order_v"); @@ -858,8 +913,8 @@ int main(int argc, char *argv[]) if (mem_usage) { mem = GetMaxRssMB(); - MPI_Reduce(&mem, &mmax, 1, MPI_LONG, MPI_MAX, 0, pmesh->GetComm()); - MPI_Reduce(&mem, &msum, 1, MPI_LONG, MPI_SUM, 0, pmesh->GetComm()); + MPI_Reduce(&mem, &mmax, 1, MPI_LONG, MPI_MAX, 0, pmesh_cond.GetComm()); + MPI_Reduce(&mem, &msum, 1, MPI_LONG, MPI_SUM, 0, pmesh_cond.GetComm()); } const double energy_final = hydro.InternalEnergy(e_gf) + @@ -880,15 +935,15 @@ int main(int argc, char *argv[]) } // Position errors w.r.t. a perfect circle. - pmesh->ExchangeFaceNbrData(); + pmesh_cond.ExchangeFaceNbrData(); if (strcmp(mesh_file, "data/refined.mesh") == 0) { auto ir = IntRules.Get(Geometry::SEGMENT, 12); double perim = 0.0, pos_error = 0.0; - for (int i = 0; i < pmesh->GetNBE(); i++) + for (int i = 0; i < pmesh_cond.GetNBE(); i++) { - auto Tr = pmesh->GetBdrFaceTransformations(i); + auto Tr = pmesh_cond.GetBdrFaceTransformations(i); if (Tr == NULL) { continue; } auto ip_c = Geometries.GetCenter(Geometry::SEGMENT); @@ -916,8 +971,8 @@ int main(int argc, char *argv[]) } } - MPI_Allreduce(MPI_IN_PLACE, &perim, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); - MPI_Allreduce(MPI_IN_PLACE, &pos_error, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(MPI_IN_PLACE, &perim, 1, MPI_DOUBLE, MPI_SUM, pmesh_cond.GetComm()); + MPI_Allreduce(MPI_IN_PLACE, &pos_error, 1, MPI_DOUBLE, MPI_SUM, pmesh_cond.GetComm()); if (Mpi::Root()) { @@ -928,15 +983,15 @@ int main(int argc, char *argv[]) } // Position errors w.r.t. a perfect sphere. - pmesh->ExchangeFaceNbrData(); + pmesh_cond.ExchangeFaceNbrData(); if (strcmp(mesh_file, "data/sphere_hole_V4.msh") == 0) { auto ir = IntRules.Get(Geometry::SQUARE, 12); double perim = 0.0, pos_error = 0.0; - for (int i = 0; i < pmesh->GetNBE(); i++) + for (int i = 0; i < pmesh_cond.GetNBE(); i++) { - auto Tr = pmesh->GetBdrFaceTransformations(i); + auto Tr = pmesh_cond.GetBdrFaceTransformations(i); if (Tr == NULL) { continue; } auto ip_c = Geometries.GetCenter(Geometry::SQUARE); @@ -966,8 +1021,8 @@ int main(int argc, char *argv[]) } } - MPI_Allreduce(MPI_IN_PLACE, &perim, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); - MPI_Allreduce(MPI_IN_PLACE, &pos_error, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(MPI_IN_PLACE, &perim, 1, MPI_DOUBLE, MPI_SUM, pmesh_cond.GetComm()); + MPI_Allreduce(MPI_IN_PLACE, &pos_error, 1, MPI_DOUBLE, MPI_SUM, pmesh_cond.GetComm()); if (Mpi::Root()) { @@ -1000,7 +1055,6 @@ int main(int argc, char *argv[]) // Free the used memory. delete ode_solver; - delete pmesh; return 0; } From e73592fd7e019b50eaa9c70590492dec631e5278 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Fri, 4 Jul 2025 18:06:55 -0700 Subject: [PATCH 10/44] forgot to add files --- AnalyticalGeometricShape.cpp | 27 +++++++++ AnalyticalGeometricShape.hpp | 43 ++++++++++++++ AnalyticalGeometricShape.o | Bin 0 -> 1544 bytes AnalyticalSurface.cpp | 72 +++++++++++++++++++++++ AnalyticalSurface.hpp | 50 ++++++++++++++++ AnalyticalSurface.o | Bin 0 -> 13360 bytes Circle.cpp | 109 +++++++++++++++++++++++++++++++++++ Circle.hpp | 41 +++++++++++++ Circle.o | Bin 0 -> 10400 bytes 9 files changed, 342 insertions(+) create mode 100644 AnalyticalGeometricShape.cpp create mode 100644 AnalyticalGeometricShape.hpp create mode 100644 AnalyticalGeometricShape.o create mode 100644 AnalyticalSurface.cpp create mode 100644 AnalyticalSurface.hpp create mode 100644 AnalyticalSurface.o create mode 100644 Circle.cpp create mode 100644 Circle.hpp create mode 100644 Circle.o diff --git a/AnalyticalGeometricShape.cpp b/AnalyticalGeometricShape.cpp new file mode 100644 index 000000000..aaca69c8b --- /dev/null +++ b/AnalyticalGeometricShape.cpp @@ -0,0 +1,27 @@ +// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#include "AnalyticalGeometricShape.hpp" + +namespace mfem +{ + + AnalyticalGeometricShape::AnalyticalGeometricShape(ParMesh *pmesh): pmesh(pmesh){ + +} + AnalyticalGeometricShape::~AnalyticalGeometricShape(){ + } +} diff --git a/AnalyticalGeometricShape.hpp b/AnalyticalGeometricShape.hpp new file mode 100644 index 000000000..802c68ca7 --- /dev/null +++ b/AnalyticalGeometricShape.hpp @@ -0,0 +1,43 @@ +// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#ifndef MFEM_ANALYTICAL_GEOMETRIC_SHAPE +#define MFEM_ANALYTICAL_GEOMETRIC_SHAPE + +#include "mfem.hpp" + +namespace mfem{ + + class AnalyticalGeometricShape{ + + protected: + ParMesh *pmesh; + +public: + /// Element type related to shifted boundaries (not interfaces). + /// For more than 1 level-set, we set the marker to CUT+level_set_index + /// to discern between different level-sets. + enum SBElementType {OUTSIDE = 0, INSIDE = 1, CUT = 2}; + + AnalyticalGeometricShape(ParMesh* pmesh); + virtual void SetupElementStatus(ParGridFunction& alpha) = 0; + + virtual void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const = 0; + + virtual ~AnalyticalGeometricShape(); + }; +} +#endif // MFEM_LAGHOS diff --git a/AnalyticalGeometricShape.o b/AnalyticalGeometricShape.o new file mode 100644 index 0000000000000000000000000000000000000000..bffb59b99641de13812e7f470a0d31209a0a7db1 GIT binary patch literal 1544 zcma)5J#W)c6n(Uz4POpJhaxdpOt7HXRJ03HqQ*iByvvtgZ zRJQ&A7Ip^4`~w!mZ(!jMFd)vcpNYW&=SugTd+xjMzI)%t=O5pHUKiq$fN;1B-QB>T zLm{`Ii*z=nrJ=6o4!8!A^KIDF8l4a+V>gL2JL3cEc(CHRbz2$C$CRy2m7^xk@))9& z&M2I$5=z-=58A5;U70O~$4G`$Vu*ot{VnBuf7Ult3+^bqU~&Hu<_jX*iRCnW7F~ng zgHm`WRGtI<6|EqmEZFNDcm1wj6CakF@+(yr`WI?By4u4YiqhQ+PTauUYlpT!k3Gls zAG@Q#jmMtTKeZ#*Dh9(=>r1WVdD$#nKwR5aOQEh1kovbbvXVv!(y~XvDdCZ$ z3q55*IOKQ>L&aZ`qu7PwAAt?{a(SkB-uFGl^K)V-<5@4|A?ybB>t!^ZYZUhT20!O@ zHUAdK9J$P46gfWji>kZtnAU8qIAhJYW*R4*#Fo)??8=!pj;FTIJqFLaMiZYoN$gkN z%rN$0`}Sla<9XytFFYAp>y&b6TD@*x?)U8RQ+INju0iU`N6rfR>xDh34)fz6dLTHO L>1d=QpQiW)Tz|`T literal 0 HcmV?d00001 diff --git a/AnalyticalSurface.cpp b/AnalyticalSurface.cpp new file mode 100644 index 000000000..ec22b58e7 --- /dev/null +++ b/AnalyticalSurface.cpp @@ -0,0 +1,72 @@ +// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#include "AnalyticalSurface.hpp" + +namespace mfem +{ + + AnalyticalSurface::AnalyticalSurface(int geometryType, ParMesh *pmesh): + geometryType(geometryType), + pmesh(pmesh), + L2FEC_0(0, pmesh->Dimension()), + L2_fes_0(pmesh, &L2FEC_0), + geometry(NULL) + { + alpha.SetSpace(&L2_fes_0), + alpha = 0.0; + alpha.ExchangeFaceNbrData(); + + switch (geometryType) + { + //case 1: geometry = new Line(pmesh); break; + case 2: geometry = new Circle(pmesh); break; + default: + out << "Unknown geometry type: " << geometryType << '\n'; + break; + } + } + + AnalyticalSurface::~AnalyticalSurface() + { + delete geometry; + } + + void AnalyticalSurface::SetupElementStatus() + { + geometry->SetupElementStatus(alpha); + } + void AnalyticalSurface::ResetData() + { + alpha = 0.0; + alpha.ExchangeFaceNbrData(); + } + + ParGridFunction& AnalyticalSurface::GetAlpha() + { + return alpha; + } + AnalyticalGeometricShape& AnalyticalSurface::GetAnalyticalGeometricShape() + { + return *geometry; + } + + void AnalyticalSurface::ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const + { + geometry->ComputeDistanceAndNormal(x_ip, dist, tn); + } + +} diff --git a/AnalyticalSurface.hpp b/AnalyticalSurface.hpp new file mode 100644 index 000000000..097d9c540 --- /dev/null +++ b/AnalyticalSurface.hpp @@ -0,0 +1,50 @@ +// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#ifndef MFEM_ANALYTICAL_SURFACE +#define MFEM_ANALYTICAL_SURFACE + +#include "mfem.hpp" +#include "general/forall.hpp" +#include "linalg/dtensor.hpp" +//#include "Line.hpp" +#include "Circle.hpp" + +namespace mfem +{ + + class AnalyticalSurface + { + + protected: + int geometryType; + ParGridFunction alpha; + AnalyticalGeometricShape *geometry; + ParMesh *pmesh; + L2_FECollection L2FEC_0; + ParFiniteElementSpace L2_fes_0; + + public: + AnalyticalSurface(int geometryType, ParMesh *pmesh); + void SetupElementStatus(); + void ResetData(); + ParGridFunction& GetAlpha(); + AnalyticalGeometricShape& GetAnalyticalGeometricShape(); + void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const; + ~AnalyticalSurface(); + }; +} +#endif // MFEM_LAGHOS diff --git a/AnalyticalSurface.o b/AnalyticalSurface.o new file mode 100644 index 0000000000000000000000000000000000000000..b30c6cfd6c251861fe2e21ccb66b6b016481bd26 GIT binary patch literal 13360 zcmeHOeQ;FQb-(ZJN_q$(z61!2t(A;zAjZ~8LLaVeRv(LH8)HS1F($0vu2v6eoz+UL zR<;=INXATu66#1XQ>&CIs+;K`#gkGG&afTg$e4Dh&7`zpJWPj4Wmien;3m*uTk8R< zzw_RCtG90@GELHH|HvD5fA4(UbI(2Zy!+0*TK@5i|NJsX2ua|guMB)n$@p^NgKH%| zYl)uY>RN6HF0qbDXMs(hOm3&DF|9Yo1VB}rz1y2-X!CAjk#R@%$Yebnc$-*G(NADr zs@fI|s#x!wdK#Sd;X~(0FOo-D<4SQyLJF051I~EN^+E`$>w`PeUxQpdC@=`6> zLj-%Bk?xrRt7=_!bM;J{2DaD5thLL8aNz#x9YQRaQA^&X+e?k#7~5OOErww4Ru|dp z=n4d5YER^aP^48=x71nnFR;B~athaR_HTQE5N?B&GUO8Q^6@dk4KFebPwoScrgYpT z#1N1gkzQ}15G}x=d++r-2T#j`GE)g$SE8^MUKL-8n)nf2-=uf@soB}^l;F`a#zz>~vd~P^K3i3r_+_7}D zQ1mytq)i{1{U~U6AX6lUzRVgS+sBF)uRHc_5kGcB#D~6-J#wsQ`MP6&3;GN`4~WFE zf5{m+lkJK3w>SnR*mB^5$Dt81IovPLAKVB2M~>yAcUt%_gHL^vj+hYloA)OEFk9@F zB+)Ds!w!vuY>@uzyF?;a2+HsQAv_7hXaLhS__1v0e&krD>(xvBjgy;1)kmAeU=jN> z?#LUxxz~$$*CFn;h=0w<7j4xen2*6Rhx*~C=x5xqLT`_h$|IV_Mg5w-jkA42*BC=8 z&uBlJKE;D<&1Dm^yz5WCgIti13u2JwTeNx-{X(2nFji%OCm}FbezxOh-~2@)>Eq44 z)fnHI<20V%r7Z=1%tKxk;Ul>O=1&>*h=TM!Afq{@agtxAKQuNxGx+=%`66!iO?}Dv zo_Nvp!g2*|Ccm6MNwK9dke@VHeVHQBw?xGIR;9Kh`Dai605Qd!?3G7uzGBRa-9OSp z&J4UQdlJWM#9(`oNW>04#y;n*KL_9Zcay()dY>1C*x0he6W=G4a^ib1$7G}LZurp% zKX!@=F~q(qJr}C zqAbd?b86N-_LAqdnrkopcuj`Xbl2@!O`mbjVx9fxpC$8t`RHH%*GoU9c2b@vPC5NC za%{pj=QJjg+4Ep7zsV=l_q;++{Qr}0reD90>F;j7e;?D|{298r_lF}l9mYGD)&lE# zO79snwp3f;K0!MEGkN+uyQRn*ug7~Wc852vNW8uutVw-OKu3R1fbTKi69?r)->Qsw zUr|Qf-?CJ<<=?l&z&92fw%6Agw(qW+v7KwP4ISM!_(|KjuwCSg_pNuvTe8_krp3mW z)v5kLN4Eif(#DrkqECj6Y}ojDt>MSdYG?fTh0O+ZbQ|C&ZTtc@K6b?We(s33yw5iN z-eTh?HXG2O1vZ{@V4bITx>4&1s;w;V z^SSP4TkGw)X{}+DEh3S3;HlIarqNb=yv4N#_(?w-QNxU)hIxx?80-^b2OCoDJZ!Ub zknMn{P3)eDhE8Jc%L26Mucc6Q9l$?rK>yPX@(c z!r?@{=+tXBN#ApL664@gto7RbcD#R`*n^-xr~Qg4n{ccgt#}RlxaIwgibKhMMPByJ zf|tea7IFBTWS>6&K0Uoc-+xfQ95dqID%N_8=ZTY3 zjts=yIr^EyfxWCedLYM>2np!})NWT+ynF1(Gq~TBC9ciK9#8MvjaZ_Oj}a@1Ux8S8 z<>f5VjQC&sF6L+QmoL3FEh|@K1-xg)wS7V~f8Hmm5*QEm=6RFZp0^5o;@Ub#f8zrg z2ab$8R_XJUKn&^~)o*=%r!+F2Mf=^Ah;=^tG4^PizFtu|**8}8A6cG6fh2ZM!d~Iu z95|Bd6LjGd=^YSL6$N6&mA^nv;QT0W678la&b*H(aICoUF2?ksyzGO2h3{XnjgR)G zAJaZoALH^X0gU5Vu1L^)EJaOcJkxW}t2zG^XY!|AOqGwr2Qw!KE$<@ikBxk>zK`^M z6YrJDj+uLAPQ#ah8tlo;IoI=u=b!diwmy*i#`%Q#Zo9enU44HsJuR(2AmvKF* zS%;XE@{i+eKrV*C6LQXwL!6aq6E`IfqiZ3i|7?MjQKlT0u<~d`Wzzh5>Tp0(E+o5!-D;_PZO%zq@-O<1EOogK%hD-{ZpS5M zK$a#YzYynS1?PhoWSkpamYtK3(XBBk8t1gMSbPHV6DemuhA$oG@lH!QVzm&fl?TO| zdxdx^^7TmP3lUeF*4d%OqI+DiJzd%ZF3}R`4h7Ye<3K%L|C?WnQjPa-E$i5&b(C+@ zg0ar1cSe|xM>loGrLVG+1p$-u`RkCs|Hscev8*pJxuj zI;;IDmLr$xN^7qlenK#pT;X#_j#FCue3sK0BgU7EPu^ncPKXmMAICjzlkznzAK-}C z+k05PmJY^ox%BUJ|La+fJfthlzh;*ALumD{f$d*p`6~bI8}yVLPt5 z+GB0juesX4$bp}$ec8NQx4*!0o}V=T$5}pv$XLhk=kfP);4YyX>--F}ynzqJ!)R>H z|5GeKjRQ-%hHdg2EZ@nFQ9*+%&A%>|H$Z6hFOLqQagDKjjX|chzX18uLWIv7=sO3j z7h=O{AkMHioCH1#JPuTW!@x(Of7C$V5D*8t;ll>{27o9?HtYv}4HyRE+1k(!M5wm3 z8u-w5AlYvKJ_CFZxDI#`K_YrTFaT@??f{-boZP^ZKx+3U&<7l5JPLdg^daC*;ETY= zfnnfQ;Dbz;0UJQ)0lxyA#Qc!_Ja9AcEbs}8XUss~Y2YK^_X8gTZUK@X^^A4EC7{;; zw*zy4Rlv&_EYW9yL=OXtDQ*V(27ph2K4hRT1|+*(jA6!h##Tl@<4(ryjLnPSCew$RZfClI=`~E}Fg>1av_A)=_D7lC&vYxW7W|!z&5Rx( z^}7~G?G)w%xSPK3*U^DnA%LsjM0?Ga%AlYjG zQv0<)YQM%n-*v2y4}m`cECUV$@u$lTv~E5K900BcHZy+<^Xr&Tb-+r<^MLex=K!g_ z6G-iEU~!}NSAis-1l|c82NnS@GXFe~+Kn-Nis=(TvP0|aGr$;d1OEAeTY%e{ZU7Q% zi-8Z-18XqOIs<)`z&hyP3)}%*4Wx1B0cqR{@L}K$thd#`3E&?9hk*3FA2!hE2U7fY z8tAJBmQz0l`XJNi;a&rM?ZEqm$n^u8fS3z$JFo%h0#bYYi8I#&yaQMXyc2(41@iCwBfcTUL#P=|t=AHP(%y%(gFpdkO|1rj4#(qXWqleMONb^8;X&(IO4?rd} z6?vy$k?ZOe`QBnhJ}eDMS@L=Lf~?4AWo#ql?_?f_&e^PUS&Doq>oUHN&KsVm$m7`) z*^2zh{Hybwj^hj7TySE6B9G;s&2>6%EbL#je-Ugg9$M^lTv&2($)zQVe0AydrD(fy zc%>pAS~-C4vD?nxmL*TPCSBkc4i}3)YidhY;rP4CuX+ zivgMSebhz|;eA4Kv%cNWaiFTb0Ok)5`4Pu!9CFeKGC&8*B99P8uV$FoBNa(@!lkTS}*C^%CtclzLMPB7k$X~ z%zf0ibb3sfb!~=je@vKl@?BU6$X~NApM+te%{p9RxmkDLkJymh+$X$_aS%=G09~87 zKXaebqqoO?iRC-lp1F^Bnf)>M4G**2+{Xl2Zthz?hy4Qdx04qA3&}Q9x2JK01 z*4ZanZr07;hyNru>-6uVo+xnkixZp=ZxEf)pPcVkK`(SdpXJ-wp1F^RfQF073u|@? z{SBME5V>U4{{Zu8rBB-A9X7fdxo6e?!Y2PCoBZz(cdPzSL0IX0fY{L#tBPsSj!+~J)1D_rYq-I{fPuz|k-OxPXsC5_ zPb3%%bw(=cG#q1f?(yoHhDM3IArRdhiiBdCH>`DNkysOc2d3Fnn_{J^>aGlRcB?oJ z(@H^gYcbrnwuEA806!R`-?xQYwWu1^bSJHSxGSn7f$*MKC>RJg^+b2UzPqwXi}iGw zUB&{jo^ERsKI*Ef@9d5}9VO>1KC{qWO43Fx(3++(OOGWLk7%(OKOQko`9i^__CS|u z{c-CtTh&wDTAlWMC^)OM((IcZd)yYH@-{6N?hIPpp2exEMh$VS3&a8`iW@N})`@dh zd3%HHfk>OS8L`{i5>0E79^pzFZn&#G#WF{(uH=^8*~BS1lq#Deds3C$mFf9q(@1we zslb7CmsrnX9}RA8Qr&LEB&x=ufl#db(V*80UR5BBs0VOLN(^sFF@9-E&x{(@B5kpD zRf|SDqcxQg&0SUOE;hqp%$>W`=mJR<)dC%}_u(z?#xoM#Q|GpZ(2T3eY>K%{tUab` zyEkqrQ8#;QJHufd=;Fal6>n?~w1l-J&v34shGpUEnL0~GC7W4OxvrR;?a(@qY$B}Q zhXK->(Y(#>r_OzJ7OuYfaBMaHp)DMTzAo7n)l#`TA}@51v8{&pC1tAG)e}=`!tg6o zEEC<@?j9`?)Mn;lj(B?;X{v2g)2ucZt6pzYh1&3VQ<-XXWrU>k39X|uy61^NB+#Zs z-NniELG?B~Po|0ug=U=YQ^vU623;Etba#6@8lThMp3PRdzRdjAW;T*XzqJ*t9BrX) ziX?{ByP9tTxYnzBU9JQ=WQNh5n2%(@DA!`)tLq$g$zq7+fFAOzb@mPT)@BqNMf z6=XP!U!?Q<6pBw7zkB~!P2?iBp3B5Oe z?J6{*p1N$*x@R7bq)qFCjVv(Vel0U@@@llvcr6-&xn6CvNXy8m*D9E0ohd1+#V^Kt zVp<)tFn|ZSI?}qeGujaddmCv+*#~bUauZLeB^vH>tOa-isA}l!iNVIqAm>^GD7mY6 zU2f^wrJ^8+>WjR&5R@AWK~trQf3#vGYZb4pciT!bdkXO)k6dkRDm9$f!(Ix9y)>5Q zZMHwj5wB?$-lMbdwrzFey%g;24YY)wce^WaPm7OAe{fVokzJj77u?V&LEPo7dMToI z<3AxLeHGR_fAr zOfbEq^f;spV2-84Iud&TsJ_%IS$(y+r2(!m_zhdt)2*pgqQ>aWQ>>PRT8(~;b#!Bp zW(mcG&VQt~*7Cnj!djKEb4n^iIM&g%Fattributes).Max(); + int activeCount = 0; + int inactiveCount = 0; + int cutCount = 0; + IntegrationRules IntRulesLo(0, Quadrature1D::GaussLobatto); + alpha = 0.0; + auto fes = alpha.ParFESpace(); + const IntegrationRule &ir = IntRulesLo.Get(fes->GetFE(0)->GetGeomType(), 20); + const int NE = alpha.ParFESpace()->GetNE(), nqp = ir.GetNPoints(); + // Check elements on the current MPI rank + for (int e = 0; e < NE; e++) + { + ElementTransformation *Tr = fes->GetElementTransformation(e); + int count = 0; + for (int q = 0; q < nqp; q++) + { + const IntegrationPoint &ip = ir.IntPoint(q); + Tr->SetIntPoint(&ip); + Vector x(3); + Tr->Transform(ip,x); + + double radiusOfPt = pow(pow(x(0)-center(0),2.0)+pow(x(1)-center(1),2.0),0.5); + if ( radiusOfPt >= radius) + { + count++; + } + } + if (count == nqp) + { + activeCount++; + alpha(e) = 1.0; + } + else if (count > 0 && count < nqp) + { + cutCount++; + alpha(e) = 0.5; + // pmesh->SetAttribute(e, max_elem_attr+1); + } + else if (count == 0) + { + inactiveCount++; + alpha(e) = 0.0; + // pmesh->SetAttribute(e, max_elem_attr+1); + } + } + alpha.ExchangeFaceNbrData(); + // pmesh->SetAttributes(); + // std::cout << " active elemSta " << activeCount << " cut " << cutCount << " inacive " << inactiveCount << std::endl; + } + + void Circle::ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const + { + dist.SetSize(2); + dist = 0.0; + tn.SetSize(2); + tn = 0.0; + + double r = sqrt(pow(x_ip(0)-center(0),2.0)+pow(x_ip(1)-center(1),2.0)); + if (r > radius) + { + dist(0) = ((x_ip(0)-center(0))/r)*(radius-r); + dist(1) = ((x_ip(1)-center(1))/r)*(radius-r); + double normD = sqrt(dist(0) * dist(0) + dist(1) * dist(1)); + if (normD > 0.0) + { + tn(0) = dist(0) / normD; + tn(1) = dist(1) / normD; + } + } + else + { + dist = 0.0; + tn(0) = (center(0) - x_ip(0)) / radius; + tn(1) = (center(1) - x_ip(1)) / radius; + } + } +} diff --git a/Circle.hpp b/Circle.hpp new file mode 100644 index 000000000..cf8375b39 --- /dev/null +++ b/Circle.hpp @@ -0,0 +1,41 @@ +// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. +#ifndef MFEM_CIRCLE +#define MFEM_CIRCLE + +#include "AnalyticalGeometricShape.hpp" + +namespace mfem +{ + class Circle : public AnalyticalGeometricShape{ + + protected: + double radius; + Vector center; + + public: + + Circle(ParMesh *pmesh); + ~Circle(); + + void SetupElementStatus(ParGridFunction& alpha); + void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const; + }; + +} + +#endif // MFEM_LAGHOS + diff --git a/Circle.o b/Circle.o new file mode 100644 index 0000000000000000000000000000000000000000..b54009f003f3610d9eae5f6f22d5e8efcf81de2e GIT binary patch literal 10400 zcmeHNeNY_dd4G5BgGG{ozzOl8z)6u4P^07yjt|vRynLLEqFAADv1M1x-f^tOHOGPB zkWsLri=sbht+rz1PVqz?)5Mbk)gPLU>T)wm!z4^csnel(;$+=LA4e0{-KHb=r7(DMx=If8_G`PR9O-Say~mFfK(o z84fGzP+0AYEAddL)t}*KmKy{PMD`5;>&bTuDS@M^so0M_OTYOwH9B~Hu>*))H z(L&_pavFO0ZdYxO$E9k+Mm={er2pPL@8K&yr_LHri2q=D7ZU=26e#hMex8occ3! znzu<#Q48f2$f;*NH^_@i^zfX*X49Nv{Lk)3POCQBS#zq#^{X8tjr+&N=~~OBYyS<@ zVKATasMqxzV>O*sa`GILYKbp1c8zj?dRxnnF&B)QrTmi4YE#xfJm}pu`O(Ru$z`Q@ z^8Pa=m_wzQ*SjZIY+0krHeu=>#fG}he(YQu6S7|>yHr>h6);ct;wGBiWnWC$inMxX zbu#8Q?gMfpp+pvaw8Ec5|%*1z|!@PYFeow&H@^+T~MJ`KXiE~L=a+;mq^I(sijV|QM z>BpJ$uKN)dSSSD=ZO!k(nt^zi(MBo!7QhGg71!|h*yw9w>AUVM7PukG>0+Vu<>D;F z^fpU=bk;VhkBz=oeYjn!{IH!R9~@=LI~a?FAG1+gh>dFNl+CnG@#j=IOG`HNGh0sI zfiC4~-c~$CIZ2hv=?RP(R_VinFmssA%^zd8gE4li@0)BURK{k4Wq-O&USaM~*}xl@ zN{l#Y-C8JR>GaDje2x|GpFk{{U-a+Q^lHtWqjIt_om)$7u=J`{6MwV1x{Kw-%6^e6 zC(nx6Utiu%IYG_bUk$LlXxUkjy%5Yl@{Kp|tp+~0w^~Ev`sc9OiCq0I*2T3v+IDJV zP5CZAU9UEUXcWr&;x<+mPU+^e4tsRUbJsa_UTnzW0`2qTZeR5cwT=_Qbl{U;N zaq2$imcCDkQwEA=mxKS?+xCPXV`*vupX3lB#(ph%E#sYha zf@O{M!LmJ4XW0bo1c9yWb;v7CxEt%kWsQ)38~Q=$$WpKjhtm}XbhCzXsz1pcT=Nrw z{T|p0uyw-@#}$`8@AY^`sE!4B{HYE5nV* zQ3J;N$J+iax#eWJAbdTwjRlsK>);EJBY(rT$ra>&3AxkO%sgH1-vky2qKzQdzU~q^ zIU!Wk4He4CdzfqYk;i}fgNEq^k@okZ{R;xCS+MPz8WE+sLi8cNmn9DZg->U-)0onF zN48eG?uV;BYGWQg@4%jPZ(;4ldXXHVwHGp(uf5A+Nxrt{W4|Z=fBelem*Uv}2Wbvr z?)|1 zC7f?)o=HLZAS-sZYiBCcd2cQ5P0ml$ht1AUm#{vW_a8blo#SVwmetHNlUbMgojH%# zR0QK{#4->6l|o5XL`0sqC6cb+Z=9ZFtQKEOTpImIx4XwUiAwX@>eM~Bd%ZP6la$IrSblCPXFg~Xl3|^IFIUkF0BQtt3nRzW~{sDGN!8F z0gtVI=Mll-lU@<9$!YXfI(J_Ze^k8^=cAxYT4^N8`d+0BH@z(~w zwB08)u(X>v=IeQ0?Wt{w^oOIWpKc|G&vt^gSIrrhz2C03^AO%ROAqfL{cE4*eqeWgyv)>DbW) zBzZlTr;s0#-`26?3h)b%CxB$%!sX3ep2y{PF)k#(03`bn9Xq1H&w<|!Yy=($HUJNC zx&r6{&48bU-2;q2uwx8(0DmLECSaUn7Z9pn3F>&b1?YucvyL4_K=RLkklxFSMlPV`a1@s{tf{@i+sd&?AQmS z{1pKypNput-+=r*9XqCha&<`hOir<9ZcX z54;Sdc+LYUo*DVCw$uA-KwR4(~{4NRl zc)kZDzq7z5;53l(eE~@M9?`L52uS|pI(7tskl`{^+?+-a+z+&J3? zbOVnAu`lJc0`~%C;Fo~)z|R0ZK=5+VN0twC0}Fs?i|q#H0kKu&NWeWn8RLYMIo%u? z#}t^vpW!&pF~O0>398OMpdWsMoG){9b7UM-Xb+FhTR^hA2_(B2&Y$M|tDHa1`D2`a zk@FLrKg9WcoFC-;kOmB}(E&`z!V=@w|P+E{WG1(~c~0!g0kRiMO38XO?)=Ip>tb zMQKU0+uqAw%wEcd^|s}0k~o`xBVQC#`FHar@j*etC5auR!KZGBmjq@GWc#SsBLr1v2asKJm{LieN*ZiEmN{!)qL(|7vgnrWXC*0mRzr6|` zwP&2y&KmJx-==FAH_46j;yvm=bcT5T@m`&k+Y@Y&)AJ-Z<##*D9SN4p^ZR$)-WZP$ zsXhA)yU6W-fc}@GJ>z`#kDz(#C>-{Yg&v2{EI$MPX1Wmm&GcWPcFlCPg{J+(EPvM` zuSS2&^3xXi8;H>?cU$6Zve1uO+RL)UzhLo4-xtjO|I8B4zgXmZE%szFsY6|YBE2%PRy z{X~0px+xkO81VPB{mz!YYPAvh#BORRqEGDQV4Hd}GJtv{Pwif%$J({d&X4Je@0j`` z8D?00j7?p$8dc-!W|5n7mNE3zPpWZ$Bw|WyhDwungM#lVb)dV-M|M%QM~%e;{h`>v z^S%8&T0!|uzW9`=Yggm#k#DG)NC^*xluo24ri4TBa5q|3!co*Z$Y>P*AjIb|_+Qii zDWy#v80=BkBjjE~?f$NHrnkyGfh@9(RafOf?D`a4FE&bC=ej#%GOyLAKT}wvuK~JX z!z?$g0h>sD$?U+QKcu;r@MOknAd~x85#<8MoxLF@H`Nq;TjlF;+UdJ zB=&soW}4nQZB#SVcocf}y|rE1LJ6O-lc?U_nC6P>=sEG$qj(1Uc&W9=L-D}@e;Z9F z>!NA0-FkU!s`9tOxDE?0m9fc&FO~nbf_Ezq*2S&58+(P)qxNX2(zC>eVe0^OHDgru z9Oyh_RLwkNR1MyfO--hMhl{GU_-@+MSHrCQ8jbJE;QKUwbq2p$<5y+yt2DkhgTD#K oi_%n14h<=NYX3klcCSeMv~tR$Iq+mS0KcjANWJ30$$+u{1j*)g_y7O^ literal 0 HcmV?d00001 From 6eea52b493ee58b24e1aec848cc7d6ea850812d6 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Fri, 4 Jul 2025 18:07:50 -0700 Subject: [PATCH 11/44] removed o files --- AnalyticalGeometricShape.o | Bin 1544 -> 0 bytes AnalyticalSurface.o | Bin 13360 -> 0 bytes Circle.o | Bin 10400 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 AnalyticalGeometricShape.o delete mode 100644 AnalyticalSurface.o delete mode 100644 Circle.o diff --git a/AnalyticalGeometricShape.o b/AnalyticalGeometricShape.o deleted file mode 100644 index bffb59b99641de13812e7f470a0d31209a0a7db1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1544 zcma)5J#W)c6n(Uz4POpJhaxdpOt7HXRJ03HqQ*iByvvtgZ zRJQ&A7Ip^4`~w!mZ(!jMFd)vcpNYW&=SugTd+xjMzI)%t=O5pHUKiq$fN;1B-QB>T zLm{`Ii*z=nrJ=6o4!8!A^KIDF8l4a+V>gL2JL3cEc(CHRbz2$C$CRy2m7^xk@))9& z&M2I$5=z-=58A5;U70O~$4G`$Vu*ot{VnBuf7Ult3+^bqU~&Hu<_jX*iRCnW7F~ng zgHm`WRGtI<6|EqmEZFNDcm1wj6CakF@+(yr`WI?By4u4YiqhQ+PTauUYlpT!k3Gls zAG@Q#jmMtTKeZ#*Dh9(=>r1WVdD$#nKwR5aOQEh1kovbbvXVv!(y~XvDdCZ$ z3q55*IOKQ>L&aZ`qu7PwAAt?{a(SkB-uFGl^K)V-<5@4|A?ybB>t!^ZYZUhT20!O@ zHUAdK9J$P46gfWji>kZtnAU8qIAhJYW*R4*#Fo)??8=!pj;FTIJqFLaMiZYoN$gkN z%rN$0`}Sla<9XytFFYAp>y&b6TD@*x?)U8RQ+INju0iU`N6rfR>xDh34)fz6dLTHO L>1d=QpQiW)Tz|`T diff --git a/AnalyticalSurface.o b/AnalyticalSurface.o deleted file mode 100644 index b30c6cfd6c251861fe2e21ccb66b6b016481bd26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13360 zcmeHOeQ;FQb-(ZJN_q$(z61!2t(A;zAjZ~8LLaVeRv(LH8)HS1F($0vu2v6eoz+UL zR<;=INXATu66#1XQ>&CIs+;K`#gkGG&afTg$e4Dh&7`zpJWPj4Wmien;3m*uTk8R< zzw_RCtG90@GELHH|HvD5fA4(UbI(2Zy!+0*TK@5i|NJsX2ua|guMB)n$@p^NgKH%| zYl)uY>RN6HF0qbDXMs(hOm3&DF|9Yo1VB}rz1y2-X!CAjk#R@%$Yebnc$-*G(NADr zs@fI|s#x!wdK#Sd;X~(0FOo-D<4SQyLJF051I~EN^+E`$>w`PeUxQpdC@=`6> zLj-%Bk?xrRt7=_!bM;J{2DaD5thLL8aNz#x9YQRaQA^&X+e?k#7~5OOErww4Ru|dp z=n4d5YER^aP^48=x71nnFR;B~athaR_HTQE5N?B&GUO8Q^6@dk4KFebPwoScrgYpT z#1N1gkzQ}15G}x=d++r-2T#j`GE)g$SE8^MUKL-8n)nf2-=uf@soB}^l;F`a#zz>~vd~P^K3i3r_+_7}D zQ1mytq)i{1{U~U6AX6lUzRVgS+sBF)uRHc_5kGcB#D~6-J#wsQ`MP6&3;GN`4~WFE zf5{m+lkJK3w>SnR*mB^5$Dt81IovPLAKVB2M~>yAcUt%_gHL^vj+hYloA)OEFk9@F zB+)Ds!w!vuY>@uzyF?;a2+HsQAv_7hXaLhS__1v0e&krD>(xvBjgy;1)kmAeU=jN> z?#LUxxz~$$*CFn;h=0w<7j4xen2*6Rhx*~C=x5xqLT`_h$|IV_Mg5w-jkA42*BC=8 z&uBlJKE;D<&1Dm^yz5WCgIti13u2JwTeNx-{X(2nFji%OCm}FbezxOh-~2@)>Eq44 z)fnHI<20V%r7Z=1%tKxk;Ul>O=1&>*h=TM!Afq{@agtxAKQuNxGx+=%`66!iO?}Dv zo_Nvp!g2*|Ccm6MNwK9dke@VHeVHQBw?xGIR;9Kh`Dai605Qd!?3G7uzGBRa-9OSp z&J4UQdlJWM#9(`oNW>04#y;n*KL_9Zcay()dY>1C*x0he6W=G4a^ib1$7G}LZurp% zKX!@=F~q(qJr}C zqAbd?b86N-_LAqdnrkopcuj`Xbl2@!O`mbjVx9fxpC$8t`RHH%*GoU9c2b@vPC5NC za%{pj=QJjg+4Ep7zsV=l_q;++{Qr}0reD90>F;j7e;?D|{298r_lF}l9mYGD)&lE# zO79snwp3f;K0!MEGkN+uyQRn*ug7~Wc852vNW8uutVw-OKu3R1fbTKi69?r)->Qsw zUr|Qf-?CJ<<=?l&z&92fw%6Agw(qW+v7KwP4ISM!_(|KjuwCSg_pNuvTe8_krp3mW z)v5kLN4Eif(#DrkqECj6Y}ojDt>MSdYG?fTh0O+ZbQ|C&ZTtc@K6b?We(s33yw5iN z-eTh?HXG2O1vZ{@V4bITx>4&1s;w;V z^SSP4TkGw)X{}+DEh3S3;HlIarqNb=yv4N#_(?w-QNxU)hIxx?80-^b2OCoDJZ!Ub zknMn{P3)eDhE8Jc%L26Mucc6Q9l$?rK>yPX@(c z!r?@{=+tXBN#ApL664@gto7RbcD#R`*n^-xr~Qg4n{ccgt#}RlxaIwgibKhMMPByJ zf|tea7IFBTWS>6&K0Uoc-+xfQ95dqID%N_8=ZTY3 zjts=yIr^EyfxWCedLYM>2np!})NWT+ynF1(Gq~TBC9ciK9#8MvjaZ_Oj}a@1Ux8S8 z<>f5VjQC&sF6L+QmoL3FEh|@K1-xg)wS7V~f8Hmm5*QEm=6RFZp0^5o;@Ub#f8zrg z2ab$8R_XJUKn&^~)o*=%r!+F2Mf=^Ah;=^tG4^PizFtu|**8}8A6cG6fh2ZM!d~Iu z95|Bd6LjGd=^YSL6$N6&mA^nv;QT0W678la&b*H(aICoUF2?ksyzGO2h3{XnjgR)G zAJaZoALH^X0gU5Vu1L^)EJaOcJkxW}t2zG^XY!|AOqGwr2Qw!KE$<@ikBxk>zK`^M z6YrJDj+uLAPQ#ah8tlo;IoI=u=b!diwmy*i#`%Q#Zo9enU44HsJuR(2AmvKF* zS%;XE@{i+eKrV*C6LQXwL!6aq6E`IfqiZ3i|7?MjQKlT0u<~d`Wzzh5>Tp0(E+o5!-D;_PZO%zq@-O<1EOogK%hD-{ZpS5M zK$a#YzYynS1?PhoWSkpamYtK3(XBBk8t1gMSbPHV6DemuhA$oG@lH!QVzm&fl?TO| zdxdx^^7TmP3lUeF*4d%OqI+DiJzd%ZF3}R`4h7Ye<3K%L|C?WnQjPa-E$i5&b(C+@ zg0ar1cSe|xM>loGrLVG+1p$-u`RkCs|Hscev8*pJxuj zI;;IDmLr$xN^7qlenK#pT;X#_j#FCue3sK0BgU7EPu^ncPKXmMAICjzlkznzAK-}C z+k05PmJY^ox%BUJ|La+fJfthlzh;*ALumD{f$d*p`6~bI8}yVLPt5 z+GB0juesX4$bp}$ec8NQx4*!0o}V=T$5}pv$XLhk=kfP);4YyX>--F}ynzqJ!)R>H z|5GeKjRQ-%hHdg2EZ@nFQ9*+%&A%>|H$Z6hFOLqQagDKjjX|chzX18uLWIv7=sO3j z7h=O{AkMHioCH1#JPuTW!@x(Of7C$V5D*8t;ll>{27o9?HtYv}4HyRE+1k(!M5wm3 z8u-w5AlYvKJ_CFZxDI#`K_YrTFaT@??f{-boZP^ZKx+3U&<7l5JPLdg^daC*;ETY= zfnnfQ;Dbz;0UJQ)0lxyA#Qc!_Ja9AcEbs}8XUss~Y2YK^_X8gTZUK@X^^A4EC7{;; zw*zy4Rlv&_EYW9yL=OXtDQ*V(27ph2K4hRT1|+*(jA6!h##Tl@<4(ryjLnPSCew$RZfClI=`~E}Fg>1av_A)=_D7lC&vYxW7W|!z&5Rx( z^}7~G?G)w%xSPK3*U^DnA%LsjM0?Ga%AlYjG zQv0<)YQM%n-*v2y4}m`cECUV$@u$lTv~E5K900BcHZy+<^Xr&Tb-+r<^MLex=K!g_ z6G-iEU~!}NSAis-1l|c82NnS@GXFe~+Kn-Nis=(TvP0|aGr$;d1OEAeTY%e{ZU7Q% zi-8Z-18XqOIs<)`z&hyP3)}%*4Wx1B0cqR{@L}K$thd#`3E&?9hk*3FA2!hE2U7fY z8tAJBmQz0l`XJNi;a&rM?ZEqm$n^u8fS3z$JFo%h0#bYYi8I#&yaQMXyc2(41@iCwBfcTUL#P=|t=AHP(%y%(gFpdkO|1rj4#(qXWqleMONb^8;X&(IO4?rd} z6?vy$k?ZOe`QBnhJ}eDMS@L=Lf~?4AWo#ql?_?f_&e^PUS&Doq>oUHN&KsVm$m7`) z*^2zh{Hybwj^hj7TySE6B9G;s&2>6%EbL#je-Ugg9$M^lTv&2($)zQVe0AydrD(fy zc%>pAS~-C4vD?nxmL*TPCSBkc4i}3)YidhY;rP4CuX+ zivgMSebhz|;eA4Kv%cNWaiFTb0Ok)5`4Pu!9CFeKGC&8*B99P8uV$FoBNa(@!lkTS}*C^%CtclzLMPB7k$X~ z%zf0ibb3sfb!~=je@vKl@?BU6$X~NApM+te%{p9RxmkDLkJymh+$X$_aS%=G09~87 zKXaebqqoO?iRC-lp1F^Bnf)>M4G**2+{Xl2Zthz?hy4Qdx04qA3&}Q9x2JK01 z*4ZanZr07;hyNru>-6uVo+xnkixZp=ZxEf)pPcVkK`(SdpXJ-wp1F^RfQF073u|@? z{SBME5V>U4{{Zu8rBB-A9X7fdxo6e?!Y2PCoBZz(cdPzSL0IX0fY{L#tBPsSj!+~J)1D_rYq-I{fPuz|k-OxPXsC5_ zPb3%%bw(=cG#q1f?(yoHhDM3IArRdhiiBdCH>`DNkysOc2d3Fnn_{J^>aGlRcB?oJ z(@H^gYcbrnwuEA806!R`-?xQYwWu1^bSJHSxGSn7f$*MKC>RJg^+b2UzPqwXi}iGw zUB&{jo^ERsKI*Ef@9d5}9VO>1KC{qWO43Fx(3++(OOGWLk7%(OKOQko`9i^__CS|u z{c-CtTh&wDTAlWMC^)OM((IcZd)yYH@-{6N?hIPpp2exEMh$VS3&a8`iW@N})`@dh zd3%HHfk>OS8L`{i5>0E79^pzFZn&#G#WF{(uH=^8*~BS1lq#Deds3C$mFf9q(@1we zslb7CmsrnX9}RA8Qr&LEB&x=ufl#db(V*80UR5BBs0VOLN(^sFF@9-E&x{(@B5kpD zRf|SDqcxQg&0SUOE;hqp%$>W`=mJR<)dC%}_u(z?#xoM#Q|GpZ(2T3eY>K%{tUab` zyEkqrQ8#;QJHufd=;Fal6>n?~w1l-J&v34shGpUEnL0~GC7W4OxvrR;?a(@qY$B}Q zhXK->(Y(#>r_OzJ7OuYfaBMaHp)DMTzAo7n)l#`TA}@51v8{&pC1tAG)e}=`!tg6o zEEC<@?j9`?)Mn;lj(B?;X{v2g)2ucZt6pzYh1&3VQ<-XXWrU>k39X|uy61^NB+#Zs z-NniELG?B~Po|0ug=U=YQ^vU623;Etba#6@8lThMp3PRdzRdjAW;T*XzqJ*t9BrX) ziX?{ByP9tTxYnzBU9JQ=WQNh5n2%(@DA!`)tLq$g$zq7+fFAOzb@mPT)@BqNMf z6=XP!U!?Q<6pBw7zkB~!P2?iBp3B5Oe z?J6{*p1N$*x@R7bq)qFCjVv(Vel0U@@@llvcr6-&xn6CvNXy8m*D9E0ohd1+#V^Kt zVp<)tFn|ZSI?}qeGujaddmCv+*#~bUauZLeB^vH>tOa-isA}l!iNVIqAm>^GD7mY6 zU2f^wrJ^8+>WjR&5R@AWK~trQf3#vGYZb4pciT!bdkXO)k6dkRDm9$f!(Ix9y)>5Q zZMHwj5wB?$-lMbdwrzFey%g;24YY)wce^WaPm7OAe{fVokzJj77u?V&LEPo7dMToI z<3AxLeHGR_fAr zOfbEq^f;spV2-84Iud&TsJ_%IS$(y+r2(!m_zhdt)2*pgqQ>aWQ>>PRT8(~;b#!Bp zW(mcG&VQt~*7Cnj!djKEb4n^iIM&g%FT)wm!z4^csnel(;$+=LA4e0{-KHb=r7(DMx=If8_G`PR9O-Say~mFfK(o z84fGzP+0AYEAddL)t}*KmKy{PMD`5;>&bTuDS@M^so0M_OTYOwH9B~Hu>*))H z(L&_pavFO0ZdYxO$E9k+Mm={er2pPL@8K&yr_LHri2q=D7ZU=26e#hMex8occ3! znzu<#Q48f2$f;*NH^_@i^zfX*X49Nv{Lk)3POCQBS#zq#^{X8tjr+&N=~~OBYyS<@ zVKATasMqxzV>O*sa`GILYKbp1c8zj?dRxnnF&B)QrTmi4YE#xfJm}pu`O(Ru$z`Q@ z^8Pa=m_wzQ*SjZIY+0krHeu=>#fG}he(YQu6S7|>yHr>h6);ct;wGBiWnWC$inMxX zbu#8Q?gMfpp+pvaw8Ec5|%*1z|!@PYFeow&H@^+T~MJ`KXiE~L=a+;mq^I(sijV|QM z>BpJ$uKN)dSSSD=ZO!k(nt^zi(MBo!7QhGg71!|h*yw9w>AUVM7PukG>0+Vu<>D;F z^fpU=bk;VhkBz=oeYjn!{IH!R9~@=LI~a?FAG1+gh>dFNl+CnG@#j=IOG`HNGh0sI zfiC4~-c~$CIZ2hv=?RP(R_VinFmssA%^zd8gE4li@0)BURK{k4Wq-O&USaM~*}xl@ zN{l#Y-C8JR>GaDje2x|GpFk{{U-a+Q^lHtWqjIt_om)$7u=J`{6MwV1x{Kw-%6^e6 zC(nx6Utiu%IYG_bUk$LlXxUkjy%5Yl@{Kp|tp+~0w^~Ev`sc9OiCq0I*2T3v+IDJV zP5CZAU9UEUXcWr&;x<+mPU+^e4tsRUbJsa_UTnzW0`2qTZeR5cwT=_Qbl{U;N zaq2$imcCDkQwEA=mxKS?+xCPXV`*vupX3lB#(ph%E#sYha zf@O{M!LmJ4XW0bo1c9yWb;v7CxEt%kWsQ)38~Q=$$WpKjhtm}XbhCzXsz1pcT=Nrw z{T|p0uyw-@#}$`8@AY^`sE!4B{HYE5nV* zQ3J;N$J+iax#eWJAbdTwjRlsK>);EJBY(rT$ra>&3AxkO%sgH1-vky2qKzQdzU~q^ zIU!Wk4He4CdzfqYk;i}fgNEq^k@okZ{R;xCS+MPz8WE+sLi8cNmn9DZg->U-)0onF zN48eG?uV;BYGWQg@4%jPZ(;4ldXXHVwHGp(uf5A+Nxrt{W4|Z=fBelem*Uv}2Wbvr z?)|1 zC7f?)o=HLZAS-sZYiBCcd2cQ5P0ml$ht1AUm#{vW_a8blo#SVwmetHNlUbMgojH%# zR0QK{#4->6l|o5XL`0sqC6cb+Z=9ZFtQKEOTpImIx4XwUiAwX@>eM~Bd%ZP6la$IrSblCPXFg~Xl3|^IFIUkF0BQtt3nRzW~{sDGN!8F z0gtVI=Mll-lU@<9$!YXfI(J_Ze^k8^=cAxYT4^N8`d+0BH@z(~w zwB08)u(X>v=IeQ0?Wt{w^oOIWpKc|G&vt^gSIrrhz2C03^AO%ROAqfL{cE4*eqeWgyv)>DbW) zBzZlTr;s0#-`26?3h)b%CxB$%!sX3ep2y{PF)k#(03`bn9Xq1H&w<|!Yy=($HUJNC zx&r6{&48bU-2;q2uwx8(0DmLECSaUn7Z9pn3F>&b1?YucvyL4_K=RLkklxFSMlPV`a1@s{tf{@i+sd&?AQmS z{1pKypNput-+=r*9XqCha&<`hOir<9ZcX z54;Sdc+LYUo*DVCw$uA-KwR4(~{4NRl zc)kZDzq7z5;53l(eE~@M9?`L52uS|pI(7tskl`{^+?+-a+z+&J3? zbOVnAu`lJc0`~%C;Fo~)z|R0ZK=5+VN0twC0}Fs?i|q#H0kKu&NWeWn8RLYMIo%u? z#}t^vpW!&pF~O0>398OMpdWsMoG){9b7UM-Xb+FhTR^hA2_(B2&Y$M|tDHa1`D2`a zk@FLrKg9WcoFC-;kOmB}(E&`z!V=@w|P+E{WG1(~c~0!g0kRiMO38XO?)=Ip>tb zMQKU0+uqAw%wEcd^|s}0k~o`xBVQC#`FHar@j*etC5auR!KZGBmjq@GWc#SsBLr1v2asKJm{LieN*ZiEmN{!)qL(|7vgnrWXC*0mRzr6|` zwP&2y&KmJx-==FAH_46j;yvm=bcT5T@m`&k+Y@Y&)AJ-Z<##*D9SN4p^ZR$)-WZP$ zsXhA)yU6W-fc}@GJ>z`#kDz(#C>-{Yg&v2{EI$MPX1Wmm&GcWPcFlCPg{J+(EPvM` zuSS2&^3xXi8;H>?cU$6Zve1uO+RL)UzhLo4-xtjO|I8B4zgXmZE%szFsY6|YBE2%PRy z{X~0px+xkO81VPB{mz!YYPAvh#BORRqEGDQV4Hd}GJtv{Pwif%$J({d&X4Je@0j`` z8D?00j7?p$8dc-!W|5n7mNE3zPpWZ$Bw|WyhDwungM#lVb)dV-M|M%QM~%e;{h`>v z^S%8&T0!|uzW9`=Yggm#k#DG)NC^*xluo24ri4TBa5q|3!co*Z$Y>P*AjIb|_+Qii zDWy#v80=BkBjjE~?f$NHrnkyGfh@9(RafOf?D`a4FE&bC=ej#%GOyLAKT}wvuK~JX z!z?$g0h>sD$?U+QKcu;r@MOknAd~x85#<8MoxLF@H`Nq;TjlF;+UdJ zB=&soW}4nQZB#SVcocf}y|rE1LJ6O-lc?U_nC6P>=sEG$qj(1Uc&W9=L-D}@e;Z9F z>!NA0-FkU!s`9tOxDE?0m9fc&FO~nbf_Ezq*2S&58+(P)qxNX2(zC>eVe0^OHDgru z9Oyh_RLwkNR1MyfO--hMhl{GU_-@+MSHrCQ8jbJE;QKUwbq2p$<5y+yt2DkhgTD#K oi_%n14h<=NYX3klcCSeMv~tR$Iq+mS0KcjANWJ30$$+u{1j*)g_y7O^ From 7d55f66804e9016305197e1933d4b53f18ad9591 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Fri, 4 Jul 2025 18:15:05 -0700 Subject: [PATCH 12/44] added Line --- AnalyticalSurface.cpp | 2 +- AnalyticalSurface.hpp | 2 +- Line.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++ Line.hpp | 43 ++++++++++++++++++ 4 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 Line.cpp create mode 100644 Line.hpp diff --git a/AnalyticalSurface.cpp b/AnalyticalSurface.cpp index ec22b58e7..116654523 100644 --- a/AnalyticalSurface.cpp +++ b/AnalyticalSurface.cpp @@ -32,7 +32,7 @@ namespace mfem switch (geometryType) { - //case 1: geometry = new Line(pmesh); break; + case 1: geometry = new Line(pmesh); break; case 2: geometry = new Circle(pmesh); break; default: out << "Unknown geometry type: " << geometryType << '\n'; diff --git a/AnalyticalSurface.hpp b/AnalyticalSurface.hpp index 097d9c540..75a5a2b4d 100644 --- a/AnalyticalSurface.hpp +++ b/AnalyticalSurface.hpp @@ -20,7 +20,7 @@ #include "mfem.hpp" #include "general/forall.hpp" #include "linalg/dtensor.hpp" -//#include "Line.hpp" +#include "Line.hpp" #include "Circle.hpp" namespace mfem diff --git a/Line.cpp b/Line.cpp new file mode 100644 index 000000000..7618eb326 --- /dev/null +++ b/Line.cpp @@ -0,0 +1,100 @@ +// CopyrighAt (AAcA) 2017, Lawrence Livermore National Security, OALLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + + +#include "Line.hpp" + +namespace mfem{ + + Line::Line(ParMesh* pmesh): + AnalyticalGeometricShape(pmesh), + slope(0), + yIntercept(1.51) + { } + + Line::~Line(){} + + void Line::SetupElementStatus(ParGridFunction& alpha) + { + int activeCount = 0; + int inactiveCount = 0; + int cutCount = 0; + IntegrationRules IntRulesLo(0, Quadrature1D::GaussLobatto); + auto fes = alpha.ParFESpace(); + const IntegrationRule &ir = IntRulesLo.Get(fes->GetFE(0)->GetGeomType(), 20); + const int NE = alpha.ParFESpace()->GetNE(), nqp = ir.GetNPoints(); + + // Check elements on the current MPI rank + for (int e = 0; e < NE; e++) + { + ElementTransformation *Tr = fes->GetElementTransformation(e); + int count = 0; + for (int q = 0; q < nqp; q++) + { + const IntegrationPoint &ip = ir.IntPoint(q); + Tr->SetIntPoint(&ip); + Vector x(3); + Tr->Transform(ip,x); + double ptOnLine = slope * x(0) + yIntercept; + if (x(1) <= ptOnLine) + { + count++; + } + } + if (count == nqp) + { + activeCount++; + alpha(e) = 1.0; + } + else if (count > 0 && count < nqp) + { + cutCount++; + alpha(e) = 0.5; + } + else if (count == 0) + { + inactiveCount++; + alpha(e) = 0.0; + } + } + alpha.ExchangeFaceNbrData(); + std::cout << " active elemSta " << activeCount << " cut " << cutCount << " inacive " << inactiveCount << std::endl; + } + + void Line::ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const + { + dist.SetSize(2); + dist = 0.0; + tn.SetSize(2); + tn = 0.0; + + double a = slope; + double b = -1.0; + double c = yIntercept; + + dist(0) = (b * (b * x_ip(0) - a * x_ip(1)) - a * c) / (a * a + b * b); + dist(1) = (a * (-b * x_ip(0) + a * x_ip(1)) - b * c) / (a * a + b * b); + + double normD = sqrt(pow(dist(0), 2.0) + pow(dist(1), 2.0)); + if (normD > 0.0) + { + tn(0) = dist(0) / normD; + tn(1) = dist(1) / normD; + } + } + +} + diff --git a/Line.hpp b/Line.hpp new file mode 100644 index 000000000..8ec0dd777 --- /dev/null +++ b/Line.hpp @@ -0,0 +1,43 @@ +// Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. +#ifndef MFEM_LINE +#define MFEM_LINE + +#include "AnalyticalGeometricShape.hpp" + +namespace mfem +{ + class Line : public AnalyticalGeometricShape{ + + protected: + double slope; + double yIntercept; + + public: + + Line(ParMesh* pmesh); + ~Line(); + + void SetupElementStatus(ParGridFunction& alpha); + + void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const; + + }; + +} + +#endif // MFEM_LAGHOS + From 9f5a01fc6af124fb677e4b256325759d69c574f4 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Fri, 4 Jul 2025 20:39:32 -0700 Subject: [PATCH 13/44] submesh in parallel --- AnalyticalGeometricShape.cpp | 2 +- AnalyticalGeometricShape.hpp | 6 +-- AnalyticalSurface.cpp | 16 ++++---- AnalyticalSurface.hpp | 10 ++--- Circle.cpp | 17 ++++----- Circle.hpp | 4 +- Line.cpp | 11 +++--- Line.hpp | 4 +- laghos.cpp | 73 ++++++++++++++++++------------------ 9 files changed, 70 insertions(+), 73 deletions(-) diff --git a/AnalyticalGeometricShape.cpp b/AnalyticalGeometricShape.cpp index aaca69c8b..483309666 100644 --- a/AnalyticalGeometricShape.cpp +++ b/AnalyticalGeometricShape.cpp @@ -19,7 +19,7 @@ namespace mfem { - AnalyticalGeometricShape::AnalyticalGeometricShape(ParMesh *pmesh): pmesh(pmesh){ + AnalyticalGeometricShape::AnalyticalGeometricShape(Mesh *mesh): mesh(mesh){ } AnalyticalGeometricShape::~AnalyticalGeometricShape(){ diff --git a/AnalyticalGeometricShape.hpp b/AnalyticalGeometricShape.hpp index 802c68ca7..258161e56 100644 --- a/AnalyticalGeometricShape.hpp +++ b/AnalyticalGeometricShape.hpp @@ -24,7 +24,7 @@ namespace mfem{ class AnalyticalGeometricShape{ protected: - ParMesh *pmesh; + Mesh *mesh; public: /// Element type related to shifted boundaries (not interfaces). @@ -32,8 +32,8 @@ namespace mfem{ /// to discern between different level-sets. enum SBElementType {OUTSIDE = 0, INSIDE = 1, CUT = 2}; - AnalyticalGeometricShape(ParMesh* pmesh); - virtual void SetupElementStatus(ParGridFunction& alpha) = 0; + AnalyticalGeometricShape(Mesh* mesh); + virtual void SetupElementStatus(GridFunction& alpha) = 0; virtual void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const = 0; diff --git a/AnalyticalSurface.cpp b/AnalyticalSurface.cpp index 116654523..5e8c64e54 100644 --- a/AnalyticalSurface.cpp +++ b/AnalyticalSurface.cpp @@ -19,21 +19,20 @@ namespace mfem { - AnalyticalSurface::AnalyticalSurface(int geometryType, ParMesh *pmesh): + AnalyticalSurface::AnalyticalSurface(int geometryType, Mesh *mesh): geometryType(geometryType), - pmesh(pmesh), - L2FEC_0(0, pmesh->Dimension()), - L2_fes_0(pmesh, &L2FEC_0), + mesh(mesh), + L2FEC_0(0, mesh->Dimension()), + L2_fes_0(mesh, &L2FEC_0), geometry(NULL) { alpha.SetSpace(&L2_fes_0), alpha = 0.0; - alpha.ExchangeFaceNbrData(); switch (geometryType) { - case 1: geometry = new Line(pmesh); break; - case 2: geometry = new Circle(pmesh); break; + case 1: geometry = new Line(mesh); break; + case 2: geometry = new Circle(mesh); break; default: out << "Unknown geometry type: " << geometryType << '\n'; break; @@ -52,10 +51,9 @@ namespace mfem void AnalyticalSurface::ResetData() { alpha = 0.0; - alpha.ExchangeFaceNbrData(); } - ParGridFunction& AnalyticalSurface::GetAlpha() + GridFunction& AnalyticalSurface::GetAlpha() { return alpha; } diff --git a/AnalyticalSurface.hpp b/AnalyticalSurface.hpp index 75a5a2b4d..08eaa3de2 100644 --- a/AnalyticalSurface.hpp +++ b/AnalyticalSurface.hpp @@ -31,17 +31,17 @@ namespace mfem protected: int geometryType; - ParGridFunction alpha; + GridFunction alpha; AnalyticalGeometricShape *geometry; - ParMesh *pmesh; + Mesh *mesh; L2_FECollection L2FEC_0; - ParFiniteElementSpace L2_fes_0; + FiniteElementSpace L2_fes_0; public: - AnalyticalSurface(int geometryType, ParMesh *pmesh); + AnalyticalSurface(int geometryType, Mesh *mesh); void SetupElementStatus(); void ResetData(); - ParGridFunction& GetAlpha(); + GridFunction& GetAlpha(); AnalyticalGeometricShape& GetAnalyticalGeometricShape(); void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const; ~AnalyticalSurface(); diff --git a/Circle.cpp b/Circle.cpp index 16996581d..149db5d2b 100644 --- a/Circle.cpp +++ b/Circle.cpp @@ -19,7 +19,7 @@ namespace mfem{ - Circle::Circle(ParMesh* pmesh): AnalyticalGeometricShape(pmesh), radius(0.2), center(2) + Circle::Circle(Mesh* mesh): AnalyticalGeometricShape(mesh), radius(0.2), center(2) { center(0) = 0.5; center(1) = 0.5; @@ -28,17 +28,17 @@ namespace mfem{ Circle::~Circle() {} - void Circle::SetupElementStatus(ParGridFunction& alpha) + void Circle::SetupElementStatus(GridFunction& alpha) { - const int max_elem_attr = (pmesh->attributes).Max(); + const int max_elem_attr = (mesh->attributes).Max(); int activeCount = 0; int inactiveCount = 0; int cutCount = 0; IntegrationRules IntRulesLo(0, Quadrature1D::GaussLobatto); alpha = 0.0; - auto fes = alpha.ParFESpace(); + auto fes = alpha.FESpace(); const IntegrationRule &ir = IntRulesLo.Get(fes->GetFE(0)->GetGeomType(), 20); - const int NE = alpha.ParFESpace()->GetNE(), nqp = ir.GetNPoints(); + const int NE = fes->GetNE(), nqp = ir.GetNPoints(); // Check elements on the current MPI rank for (int e = 0; e < NE; e++) { @@ -66,17 +66,16 @@ namespace mfem{ { cutCount++; alpha(e) = 0.5; - // pmesh->SetAttribute(e, max_elem_attr+1); + // mesh->SetAttribute(e, max_elem_attr+1); } else if (count == 0) { inactiveCount++; alpha(e) = 0.0; - // pmesh->SetAttribute(e, max_elem_attr+1); + // mesh->SetAttribute(e, max_elem_attr+1); } } - alpha.ExchangeFaceNbrData(); - // pmesh->SetAttributes(); + // mesh->SetAttributes(); // std::cout << " active elemSta " << activeCount << " cut " << cutCount << " inacive " << inactiveCount << std::endl; } diff --git a/Circle.hpp b/Circle.hpp index cf8375b39..8a1951b8d 100644 --- a/Circle.hpp +++ b/Circle.hpp @@ -28,10 +28,10 @@ namespace mfem public: - Circle(ParMesh *pmesh); + Circle(Mesh *mesh); ~Circle(); - void SetupElementStatus(ParGridFunction& alpha); + void SetupElementStatus(GridFunction& alpha); void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const; }; diff --git a/Line.cpp b/Line.cpp index 7618eb326..7ce9277da 100644 --- a/Line.cpp +++ b/Line.cpp @@ -19,23 +19,23 @@ namespace mfem{ - Line::Line(ParMesh* pmesh): - AnalyticalGeometricShape(pmesh), + Line::Line(Mesh* mesh): + AnalyticalGeometricShape(mesh), slope(0), yIntercept(1.51) { } Line::~Line(){} - void Line::SetupElementStatus(ParGridFunction& alpha) + void Line::SetupElementStatus(GridFunction& alpha) { int activeCount = 0; int inactiveCount = 0; int cutCount = 0; IntegrationRules IntRulesLo(0, Quadrature1D::GaussLobatto); - auto fes = alpha.ParFESpace(); + auto fes = alpha.FESpace(); const IntegrationRule &ir = IntRulesLo.Get(fes->GetFE(0)->GetGeomType(), 20); - const int NE = alpha.ParFESpace()->GetNE(), nqp = ir.GetNPoints(); + const int NE = fes->GetNE(), nqp = ir.GetNPoints(); // Check elements on the current MPI rank for (int e = 0; e < NE; e++) @@ -70,7 +70,6 @@ namespace mfem{ alpha(e) = 0.0; } } - alpha.ExchangeFaceNbrData(); std::cout << " active elemSta " << activeCount << " cut " << cutCount << " inacive " << inactiveCount << std::endl; } diff --git a/Line.hpp b/Line.hpp index 8ec0dd777..a7df128ea 100644 --- a/Line.hpp +++ b/Line.hpp @@ -28,10 +28,10 @@ namespace mfem public: - Line(ParMesh* pmesh); + Line(Mesh* pmesh); ~Line(); - void SetupElementStatus(ParGridFunction& alpha); + void SetupElementStatus(GridFunction& alpha); void ComputeDistanceAndNormal(const Vector& x_ip, Vector& dist, Vector& tn) const; diff --git a/laghos.cpp b/laghos.cpp index 1937cca47..657b4c846 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -317,6 +317,43 @@ int main(int argc, char *argv[]) cout << "Number of zones in the serial mesh: " << mesh_NE << endl; } + + // embedded + AnalyticalSurface *analyticalSurface = NULL; + Array cond_attr; + Array submesh_elems; + int max_attr = mesh->attributes.Max(); + int submesh_attr = max_attr + 1; + if (useEmbedded) + { + analyticalSurface = new AnalyticalSurface(geometricShape, mesh); + analyticalSurface->SetupElementStatus(); + + GridFunction &alpha = analyticalSurface->GetAlpha(); + for (int e = 0; e < mesh->GetNE(); e++) + { + double volfrac = alpha[e]; + if (volfrac == 1) + { + submesh_elems.Append(e); + } + } + + if (cond_attr.Size() == 0 && submesh_elems.Size() > 0) + { + for (int i=0; iSetAttribute(submesh_elems[i], submesh_attr); + } + mesh->SetAttributes(); + + if (cond_attr.Size() == 0) + { + cond_attr.Append(submesh_attr); + } + } + } + // Parallel partitioning of the mesh. ParMesh *pmesh = nullptr; const int num_tasks = Mpi::WorldSize(); int unit = 1; @@ -451,42 +488,6 @@ int main(int argc, char *argv[]) // Refine the mesh further in parallel to increase the resolution. for (int lev = 0; lev < rp_levels; lev++) { pmesh->UniformRefinement(); } - // embedded - AnalyticalSurface *analyticalSurface = NULL; - Array cond_attr; - Array submesh_elems; - int max_attr = pmesh->attributes.Max(); - int submesh_attr = max_attr + 1; - if (useEmbedded) - { - analyticalSurface = new AnalyticalSurface(geometricShape, pmesh); - analyticalSurface->SetupElementStatus(); - - ParGridFunction &alpha = analyticalSurface->GetAlpha(); - for (int e = 0; e < pmesh->GetNE(); e++) - { - double volfrac = alpha[e]; - if (volfrac == 1) - { - submesh_elems.Append(e); - } - } - - if (cond_attr.Size() == 0 && submesh_elems.Size() > 0) - { - for (int i=0; iSetAttribute(submesh_elems[i], submesh_attr); - } - pmesh->SetAttributes(); - - if (cond_attr.Size() == 0) - { - cond_attr.Append(submesh_attr); - } - } - } - ParSubMesh pmesh_cond(ParSubMesh::CreateFromDomain(*pmesh, cond_attr)); int NE = pmesh_cond.GetNE(), ne_min, ne_max; From 4539c92d7948b5c39c6d45553602490c59ff5d8c Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Fri, 4 Jul 2025 23:19:14 -0700 Subject: [PATCH 14/44] tagged surrogate face --- laghos.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/laghos.cpp b/laghos.cpp index 657b4c846..94a01efb3 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -323,7 +323,7 @@ int main(int argc, char *argv[]) Array cond_attr; Array submesh_elems; int max_attr = mesh->attributes.Max(); - int submesh_attr = max_attr + 1; + int submesh_attr = max_attr + 1; if (useEmbedded) { analyticalSurface = new AnalyticalSurface(geometricShape, mesh); @@ -489,7 +489,47 @@ int main(int argc, char *argv[]) for (int lev = 0; lev < rp_levels; lev++) { pmesh->UniformRefinement(); } ParSubMesh pmesh_cond(ParSubMesh::CreateFromDomain(*pmesh, cond_attr)); - + + double volume0 = pmesh_cond.GetElementVolume(0); + double h0; + switch (pmesh->GetElementBaseGeometry(0)) + { + case Geometry::SEGMENT: h0 = volume0; break; + case Geometry::SQUARE: h0 = sqrt(volume0); break; + case Geometry::TRIANGLE: h0 = sqrt(2.0 * volume0); break; + case Geometry::CUBE: h0 = pow(volume0, 1./3.); break; + case Geometry::TETRAHEDRON: h0 = pow(6.0 * volume0, 1./3.); break; + default: MFEM_ABORT("Unknown zone type!"); + } + h0 /= (double) order_v; + int max_bdr_attr = pmesh_cond.bdr_attributes.Max(); + for (int i = 0; i < pmesh_cond.GetNBE(); i++) + { + Element* bdr_elem = pmesh_cond.GetBdrElement(i); + Array bdr_vertices; + bdr_elem->GetVertices(bdr_vertices); + bool isImmersed = true; + for (int j = 0; j < bdr_vertices.Size(); j++) + { + double* coord = pmesh_cond.GetVertex(bdr_vertices[j]); + Vector d(3), tn(3), coord_vec(3); + d = 0.0, tn = 0.0; + coord_vec(0) = coord[0], coord_vec(1) = coord[1], coord_vec(2) = coord[2]; + analyticalSurface->ComputeDistanceAndNormal(coord_vec, d, tn); + double norm_d = d.Norml2(); + if (norm_d > 2 * h0) + { + isImmersed = false; + break; + } + } + if (isImmersed) + { + pmesh_cond.SetBdrAttribute(i, max_bdr_attr + 1); + } + } + pmesh_cond.SetAttributes(); + int NE = pmesh_cond.GetNE(), ne_min, ne_max; MPI_Reduce(&NE, &ne_min, 1, MPI_INT, MPI_MIN, 0, pmesh_cond.GetComm()); MPI_Reduce(&NE, &ne_max, 1, MPI_INT, MPI_MAX, 0, pmesh_cond.GetComm()); From c954cd7ef2d924a4a00a228d554d0711d4f91b4e Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 00:58:27 -0700 Subject: [PATCH 15/44] laying foundations, need to updateBdrQuad for surrogate attributes --- laghos.cpp | 4 ++-- laghos_solver.cpp | 45 +++++++++++++++++++++++++++++++++++---------- laghos_solver.hpp | 8 ++++++-- 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/laghos.cpp b/laghos.cpp index 94a01efb3..b199c2b55 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -84,7 +84,6 @@ #include #include #include "laghos_solver.hpp" -#include "AnalyticalSurface.hpp" using std::cout; using std::endl; @@ -697,7 +696,8 @@ int main(int argc, char *argv[]) mat_gf, source, cfl, visc, vorticity, p_assembly, cg_tol, cg_max_iter, ftz_tol, - order_q, pen_param, perimeter); + order_q, pen_param, perimeter, + analyticalSurface); socketstream vis_rho, vis_v, vis_e; char vishost[] = "localhost"; diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 2a5111248..4d00ec1e2 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -106,7 +106,8 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, double ftz, const int oq, double bc_penalty, - double perimeter) : + double perimeter, + AnalyticalSurface* analyticalSurface) : TimeDependentOperator(size), H1(h1), L2(l2), H1c(H1.GetParMesh(), H1.FEColl(), 1), pmesh(H1.GetParMesh()), @@ -157,8 +158,18 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, rhs(H1Vsize), e_rhs(L2Vsize), rhs_c_gf(&H1c), - dvc_gf(&H1c) + dvc_gf(&H1c), + analyticalSurface(analyticalSurface) { + + const int bdr_attr_max = H1.GetMesh()->bdr_attributes.Max(); + ess_bdr_bf.SetSize(bdr_attr_max), ess_bdr_sbm.SetSize(bdr_attr_max); + ess_bdr_bf = 1; ess_bdr_sbm = 0; + if (analyticalSurface != nullptr) + { + ess_bdr_bf[bdr_attr_max-1] = 0; + ess_bdr_sbm[bdr_attr_max-1] = 1; + } // H1.ExchangeFaceNbrData(); // int n_bdr = 0; // for (int be = 0; be < NBE; be++) @@ -255,9 +266,14 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, { auto nvmi = new BoundaryVectorMassIntegrator(bdr_mass_coeff); nvmi->SetIntRule(&b_ir); - Mv.AddBdrFaceIntegrator(nvmi); + Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); + if (analyticalSurface != nullptr) + { + auto nvmi_sbm = new BoundaryVectorMassIntegrator(bdr_mass_coeff); + nvmi_sbm->SetIntRule(&b_ir); + Mv.AddBdrFaceIntegrator(nvmi_sbm, ess_bdr_sbm); + } } - Mv.Assemble(); Mv_spmat_copy = Mv.SpMat(); } @@ -348,12 +364,21 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Force.Assemble(0); Force.Finalize(0); - auto vpb = new BoundaryMixedForceIntegrator(bdr_force_coeff); - vpb->SetIntRule(&b_ir); - Force_be.AddBdrFaceIntegrator(vpb); - // Make a dummy assembly to figure out the sparsity. - Force_be.Assemble(0); - Force_be.Finalize(0); + if (BC_strong == false) + { + auto vpb = new BoundaryMixedForceIntegrator(bdr_force_coeff); + vpb->SetIntRule(&b_ir); + Force_be.AddBdrFaceIntegrator(vpb, ess_bdr_bf); + // Make a dummy assembly to figure out the sparsity. + if (analyticalSurface != nullptr) + { + auto vpb_sbm = new BoundaryMixedForceIntegrator(bdr_force_coeff); + vpb_sbm->SetIntRule(&b_ir); + Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); + } + Force_be.Assemble(0); + Force_be.Finalize(0); + } } } diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 2834fa44b..7156cadbe 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -19,6 +19,7 @@ #include "mfem.hpp" #include "laghos_assembly.hpp" +#include "AnalyticalSurface.hpp" #ifdef MFEM_USE_MPI @@ -111,6 +112,8 @@ class LagrangianHydroOperator : public TimeDependentOperator // Reference to the current mesh configuration. mutable ParGridFunction x_gf; const Array &ess_tdofs; + Array ess_bdr_bf; + Array ess_bdr_sbm; bool BC_strong; const int dim, NE, NBE, l2dofs_cnt, h1dofs_cnt, source_type; @@ -145,7 +148,7 @@ class LagrangianHydroOperator : public TimeDependentOperator double wall_bc_penalty, C_I; double rho0_max, perimeter; - + AnalyticalSurface* analyticalSurface; // Same as above, but done through partial assembly. ForcePAOperator *ForcePA; // Mass matrices done through partial assembly: @@ -188,7 +191,8 @@ class LagrangianHydroOperator : public TimeDependentOperator const bool visc, const bool vort, const bool pa, const double cgt, const int cgiter, double ftz_tol, const int order_q, - double bc_penalty, double perimeter); + double bc_penalty, double perimeter, + AnalyticalSurface* analyticalSurface = NULL); ~LagrangianHydroOperator(); // Solve for dx_dt, dv_dt and de_dt. From ebb4f6b67444842e81909a78e6b30ecb92de9dbf Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 10:38:09 -0700 Subject: [PATCH 16/44] update bdrmass coefficients --- laghos_solver.cpp | 101 ++++++++++++++++++++++++++++++++-------------- laghos_solver.hpp | 1 + 2 files changed, 72 insertions(+), 30 deletions(-) diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 4d00ec1e2..367519d66 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -159,10 +159,9 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, e_rhs(L2Vsize), rhs_c_gf(&H1c), dvc_gf(&H1c), + bdr_attr_max( H1.GetMesh()->bdr_attributes.Max()), analyticalSurface(analyticalSurface) { - - const int bdr_attr_max = H1.GetMesh()->bdr_attributes.Max(); ess_bdr_bf.SetSize(bdr_attr_max), ess_bdr_sbm.SetSize(bdr_attr_max); ess_bdr_bf = 1; ess_bdr_sbm = 0; if (analyticalSurface != nullptr) @@ -1100,34 +1099,76 @@ void LagrangianHydroOperator::UpdateBdrQuadratureData() const { auto b_face_tr = pmesh->GetBdrFaceTransformations(be); if (b_face_tr == nullptr) { continue; } - - for (int q = 0; q < nqp_be; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - - double penalty_mass = wall_bc_penalty * C_I * perimeter / - std::pow(tr_el.Weight(), 1.0/dim); - penalty_mass *= rho0_max * perimeter; - - Vector nor(dim); - CalcOrtho(b_face_tr->Jacobian(), nor); - double nor_norm = sqrt(nor * nor); - - Vector tn(nor); - tn /= nor_norm; - - for (int dx = 0; dx < dim; dx++) - { - for (int dy = 0; dy < dim; dy++) - { - qdata.be_mass_data(dx, dy, be * nqp_be + q) = - ip_f.weight * nor_norm * - tn(dx) * tn(dy) * penalty_mass; - } - } - } + int attr = pmesh->GetBdrAttribute(be); + if (attr != bdr_attr_max) + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + + double penalty_mass = wall_bc_penalty * C_I * perimeter / + std::pow(tr_el.Weight(), 1.0/dim); + penalty_mass *= rho0_max * perimeter; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + for (int dx = 0; dx < dim; dx++) + { + for (int dy = 0; dy < dim; dy++) + { + qdata.be_mass_data(dx, dy, be * nqp_be + q) = + ip_f.weight * nor_norm * + tn(dx) * tn(dy) * penalty_mass; + } + } + } + } + else + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + + double penalty_mass = wall_bc_penalty * C_I * perimeter / + std::pow(tr_el.Weight(), 1.0/dim); + penalty_mass *= rho0_max * perimeter; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + const IntegrationPoint &ip_e1 = b_face_tr->GetElement1IntPoint(); + Vector position; + tr_el.SetIntPoint(&ip_e1); + tr_el.Transform(ip_e1, position); + Vector dist; + Vector true_n; + analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); + true_n = tn; + double nDotNtilda = true_n * tn; + + for (int dx = 0; dx < dim; dx++) + { + for (int dy = 0; dy < dim; dy++) + { + qdata.be_mass_data(dx, dy, be * nqp_be + q) = + ip_f.weight * nor_norm * + true_n(dx) * true_n(dy) * penalty_mass * std::pow(nDotNtilda, 2.0); + } + } + } + } } } diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 7156cadbe..24fbbef70 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -112,6 +112,7 @@ class LagrangianHydroOperator : public TimeDependentOperator // Reference to the current mesh configuration. mutable ParGridFunction x_gf; const Array &ess_tdofs; + int bdr_attr_max; Array ess_bdr_bf; Array ess_bdr_sbm; bool BC_strong; From 51769d431b0ca643fa806aaa9fe3d078ea1f07d8 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 11:40:43 -0700 Subject: [PATCH 17/44] used actualy energy operator instead of transpose --- laghos_assembly.cpp | 38 ++++++++++++++++++++++++++++++++++++++ laghos_assembly.hpp | 24 ++++++++++++++++++++++++ laghos_solver.cpp | 16 +++++++++++++--- laghos_solver.hpp | 2 +- 4 files changed, 76 insertions(+), 4 deletions(-) diff --git a/laghos_assembly.cpp b/laghos_assembly.cpp index 60ee07f35..03034e0e9 100644 --- a/laghos_assembly.cpp +++ b/laghos_assembly.cpp @@ -23,6 +23,44 @@ namespace mfem namespace hydrodynamics { +void BoundaryMixedForceTIntegrator:: +AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = trial_fe.GetOrder() + test_fe.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int vdim = Q.GetVDim(); + const int dof_trial = trial_fe.GetDof(); + const int dof_test = test_fe.GetDof(); + + elmat.SetSize(dof_test, dof_trial * vdim); + elmat = 0.0; + DenseMatrix loc_force(dof_trial, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), + Vloc_force(loc_force.Data(), dof_trial * vdim); + Vector qcoeff(vdim); + + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + Tr.SetAllIntPoints(&ip_f); + const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + + test_fe.CalcShape(ip_e, shape_test); + trial_fe.CalcShape(ip_e, shape_trial); + Q.Eval(qcoeff, Tr, ip_f); + + MultVWt(shape_trial, qcoeff, loc_force); + AddMultVWt(shape_test, Vloc_force, elmat); + } +} + void DensityIntegrator::AssembleRHSElementVect(const FiniteElement &fe, ElementTransformation &Tr, Vector &elvect) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index f0676a25e..ba93ec403 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -135,6 +135,30 @@ class ForceIntegrator : public BilinearFormIntegrator DenseMatrix &elmat); }; +/** Integrates (Q*u, v) over boundary faces, where u=(u1,...,un) is a vector + trial function (each component is a scalar FE), Q is a VectorCoefficient, + Q*u is the Hadamard product, and v is a scalar test function. + + - SetIntRule() is expected to take a face-based quadrature rule. + - The VectorCoefficient Q is evaluated through a FaceElementTransformation, + allowing to utilize both face-based information (e.g. face normals) and + volumetric element information (e.g. volumetric deformation). */ +class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +{ +protected: + VectorCoefficient &Q; + +public: + BoundaryMixedForceTIntegrator(VectorCoefficient &vc) : Q(vc) { } + + /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where + /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. + void AssembleFaceMatrix(const FiniteElement &trial_fe, + const FiniteElement &test_fe, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + // Performs partial assembly for the force operator. class ForcePAOperator : public Operator { diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 367519d66..6536ba18d 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -143,7 +143,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, bdr_force_coeff(qdata), bdr_mass_coeff(qdata), qdata_is_current(false), forcemat_is_assembled(false), - Force(&L2, &H1), Force_be(&L2, &H1), + Force(&L2, &H1), Force_be(&L2, &H1), Force_be_T(&H1, &L2), wall_bc_penalty(bc_penalty), C_I(0.0), rho0_max(rho0_gf.Max()), perimeter(perimeter), ForcePA(nullptr), VMassPA(nullptr), EMassPA(nullptr), @@ -368,15 +368,24 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, auto vpb = new BoundaryMixedForceIntegrator(bdr_force_coeff); vpb->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb, ess_bdr_bf); + auto vpb_T = new BoundaryMixedForceTIntegrator(bdr_force_coeff); + vpb_T->SetIntRule(&b_ir); + Force_be_T.AddBdrFaceIntegrator(vpb_T, ess_bdr_bf); // Make a dummy assembly to figure out the sparsity. if (analyticalSurface != nullptr) { auto vpb_sbm = new BoundaryMixedForceIntegrator(bdr_force_coeff); vpb_sbm->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); + auto vpb_sbm_T = new BoundaryMixedForceTIntegrator(bdr_force_coeff); + vpb_sbm_T->SetIntRule(&b_ir); + Force_be_T.AddBdrFaceIntegrator(vpb_sbm_T, ess_bdr_sbm); + } Force_be.Assemble(0); Force_be.Finalize(0); + Force_be_T.Assemble(0); + Force_be_T.Finalize(0); } } } @@ -559,7 +568,7 @@ void LagrangianHydroOperator::SolveEnergy(const Vector &S, const Vector &v, { timer.sw_force.Start(); Force.MultTranspose(v, e_rhs); - if (BC_strong == false) { Force_be.AddMultTranspose(v, e_rhs); } + if (BC_strong == false) { Force_be_T.AddMult(v, e_rhs); } timer.sw_force.Stop(); if (e_source) { e_rhs += *e_source; } @@ -1595,10 +1604,11 @@ void LagrangianHydroOperator::AssembleForceMatrix() const Force = 0.0; Force_be = 0.0; + Force_be_T = 0.0; timer.sw_force.Start(); Force.Assemble(); - if (BC_strong == false) { Force_be.Assemble(); } + if (BC_strong == false) { Force_be.Assemble(); Force_be_T.Assemble(); } timer.sw_force.Stop(); forcemat_is_assembled = true; diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 24fbbef70..ea81fde79 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -145,7 +145,7 @@ class LagrangianHydroOperator : public TimeDependentOperator // Force matrix that combines the kinematic and thermodynamic spaces. It is // assembled in each time step and then it is used to compute the final // right-hand sides for momentum and specific internal energy. - mutable MixedBilinearForm Force, Force_be; + mutable MixedBilinearForm Force, Force_be, Force_be_T; double wall_bc_penalty, C_I; double rho0_max, perimeter; From a0d98a858c6cf878d5db59aeb994dbfaeac019a2 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 12:16:11 -0700 Subject: [PATCH 18/44] skeleton for sbm --- laghos_assembly.cpp | 115 ++++++++++++++++++++++++++++++++++++++++++++ laghos_assembly.hpp | 61 +++++++++++++++++++---- laghos_solver.cpp | 7 ++- 3 files changed, 170 insertions(+), 13 deletions(-) diff --git a/laghos_assembly.cpp b/laghos_assembly.cpp index 03034e0e9..6f0c9bfb0 100644 --- a/laghos_assembly.cpp +++ b/laghos_assembly.cpp @@ -23,6 +23,83 @@ namespace mfem namespace hydrodynamics { +void SBM_BoundaryVectorMassIntegrator:: +AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = 2 * el1.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int dof = el1.GetDof(); + elmat.SetSize(dof * vdim); + elmat = 0.0; + + mcoeff.SetSize(vdim); + shape.SetSize(dof); + partelmat.SetSize(dof); + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + // Set the integration point in the face and the neighboring elements + Tr.SetAllIntPoints(&ip_f); + + MQ->Eval(mcoeff, Tr, ip_f); + el1.CalcShape(Tr.GetElement1IntPoint(), shape); + MultVVt(shape, partelmat); + + for (int i = 0; i < vdim; i++) + { + for (int j = 0; j < vdim; j++) + { + elmat.AddMatrix(mcoeff(i,j), partelmat, dof*i, dof*j); + } + } + } +} + +void SBM_BoundaryMixedForceIntegrator:: +AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = trial_fe.GetOrder() + test_fe.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int vdim = Q.GetVDim(); + const int dof_trial = trial_fe.GetDof(); + const int dof_test = test_fe.GetDof(); + + elmat.SetSize(dof_test * vdim, dof_trial); + elmat = 0.0; + DenseMatrix loc_force(dof_test, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), + Vloc_force(loc_force.Data(), dof_test * vdim); + Vector qcoeff(vdim); + + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + Tr.SetAllIntPoints(&ip_f); + const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + + test_fe.CalcShape(ip_e, shape_test); + trial_fe.CalcShape(ip_e, shape_trial); + Q.Eval(qcoeff, Tr, ip_f); + + MultVWt(shape_test, qcoeff, loc_force); + AddMultVWt(Vloc_force, shape_trial, elmat); + } +} + void BoundaryMixedForceTIntegrator:: AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, FaceElementTransformations &Tr, DenseMatrix &elmat) @@ -61,6 +138,44 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, } } +void SBM_BoundaryMixedForceTIntegrator:: +AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = trial_fe.GetOrder() + test_fe.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int vdim = Q.GetVDim(); + const int dof_trial = trial_fe.GetDof(); + const int dof_test = test_fe.GetDof(); + + elmat.SetSize(dof_test, dof_trial * vdim); + elmat = 0.0; + DenseMatrix loc_force(dof_trial, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), + Vloc_force(loc_force.Data(), dof_trial * vdim); + Vector qcoeff(vdim); + + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + Tr.SetAllIntPoints(&ip_f); + const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + + test_fe.CalcShape(ip_e, shape_test); + trial_fe.CalcShape(ip_e, shape_trial); + Q.Eval(qcoeff, Tr, ip_f); + + MultVWt(shape_trial, qcoeff, loc_force); + AddMultVWt(shape_test, Vloc_force, elmat); + } +} + void DensityIntegrator::AssembleRHSElementVect(const FiniteElement &fe, ElementTransformation &Tr, Vector &elvect) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index ba93ec403..8f0264009 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -135,15 +135,42 @@ class ForceIntegrator : public BilinearFormIntegrator DenseMatrix &elmat); }; -/** Integrates (Q*u, v) over boundary faces, where u=(u1,...,un) is a vector - trial function (each component is a scalar FE), Q is a VectorCoefficient, - Q*u is the Hadamard product, and v is a scalar test function. - - - SetIntRule() is expected to take a face-based quadrature rule. - - The VectorCoefficient Q is evaluated through a FaceElementTransformation, - allowing to utilize both face-based information (e.g. face normals) and - volumetric element information (e.g. volumetric deformation). */ -class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator +{ +protected: + int nf; + +public: + /// The given MatrixCoefficient fully couples the vector components, i.e., + /// the local (dof x vdim) matrices have no zero blocks. + SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc) + : VectorMassIntegrator(mc) { } + + /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 + /// is for the volumetric neighbor of the boundary face, @a el2 is not used. + void AssembleFaceMatrix(const FiniteElement &el1, + const FiniteElement &el2, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + +class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator +{ +protected: + VectorCoefficient &Q; + +public: + SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc) : Q(vc) { } + + /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where + /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. + void AssembleFaceMatrix(const FiniteElement &trial_fe, + const FiniteElement &test_fe, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + + class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator { protected: VectorCoefficient &Q; @@ -159,6 +186,22 @@ class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator DenseMatrix &elmat) override; }; + class SBM_BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +{ +protected: + VectorCoefficient &Q; + +public: + SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc) : Q(vc) { } + + /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where + /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. + void AssembleFaceMatrix(const FiniteElement &trial_fe, + const FiniteElement &test_fe, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + // Performs partial assembly for the force operator. class ForcePAOperator : public Operator { diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 6536ba18d..f9c65d20a 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -268,7 +268,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); if (analyticalSurface != nullptr) { - auto nvmi_sbm = new BoundaryVectorMassIntegrator(bdr_mass_coeff); + auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_mass_coeff); nvmi_sbm->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi_sbm, ess_bdr_sbm); } @@ -374,13 +374,12 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, // Make a dummy assembly to figure out the sparsity. if (analyticalSurface != nullptr) { - auto vpb_sbm = new BoundaryMixedForceIntegrator(bdr_force_coeff); + auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_coeff); vpb_sbm->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); - auto vpb_sbm_T = new BoundaryMixedForceTIntegrator(bdr_force_coeff); + auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_force_coeff); vpb_sbm_T->SetIntRule(&b_ir); Force_be_T.AddBdrFaceIntegrator(vpb_sbm_T, ess_bdr_sbm); - } Force_be.Assemble(0); Force_be.Finalize(0); From 1172da9bbf816e244278892e7854646936cb925a Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 12:22:50 -0700 Subject: [PATCH 19/44] reorganization --- laghos_assembly.cpp | 117 +------------------ laghos_assembly.hpp | 53 +-------- laghos_shift.cpp | 270 ++++++++++++++++++++++++++++++++++++++++++++ laghos_shift.hpp | 98 ++++++++++++++++ laghos_solver.hpp | 1 + 5 files changed, 371 insertions(+), 168 deletions(-) create mode 100644 laghos_shift.cpp create mode 100644 laghos_shift.hpp diff --git a/laghos_assembly.cpp b/laghos_assembly.cpp index 6f0c9bfb0..0d803ec8d 100644 --- a/laghos_assembly.cpp +++ b/laghos_assembly.cpp @@ -22,84 +22,7 @@ namespace mfem namespace hydrodynamics { - -void SBM_BoundaryVectorMassIntegrator:: -AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, - FaceElementTransformations &Tr, DenseMatrix &elmat) -{ - const IntegrationRule *ir = IntRule; - if (ir == nullptr) - { - int order = 2 * el1.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); - } - - const int nqp_face = IntRule->GetNPoints(); - const int dof = el1.GetDof(); - elmat.SetSize(dof * vdim); - elmat = 0.0; - - mcoeff.SetSize(vdim); - shape.SetSize(dof); - partelmat.SetSize(dof); - for (int q = 0; q < nqp_face; q++) - { - const IntegrationPoint &ip_f = IntRule->IntPoint(q); - // Set the integration point in the face and the neighboring elements - Tr.SetAllIntPoints(&ip_f); - - MQ->Eval(mcoeff, Tr, ip_f); - el1.CalcShape(Tr.GetElement1IntPoint(), shape); - MultVVt(shape, partelmat); - - for (int i = 0; i < vdim; i++) - { - for (int j = 0; j < vdim; j++) - { - elmat.AddMatrix(mcoeff(i,j), partelmat, dof*i, dof*j); - } - } - } -} - -void SBM_BoundaryMixedForceIntegrator:: -AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, - FaceElementTransformations &Tr, DenseMatrix &elmat) -{ - const IntegrationRule *ir = IntRule; - if (ir == nullptr) - { - int order = trial_fe.GetOrder() + test_fe.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); - } - - const int nqp_face = IntRule->GetNPoints(); - const int vdim = Q.GetVDim(); - const int dof_trial = trial_fe.GetDof(); - const int dof_test = test_fe.GetDof(); - - elmat.SetSize(dof_test * vdim, dof_trial); - elmat = 0.0; - DenseMatrix loc_force(dof_test, vdim); - Vector shape_trial(dof_trial), shape_test(dof_test), - Vloc_force(loc_force.Data(), dof_test * vdim); - Vector qcoeff(vdim); - - for (int q = 0; q < nqp_face; q++) - { - const IntegrationPoint &ip_f = IntRule->IntPoint(q); - Tr.SetAllIntPoints(&ip_f); - const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); - - test_fe.CalcShape(ip_e, shape_test); - trial_fe.CalcShape(ip_e, shape_trial); - Q.Eval(qcoeff, Tr, ip_f); - - MultVWt(shape_test, qcoeff, loc_force); - AddMultVWt(Vloc_force, shape_trial, elmat); - } -} - + void BoundaryMixedForceTIntegrator:: AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, FaceElementTransformations &Tr, DenseMatrix &elmat) @@ -138,44 +61,6 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, } } -void SBM_BoundaryMixedForceTIntegrator:: -AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, - FaceElementTransformations &Tr, DenseMatrix &elmat) -{ - const IntegrationRule *ir = IntRule; - if (ir == nullptr) - { - int order = trial_fe.GetOrder() + test_fe.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); - } - - const int nqp_face = IntRule->GetNPoints(); - const int vdim = Q.GetVDim(); - const int dof_trial = trial_fe.GetDof(); - const int dof_test = test_fe.GetDof(); - - elmat.SetSize(dof_test, dof_trial * vdim); - elmat = 0.0; - DenseMatrix loc_force(dof_trial, vdim); - Vector shape_trial(dof_trial), shape_test(dof_test), - Vloc_force(loc_force.Data(), dof_trial * vdim); - Vector qcoeff(vdim); - - for (int q = 0; q < nqp_face; q++) - { - const IntegrationPoint &ip_f = IntRule->IntPoint(q); - Tr.SetAllIntPoints(&ip_f); - const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); - - test_fe.CalcShape(ip_e, shape_test); - trial_fe.CalcShape(ip_e, shape_trial); - Q.Eval(qcoeff, Tr, ip_f); - - MultVWt(shape_trial, qcoeff, loc_force); - AddMultVWt(shape_test, Vloc_force, elmat); - } -} - void DensityIntegrator::AssembleRHSElementVect(const FiniteElement &fe, ElementTransformation &Tr, Vector &elvect) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 8f0264009..416136504 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -135,42 +135,7 @@ class ForceIntegrator : public BilinearFormIntegrator DenseMatrix &elmat); }; -class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator -{ -protected: - int nf; - -public: - /// The given MatrixCoefficient fully couples the vector components, i.e., - /// the local (dof x vdim) matrices have no zero blocks. - SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc) - : VectorMassIntegrator(mc) { } - - /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 - /// is for the volumetric neighbor of the boundary face, @a el2 is not used. - void AssembleFaceMatrix(const FiniteElement &el1, - const FiniteElement &el2, - FaceElementTransformations &Tr, - DenseMatrix &elmat) override; -}; - -class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator -{ -protected: - VectorCoefficient &Q; - -public: - SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc) : Q(vc) { } - - /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where - /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. - void AssembleFaceMatrix(const FiniteElement &trial_fe, - const FiniteElement &test_fe, - FaceElementTransformations &Tr, - DenseMatrix &elmat) override; -}; - - class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator { protected: VectorCoefficient &Q; @@ -186,22 +151,6 @@ class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator DenseMatrix &elmat) override; }; - class SBM_BoundaryMixedForceTIntegrator : public BilinearFormIntegrator -{ -protected: - VectorCoefficient &Q; - -public: - SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc) : Q(vc) { } - - /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where - /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. - void AssembleFaceMatrix(const FiniteElement &trial_fe, - const FiniteElement &test_fe, - FaceElementTransformations &Tr, - DenseMatrix &elmat) override; -}; - // Performs partial assembly for the force operator. class ForcePAOperator : public Operator { diff --git a/laghos_shift.cpp b/laghos_shift.cpp new file mode 100644 index 000000000..15f2637ec --- /dev/null +++ b/laghos_shift.cpp @@ -0,0 +1,270 @@ +// Copyright (cA) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project (17-SC-20-SC) +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#include "laghos_shift.hpp" +#include "laghos_solver.hpp" + +using namespace std; +namespace mfem +{ + +namespace hydrodynamics +{ + +void shift_shape(const ParFiniteElementSpace &pfes_e_const, + const ParFiniteElementSpace &pfes_p, + int e_id, + const IntegrationPoint &ip, const Vector &dist, + int nterms, Vector &shape_shift) +{ + auto pfes_e = const_cast(&pfes_e_const); + const int NE = pfes_e->GetNE(); + const FiniteElement &el_e = + (e_id < NE) ? *pfes_e->GetFE(e_id) : *pfes_e->GetFaceNbrFE(e_id - NE); + const FiniteElement &el_p = + (e_id < NE) ? *pfes_p.GetFE(e_id) : *pfes_p.GetFaceNbrFE(e_id - NE); + const int dim = pfes_e->GetMesh()->Dimension(), + dof_e = el_e.GetDof(), dof_p = el_p.GetDof(); + + IsoparametricTransformation el_tr; + if (e_id < NE) + { + pfes_e->GetElementTransformation(e_id, &el_tr); + } + else + { + pfes_e->GetParMesh()->GetFaceNbrElementTransformation(e_id - NE, el_tr); + } + DenseMatrix grad_phys; + DenseMatrix Transfer_pe; + el_p.Project(el_e, el_tr, Transfer_pe); + el_p.ProjectGrad(el_p, el_tr, grad_phys); + + Vector s(dim*dof_p), t(dof_p); + for (int j = 0; j < dof_e; j++) + { + // Shape function transformed into the p space. + Vector u_shape_e(dof_e), u_shape_p(dof_p); + u_shape_e = 0.0; + u_shape_e(j) = 1.0; + Transfer_pe.Mult(u_shape_e, u_shape_p); + + t = u_shape_p; + int factorial = 1; + for (int i = 1; i < nterms + 1; i++) + { + factorial = factorial*i; + grad_phys.Mult(t, s); + for (int j = 0; j < dof_p; j++) + { + t(j) = 0.0; + for(int d = 0; d < dim; d++) + { + t(j) = t(j) + s(j + d * dof_p) * dist(d); + } + } + u_shape_p.Add(1.0/double(factorial), t); + } + + el_tr.SetIntPoint(&ip); + el_p.CalcPhysShape(el_tr, t); + shape_shift(j) = t * u_shape_p; + } +} + +void get_shifted_value(const ParGridFunction &g, int e_id, + const IntegrationPoint &ip, const Vector &dist, + int nterms, Vector &shifted_vec) +{ + auto pfes = const_cast(g.ParFESpace()); + const int NE = pfes->GetNE(); + const FiniteElement &el = + (e_id < NE) ? *pfes->GetFE(e_id) : *pfes->GetFaceNbrFE(e_id - NE); + const int dim = pfes->GetMesh()->Dimension(), dof = el.GetDof(); + const int vdim = pfes->GetVDim(); + + IsoparametricTransformation el_tr; + if (e_id < NE) + { + pfes->GetElementTransformation(e_id, &el_tr); + } + else + { + pfes->GetParMesh()->GetFaceNbrElementTransformation(e_id - NE, el_tr); + } + DenseMatrix grad_phys; + el.ProjectGrad(el, el_tr, grad_phys); + + Array vdofs; + Vector u(dof), s(dim*dof), t(dof), g_loc(vdim*dof); + if (e_id < NE) + { + g.FESpace()->GetElementVDofs(e_id, vdofs); + g.GetSubVector(vdofs, g_loc); + } + else + { + g.ParFESpace()->GetFaceNbrElementVDofs(e_id - NE, vdofs); + g.FaceNbrData().GetSubVector(vdofs, g_loc); + } + + for (int c = 0; c < vdim; c++) + { + u.SetDataAndSize(g_loc.GetData() + c*dof, dof); + + t = u; + int factorial = 1; + for (int i = 1; i < nterms + 1; i++) + { + factorial = factorial*i; + grad_phys.Mult(t, s); + for (int j = 0; j < dof; j++) + { + t(j) = 0.0; + for(int d = 0; d < dim; d++) + { + t(j) = t(j) + s(j + d * dof) * dist(d); + } + } + u.Add(1.0/double(factorial), t); + } + + el_tr.SetIntPoint(&ip); + el.CalcPhysShape(el_tr, t); + shifted_vec(c) = t * u; + } +} + + +void SBM_BoundaryVectorMassIntegrator:: +AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = 2 * el1.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int dof = el1.GetDof(); + elmat.SetSize(dof * vdim); + elmat = 0.0; + + mcoeff.SetSize(vdim); + shape.SetSize(dof); + partelmat.SetSize(dof); + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + // Set the integration point in the face and the neighboring elements + Tr.SetAllIntPoints(&ip_f); + + MQ->Eval(mcoeff, Tr, ip_f); + el1.CalcShape(Tr.GetElement1IntPoint(), shape); + MultVVt(shape, partelmat); + + for (int i = 0; i < vdim; i++) + { + for (int j = 0; j < vdim; j++) + { + elmat.AddMatrix(mcoeff(i,j), partelmat, dof*i, dof*j); + } + } + } +} + +void SBM_BoundaryMixedForceIntegrator:: +AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = trial_fe.GetOrder() + test_fe.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int vdim = Q.GetVDim(); + const int dof_trial = trial_fe.GetDof(); + const int dof_test = test_fe.GetDof(); + + elmat.SetSize(dof_test * vdim, dof_trial); + elmat = 0.0; + DenseMatrix loc_force(dof_test, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), + Vloc_force(loc_force.Data(), dof_test * vdim); + Vector qcoeff(vdim); + + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + Tr.SetAllIntPoints(&ip_f); + const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + + test_fe.CalcShape(ip_e, shape_test); + trial_fe.CalcShape(ip_e, shape_trial); + Q.Eval(qcoeff, Tr, ip_f); + + MultVWt(shape_test, qcoeff, loc_force); + AddMultVWt(Vloc_force, shape_trial, elmat); + } +} + + +void SBM_BoundaryMixedForceTIntegrator:: +AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = IntRule; + if (ir == nullptr) + { + int order = trial_fe.GetOrder() + test_fe.GetOrder(); + ir = &IntRules.Get(Tr.GetGeometryType(), order); + } + + const int nqp_face = IntRule->GetNPoints(); + const int vdim = Q.GetVDim(); + const int dof_trial = trial_fe.GetDof(); + const int dof_test = test_fe.GetDof(); + + elmat.SetSize(dof_test, dof_trial * vdim); + elmat = 0.0; + DenseMatrix loc_force(dof_trial, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), + Vloc_force(loc_force.Data(), dof_trial * vdim); + Vector qcoeff(vdim); + + for (int q = 0; q < nqp_face; q++) + { + const IntegrationPoint &ip_f = IntRule->IntPoint(q); + Tr.SetAllIntPoints(&ip_f); + const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + + test_fe.CalcShape(ip_e, shape_test); + trial_fe.CalcShape(ip_e, shape_trial); + Q.Eval(qcoeff, Tr, ip_f); + + MultVWt(shape_trial, qcoeff, loc_force); + AddMultVWt(shape_test, Vloc_force, elmat); + } +} + +} // namespace hydrodynamics + +} // namespace mfem diff --git a/laghos_shift.hpp b/laghos_shift.hpp new file mode 100644 index 000000000..9482ca531 --- /dev/null +++ b/laghos_shift.hpp @@ -0,0 +1,98 @@ +// Copyright (c) 2017, LawrenceA Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#ifndef MFEM_LAGHOS_SHIFT +#define MFEM_LAGHOS_SHIFT + +#include "mfem.hpp" +#include "laghos_assembly.hpp" +#include "AnalyticalSurface.hpp" + +namespace mfem +{ + +namespace hydrodynamics +{ + +void shift_shape(const ParFiniteElementSpace &pfes_e_const, + const ParFiniteElementSpace &pfes_p, + int e_id, + const IntegrationPoint &ip, const Vector &dist, + int nterms, Vector &shape_shift); + +void get_shifted_value(const ParGridFunction &g, int e_id, + const IntegrationPoint &ip, const Vector &dist, + int nterms, Vector &shifted_vec); + + +class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator +{ +protected: + int nf; + +public: + /// The given MatrixCoefficient fully couples the vector components, i.e., + /// the local (dof x vdim) matrices have no zero blocks. + SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc) + : VectorMassIntegrator(mc) { } + + /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 + /// is for the volumetric neighbor of the boundary face, @a el2 is not used. + void AssembleFaceMatrix(const FiniteElement &el1, + const FiniteElement &el2, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + +class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator +{ +protected: + VectorCoefficient &Q; + +public: + SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc) : Q(vc) { } + + /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where + /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. + void AssembleFaceMatrix(const FiniteElement &trial_fe, + const FiniteElement &test_fe, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + + +class SBM_BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +{ +protected: + VectorCoefficient &Q; + +public: + SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc) : Q(vc) { } + + /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where + /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. + void AssembleFaceMatrix(const FiniteElement &trial_fe, + const FiniteElement &test_fe, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + + +} // namespace hydrodynamics + +} // namespace mfem + +#endif // MFEM_LAGHOS_SHIFT diff --git a/laghos_solver.hpp b/laghos_solver.hpp index ea81fde79..32563b74b 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -20,6 +20,7 @@ #include "mfem.hpp" #include "laghos_assembly.hpp" #include "AnalyticalSurface.hpp" +#include "laghos_shift.hpp" #ifdef MFEM_USE_MPI From 237abba979d76b818a9c54f3ec4a448e4380f794 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 14:14:40 -0700 Subject: [PATCH 20/44] prepping --- laghos_solver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laghos_solver.cpp b/laghos_solver.cpp index f9c65d20a..8e1511b69 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -268,7 +268,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); if (analyticalSurface != nullptr) { - auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_mass_coeff); + auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_mass_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); nvmi_sbm->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi_sbm, ess_bdr_sbm); } From c68df27806341b49e06d17afcca0b2b29de5172c Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 14:24:46 -0700 Subject: [PATCH 21/44] missed a spot --- laghos_shift.hpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/laghos_shift.hpp b/laghos_shift.hpp index 9482ca531..d8b846748 100644 --- a/laghos_shift.hpp +++ b/laghos_shift.hpp @@ -41,13 +41,15 @@ void get_shifted_value(const ParGridFunction &g, int e_id, class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator { protected: - int nf; + const ParFiniteElementSpace &H1; + const AnalyticalGeometricShape& geom; + int num_taylor = 1; public: /// The given MatrixCoefficient fully couples the vector components, i.e., /// the local (dof x vdim) matrices have no zero blocks. - SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc) - : VectorMassIntegrator(mc) { } + SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor) + : VectorMassIntegrator(mc), H1(H1), geom(geom), num_taylor(num_taylor) { } /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 /// is for the volumetric neighbor of the boundary face, @a el2 is not used. From 80c9eb391c7eaf79c81a527585fa3fa5af37ad73 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 14:34:20 -0700 Subject: [PATCH 22/44] finished prep for sbm boundary mass --- laghos_shift.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 15f2637ec..6c21ab925 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -175,7 +175,15 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, Tr.SetAllIntPoints(&ip_f); MQ->Eval(mcoeff, Tr, ip_f); - el1.CalcShape(Tr.GetElement1IntPoint(), shape); + const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); + + Vector position; + Tr.Transform(eip1, position); + Vector dist; + Vector true_n; + geom.ComputeDistanceAndNormal(position, dist, true_n); + shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, shape); + MultVVt(shape, partelmat); for (int i = 0; i < vdim; i++) From 4239093d8e22bfd47bee0bb4a5078249a00d4841 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 17:39:50 -0700 Subject: [PATCH 23/44] updated momentum shifted term --- laghos_solver.cpp | 154 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 118 insertions(+), 36 deletions(-) diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 8e1511b69..3b3bc1e62 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -1053,49 +1053,131 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const { auto b_face_tr = pmesh->GetBdrFaceTransformations(be); if (b_face_tr == nullptr) { continue; } + int attr = pmesh->GetBdrAttribute(be); + if (attr != bdr_attr_max) + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + const int z_id = tr_el.ElementNo; - for (int q = 0; q < nqp_be; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - const int z_id = tr_el.ElementNo; - - double en = fmax(0.0, e.GetValue(tr_el)); - double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); - double p = (gamma_gf(z_id) - 1.0) * rho * en; - double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + double en = fmax(0.0, e.GetValue(tr_el)); + double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); + double p = (gamma_gf(z_id) - 1.0) * rho * en; + double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); + + //double penalty_force = wall_bc_penalty * C_I * rho * cs; + double penalty_force = 0.0; + // sign of (sigma n). n + penalty_force = wall_bc_penalty * C_I * pen_scale; - double penalty_force = wall_bc_penalty * C_I * rho * cs; + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); - Vector nor(dim); - CalcOrtho(b_face_tr->Jacobian(), nor); - double nor_norm = sqrt(nor * nor); + Vector tn(nor); + tn /= nor_norm; + + Vector vShape; + v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); + double vDotn = 0.0; + for (int d = 0; d < dim; d++) + { + vDotn += vShape(d) * nor(d) / nor_norm; + } + + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + + for (int d = 0; d < dim; d++) + { + qdata.be_force_data(be, q, d) = + ip_f.weight * nor_norm * + (vDotn * tn(d) * penalty_force - weightedNormalStress(d)); + } + } + } + else + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + const int z_id = tr_el.ElementNo; - Vector tn(nor); - tn /= nor_norm; + double en = fmax(0.0, e.GetValue(tr_el)); + double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); + double p = (gamma_gf(z_id) - 1.0) * rho * en; + double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); - Vector vShape; - v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); - double vDotn = 0.0; - for (int d = 0; d < dim; d++) - { - vDotn += vShape(d) * nor(d) / nor_norm; - } + //double penalty_force = wall_bc_penalty * C_I * rho * cs; + + double penalty_force = 0.0; + // sign of (sigma n). n + penalty_force = wall_bc_penalty * C_I * pen_scale; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); - DenseMatrix stress(dim); - stress = 0.0; - for (int d = 0; d < dim; d++) { stress(d, d) = - p; } - Vector weightedNormalStress(dim); - stress.Mult(tn, weightedNormalStress); + Vector tn(nor); + tn /= nor_norm; - for (int d = 0; d < dim; d++) - { - qdata.be_force_data(be, q, d) = - ip_f.weight * nor_norm * - (vDotn * tn(d) * penalty_force - weightedNormalStress(d)); - } - } + /* Shifted */ + const IntegrationPoint &eip1 = b_face_tr->GetElement1IntPoint(); + Vector position; + tr_el.Transform(eip1, position); + Vector dist; + Vector true_n; + analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); + true_n = tn; + + double ndotNtilda = true_n * tn; + + Vector vShape(dim); + vShape = 0.0; + //get_shifted_value(v, z_id, eip1, dist, H1.GetElementOrder(0), vShape); + get_shifted_value(v, z_id, eip1, dist, 0, vShape); + + double vDotn = vShape * true_n; + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + // (sigma ntilda).n + double sigmaNDotTrueN = weightedNormalStress * true_n; + + /* Vector vShape; + v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); + double vDotn = 0.0; + for (int d = 0; d < dim; d++) + { + vDotn += vShape(d) * nor(d) / nor_norm; + } + + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + */ + for (int d = 0; d < dim; d++) + { + qdata.be_force_data(be, q, d) = + ip_f.weight * nor_norm * + (vDotn * true_n(d) * penalty_force * std::pow(ndotNtilda, 1.0) - weightedNormalStress(d)); + } + } + } } } From 5647ca2619f96b91e478f98e856213c3bf9d9757 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 17:54:29 -0700 Subject: [PATCH 24/44] setting up energy coefficients --- laghos_assembly.hpp | 22 ++++++++++++++++++++++ laghos_solver.cpp | 14 ++++++-------- laghos_solver.hpp | 1 + 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 416136504..9d99f7e99 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -44,6 +44,8 @@ struct QuadratureData DenseTensor be_force_data; // Quadrature data for the boundary mass matrix; DenseTensor be_mass_data; + // Quadrature data for the boundary energy force; + DenseTensor fe_force_data; // Quadrature data used for full/partial assembly of the mass matrices. // At time zero, we compute and store (rho0 * det(J0) * qp_weight) at each @@ -65,6 +67,7 @@ struct QuadratureData : Jac0inv(dim, dim, NE * quads_per_el), stressJinvT(NE * quads_per_el, dim, dim), be_force_data(NBE, quads_per_be, dim), + fe_force_data(NBE, quads_per_be, dim), be_mass_data(dim, dim, NBE * quads_per_be), rho0DetJ0w(NE * quads_per_el), rho0DetJ0_be(NBE * quads_per_be) { } @@ -89,6 +92,25 @@ class BdrForceCoefficient : public VectorCoefficient } }; + class BdrEnergyForceCoefficient : public VectorCoefficient +{ +private: + const QuadratureData &qdata; + +public: + BdrEnergyForceCoefficient(const QuadratureData &qd) + : VectorCoefficient(qd.Jac0inv.SizeI()), qdata(qd) { } + + void Eval(Vector &V, ElementTransformation &Tr_f, + const IntegrationPoint &ip_f) override + { + for (int d = 0; d < vdim; d++) + { + V(d) = qdata.fe_force_data(Tr_f.ElementNo, ip_f.index, d); + } + } +}; + class BdrMassCoefficient : public MatrixCoefficient { private: diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 3b3bc1e62..a62b38d65 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -140,7 +140,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1 )), Q1D(int(floor(0.7 + pow(ir.GetNPoints(), 1.0 / dim)))), qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), - bdr_force_coeff(qdata), bdr_mass_coeff(qdata), + bdr_force_coeff(qdata), bdr_mass_coeff(qdata), bdr_en_force_coeff(qdata), qdata_is_current(false), forcemat_is_assembled(false), Force(&L2, &H1), Force_be(&L2, &H1), Force_be_T(&H1, &L2), @@ -377,7 +377,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_coeff); vpb_sbm->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); - auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_force_coeff); + auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_en_force_coeff); vpb_sbm_T->SetIntRule(&b_ir); Force_be_T.AddBdrFaceIntegrator(vpb_sbm_T, ess_bdr_sbm); } @@ -1163,18 +1163,16 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const { vDotn += vShape(d) * nor(d) / nor_norm; } - - DenseMatrix stress(dim); - stress = 0.0; - for (int d = 0; d < dim; d++) { stress(d, d) = - p; } - Vector weightedNormalStress(dim); - stress.Mult(tn, weightedNormalStress); */ for (int d = 0; d < dim; d++) { qdata.be_force_data(be, q, d) = ip_f.weight * nor_norm * (vDotn * true_n(d) * penalty_force * std::pow(ndotNtilda, 1.0) - weightedNormalStress(d)); + qdata.fe_force_data(be, q, d) = + ip_f.weight * nor_norm * + (vDotn * true_n(d) * penalty_force * std::pow(ndotNtilda, 1.0) - weightedNormalStress(d)); + } } } diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 32563b74b..83e11fbed 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -140,6 +140,7 @@ class LagrangianHydroOperator : public TimeDependentOperator const int Q1D; mutable QuadratureData qdata; BdrForceCoefficient bdr_force_coeff; + BdrEnergyForceCoefficient bdr_en_force_coeff; BdrMassCoefficient bdr_mass_coeff; mutable bool qdata_is_current, forcemat_is_assembled; From 39f6cbed1fdb8df9ceac3c0e38e6394f49030f09 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 20:59:46 -0700 Subject: [PATCH 25/44] setup the energy, mostly --- laghos_assembly.hpp | 34 ++++++++++++++++++++++++++++------ laghos_shift.cpp | 12 +++++++----- laghos_shift.hpp | 8 ++++++-- laghos_solver.cpp | 15 ++++++++------- laghos_solver.hpp | 3 ++- 5 files changed, 51 insertions(+), 21 deletions(-) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 9d99f7e99..e59cc6817 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -44,8 +44,10 @@ struct QuadratureData DenseTensor be_force_data; // Quadrature data for the boundary mass matrix; DenseTensor be_mass_data; - // Quadrature data for the boundary energy force; - DenseTensor fe_force_data; + // Quadrature data for the boundary energy force: integration by part; + DenseTensor fe_force_data_ibp; + // Quadrature data for the boundary energy force: penalty term; + DenseTensor fe_force_data_pen; // Quadrature data used for full/partial assembly of the mass matrices. // At time zero, we compute and store (rho0 * det(J0) * qp_weight) at each @@ -67,7 +69,8 @@ struct QuadratureData : Jac0inv(dim, dim, NE * quads_per_el), stressJinvT(NE * quads_per_el, dim, dim), be_force_data(NBE, quads_per_be, dim), - fe_force_data(NBE, quads_per_be, dim), + fe_force_data_ibp(NBE, quads_per_be, dim), + fe_force_data_pen(NBE, quads_per_be, dim), be_mass_data(dim, dim, NBE * quads_per_be), rho0DetJ0w(NE * quads_per_el), rho0DetJ0_be(NBE * quads_per_be) { } @@ -92,13 +95,13 @@ class BdrForceCoefficient : public VectorCoefficient } }; - class BdrEnergyForceCoefficient : public VectorCoefficient + class BdrEnergyForceCoefficientIBP : public VectorCoefficient { private: const QuadratureData &qdata; public: - BdrEnergyForceCoefficient(const QuadratureData &qd) + BdrEnergyForceCoefficientIBP(const QuadratureData &qd) : VectorCoefficient(qd.Jac0inv.SizeI()), qdata(qd) { } void Eval(Vector &V, ElementTransformation &Tr_f, @@ -106,7 +109,26 @@ class BdrForceCoefficient : public VectorCoefficient { for (int d = 0; d < vdim; d++) { - V(d) = qdata.fe_force_data(Tr_f.ElementNo, ip_f.index, d); + V(d) = qdata.fe_force_data_ibp(Tr_f.ElementNo, ip_f.index, d); + } + } +}; + + class BdrEnergyForceCoefficientPen : public VectorCoefficient +{ +private: + const QuadratureData &qdata; + +public: + BdrEnergyForceCoefficientPen(const QuadratureData &qd) + : VectorCoefficient(qd.Jac0inv.SizeI()), qdata(qd) { } + + void Eval(Vector &V, ElementTransformation &Tr_f, + const IntegrationPoint &ip_f) override + { + for (int d = 0; d < vdim; d++) + { + V(d) = qdata.fe_force_data_pen(Tr_f.ElementNo, ip_f.index, d); } } }; diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 6c21ab925..beeb9c5cd 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -247,7 +247,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, } const int nqp_face = IntRule->GetNPoints(); - const int vdim = Q.GetVDim(); + const int vdim = Q_ibp.GetVDim(); const int dof_trial = trial_fe.GetDof(); const int dof_test = test_fe.GetDof(); @@ -256,7 +256,8 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, DenseMatrix loc_force(dof_trial, vdim); Vector shape_trial(dof_trial), shape_test(dof_test), Vloc_force(loc_force.Data(), dof_trial * vdim); - Vector qcoeff(vdim); + Vector qcoeff_ibp(vdim); + Vector qcoeff_pen(vdim); for (int q = 0; q < nqp_face; q++) { @@ -266,9 +267,10 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, test_fe.CalcShape(ip_e, shape_test); trial_fe.CalcShape(ip_e, shape_trial); - Q.Eval(qcoeff, Tr, ip_f); - - MultVWt(shape_trial, qcoeff, loc_force); + Q_ibp.Eval(qcoeff_ibp, Tr, ip_f); + Q_pen.Eval(qcoeff_pen, Tr, ip_f); + qcoeff_ibp += qcoeff_pen; + MultVWt(shape_trial, qcoeff_ibp, loc_force); AddMultVWt(shape_test, Vloc_force, elmat); } } diff --git a/laghos_shift.hpp b/laghos_shift.hpp index d8b846748..27efdd6b3 100644 --- a/laghos_shift.hpp +++ b/laghos_shift.hpp @@ -79,10 +79,14 @@ class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator class SBM_BoundaryMixedForceTIntegrator : public BilinearFormIntegrator { protected: - VectorCoefficient &Q; + VectorCoefficient &Q_ibp; + VectorCoefficient &Q_pen; + const ParFiniteElementSpace &H1; + const AnalyticalGeometricShape& geom; + int num_taylor = 1; public: - SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc) : Q(vc) { } + SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc_ibp, VectorCoefficient &vc_pen, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor) : Q_ibp(vc_ibp), Q_pen(vc_pen), H1(H1), geom(geom), num_taylor(num_taylor) { } /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index a62b38d65..d19432d9c 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -140,7 +140,8 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1 )), Q1D(int(floor(0.7 + pow(ir.GetNPoints(), 1.0 / dim)))), qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), - bdr_force_coeff(qdata), bdr_mass_coeff(qdata), bdr_en_force_coeff(qdata), + bdr_force_coeff(qdata), bdr_mass_coeff(qdata), + bdr_en_ibp_force_coeff(qdata), bdr_en_pen_force_coeff(qdata), qdata_is_current(false), forcemat_is_assembled(false), Force(&L2, &H1), Force_be(&L2, &H1), Force_be_T(&H1, &L2), @@ -377,7 +378,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_coeff); vpb_sbm->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); - auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_en_force_coeff); + auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_en_ibp_force_coeff, bdr_en_pen_force_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); vpb_sbm_T->SetIntRule(&b_ir); Force_be_T.AddBdrFaceIntegrator(vpb_sbm_T, ess_bdr_sbm); } @@ -1168,11 +1169,11 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const { qdata.be_force_data(be, q, d) = ip_f.weight * nor_norm * - (vDotn * true_n(d) * penalty_force * std::pow(ndotNtilda, 1.0) - weightedNormalStress(d)); - qdata.fe_force_data(be, q, d) = - ip_f.weight * nor_norm * - (vDotn * true_n(d) * penalty_force * std::pow(ndotNtilda, 1.0) - weightedNormalStress(d)); - + (vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda) - weightedNormalStress(d)); + qdata.fe_force_data_ibp(be, q, d) = + - ip_f.weight * nor_norm * sigmaNDotTrueN * true_n(d); + qdata.fe_force_data_pen(be, q, d) = + ip_f.weight * nor_norm * vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda); } } } diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 83e11fbed..c44b7387e 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -140,7 +140,8 @@ class LagrangianHydroOperator : public TimeDependentOperator const int Q1D; mutable QuadratureData qdata; BdrForceCoefficient bdr_force_coeff; - BdrEnergyForceCoefficient bdr_en_force_coeff; + BdrEnergyForceCoefficientIBP bdr_en_ibp_force_coeff; + BdrEnergyForceCoefficientPen bdr_en_pen_force_coeff; BdrMassCoefficient bdr_mass_coeff; mutable bool qdata_is_current, forcemat_is_assembled; From 111b210302f7290f9cf407ee106b96a304207fab Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 22:15:46 -0700 Subject: [PATCH 26/44] ready to test --- laghos_shift.cpp | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index beeb9c5cd..c36d9603c 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -253,25 +253,39 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, elmat.SetSize(dof_test, dof_trial * vdim); elmat = 0.0; - DenseMatrix loc_force(dof_trial, vdim); - Vector shape_trial(dof_trial), shape_test(dof_test), - Vloc_force(loc_force.Data(), dof_trial * vdim); + DenseMatrix loc_force_ibp(dof_trial, vdim); + DenseMatrix loc_force_pen(dof_trial, vdim); + + Vector shape_trial(dof_trial), sbm_shape_trial(dof_trial), shape_test(dof_test), + Vloc_force_ibp(loc_force_ibp.Data(), dof_trial * vdim), + Vloc_force_pen(loc_force_pen.Data(), dof_trial * vdim); + Vector qcoeff_ibp(vdim); Vector qcoeff_pen(vdim); - + for (int q = 0; q < nqp_face; q++) { const IntegrationPoint &ip_f = IntRule->IntPoint(q); Tr.SetAllIntPoints(&ip_f); - const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); - - test_fe.CalcShape(ip_e, shape_test); - trial_fe.CalcShape(ip_e, shape_trial); Q_ibp.Eval(qcoeff_ibp, Tr, ip_f); Q_pen.Eval(qcoeff_pen, Tr, ip_f); - qcoeff_ibp += qcoeff_pen; - MultVWt(shape_trial, qcoeff_ibp, loc_force); - AddMultVWt(shape_test, Vloc_force, elmat); + const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); + + Vector position; + Tr.Transform(eip1, position); + Vector dist; + Vector true_n; + geom.ComputeDistanceAndNormal(position, dist, true_n); + shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, shape_trial); + shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, sbm_shape_trial); + + test_fe.CalcShape(eip1, shape_test); + + MultVWt(sbm_shape_trial, qcoeff_ibp, loc_force_ibp); + MultVWt(shape_trial, qcoeff_pen, loc_force_pen); + + loc_force_ibp += loc_force_pen; + AddMultVWt(shape_test, Vloc_force_ibp, elmat); } } From bab99787f90f80caa980255d5d33aff233731f5a Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 5 Jul 2025 23:41:34 -0700 Subject: [PATCH 27/44] full flexibility --- laghos_assembly.hpp | 52 +++++++++++++++++++++++++++++++++++++++++---- laghos_shift.cpp | 37 +++++++++++++++++++++++--------- laghos_shift.hpp | 8 +++++-- laghos_solver.cpp | 19 ++++++----------- laghos_solver.hpp | 2 ++ 5 files changed, 90 insertions(+), 28 deletions(-) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index e59cc6817..287ba7a82 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -40,8 +40,12 @@ struct QuadratureData // It must be recomputed in every time step. DenseTensor stressJinvT; - // Quadrature data for the boundary force; + // Quadrature data for the boundary force: integration by part; DenseTensor be_force_data; + // Quadrature data for the boundary force: integration by part; + DenseTensor be_force_data_ibp; + // Quadrature data for the boundary force: penalty term; + DenseTensor be_force_data_pen; // Quadrature data for the boundary mass matrix; DenseTensor be_mass_data; // Quadrature data for the boundary energy force: integration by part; @@ -68,7 +72,9 @@ struct QuadratureData QuadratureData(int dim, int NE, int quads_per_el, int NBE, int quads_per_be) : Jac0inv(dim, dim, NE * quads_per_el), stressJinvT(NE * quads_per_el, dim, dim), - be_force_data(NBE, quads_per_be, dim), + be_force_data(NBE, quads_per_be, dim), + be_force_data_ibp(NBE, quads_per_be, dim), + be_force_data_pen(NBE, quads_per_be, dim), fe_force_data_ibp(NBE, quads_per_be, dim), fe_force_data_pen(NBE, quads_per_be, dim), be_mass_data(dim, dim, NBE * quads_per_be), @@ -95,7 +101,45 @@ class BdrForceCoefficient : public VectorCoefficient } }; - class BdrEnergyForceCoefficientIBP : public VectorCoefficient +class BdrForceCoefficientIBP : public VectorCoefficient +{ +private: + const QuadratureData &qdata; + +public: + BdrForceCoefficientIBP(const QuadratureData &qd) + : VectorCoefficient(qd.Jac0inv.SizeI()), qdata(qd) { } + + void Eval(Vector &V, ElementTransformation &Tr_f, + const IntegrationPoint &ip_f) override + { + for (int d = 0; d < vdim; d++) + { + V(d) = qdata.be_force_data_ibp(Tr_f.ElementNo, ip_f.index, d); + } + } +}; + +class BdrForceCoefficientPen : public VectorCoefficient +{ +private: + const QuadratureData &qdata; + +public: + BdrForceCoefficientPen(const QuadratureData &qd) + : VectorCoefficient(qd.Jac0inv.SizeI()), qdata(qd) { } + + void Eval(Vector &V, ElementTransformation &Tr_f, + const IntegrationPoint &ip_f) override + { + for (int d = 0; d < vdim; d++) + { + V(d) = qdata.be_force_data_pen(Tr_f.ElementNo, ip_f.index, d); + } + } +}; + +class BdrEnergyForceCoefficientIBP : public VectorCoefficient { private: const QuadratureData &qdata; @@ -114,7 +158,7 @@ class BdrForceCoefficient : public VectorCoefficient } }; - class BdrEnergyForceCoefficientPen : public VectorCoefficient +class BdrEnergyForceCoefficientPen : public VectorCoefficient { private: const QuadratureData &qdata; diff --git a/laghos_shift.cpp b/laghos_shift.cpp index c36d9603c..5319f161c 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -208,29 +208,46 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, } const int nqp_face = IntRule->GetNPoints(); - const int vdim = Q.GetVDim(); + const int vdim = Q_ibp.GetVDim(); const int dof_trial = trial_fe.GetDof(); const int dof_test = test_fe.GetDof(); elmat.SetSize(dof_test * vdim, dof_trial); elmat = 0.0; - DenseMatrix loc_force(dof_test, vdim); + DenseMatrix loc_force_ibp(dof_test, vdim); + DenseMatrix loc_force_pen(dof_test, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), - Vloc_force(loc_force.Data(), dof_test * vdim); - Vector qcoeff(vdim); + sbm_shape_test(dof_test), + Vloc_force_ibp(loc_force_ibp.Data(), dof_test * vdim), + Vloc_force_pen(loc_force_pen.Data(), dof_test * vdim); + + Vector qcoeff_ibp(vdim); + Vector qcoeff_pen(vdim); for (int q = 0; q < nqp_face; q++) { const IntegrationPoint &ip_f = IntRule->IntPoint(q); Tr.SetAllIntPoints(&ip_f); - const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + Q_ibp.Eval(qcoeff_ibp, Tr, ip_f); + Q_pen.Eval(qcoeff_pen, Tr, ip_f); + const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); - test_fe.CalcShape(ip_e, shape_test); - trial_fe.CalcShape(ip_e, shape_trial); - Q.Eval(qcoeff, Tr, ip_f); + Vector position; + Tr.Transform(eip1, position); + Vector dist; + Vector true_n; + geom.ComputeDistanceAndNormal(position, dist, true_n); + shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, shape_test); + shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, sbm_shape_test); - MultVWt(shape_test, qcoeff, loc_force); - AddMultVWt(Vloc_force, shape_trial, elmat); + trial_fe.CalcShape(eip1, shape_trial); + + MultVWt(sbm_shape_test, qcoeff_ibp, loc_force_ibp); + MultVWt(shape_test, qcoeff_pen, loc_force_pen); + + loc_force_ibp += loc_force_pen; + AddMultVWt(Vloc_force_ibp, shape_trial, elmat); } } diff --git a/laghos_shift.hpp b/laghos_shift.hpp index 27efdd6b3..7fd272378 100644 --- a/laghos_shift.hpp +++ b/laghos_shift.hpp @@ -62,10 +62,14 @@ class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator { protected: - VectorCoefficient &Q; + VectorCoefficient &Q_ibp; + VectorCoefficient &Q_pen; + const ParFiniteElementSpace &H1; + const AnalyticalGeometricShape& geom; + int num_taylor = 1; public: - SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc) : Q(vc) { } + SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc_ibp, VectorCoefficient &vc_pen, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor) : Q_ibp(vc_ibp), Q_pen(vc_pen), H1(H1), geom(geom), num_taylor(num_taylor) { } /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index d19432d9c..ca0779736 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -140,7 +140,8 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1 )), Q1D(int(floor(0.7 + pow(ir.GetNPoints(), 1.0 / dim)))), qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), - bdr_force_coeff(qdata), bdr_mass_coeff(qdata), + bdr_force_coeff(qdata), bdr_force_ibp_coeff(qdata), bdr_force_pen_coeff(qdata), + bdr_mass_coeff(qdata), bdr_en_ibp_force_coeff(qdata), bdr_en_pen_force_coeff(qdata), qdata_is_current(false), forcemat_is_assembled(false), @@ -375,7 +376,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, // Make a dummy assembly to figure out the sparsity. if (analyticalSurface != nullptr) { - auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_coeff); + auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_ibp_coeff, bdr_force_pen_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); vpb_sbm->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_en_ibp_force_coeff, bdr_en_pen_force_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); @@ -1157,19 +1158,13 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const // (sigma ntilda).n double sigmaNDotTrueN = weightedNormalStress * true_n; - /* Vector vShape; - v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); - double vDotn = 0.0; for (int d = 0; d < dim; d++) { - vDotn += vShape(d) * nor(d) / nor_norm; - } - */ - for (int d = 0; d < dim; d++) - { - qdata.be_force_data(be, q, d) = + qdata.be_force_data_ibp(be, q, d) = + -ip_f.weight * nor_norm * weightedNormalStress(d); + qdata.be_force_data_pen(be, q, d) = ip_f.weight * nor_norm * - (vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda) - weightedNormalStress(d)); + vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda); qdata.fe_force_data_ibp(be, q, d) = - ip_f.weight * nor_norm * sigmaNDotTrueN * true_n(d); qdata.fe_force_data_pen(be, q, d) = diff --git a/laghos_solver.hpp b/laghos_solver.hpp index c44b7387e..065268f7f 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -140,6 +140,8 @@ class LagrangianHydroOperator : public TimeDependentOperator const int Q1D; mutable QuadratureData qdata; BdrForceCoefficient bdr_force_coeff; + BdrForceCoefficientIBP bdr_force_ibp_coeff; + BdrForceCoefficientPen bdr_force_pen_coeff; BdrEnergyForceCoefficientIBP bdr_en_ibp_force_coeff; BdrEnergyForceCoefficientPen bdr_en_pen_force_coeff; BdrMassCoefficient bdr_mass_coeff; From a77394e935df0745eaca9bc31ffd2470a2dab84e Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 6 Jul 2025 23:31:06 -0700 Subject: [PATCH 28/44] minor --- laghos_shift.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 5319f161c..d8285f050 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -243,8 +243,8 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, trial_fe.CalcShape(eip1, shape_trial); - MultVWt(sbm_shape_test, qcoeff_ibp, loc_force_ibp); - MultVWt(shape_test, qcoeff_pen, loc_force_pen); + MultVWt(shape_test, qcoeff_ibp, loc_force_ibp); + MultVWt(sbm_shape_test, qcoeff_pen, loc_force_pen); loc_force_ibp += loc_force_pen; AddMultVWt(Vloc_force_ibp, shape_trial, elmat); From 4dbf3d1c70580ebbb1128981fc728ad6ee4f2d57 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Tue, 15 Jul 2025 20:15:38 -0700 Subject: [PATCH 29/44] fixed bug in taylor expansion --- laghos_shift.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index d8285f050..fe37014c5 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -177,12 +177,13 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, MQ->Eval(mcoeff, Tr, ip_f); const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); + ElementTransformation& Trans_el1 = Tr.GetElement1Transformation(); Vector position; - Tr.Transform(eip1, position); + Trans_el1.Transform(eip1, position); Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, shape); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), shape); MultVVt(shape, partelmat); @@ -233,13 +234,14 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, Q_pen.Eval(qcoeff_pen, Tr, ip_f); const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); + ElementTransformation& Trans_el1 = Tr.GetElement1Transformation(); Vector position; - Tr.Transform(eip1, position); + Trans_el1.Transform(eip1, position); Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, shape_test); - shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, sbm_shape_test); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape_test); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), sbm_shape_test); trial_fe.CalcShape(eip1, shape_trial); @@ -288,13 +290,14 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, Q_pen.Eval(qcoeff_pen, Tr, ip_f); const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); + ElementTransformation& Trans_el1 = Tr.GetElement1Transformation(); Vector position; - Tr.Transform(eip1, position); + Trans_el1.Transform(eip1, position); Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, shape_trial); - shift_shape(H1, H1, Tr.ElementNo, eip1, dist, 0, sbm_shape_trial); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), shape_trial); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), sbm_shape_trial); test_fe.CalcShape(eip1, shape_test); From 1939457bb17c811ef86284b817c2d7db7b282d74 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Tue, 15 Jul 2025 20:36:30 -0700 Subject: [PATCH 30/44] back to shifted = 0 --- laghos_shift.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index fe37014c5..971840383 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -183,7 +183,7 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), shape); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape); MultVVt(shape, partelmat); @@ -241,7 +241,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape_test); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), sbm_shape_test); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, sbm_shape_test); trial_fe.CalcShape(eip1, shape_trial); @@ -296,8 +296,8 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), shape_trial); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), sbm_shape_trial); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape_trial); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, sbm_shape_trial); test_fe.CalcShape(eip1, shape_test); From 4060c7efa17dbd686a632ca8471bbd2811206c0b Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Tue, 15 Jul 2025 21:01:00 -0700 Subject: [PATCH 31/44] added update massmatrix, but need to check for bug --- laghos.cpp | 2 ++ laghos_solver.cpp | 21 +++++++++++++++++++++ laghos_solver.hpp | 3 ++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/laghos.cpp b/laghos.cpp index b199c2b55..ce051a740 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -824,6 +824,8 @@ int main(int argc, char *argv[]) // and the oper object might have redirected the mesh positions to those. pmesh_cond.NewNodes(x_gf, false); + //hydro.UpdateMassMatrices(rho0_coeff); + if (last_step || (ti % vis_steps) == 0) { double lnorm = e_gf * e_gf, norm; diff --git a/laghos_solver.cpp b/laghos_solver.cpp index ca0779736..bb314663e 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -1256,6 +1256,27 @@ void LagrangianHydroOperator::UpdateBdrQuadratureData() const } } +void LagrangianHydroOperator::UpdateMassMatrices(Coefficient &rho_coeff) +{ + // Assumption is Mv was connected to the same Coefficient from the input. + Mv.Update(); + Mv.BilinearForm::operator=(0.0); + Mv.Assemble(); + Mv_spmat_copy = Mv.SpMat(); + + MassIntegrator mi(rho_coeff, &ir); + for (int e = 0; e < NE; e++) + { + const FiniteElement &fe = *L2.GetFE(e); + ElementTransformation &Tr = *L2.GetElementTransformation(e); + const int attr = pmesh->GetAttribute(e); + mi.AssembleElementMatrix(fe, Tr, Me(e)); + DenseMatrixInverse inv(&Me(e)); + inv.Factor(); + inv.GetInverseMatrix(Me_inv(e)); + } +} + /// Trace of a square matrix template MFEM_HOST_DEVICE inline diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 065268f7f..69183fa20 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -210,7 +210,8 @@ class LagrangianHydroOperator : public TimeDependentOperator void SolveVelocity(const Vector &S, Vector &dS_dt) const; void SolveEnergy(const Vector &S, const Vector &v, Vector &dS_dt) const; void UpdateMesh(const Vector &S) const; - + void UpdateMassMatrices(Coefficient &rho_coeff); + // Calls UpdateQuadratureData to compute the new qdata.dt_estimate. double GetTimeStepEstimate(const Vector &S) const; void ResetTimeStepEstimate() const; From bfe37714205e170fdb49a624aff1c14ffccaddcc Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 19 Jul 2025 19:02:02 -0700 Subject: [PATCH 32/44] minor --- laghos.cpp | 4 ++++ laghos_solver.cpp | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/laghos.cpp b/laghos.cpp index ce051a740..e1d166f5d 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -352,6 +352,10 @@ int main(int argc, char *argv[]) } } } + else + { + cond_attr.Append(1); + } // Parallel partitioning of the mesh. ParMesh *pmesh = nullptr; diff --git a/laghos_solver.cpp b/laghos_solver.cpp index bb314663e..65d39a3a1 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -1234,7 +1234,6 @@ void LagrangianHydroOperator::UpdateBdrQuadratureData() const tn /= nor_norm; const IntegrationPoint &ip_e1 = b_face_tr->GetElement1IntPoint(); Vector position; - tr_el.SetIntPoint(&ip_e1); tr_el.Transform(ip_e1, position); Vector dist; Vector true_n; From 0cef0e1b5d8da7666eeb1f4e522e3fc15d1605e1 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sat, 19 Jul 2025 20:08:07 -0700 Subject: [PATCH 33/44] removed unnecessary tagging --- laghos.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/laghos.cpp b/laghos.cpp index e1d166f5d..bf91783be 100644 --- a/laghos.cpp +++ b/laghos.cpp @@ -297,7 +297,6 @@ int main(int argc, char *argv[]) } } dim = mesh->Dimension(); - // 1D vs partial assembly sanity check. if (p_assembly && dim == 1) { @@ -493,7 +492,7 @@ int main(int argc, char *argv[]) ParSubMesh pmesh_cond(ParSubMesh::CreateFromDomain(*pmesh, cond_attr)); - double volume0 = pmesh_cond.GetElementVolume(0); + /*double volume0 = pmesh_cond.GetElementVolume(0); double h0; switch (pmesh->GetElementBaseGeometry(0)) { @@ -532,7 +531,7 @@ int main(int argc, char *argv[]) } } pmesh_cond.SetAttributes(); - + */ int NE = pmesh_cond.GetNE(), ne_min, ne_max; MPI_Reduce(&NE, &ne_min, 1, MPI_INT, MPI_MIN, 0, pmesh_cond.GetComm()); MPI_Reduce(&NE, &ne_max, 1, MPI_INT, MPI_MAX, 0, pmesh_cond.GetComm()); From 3810414fb20c93158c714638aab0dd3bbe9f9a67 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 00:20:04 -0700 Subject: [PATCH 34/44] own mass integrators --- laghos_assembly.hpp | 21 +++++++- laghos_solver.cpp | 120 ++++++++++++++++++++++---------------------- laghos_solver.hpp | 4 +- 3 files changed, 84 insertions(+), 61 deletions(-) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 287ba7a82..3d1b2aec6 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -69,6 +69,8 @@ struct QuadratureData // recomputed at every time step to achieve adaptive time stepping. double dt_est; + int quads_per_el; + QuadratureData(int dim, int NE, int quads_per_el, int NBE, int quads_per_be) : Jac0inv(dim, dim, NE * quads_per_el), stressJinvT(NE * quads_per_el, dim, dim), @@ -79,7 +81,8 @@ struct QuadratureData fe_force_data_pen(NBE, quads_per_be, dim), be_mass_data(dim, dim, NBE * quads_per_be), rho0DetJ0w(NE * quads_per_el), - rho0DetJ0_be(NBE * quads_per_be) { } + rho0DetJ0_be(NBE * quads_per_be), + quads_per_el(quads_per_el){ } }; class BdrForceCoefficient : public VectorCoefficient @@ -194,6 +197,22 @@ class BdrMassCoefficient : public MatrixCoefficient K.Set(1.0, qdata.be_mass_data(Tr_f.ElementNo * nqp_per_face + ip.index)); } }; + +class InteriorMassCoefficient : public Coefficient +{ +private: + const QuadratureData &qdata; + +public: + InteriorMassCoefficient(const QuadratureData &qd) + : qdata(qd) { } + + real_t Eval(ElementTransformation &Tr_f, const IntegrationPoint &ip) override + { + return qdata.rho0DetJ0w(Tr_f.ElementNo * qdata.quads_per_el + ip.index); + } +}; + // This class is used only for visualization. It assembles (rho, phi) in each // zone, which is used by LagrangianHydroOperator::ComputeDensity to do an L2 // projection of the density. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 65d39a3a1..a16487e41 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -142,6 +142,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), bdr_force_coeff(qdata), bdr_force_ibp_coeff(qdata), bdr_force_pen_coeff(qdata), bdr_mass_coeff(qdata), + mass_coeff(qdata), bdr_en_ibp_force_coeff(qdata), bdr_en_pen_force_coeff(qdata), qdata_is_current(false), forcemat_is_assembled(false), @@ -212,6 +213,62 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, MPI_Allreduce(MPI_IN_PLACE, &rho0_max, 1, MPI_DOUBLE, MPI_MAX, pmesh->GetComm()); + // Values of rho0DetJ0 and Jac0inv at all quadrature points. + // Initial local mesh size (assumes all mesh elements are the same). + int Ne, ne = NE; + double Volume, vol = 0.0; + if (dim > 1 && p_assembly) + { + Rho0DetJ0Vol(dim, NE, ir, pmesh, L2, rho0_gf, qdata, vol); + } + else + { + const int NQ = ir.GetNPoints(); + Vector rho_vals(NQ); + for (int e = 0; e < NE; e++) + { + rho0_gf.GetValues(e, ir, rho_vals); + ElementTransformation &Tr = *H1.GetElementTransformation(e); + for (int q = 0; q < NQ; q++) + { + const IntegrationPoint &ip = ir.IntPoint(q); + Tr.SetIntPoint(&ip); + DenseMatrixInverse Jinv(Tr.Jacobian()); + Jinv.GetInverseMatrix(qdata.Jac0inv(e*NQ + q)); + const double rho0DetJ0 = Tr.Weight() * rho_vals(q); + qdata.rho0DetJ0w(e*NQ + q) = rho0DetJ0 * ir.IntPoint(q).weight; + } + } + for (int e = 0; e < NE; e++) { vol += pmesh->GetElementVolume(e); } + + for (int be = 0; be < NBE; be++) + { + int b_nqp = b_ir.GetNPoints(); + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + for (int q = 0; q < b_nqp; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + qdata.rho0DetJ0_be(be * b_nqp + q) = + tr_el.Weight() * rho0_gf.GetValue(tr_el); + } + } + } + MPI_Allreduce(&vol, &Volume, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); + MPI_Allreduce(&ne, &Ne, 1, MPI_INT, MPI_SUM, pmesh->GetComm()); + switch (pmesh->GetElementBaseGeometry(0)) + { + case Geometry::SEGMENT: qdata.h0 = Volume / Ne; break; + case Geometry::SQUARE: qdata.h0 = sqrt(Volume / Ne); break; + case Geometry::TRIANGLE: qdata.h0 = sqrt(2.0 * Volume / Ne); break; + case Geometry::CUBE: qdata.h0 = pow(Volume / Ne, 1./3.); break; + case Geometry::TETRAHEDRON: qdata.h0 = pow(6.0 * Volume / Ne, 1./3.); break; + default: MFEM_ABORT("Unknown zone type!"); + } + qdata.h0 /= (double) H1.GetOrder(0); + UpdateBdrQuadratureData(); if (p_assembly) @@ -258,7 +315,8 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, inv.GetInverseMatrix(Me_inv(e)); } // Standard assembly for the velocity mass matrix. - VectorMassIntegrator *vmi = new VectorMassIntegrator(rho0_coeff, &ir); + int int_order = (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1; + InteriorVectorMassIntegrator *vmi = new InteriorVectorMassIntegrator(mass_coeff, &ir, int_order); Mv.AddDomainIntegrator(vmi); Mv.BilinearForm::operator=(0.0); @@ -279,62 +337,6 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Mv_spmat_copy = Mv.SpMat(); } - // Values of rho0DetJ0 and Jac0inv at all quadrature points. - // Initial local mesh size (assumes all mesh elements are the same). - int Ne, ne = NE; - double Volume, vol = 0.0; - if (dim > 1 && p_assembly) - { - Rho0DetJ0Vol(dim, NE, ir, pmesh, L2, rho0_gf, qdata, vol); - } - else - { - const int NQ = ir.GetNPoints(); - Vector rho_vals(NQ); - for (int e = 0; e < NE; e++) - { - rho0_gf.GetValues(e, ir, rho_vals); - ElementTransformation &Tr = *H1.GetElementTransformation(e); - for (int q = 0; q < NQ; q++) - { - const IntegrationPoint &ip = ir.IntPoint(q); - Tr.SetIntPoint(&ip); - DenseMatrixInverse Jinv(Tr.Jacobian()); - Jinv.GetInverseMatrix(qdata.Jac0inv(e*NQ + q)); - const double rho0DetJ0 = Tr.Weight() * rho_vals(q); - qdata.rho0DetJ0w(e*NQ + q) = rho0DetJ0 * ir.IntPoint(q).weight; - } - } - for (int e = 0; e < NE; e++) { vol += pmesh->GetElementVolume(e); } - - for (int be = 0; be < NBE; be++) - { - int b_nqp = b_ir.GetNPoints(); - auto b_face_tr = pmesh->GetBdrFaceTransformations(be); - if (b_face_tr == nullptr) { continue; } - for (int q = 0; q < b_nqp; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - qdata.rho0DetJ0_be(be * b_nqp + q) = - tr_el.Weight() * rho0_gf.GetValue(tr_el); - } - } - } - MPI_Allreduce(&vol, &Volume, 1, MPI_DOUBLE, MPI_SUM, pmesh->GetComm()); - MPI_Allreduce(&ne, &Ne, 1, MPI_INT, MPI_SUM, pmesh->GetComm()); - switch (pmesh->GetElementBaseGeometry(0)) - { - case Geometry::SEGMENT: qdata.h0 = Volume / Ne; break; - case Geometry::SQUARE: qdata.h0 = sqrt(Volume / Ne); break; - case Geometry::TRIANGLE: qdata.h0 = sqrt(2.0 * Volume / Ne); break; - case Geometry::CUBE: qdata.h0 = pow(Volume / Ne, 1./3.); break; - case Geometry::TETRAHEDRON: qdata.h0 = pow(6.0 * Volume / Ne, 1./3.); break; - default: MFEM_ABORT("Unknown zone type!"); - } - qdata.h0 /= (double) H1.GetOrder(0); - if (p_assembly) { // Setup the preconditioner of the velocity mass operator. @@ -1056,7 +1058,7 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const auto b_face_tr = pmesh->GetBdrFaceTransformations(be); if (b_face_tr == nullptr) { continue; } int attr = pmesh->GetBdrAttribute(be); - if (attr != bdr_attr_max) + if (attr != bdr_attr_max || analyticalSurface == NULL) { for (int q = 0; q < nqp_be; q++) { @@ -1184,7 +1186,7 @@ void LagrangianHydroOperator::UpdateBdrQuadratureData() const auto b_face_tr = pmesh->GetBdrFaceTransformations(be); if (b_face_tr == nullptr) { continue; } int attr = pmesh->GetBdrAttribute(be); - if (attr != bdr_attr_max) + if (attr != bdr_attr_max || analyticalSurface == NULL) { for (int q = 0; q < nqp_be; q++) { diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 69183fa20..501745478 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -21,6 +21,7 @@ #include "laghos_assembly.hpp" #include "AnalyticalSurface.hpp" #include "laghos_shift.hpp" +#include "laghos_mass_integrators.hpp" #ifdef MFEM_USE_MPI @@ -144,7 +145,8 @@ class LagrangianHydroOperator : public TimeDependentOperator BdrForceCoefficientPen bdr_force_pen_coeff; BdrEnergyForceCoefficientIBP bdr_en_ibp_force_coeff; BdrEnergyForceCoefficientPen bdr_en_pen_force_coeff; - BdrMassCoefficient bdr_mass_coeff; + BdrMassCoefficient bdr_mass_coeff; + InteriorMassCoefficient mass_coeff; mutable bool qdata_is_current, forcemat_is_assembled; // Force matrix that combines the kinematic and thermodynamic spaces. It is From 03b3c6e7cf69fd056abbe5ad459b58355df94319 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 02:06:56 -0700 Subject: [PATCH 35/44] added boundary mass --- laghos_assembly.hpp | 20 +++++++++++++++++++- laghos_solver.cpp | 3 ++- laghos_solver.hpp | 1 + 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 3d1b2aec6..450d03454 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -70,6 +70,8 @@ struct QuadratureData double dt_est; int quads_per_el; + + int quads_per_be; QuadratureData(int dim, int NE, int quads_per_el, int NBE, int quads_per_be) : Jac0inv(dim, dim, NE * quads_per_el), @@ -82,7 +84,8 @@ struct QuadratureData be_mass_data(dim, dim, NBE * quads_per_be), rho0DetJ0w(NE * quads_per_el), rho0DetJ0_be(NBE * quads_per_be), - quads_per_el(quads_per_el){ } + quads_per_el(quads_per_el), + quads_per_be(quads_per_be){ } }; class BdrForceCoefficient : public VectorCoefficient @@ -212,7 +215,22 @@ class InteriorMassCoefficient : public Coefficient return qdata.rho0DetJ0w(Tr_f.ElementNo * qdata.quads_per_el + ip.index); } }; + +class BdrJacobianCoefficient : public Coefficient +{ +private: + const QuadratureData &qdata; +public: + BdrJacobianCoefficient(const QuadratureData &qd) + : qdata(qd) { } + + real_t Eval(ElementTransformation &Tr_f, const IntegrationPoint &ip) override + { + return qdata.rho0DetJ0_be(Tr_f.ElementNo * qdata.quads_per_be + ip.index); + } +}; + // This class is used only for visualization. It assembles (rho, phi) in each // zone, which is used by LagrangianHydroOperator::ComputeDensity to do an L2 // projection of the density. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index a16487e41..ec8b510bf 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -142,6 +142,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), bdr_force_coeff(qdata), bdr_force_ibp_coeff(qdata), bdr_force_pen_coeff(qdata), bdr_mass_coeff(qdata), + bdr_j_coeff(qdata), mass_coeff(qdata), bdr_en_ibp_force_coeff(qdata), bdr_en_pen_force_coeff(qdata), qdata_is_current(false), @@ -323,7 +324,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, if (BC_strong == false) { - auto nvmi = new BoundaryVectorMassIntegrator(bdr_mass_coeff); + auto nvmi = new BoundaryVectorMassIntegratorV2(bdr_j_coeff, &b_ir, int_order); nvmi->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); if (analyticalSurface != nullptr) diff --git a/laghos_solver.hpp b/laghos_solver.hpp index 501745478..2c5c60933 100644 --- a/laghos_solver.hpp +++ b/laghos_solver.hpp @@ -146,6 +146,7 @@ class LagrangianHydroOperator : public TimeDependentOperator BdrEnergyForceCoefficientIBP bdr_en_ibp_force_coeff; BdrEnergyForceCoefficientPen bdr_en_pen_force_coeff; BdrMassCoefficient bdr_mass_coeff; + BdrJacobianCoefficient bdr_j_coeff; InteriorMassCoefficient mass_coeff; mutable bool qdata_is_current, forcemat_is_assembled; From f7c1b1310e0523d1bf6d98ee7998edb2833ac74c Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 16:17:55 -0700 Subject: [PATCH 36/44] updated integration rule, still update density --- laghos_assembly.cpp | 46 +++++++++++++++++++++++++++++++++++++-------- laghos_assembly.hpp | 22 +++++++++++++++++++--- laghos_shift.cpp | 27 ++++++-------------------- laghos_shift.hpp | 14 +++++++------- laghos_solver.cpp | 20 ++++++++++---------- 5 files changed, 80 insertions(+), 49 deletions(-) diff --git a/laghos_assembly.cpp b/laghos_assembly.cpp index 0d803ec8d..8387762a4 100644 --- a/laghos_assembly.cpp +++ b/laghos_assembly.cpp @@ -22,17 +22,45 @@ namespace mfem namespace hydrodynamics { - -void BoundaryMixedForceTIntegrator:: + + void BoundaryMixedForceIntegratorV2:: AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, FaceElementTransformations &Tr, DenseMatrix &elmat) { - const IntegrationRule *ir = IntRule; - if (ir == nullptr) + const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), order); + + const int nqp_face = IntRule->GetNPoints(); + const int vdim = Q.GetVDim(); + const int dof_trial = trial_fe.GetDof(); + const int dof_test = test_fe.GetDof(); + + elmat.SetSize(dof_test * vdim, dof_trial); + elmat = 0.0; + DenseMatrix loc_force(dof_test, vdim); + Vector shape_trial(dof_trial), shape_test(dof_test), + Vloc_force(loc_force.Data(), dof_test * vdim); + Vector qcoeff(vdim); + + for (int q = 0; q < nqp_face; q++) { - int order = trial_fe.GetOrder() + test_fe.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); + const IntegrationPoint &ip_f = ir->IntPoint(q); + Tr.SetAllIntPoints(&ip_f); + const IntegrationPoint &ip_e = Tr.GetElement1IntPoint(); + + test_fe.CalcShape(ip_e, shape_test); + trial_fe.CalcShape(ip_e, shape_trial); + Q.Eval(qcoeff, Tr, ip_f); + + MultVWt(shape_test, qcoeff, loc_force); + AddMultVWt(Vloc_force, shape_trial, elmat); } +} + +void BoundaryMixedForceTIntegrator:: +AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, + FaceElementTransformations &Tr, DenseMatrix &elmat) +{ + const IntegrationRule *ir = &IntRules.Get(trial_fe.GetGeomType(), order); const int nqp_face = IntRule->GetNPoints(); const int vdim = Q.GetVDim(); @@ -92,9 +120,11 @@ void ForceIntegrator::AssembleElementMatrix2(const FiniteElement &trial_fe, elmat = 0.0; DenseMatrix vshape(h1dofs_cnt, dim), loc_force(h1dofs_cnt, dim); Vector shape(l2dofs_cnt), Vloc_force(loc_force.Data(), h1dofs_cnt*dim); + const IntegrationRule *ir = &IntRules.Get(trial_fe.GetGeomType(), order); + for (int q = 0; q < nqp; q++) { - const IntegrationPoint &ip = IntRule->IntPoint(q); + const IntegrationPoint &ip = ir->IntPoint(q); // Form stress:grad_shape at the current point. test_fe.CalcDShape(ip, vshape); for (int i = 0; i < h1dofs_cnt; i++) @@ -106,7 +136,7 @@ void ForceIntegrator::AssembleElementMatrix2(const FiniteElement &trial_fe, { const int eq = e*nqp + q; const double stressJinvT = qdata.stressJinvT(vd)(eq, gd); - loc_force(i, vd) += stressJinvT * vshape(i,gd); + loc_force(i, vd) += stressJinvT * vshape(i,gd); } } } diff --git a/laghos_assembly.hpp b/laghos_assembly.hpp index 450d03454..8c0f3a5e1 100644 --- a/laghos_assembly.hpp +++ b/laghos_assembly.hpp @@ -252,21 +252,37 @@ class ForceIntegrator : public BilinearFormIntegrator { private: const QuadratureData &qdata; + int order; public: - ForceIntegrator(QuadratureData &qdata) : qdata(qdata) { } + ForceIntegrator(QuadratureData &qdata, int order) : qdata(qdata), order(order) { } virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Tr, DenseMatrix &elmat); }; -class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +class BoundaryMixedForceIntegratorV2 : public BilinearFormIntegrator { protected: VectorCoefficient &Q; + int order; + +public: + BoundaryMixedForceIntegratorV2(VectorCoefficient &vc, int order) : Q(vc), order(order) { } + + void AssembleFaceMatrix(const FiniteElement &trial_fe, + const FiniteElement &test_fe, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; +class BoundaryMixedForceTIntegrator : public BilinearFormIntegrator +{ +protected: + VectorCoefficient &Q; + int order; public: - BoundaryMixedForceTIntegrator(VectorCoefficient &vc) : Q(vc) { } + BoundaryMixedForceTIntegrator(VectorCoefficient &vc, int order) : Q(vc), order(order) { } /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 971840383..8b6ce44ca 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -153,12 +153,7 @@ void SBM_BoundaryVectorMassIntegrator:: AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, DenseMatrix &elmat) { - const IntegrationRule *ir = IntRule; - if (ir == nullptr) - { - int order = 2 * el1.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); - } + const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), int_order); const int nqp_face = IntRule->GetNPoints(); const int dof = el1.GetDof(); @@ -170,7 +165,7 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, partelmat.SetSize(dof); for (int q = 0; q < nqp_face; q++) { - const IntegrationPoint &ip_f = IntRule->IntPoint(q); + const IntegrationPoint &ip_f = ir->IntPoint(q); // Set the integration point in the face and the neighboring elements Tr.SetAllIntPoints(&ip_f); @@ -201,12 +196,7 @@ void SBM_BoundaryMixedForceIntegrator:: AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, FaceElementTransformations &Tr, DenseMatrix &elmat) { - const IntegrationRule *ir = IntRule; - if (ir == nullptr) - { - int order = trial_fe.GetOrder() + test_fe.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); - } + const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), int_order); const int nqp_face = IntRule->GetNPoints(); const int vdim = Q_ibp.GetVDim(); @@ -228,7 +218,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, for (int q = 0; q < nqp_face; q++) { - const IntegrationPoint &ip_f = IntRule->IntPoint(q); + const IntegrationPoint &ip_f = ir->IntPoint(q); Tr.SetAllIntPoints(&ip_f); Q_ibp.Eval(qcoeff_ibp, Tr, ip_f); Q_pen.Eval(qcoeff_pen, Tr, ip_f); @@ -258,12 +248,7 @@ void SBM_BoundaryMixedForceTIntegrator:: AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, FaceElementTransformations &Tr, DenseMatrix &elmat) { - const IntegrationRule *ir = IntRule; - if (ir == nullptr) - { - int order = trial_fe.GetOrder() + test_fe.GetOrder(); - ir = &IntRules.Get(Tr.GetGeometryType(), order); - } + const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), int_order); const int nqp_face = IntRule->GetNPoints(); const int vdim = Q_ibp.GetVDim(); @@ -284,7 +269,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, for (int q = 0; q < nqp_face; q++) { - const IntegrationPoint &ip_f = IntRule->IntPoint(q); + const IntegrationPoint &ip_f = ir->IntPoint(q); Tr.SetAllIntPoints(&ip_f); Q_ibp.Eval(qcoeff_ibp, Tr, ip_f); Q_pen.Eval(qcoeff_pen, Tr, ip_f); diff --git a/laghos_shift.hpp b/laghos_shift.hpp index 7fd272378..fafb9b5aa 100644 --- a/laghos_shift.hpp +++ b/laghos_shift.hpp @@ -44,12 +44,12 @@ class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator const ParFiniteElementSpace &H1; const AnalyticalGeometricShape& geom; int num_taylor = 1; - + int int_order; public: /// The given MatrixCoefficient fully couples the vector components, i.e., /// the local (dof x vdim) matrices have no zero blocks. - SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor) - : VectorMassIntegrator(mc), H1(H1), geom(geom), num_taylor(num_taylor) { } + SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order) + : VectorMassIntegrator(mc), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order) { } /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 /// is for the volumetric neighbor of the boundary face, @a el2 is not used. @@ -67,9 +67,9 @@ class SBM_BoundaryMixedForceIntegrator : public BilinearFormIntegrator const ParFiniteElementSpace &H1; const AnalyticalGeometricShape& geom; int num_taylor = 1; - + int int_order; public: - SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc_ibp, VectorCoefficient &vc_pen, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor) : Q_ibp(vc_ibp), Q_pen(vc_pen), H1(H1), geom(geom), num_taylor(num_taylor) { } + SBM_BoundaryMixedForceIntegrator(VectorCoefficient &vc_ibp, VectorCoefficient &vc_pen, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order) : Q_ibp(vc_ibp), Q_pen(vc_pen), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order) { } /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. @@ -88,9 +88,9 @@ class SBM_BoundaryMixedForceTIntegrator : public BilinearFormIntegrator const ParFiniteElementSpace &H1; const AnalyticalGeometricShape& geom; int num_taylor = 1; - + int int_order; public: - SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc_ibp, VectorCoefficient &vc_pen, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor) : Q_ibp(vc_ibp), Q_pen(vc_pen), H1(H1), geom(geom), num_taylor(num_taylor) { } + SBM_BoundaryMixedForceTIntegrator(VectorCoefficient &vc_ibp, VectorCoefficient &vc_pen, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order) : Q_ibp(vc_ibp), Q_pen(vc_pen), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order) { } /// Expected use is with MixedBilinearForm::AddBdrFaceIntegrator(), where /// @a el1 and @a el2 are for the (mixed) volumetric neighbor of the face. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index ec8b510bf..a6b691a5a 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -137,7 +137,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, ir(IntRules.Get(pmesh->GetElementBaseGeometry(0), (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1)), b_ir(IntRules.Get(pmesh->GetBdrElementBaseGeometry(0), - 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1 )), + (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1)), Q1D(int(floor(0.7 + pow(ir.GetNPoints(), 1.0 / dim)))), qdata(dim, NE, ir.GetNPoints(), NBE, b_ir.GetNPoints()), bdr_force_coeff(qdata), bdr_force_ibp_coeff(qdata), bdr_force_pen_coeff(qdata), @@ -271,7 +271,8 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, qdata.h0 /= (double) H1.GetOrder(0); UpdateBdrQuadratureData(); - + int int_order = (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1; + if (p_assembly) { qupdate = new QUpdate(dim, NE, Q1D, visc, vort, cfl, @@ -316,7 +317,6 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, inv.GetInverseMatrix(Me_inv(e)); } // Standard assembly for the velocity mass matrix. - int int_order = (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1; InteriorVectorMassIntegrator *vmi = new InteriorVectorMassIntegrator(mass_coeff, &ir, int_order); Mv.AddDomainIntegrator(vmi); @@ -324,12 +324,12 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, if (BC_strong == false) { - auto nvmi = new BoundaryVectorMassIntegratorV2(bdr_j_coeff, &b_ir, int_order); + auto nvmi = new BoundaryVectorMassIntegratorV2(bdr_j_coeff, &b_ir, int_order, wall_bc_penalty, C_I, perimeter); nvmi->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); if (analyticalSurface != nullptr) { - auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_mass_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); + auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_mass_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order); nvmi_sbm->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi_sbm, ess_bdr_sbm); } @@ -361,7 +361,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, } else { - ForceIntegrator *fi = new ForceIntegrator(qdata); + ForceIntegrator *fi = new ForceIntegrator(qdata, int_order); fi->SetIntRule(&ir); Force.AddDomainIntegrator(fi); // Make a dummy assembly to figure out the sparsity. @@ -370,19 +370,19 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, if (BC_strong == false) { - auto vpb = new BoundaryMixedForceIntegrator(bdr_force_coeff); + auto vpb = new BoundaryMixedForceIntegratorV2(bdr_force_coeff, int_order); vpb->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb, ess_bdr_bf); - auto vpb_T = new BoundaryMixedForceTIntegrator(bdr_force_coeff); + auto vpb_T = new BoundaryMixedForceTIntegrator(bdr_force_coeff, int_order); vpb_T->SetIntRule(&b_ir); Force_be_T.AddBdrFaceIntegrator(vpb_T, ess_bdr_bf); // Make a dummy assembly to figure out the sparsity. if (analyticalSurface != nullptr) { - auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_ibp_coeff, bdr_force_pen_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); + auto vpb_sbm = new SBM_BoundaryMixedForceIntegrator(bdr_force_ibp_coeff, bdr_force_pen_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order); vpb_sbm->SetIntRule(&b_ir); Force_be.AddBdrFaceIntegrator(vpb_sbm, ess_bdr_sbm); - auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_en_ibp_force_coeff, bdr_en_pen_force_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0)); + auto vpb_sbm_T = new SBM_BoundaryMixedForceTIntegrator(bdr_en_ibp_force_coeff, bdr_en_pen_force_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order); vpb_sbm_T->SetIntRule(&b_ir); Force_be_T.AddBdrFaceIntegrator(vpb_sbm_T, ess_bdr_sbm); } From efde3496f0bbe0c81e6b2cb40a71dbe0daaeec00 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 16:46:50 -0700 Subject: [PATCH 37/44] moved all integrators locally --- laghos_shift.cpp | 32 ++++++++++++++++++++++---------- laghos_shift.hpp | 10 +++++++--- laghos_solver.cpp | 2 +- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 8b6ce44ca..b9b6c5fae 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -153,14 +153,15 @@ void SBM_BoundaryVectorMassIntegrator:: AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, DenseMatrix &elmat) { - const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), int_order); + const IntegrationRule *ir = &IntRules.Get(el1.GetGeomType(), int_order); - const int nqp_face = IntRule->GetNPoints(); + const int nqp_face = ir->GetNPoints(); const int dof = el1.GetDof(); + int vdim = Tr.GetSpaceDim() + 1; + elmat.SetSize(dof * vdim); elmat = 0.0; - mcoeff.SetSize(vdim); shape.SetSize(dof); partelmat.SetSize(dof); for (int q = 0; q < nqp_face; q++) @@ -169,24 +170,35 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, // Set the integration point in the face and the neighboring elements Tr.SetAllIntPoints(&ip_f); - MQ->Eval(mcoeff, Tr, ip_f); + double coeff = Q->Eval(Tr, ip_f); const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); - ElementTransformation& Trans_el1 = Tr.GetElement1Transformation(); + + Vector nor(vdim); + CalcOrtho(Tr.Jacobian(), nor); + + double nor_norm = sqrt(nor * nor); + Vector tn(nor); + tn /= nor_norm; + Vector position; Trans_el1.Transform(eip1, position); Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape); - + true_n = tn; + double nDotNtilda = true_n * tn; + double detJ = Trans_el1.Jacobian().Det(); + coeff /= detJ; MultVVt(shape, partelmat); - + double penalty_mass = std::pow(el1.GetOrder(),2.0) * 1.0 / std::pow(Trans_el1.Weight(), 1.0/vdim) * perimeter * C_I * wall_bc_penalty; for (int i = 0; i < vdim; i++) { for (int j = 0; j < vdim; j++) { - elmat.AddMatrix(mcoeff(i,j), partelmat, dof*i, dof*j); + double mcoeff = coeff * true_n(i) * true_n(j) * nor_norm * ip_f.weight * penalty_mass; + elmat.AddMatrix(mcoeff, partelmat, dof*i, dof*j); } } } @@ -198,7 +210,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, { const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), int_order); - const int nqp_face = IntRule->GetNPoints(); + const int nqp_face = ir->GetNPoints(); const int vdim = Q_ibp.GetVDim(); const int dof_trial = trial_fe.GetDof(); const int dof_test = test_fe.GetDof(); @@ -250,7 +262,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, { const IntegrationRule *ir = &IntRules.Get(Tr.GetGeometryType(), int_order); - const int nqp_face = IntRule->GetNPoints(); + const int nqp_face = ir->GetNPoints(); const int vdim = Q_ibp.GetVDim(); const int dof_trial = trial_fe.GetDof(); const int dof_test = test_fe.GetDof(); diff --git a/laghos_shift.hpp b/laghos_shift.hpp index fafb9b5aa..9791ad0ee 100644 --- a/laghos_shift.hpp +++ b/laghos_shift.hpp @@ -44,12 +44,16 @@ class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator const ParFiniteElementSpace &H1; const AnalyticalGeometricShape& geom; int num_taylor = 1; - int int_order; + int int_order; + double wall_bc_penalty; + double C_I; + double perimeter; + public: /// The given MatrixCoefficient fully couples the vector components, i.e., /// the local (dof x vdim) matrices have no zero blocks. - SBM_BoundaryVectorMassIntegrator(MatrixCoefficient &mc, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order) - : VectorMassIntegrator(mc), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order) { } + SBM_BoundaryVectorMassIntegrator(Coefficient &Q, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order, double wall_bc_penalty, double C_I, double perimeter) + : VectorMassIntegrator(Q), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order), wall_bc_penalty(wall_bc_penalty), C_I(C_I), perimeter(perimeter) { } /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 /// is for the volumetric neighbor of the boundary face, @a el2 is not used. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index a6b691a5a..28f8c13d3 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -329,7 +329,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); if (analyticalSurface != nullptr) { - auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_mass_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order); + auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_j_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order, wall_bc_penalty, C_I, perimeter); nvmi_sbm->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi_sbm, ess_bdr_sbm); } From c908a69dffe30eca626e0cc515353af418059ad1 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 17:28:11 -0700 Subject: [PATCH 38/44] fix --- laghos_shift.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index b9b6c5fae..20ee4d98b 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -197,7 +197,7 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, { for (int j = 0; j < vdim; j++) { - double mcoeff = coeff * true_n(i) * true_n(j) * nor_norm * ip_f.weight * penalty_mass; + double mcoeff = coeff * true_n(i) * true_n(j) * nor_norm * ip_f.weight * penalty_mass * std::pow(nDotNtilda, 2.0); elmat.AddMatrix(mcoeff, partelmat, dof*i, dof*j); } } From a016aee563300374cd544a6598cca0dfaab6ae5d Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 18:39:07 -0700 Subject: [PATCH 39/44] forgot to add mass integrators --- laghos_mass_integrators.cpp | 112 ++++++++++++++++++++++++++++++++++++ laghos_mass_integrators.hpp | 74 ++++++++++++++++++++++++ 2 files changed, 186 insertions(+) create mode 100644 laghos_mass_integrators.cpp create mode 100644 laghos_mass_integrators.hpp diff --git a/laghos_mass_integrators.cpp b/laghos_mass_integrators.cpp new file mode 100644 index 000000000..478cc838c --- /dev/null +++ b/laghos_mass_integrators.cpp @@ -0,0 +1,112 @@ +// Copyright (cA) 2017, Lawrence Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project (17-SC-20-SC) +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#include "laghos_solver.hpp" +#include "laghos_mass_integrators.hpp" + +using namespace std; +namespace mfem +{ + +namespace hydrodynamics +{ + +void InteriorVectorMassIntegrator::AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat ) +{ + int nd = el.GetDof(); + int vdim = Trans.GetSpaceDim(); + + real_t norm; + + elmat.SetSize(nd*vdim); + shape.SetSize(nd); + partelmat.SetSize(nd); + + const IntegrationRule *ir = &IntRules.Get(el.GetGeomType(), order); + + elmat = 0.0; + for (int s = 0; s < ir->GetNPoints(); s++) + { + const IntegrationPoint &ip = ir->IntPoint(s); + el.CalcShape(ip, shape); + + Trans.SetIntPoint(&ip); + norm = ip.weight * Trans.Weight(); + + MultVVt(shape, partelmat); + double detJ = Trans.Jacobian().Det(); + double coeff = Q.Eval(Trans, ip) / detJ / ip.weight; + norm *= coeff; + partelmat *= norm; + + for (int k = 0; k < vdim; k++) + { + elmat.AddMatrix(partelmat, nd*k, nd*k); + } + } +} + +void BoundaryVectorMassIntegratorV2::AssembleFaceMatrix(const FiniteElement &el1, + const FiniteElement &el2, + FaceElementTransformations &Tr, + DenseMatrix &elmat) +{ + int nd = el1.GetDof(); + int vdim = Tr.GetSpaceDim() + 1; + elmat.SetSize(nd*vdim); + shape.SetSize(nd); + partelmat.SetSize(nd); + + const IntegrationRule *ir = &IntRules.Get(el1.GetGeomType(), order); + + elmat = 0.0; + for (int s = 0; s < ir->GetNPoints(); s++) + { + const IntegrationPoint &ip_f = ir->IntPoint(s); + // Set the integration point in the face and the neighboring elements + Tr.SetAllIntPoints(&ip_f); + + double coeff = Q.Eval(Tr, ip_f); + const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); + ElementTransformation& Trans_el1 = Tr.GetElement1Transformation(); + + Vector nor(vdim); + CalcOrtho(Tr.Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + Vector tn(nor); + tn /= nor_norm; + el1.CalcShape(eip1, shape); + + double detJ = Trans_el1.Jacobian().Det(); + coeff /= detJ; + + MultVVt(shape, partelmat); + double penalty_mass = std::pow(el1.GetOrder(),2.0) * 1.0 / std::pow(Trans_el1.Weight(), 1.0/vdim) * perimeter * C_I * wall_bc_penalty; + + for (int dx = 0; dx < vdim; dx++) + { + for (int dy = 0; dy < vdim; dy++) + { + double mcoeff = coeff * tn(dx) * tn(dy) * nor_norm * ip_f.weight * penalty_mass; + elmat.AddMatrix(mcoeff, partelmat, nd*dx, nd*dy); + } + } + } +} + +} // namespace hydrodynamics + +} // namespace mfem diff --git a/laghos_mass_integrators.hpp b/laghos_mass_integrators.hpp new file mode 100644 index 000000000..a7f70f4e9 --- /dev/null +++ b/laghos_mass_integrators.hpp @@ -0,0 +1,74 @@ +// Copyright (c) 2017, LawrenceA Livermore National Security, LLC. Produced at +// the Lawrence Livermore National Laboratory. LLNL-CODE-734707. All Rights +// reserved. See files LICENSE and NOTICE for details. +// +// This file is part of CEED, a collection of benchmarks, miniapps, software +// libraries and APIs for efficient high-order finite element and spectral +// element discretizations for exascale applications. For more information and +// source code availability see http://github.com/ceed. +// +// The CEED research is supported by the Exascale Computing Project 17-SC-20-SC, +// a collaborative effort of two U.S. Department of Energy organizations (Office +// of Science and the National Nuclear Security Administration) responsible for +// the planning and preparation of a capable exascale ecosystem, including +// software, applications, hardware, advanced system engineering and early +// testbed platforms, in support of the nation's exascale computing imperative. + +#ifndef MFEM_LAGHOS_MASS_INTEGRATORS +#define MFEM_LAGHOS_MASS_INTEGRATORS + +#include "mfem.hpp" +#include "laghos_assembly.hpp" + +namespace mfem +{ + +namespace hydrodynamics +{ + +class InteriorVectorMassIntegrator : public BilinearFormIntegrator +{ +protected: + Coefficient &Q; + int order; + Vector shape; + DenseMatrix partelmat; + +public: + /// The given MatrixCoefficient fully couples the vector components, i.e., + /// the local (dof x vdim) matrices have no zero blocks. + InteriorVectorMassIntegrator(Coefficient &Q, const IntegrationRule *ir, int order) + : BilinearFormIntegrator(ir), Q(Q), order(order) { } + + virtual void AssembleElementMatrix(const FiniteElement &el, + ElementTransformation &Tr, + DenseMatrix &elmat); +}; + +class BoundaryVectorMassIntegratorV2 : public BilinearFormIntegrator +{ +protected: + Coefficient &Q; + int order; + Vector shape; + DenseMatrix partelmat; + double wall_bc_penalty; + double C_I; + double perimeter; +public: + /// The given MatrixCoefficient fully couples the vector components, i.e., + /// the local (dof x vdim) matrices have no zero blocks. + BoundaryVectorMassIntegratorV2(Coefficient &Q, const IntegrationRule *ir, int order, double wall_bc_penalty, double C_I, double perimeter) + : BilinearFormIntegrator(ir), Q(Q), order(order), wall_bc_penalty(wall_bc_penalty), C_I(C_I), perimeter(perimeter) { } + + void AssembleFaceMatrix(const FiniteElement &el1, + const FiniteElement &el2, + FaceElementTransformations &Tr, + DenseMatrix &elmat) override; +}; + +} // namespace hydrodynamics + +} // namespace mfem + +#endif // MFEM_LAGHOS_SHIFT From 0347cbc4fc39702f17025e6d3d82f65e66ab6565 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 22:37:56 -0700 Subject: [PATCH 40/44] bug fix --- laghos_solver.cpp | 487 +++++++++++++++++++++++++++------------------- 1 file changed, 292 insertions(+), 195 deletions(-) diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 28f8c13d3..dbbdffb20 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -270,7 +270,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, } qdata.h0 /= (double) H1.GetOrder(0); - UpdateBdrQuadratureData(); + //UpdateBdrQuadratureData(); int int_order = (oq > 0) ? oq : 3 * H1.GetOrder(0) + L2.GetOrder(0) - 1; if (p_assembly) @@ -1054,208 +1054,305 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const // Boundary integrals data. int nqp_be = b_ir.GetNPoints(); - for (int be = 0; be < NBE; be++) - { - auto b_face_tr = pmesh->GetBdrFaceTransformations(be); - if (b_face_tr == nullptr) { continue; } - int attr = pmesh->GetBdrAttribute(be); - if (attr != bdr_attr_max || analyticalSurface == NULL) - { - for (int q = 0; q < nqp_be; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - const int z_id = tr_el.ElementNo; - - double en = fmax(0.0, e.GetValue(tr_el)); - double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); - double p = (gamma_gf(z_id) - 1.0) * rho * en; - double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); - double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); - - //double penalty_force = wall_bc_penalty * C_I * rho * cs; - double penalty_force = 0.0; - // sign of (sigma n). n - penalty_force = wall_bc_penalty * C_I * pen_scale; - - Vector nor(dim); - CalcOrtho(b_face_tr->Jacobian(), nor); - double nor_norm = sqrt(nor * nor); - - Vector tn(nor); - tn /= nor_norm; - - Vector vShape; - v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); - double vDotn = 0.0; - for (int d = 0; d < dim; d++) - { - vDotn += vShape(d) * nor(d) / nor_norm; - } - - DenseMatrix stress(dim); - stress = 0.0; - for (int d = 0; d < dim; d++) { stress(d, d) = - p; } - Vector weightedNormalStress(dim); - stress.Mult(tn, weightedNormalStress); - - for (int d = 0; d < dim; d++) - { - qdata.be_force_data(be, q, d) = - ip_f.weight * nor_norm * - (vDotn * tn(d) * penalty_force - weightedNormalStress(d)); - } - } - } - else - { - for (int q = 0; q < nqp_be; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - const int z_id = tr_el.ElementNo; - - double en = fmax(0.0, e.GetValue(tr_el)); - double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); - double p = (gamma_gf(z_id) - 1.0) * rho * en; - double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); - double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); - - //double penalty_force = wall_bc_penalty * C_I * rho * cs; - - double penalty_force = 0.0; - // sign of (sigma n). n - penalty_force = wall_bc_penalty * C_I * pen_scale; - - Vector nor(dim); - CalcOrtho(b_face_tr->Jacobian(), nor); - double nor_norm = sqrt(nor * nor); - - Vector tn(nor); - tn /= nor_norm; - - /* Shifted */ - const IntegrationPoint &eip1 = b_face_tr->GetElement1IntPoint(); - Vector position; - tr_el.Transform(eip1, position); - Vector dist; - Vector true_n; - analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); - true_n = tn; - - double ndotNtilda = true_n * tn; - - Vector vShape(dim); - vShape = 0.0; - //get_shifted_value(v, z_id, eip1, dist, H1.GetElementOrder(0), vShape); - get_shifted_value(v, z_id, eip1, dist, 0, vShape); - - double vDotn = vShape * true_n; - DenseMatrix stress(dim); - stress = 0.0; - for (int d = 0; d < dim; d++) { stress(d, d) = - p; } - Vector weightedNormalStress(dim); - stress.Mult(tn, weightedNormalStress); - // (sigma ntilda).n - double sigmaNDotTrueN = weightedNormalStress * true_n; + if (analyticalSurface != NULL) + { + for (int be = 0; be < NBE; be++) + { + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + int attr = pmesh->GetBdrAttribute(be); + if (attr != bdr_attr_max) + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + const int z_id = tr_el.ElementNo; - for (int d = 0; d < dim; d++) - { - qdata.be_force_data_ibp(be, q, d) = - -ip_f.weight * nor_norm * weightedNormalStress(d); - qdata.be_force_data_pen(be, q, d) = - ip_f.weight * nor_norm * - vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda); - qdata.fe_force_data_ibp(be, q, d) = - - ip_f.weight * nor_norm * sigmaNDotTrueN * true_n(d); - qdata.fe_force_data_pen(be, q, d) = - ip_f.weight * nor_norm * vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda); - } - } - } - } + double en = fmax(0.0, e.GetValue(tr_el)); + double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); + double p = (gamma_gf(z_id) - 1.0) * rho * en; + double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); + + //double penalty_force = wall_bc_penalty * C_I * rho * cs; + double penalty_force = 0.0; + // sign of (sigma n). n + penalty_force = wall_bc_penalty * C_I * pen_scale; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + Vector vShape; + v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); + double vDotn = 0.0; + for (int d = 0; d < dim; d++) + { + vDotn += vShape(d) * nor(d) / nor_norm; + } + + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + + for (int d = 0; d < dim; d++) + { + qdata.be_force_data(be, q, d) = + ip_f.weight * nor_norm * + (vDotn * tn(d) * penalty_force - weightedNormalStress(d)); + } + } + } + else + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + const int z_id = tr_el.ElementNo; + + double en = fmax(0.0, e.GetValue(tr_el)); + double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); + double p = (gamma_gf(z_id) - 1.0) * rho * en; + double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); + + //double penalty_force = wall_bc_penalty * C_I * rho * cs; + + double penalty_force = 0.0; + // sign of (sigma n). n + penalty_force = wall_bc_penalty * C_I * pen_scale; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + /* Shifted */ + const IntegrationPoint &eip1 = b_face_tr->GetElement1IntPoint(); + Vector position; + tr_el.Transform(eip1, position); + Vector dist; + Vector true_n; + analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); + true_n = tn; + + double ndotNtilda = true_n * tn; + + Vector vShape(dim); + vShape = 0.0; + //get_shifted_value(v, z_id, eip1, dist, H1.GetElementOrder(0), vShape); + get_shifted_value(v, z_id, eip1, dist, 0, vShape); + + double vDotn = vShape * true_n; + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + // (sigma ntilda).n + double sigmaNDotTrueN = weightedNormalStress * true_n; + + for (int d = 0; d < dim; d++) + { + qdata.be_force_data_ibp(be, q, d) = + -ip_f.weight * nor_norm * weightedNormalStress(d); + qdata.be_force_data_pen(be, q, d) = + ip_f.weight * nor_norm * + vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda); + qdata.fe_force_data_ibp(be, q, d) = + - ip_f.weight * nor_norm * sigmaNDotTrueN * true_n(d); + qdata.fe_force_data_pen(be, q, d) = + ip_f.weight * nor_norm * vDotn * true_n(d) * penalty_force * std::abs(ndotNtilda); + } + } + } + } + } + else + { + for (int be = 0; be < NBE; be++) + { + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + int attr = pmesh->GetBdrAttribute(be); + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + const int z_id = tr_el.ElementNo; + + double en = fmax(0.0, e.GetValue(tr_el)); + double rho = qdata.rho0DetJ0_be(be * nqp_be + q) / tr_el.Weight(); + double p = (gamma_gf(z_id) - 1.0) * rho * en; + double cs = sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0) * en); + double pen_scale = (gamma_gf(z_id) - 1.0) * rho * sqrt(en) / sqrt(gamma_gf(z_id) * (gamma_gf(z_id) - 1.0)); + + //double penalty_force = wall_bc_penalty * C_I * rho * cs; + double penalty_force = 0.0; + // sign of (sigma n). n + penalty_force = wall_bc_penalty * C_I * pen_scale; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + Vector vShape; + v.GetVectorValue(tr_el, tr_el.GetIntPoint(), vShape); + double vDotn = 0.0; + for (int d = 0; d < dim; d++) + { + vDotn += vShape(d) * nor(d) / nor_norm; + } + + DenseMatrix stress(dim); + stress = 0.0; + for (int d = 0; d < dim; d++) { stress(d, d) = - p; } + Vector weightedNormalStress(dim); + stress.Mult(tn, weightedNormalStress); + + for (int d = 0; d < dim; d++) + { + qdata.be_force_data(be, q, d) = + ip_f.weight * nor_norm * + (vDotn * tn(d) * penalty_force - weightedNormalStress(d)); + } + } + } + } } void LagrangianHydroOperator::UpdateBdrQuadratureData() const { // Boundary mass term data. int nqp_be = b_ir.GetNPoints(); - for (int be = 0; be < NBE; be++) - { - auto b_face_tr = pmesh->GetBdrFaceTransformations(be); - if (b_face_tr == nullptr) { continue; } - int attr = pmesh->GetBdrAttribute(be); - if (attr != bdr_attr_max || analyticalSurface == NULL) - { - for (int q = 0; q < nqp_be; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - - double penalty_mass = wall_bc_penalty * C_I * perimeter / - std::pow(tr_el.Weight(), 1.0/dim); - penalty_mass *= rho0_max * perimeter; - - Vector nor(dim); - CalcOrtho(b_face_tr->Jacobian(), nor); - double nor_norm = sqrt(nor * nor); - - Vector tn(nor); - tn /= nor_norm; - - for (int dx = 0; dx < dim; dx++) - { - for (int dy = 0; dy < dim; dy++) - { - qdata.be_mass_data(dx, dy, be * nqp_be + q) = - ip_f.weight * nor_norm * - tn(dx) * tn(dy) * penalty_mass; - } - } - } - } - else - { - for (int q = 0; q < nqp_be; q++) - { - const IntegrationPoint &ip_f = b_ir.IntPoint(q); - b_face_tr->SetAllIntPoints(&ip_f); - ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); - - double penalty_mass = wall_bc_penalty * C_I * perimeter / - std::pow(tr_el.Weight(), 1.0/dim); - penalty_mass *= rho0_max * perimeter; - - Vector nor(dim); - CalcOrtho(b_face_tr->Jacobian(), nor); - double nor_norm = sqrt(nor * nor); - - Vector tn(nor); - tn /= nor_norm; - const IntegrationPoint &ip_e1 = b_face_tr->GetElement1IntPoint(); - Vector position; - tr_el.Transform(ip_e1, position); - Vector dist; - Vector true_n; - analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); - true_n = tn; - double nDotNtilda = true_n * tn; - - for (int dx = 0; dx < dim; dx++) - { - for (int dy = 0; dy < dim; dy++) - { - qdata.be_mass_data(dx, dy, be * nqp_be + q) = + if (analyticalSurface != NULL) + { + for (int be = 0; be < NBE; be++) + { + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + int attr = pmesh->GetBdrAttribute(be); + if (attr != bdr_attr_max) + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + + double penalty_mass = wall_bc_penalty * C_I * perimeter / + std::pow(tr_el.Weight(), 1.0/dim); + penalty_mass *= rho0_max * perimeter; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + for (int dx = 0; dx < dim; dx++) + { + for (int dy = 0; dy < dim; dy++) + { + qdata.be_mass_data(dx, dy, be * nqp_be + q) = + ip_f.weight * nor_norm * + tn(dx) * tn(dy) * penalty_mass; + } + } + } + } + else + { + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + + double penalty_mass = wall_bc_penalty * C_I * perimeter / + std::pow(tr_el.Weight(), 1.0/dim); + penalty_mass *= rho0_max * perimeter; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + const IntegrationPoint &ip_e1 = b_face_tr->GetElement1IntPoint(); + Vector position; + tr_el.Transform(ip_e1, position); + Vector dist; + Vector true_n; + analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); + true_n = tn; + double nDotNtilda = true_n * tn; + + for (int dx = 0; dx < dim; dx++) + { + for (int dy = 0; dy < dim; dy++) + { + qdata.be_mass_data(dx, dy, be * nqp_be + q) = ip_f.weight * nor_norm * - true_n(dx) * true_n(dy) * penalty_mass * std::pow(nDotNtilda, 2.0); - } - } - } - } - } + true_n(dx) * true_n(dy) * penalty_mass * std::pow(nDotNtilda, 2.0); + } + } + } + } + } + } + else + { + for (int be = 0; be < NBE; be++) + { + auto b_face_tr = pmesh->GetBdrFaceTransformations(be); + if (b_face_tr == nullptr) { continue; } + int attr = pmesh->GetBdrAttribute(be); + for (int q = 0; q < nqp_be; q++) + { + const IntegrationPoint &ip_f = b_ir.IntPoint(q); + b_face_tr->SetAllIntPoints(&ip_f); + ElementTransformation &tr_el = b_face_tr->GetElement1Transformation(); + + double penalty_mass = wall_bc_penalty * C_I * perimeter / + std::pow(tr_el.Weight(), 1.0/dim); + penalty_mass *= rho0_max * perimeter; + + Vector nor(dim); + CalcOrtho(b_face_tr->Jacobian(), nor); + double nor_norm = sqrt(nor * nor); + + Vector tn(nor); + tn /= nor_norm; + + for (int dx = 0; dx < dim; dx++) + { + for (int dy = 0; dy < dim; dy++) + { + qdata.be_mass_data(dx, dy, be * nqp_be + q) = + ip_f.weight * nor_norm * + tn(dx) * tn(dy) * penalty_mass; + } + } + } + } + } } void LagrangianHydroOperator::UpdateMassMatrices(Coefficient &rho_coeff) From 5feb46db6cbea9ba9b40572f34686c042616f1ba Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Sun, 3 Aug 2025 23:51:04 -0700 Subject: [PATCH 41/44] minor --- laghos_shift.cpp | 5 +++-- laghos_shift.hpp | 6 +++--- laghos_solver.cpp | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 20ee4d98b..016c65bba 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -171,6 +171,7 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, Tr.SetAllIntPoints(&ip_f); double coeff = Q->Eval(Tr, ip_f); + //double coeff = rho0_max; const IntegrationPoint &eip1 = Tr.GetElement1IntPoint(); ElementTransformation& Trans_el1 = Tr.GetElement1Transformation(); @@ -190,9 +191,9 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, true_n = tn; double nDotNtilda = true_n * tn; double detJ = Trans_el1.Jacobian().Det(); - coeff /= detJ; + coeff /= std::abs(detJ); MultVVt(shape, partelmat); - double penalty_mass = std::pow(el1.GetOrder(),2.0) * 1.0 / std::pow(Trans_el1.Weight(), 1.0/vdim) * perimeter * C_I * wall_bc_penalty; + double penalty_mass = (1.0 / std::pow(Trans_el1.Weight(), 1.0/vdim)) * perimeter * C_I * wall_bc_penalty; for (int i = 0; i < vdim; i++) { for (int j = 0; j < vdim; j++) diff --git a/laghos_shift.hpp b/laghos_shift.hpp index 9791ad0ee..a816f1fdb 100644 --- a/laghos_shift.hpp +++ b/laghos_shift.hpp @@ -48,12 +48,12 @@ class SBM_BoundaryVectorMassIntegrator : public VectorMassIntegrator double wall_bc_penalty; double C_I; double perimeter; - + double rho0_max; public: /// The given MatrixCoefficient fully couples the vector components, i.e., /// the local (dof x vdim) matrices have no zero blocks. - SBM_BoundaryVectorMassIntegrator(Coefficient &Q, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order, double wall_bc_penalty, double C_I, double perimeter) - : VectorMassIntegrator(Q), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order), wall_bc_penalty(wall_bc_penalty), C_I(C_I), perimeter(perimeter) { } + SBM_BoundaryVectorMassIntegrator(Coefficient &Q, const ParFiniteElementSpace &H1, const AnalyticalGeometricShape& geom, int num_taylor, int int_order, double wall_bc_penalty, double C_I, double perimeter, double rho0_max) + : VectorMassIntegrator(Q), H1(H1), geom(geom), num_taylor(num_taylor), int_order(int_order), wall_bc_penalty(wall_bc_penalty), C_I(C_I), perimeter(perimeter), rho0_max(rho0_max) { } /// Expected use is with BilinearForm::AddBdrFaceIntegrator(), where @a el1 /// is for the volumetric neighbor of the boundary face, @a el2 is not used. diff --git a/laghos_solver.cpp b/laghos_solver.cpp index dbbdffb20..6b6cfde31 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -329,7 +329,7 @@ LagrangianHydroOperator::LagrangianHydroOperator(const int size, Mv.AddBdrFaceIntegrator(nvmi, ess_bdr_bf); if (analyticalSurface != nullptr) { - auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_j_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order, wall_bc_penalty, C_I, perimeter); + auto nvmi_sbm = new SBM_BoundaryVectorMassIntegrator(bdr_j_coeff, H1, analyticalSurface->GetAnalyticalGeometricShape(), H1.GetElementOrder(0), int_order, wall_bc_penalty, C_I, perimeter, rho0_max); nvmi_sbm->SetIntRule(&b_ir); Mv.AddBdrFaceIntegrator(nvmi_sbm, ess_bdr_sbm); } @@ -1309,7 +1309,7 @@ void LagrangianHydroOperator::UpdateBdrQuadratureData() const for (int dy = 0; dy < dim; dy++) { qdata.be_mass_data(dx, dy, be * nqp_be + q) = - ip_f.weight * nor_norm * + ip_f.weight * nor_norm * true_n(dx) * true_n(dy) * penalty_mass * std::pow(nDotNtilda, 2.0); } } From 2556cc426689b9a75cb62878efed4efb816ed61f Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Mon, 4 Aug 2025 22:30:43 -0700 Subject: [PATCH 42/44] minor fix --- laghos_mass_integrators.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laghos_mass_integrators.cpp b/laghos_mass_integrators.cpp index 478cc838c..60891c5e2 100644 --- a/laghos_mass_integrators.cpp +++ b/laghos_mass_integrators.cpp @@ -94,7 +94,7 @@ void BoundaryVectorMassIntegratorV2::AssembleFaceMatrix(const FiniteElement &el1 coeff /= detJ; MultVVt(shape, partelmat); - double penalty_mass = std::pow(el1.GetOrder(),2.0) * 1.0 / std::pow(Trans_el1.Weight(), 1.0/vdim) * perimeter * C_I * wall_bc_penalty; + double penalty_mass = (1.0 / std::pow(Trans_el1.Weight(), 1.0/vdim)) * perimeter * C_I * wall_bc_penalty * perimeter; for (int dx = 0; dx < vdim; dx++) { From ac01f3b6858ed13b6083c01bbfd800ad790364ff Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Wed, 6 Aug 2025 20:21:11 -0700 Subject: [PATCH 43/44] working (still a few little strange effects) for Q1-Q0 --- laghos_shift.cpp | 10 +++++----- laghos_solver.cpp | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/laghos_shift.cpp b/laghos_shift.cpp index 016c65bba..e5f0e056a 100644 --- a/laghos_shift.cpp +++ b/laghos_shift.cpp @@ -187,8 +187,8 @@ AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape); - true_n = tn; + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), shape); + //true_n = tn; double nDotNtilda = true_n * tn; double detJ = Trans_el1.Jacobian().Det(); coeff /= std::abs(detJ); @@ -244,7 +244,7 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape_test); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, sbm_shape_test); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), sbm_shape_test); trial_fe.CalcShape(eip1, shape_trial); @@ -294,8 +294,8 @@ AssembleFaceMatrix(const FiniteElement &trial_fe, const FiniteElement &test_fe, Vector dist; Vector true_n; geom.ComputeDistanceAndNormal(position, dist, true_n); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, shape_trial); - shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, 0, sbm_shape_trial); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), shape_trial); + shift_shape(H1, H1, Trans_el1.ElementNo, eip1, dist, H1.GetElementOrder(0), sbm_shape_trial); test_fe.CalcShape(eip1, shape_test); diff --git a/laghos_solver.cpp b/laghos_solver.cpp index 6b6cfde31..e150a8158 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -1145,14 +1145,14 @@ void LagrangianHydroOperator::UpdateQuadratureData(const Vector &S) const Vector dist; Vector true_n; analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); - true_n = tn; + //true_n = tn; double ndotNtilda = true_n * tn; Vector vShape(dim); vShape = 0.0; - //get_shifted_value(v, z_id, eip1, dist, H1.GetElementOrder(0), vShape); - get_shifted_value(v, z_id, eip1, dist, 0, vShape); + get_shifted_value(v, z_id, eip1, dist, H1.GetElementOrder(0), vShape); + //get_shifted_value(v, z_id, eip1, dist, 0, vShape); double vDotn = vShape * true_n; DenseMatrix stress(dim); From 4c290dc25d86fcf1be361c76d0909ea6b4f50ed5 Mon Sep 17 00:00:00 2001 From: Nabil Atallah Date: Mon, 29 Sep 2025 22:40:47 -0700 Subject: [PATCH 44/44] fix --- laghos_solver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laghos_solver.cpp b/laghos_solver.cpp index e150a8158..04a194ccf 100644 --- a/laghos_solver.cpp +++ b/laghos_solver.cpp @@ -1301,7 +1301,7 @@ void LagrangianHydroOperator::UpdateBdrQuadratureData() const Vector dist; Vector true_n; analyticalSurface->ComputeDistanceAndNormal(position, dist, true_n); - true_n = tn; + //true_n = tn; double nDotNtilda = true_n * tn; for (int dx = 0; dx < dim; dx++)