From 021bbd93a07875336e79f56068c3c8ecc0190b42 Mon Sep 17 00:00:00 2001 From: Renato Dell'Osso <54045197+renatodellosso@users.noreply.github.com> Date: Thu, 30 Mar 2023 15:51:07 -0400 Subject: [PATCH 01/15] SysID Files --- ElevatorSysIDConfig.json | 42 + sysid_data20230328-164448.json | 39266 +++++++++++++++++++++++++++++++ 2 files changed, 39308 insertions(+) create mode 100644 ElevatorSysIDConfig.json create mode 100644 sysid_data20230328-164448.json diff --git a/ElevatorSysIDConfig.json b/ElevatorSysIDConfig.json new file mode 100644 index 0000000..bcd05d6 --- /dev/null +++ b/ElevatorSysIDConfig.json @@ -0,0 +1,42 @@ +{ + "counts per rotation": 2048.0, + "encoder type": "Built-in", + "encoding": false, + "gearing denominator": 20.0, + "gearing numerator": 1.0, + "gyro": "Analog Gyro", + "gyro ctor": "0", + "is drivetrain": false, + "motor controllers": [ + "TalonFX", + "TalonFX" + ], + "number of samples per average": 1, + "primary encoder inverted": false, + "primary encoder ports": [ + 0, + 1 + ], + "primary motor ports": [ + 18, + 17 + ], + "primary motors inverted": [ + false, + true + ], + "secondary encoder inverted": false, + "secondary encoder ports": [ + 2, + 3 + ], + "secondary motor ports": [ + 2, + 3 + ], + "secondary motors inverted": [ + false, + false + ], + "velocity measurement period": 100 +} \ No newline at end of file diff --git a/sysid_data20230328-164448.json b/sysid_data20230328-164448.json new file mode 100644 index 0000000..cdc307b --- /dev/null +++ b/sysid_data20230328-164448.json @@ -0,0 +1,39266 @@ +{ + "fast-backward": [ + [ + 1208.92916, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.933718, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.938682, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.943715, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.948709, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.953717, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.958669, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.963715, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.968687, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.974007, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.978668, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.983742, + 0.0, + 1274.53125, + 0.0 + ], + [ + 1208.988762, + -1.443939, + 1274.53125, + 0.0 + ], + [ + 1208.993676, + -1.443939, + 1274.53125, + 0.0 + ], + [ + 1208.998717, + -1.450073, + 1273.388672, + -10.839844 + ], + [ + 1209.003794, + -1.450073, + 1273.388672, + -10.839844 + ], + [ + 1209.008925, + -1.443915, + 1273.388672, + -10.839844 + ], + [ + 1209.013679, + -1.443915, + 1273.388672, + -10.839844 + ], + [ + 1209.018742, + -1.443915, + 1268.75, + -57.128906 + ], + [ + 1209.023701, + -1.443915, + 1268.75, + -57.128906 + ], + [ + 1209.029096, + -1.443915, + 1268.75, + -57.128906 + ], + [ + 1209.033686, + -1.443915, + 1268.75, + -57.128906 + ], + [ + 1209.038711, + -1.443915, + 1263.681641, + -107.617188 + ], + [ + 1209.043908, + -1.443915, + 1263.681641, + -107.617188 + ], + [ + 1209.048667, + -1.443915, + 1263.681641, + -107.617188 + ], + [ + 1209.05382, + -1.443915, + 1263.681641, + -107.617188 + ], + [ + 1209.058709, + -1.443915, + 1258.701172, + -157.519531 + ], + [ + 1209.063664, + -1.443915, + 1258.701172, + -157.519531 + ], + [ + 1209.069343, + -1.429619, + 1258.701172, + -157.519531 + ], + [ + 1209.073665, + -1.429619, + 1258.701172, + -157.519531 + ], + [ + 1209.078707, + -1.429619, + 1253.681641, + -207.617188 + ], + [ + 1209.085301, + -1.423583, + 1253.681641, + -207.617188 + ], + [ + 1209.088689, + -1.423583, + 1253.681641, + -207.617188 + ], + [ + 1209.09366, + -1.423583, + 1253.681641, + -207.617188 + ], + [ + 1209.098697, + -1.406427, + 1248.583984, + -247.753906 + ], + [ + 1209.103653, + -1.406427, + 1248.583984, + -247.753906 + ], + [ + 1209.108907, + -1.406427, + 1248.583984, + -247.753906 + ], + [ + 1209.113717, + -1.406427, + 1248.583984, + -247.753906 + ], + [ + 1209.118681, + -1.406427, + 1243.378906, + -253.613281 + ], + [ + 1209.123708, + -1.406427, + 1243.378906, + -253.613281 + ], + [ + 1209.12871, + -1.406427, + 1243.378906, + -253.613281 + ], + [ + 1209.133716, + -1.400391, + 1243.378906, + -253.613281 + ], + [ + 1209.138812, + -1.400391, + 1238.115234, + -255.761719 + ], + [ + 1209.143722, + -1.400391, + 1238.115234, + -255.761719 + ], + [ + 1209.148945, + -1.400391, + 1238.115234, + -255.761719 + ], + [ + 1209.153802, + -1.400391, + 1238.115234, + -255.761719 + ], + [ + 1209.158693, + -1.400391, + 1238.115234, + -255.761719 + ], + [ + 1209.163859, + -1.400391, + 1232.65625, + -260.449219 + ], + [ + 1209.169005, + -1.400391, + 1232.65625, + -260.449219 + ], + [ + 1209.173714, + -1.400391, + 1232.65625, + -260.449219 + ], + [ + 1209.178706, + -1.400391, + 1232.65625, + -260.449219 + ], + [ + 1209.183685, + -1.400391, + 1232.65625, + -260.449219 + ], + [ + 1209.188884, + -1.400391, + 1221.699219, + -268.847656 + ], + [ + 1209.193788, + -1.400391, + 1221.699219, + -268.847656 + ], + [ + 1209.198682, + -1.400391, + 1221.699219, + -268.847656 + ], + [ + 1209.203704, + -1.400391, + 1221.699219, + -268.847656 + ], + [ + 1209.20911, + -1.400391, + 1216.357422, + -270.117188 + ], + [ + 1209.213768, + -1.400391, + 1216.357422, + -270.117188 + ], + [ + 1209.218685, + -1.400391, + 1216.357422, + -270.117188 + ], + [ + 1209.223666, + -1.400391, + 1216.357422, + -270.117188 + ], + [ + 1209.229857, + -1.400391, + 1211.132812, + -269.726562 + ], + [ + 1209.233706, + -1.400391, + 1211.132812, + -269.726562 + ], + [ + 1209.238727, + -1.400391, + 1211.132812, + -269.726562 + ], + [ + 1209.243667, + -1.400391, + 1211.132812, + -269.726562 + ], + [ + 1209.248699, + -1.400391, + 1211.132812, + -269.726562 + ], + [ + 1209.253825, + -1.400391, + 1205.957031, + -266.894531 + ], + [ + 1209.258689, + -1.400391, + 1205.957031, + -266.894531 + ], + [ + 1209.263664, + -1.400391, + 1205.957031, + -266.894531 + ], + [ + 1209.268985, + -1.400391, + 1205.957031, + -266.894531 + ], + [ + 1209.273683, + -1.400391, + 1205.957031, + -266.894531 + ], + [ + 1209.278757, + -1.400391, + 1200.761719, + -264.0625 + ], + [ + 1209.283665, + -1.400391, + 1200.761719, + -264.0625 + ], + [ + 1209.288728, + -1.400391, + 1200.761719, + -264.0625 + ], + [ + 1209.293701, + -1.400391, + 1200.761719, + -264.0625 + ], + [ + 1209.298706, + -1.403226, + 1195.498047, + -261.914062 + ], + [ + 1209.303675, + -1.403226, + 1195.498047, + -261.914062 + ], + [ + 1209.308725, + -1.403226, + 1195.498047, + -261.914062 + ], + [ + 1209.313753, + -1.403226, + 1195.498047, + -261.914062 + ], + [ + 1209.318698, + -1.403226, + 1190.175781, + -261.914062 + ], + [ + 1209.323685, + -1.403226, + 1190.175781, + -261.914062 + ], + [ + 1209.328719, + -1.403226, + 1190.175781, + -261.914062 + ], + [ + 1209.333693, + -1.403226, + 1190.175781, + -261.914062 + ], + [ + 1209.338688, + -1.41173, + 1184.804688, + -263.085938 + ], + [ + 1209.343662, + -1.41173, + 1184.804688, + -263.085938 + ], + [ + 1209.348869, + -1.41173, + 1184.804688, + -263.085938 + ], + [ + 1209.353707, + -1.41173, + 1184.804688, + -263.085938 + ], + [ + 1209.358705, + -1.41173, + 1179.414062, + -265.429688 + ], + [ + 1209.363755, + -1.41173, + 1179.414062, + -265.429688 + ], + [ + 1209.368714, + -1.41173, + 1179.414062, + -265.429688 + ], + [ + 1209.373805, + -1.41173, + 1179.414062, + -265.429688 + ], + [ + 1209.378698, + -1.41173, + 1173.994141, + -267.480469 + ], + [ + 1209.383813, + -1.41173, + 1173.994141, + -267.480469 + ], + [ + 1209.388932, + -1.41173, + 1173.994141, + -267.480469 + ], + [ + 1209.393931, + -1.41173, + 1173.994141, + -267.480469 + ], + [ + 1209.398747, + -1.41173, + 1168.623047, + -268.75 + ], + [ + 1209.403725, + -1.41173, + 1168.623047, + -268.75 + ], + [ + 1209.408902, + -1.41173, + 1168.623047, + -268.75 + ], + [ + 1209.413769, + -1.41173, + 1168.623047, + -268.75 + ], + [ + 1209.418714, + -1.41173, + 1163.310547, + -268.554688 + ], + [ + 1209.423769, + -1.41173, + 1163.310547, + -268.554688 + ], + [ + 1209.42883, + -1.41173, + 1163.310547, + -268.554688 + ], + [ + 1209.433766, + -1.41173, + 1163.310547, + -268.554688 + ], + [ + 1209.43872, + -1.41173, + 1158.017578, + -268.066406 + ], + [ + 1209.443662, + -1.41173, + 1158.017578, + -268.066406 + ], + [ + 1209.448916, + -1.41173, + 1158.017578, + -268.066406 + ], + [ + 1209.453934, + -1.41173, + 1158.017578, + -268.066406 + ], + [ + 1209.458724, + -1.41173, + 1152.685547, + -267.285156 + ], + [ + 1209.463672, + -1.41173, + 1152.685547, + -267.285156 + ], + [ + 1209.468688, + -1.41173, + 1152.685547, + -267.285156 + ], + [ + 1209.473794, + -1.41173, + 1152.685547, + -267.285156 + ], + [ + 1209.478816, + -1.41173, + 1147.402344, + -266.113281 + ], + [ + 1209.483654, + -1.41173, + 1147.402344, + -266.113281 + ], + [ + 1209.488761, + -1.41173, + 1147.402344, + -266.113281 + ], + [ + 1209.493797, + -1.41173, + 1147.402344, + -266.113281 + ], + [ + 1209.498714, + -1.41173, + 1147.402344, + -266.113281 + ], + [ + 1209.503708, + -1.41173, + 1142.041016, + -265.917969 + ], + [ + 1209.508729, + -1.41173, + 1142.041016, + -265.917969 + ], + [ + 1209.513667, + -1.41173, + 1142.041016, + -265.917969 + ], + [ + 1209.518693, + -1.41173, + 1142.041016, + -265.917969 + ], + [ + 1209.523699, + -1.41173, + 1136.71875, + -265.820312 + ], + [ + 1209.529201, + -1.41173, + 1136.71875, + -265.820312 + ], + [ + 1209.533667, + -1.41173, + 1136.71875, + -265.820312 + ], + [ + 1209.538693, + -1.41173, + 1136.71875, + -265.820312 + ], + [ + 1209.543697, + -1.41173, + 1131.328125, + -266.894531 + ], + [ + 1209.548739, + -1.41173, + 1131.328125, + -266.894531 + ], + [ + 1209.553752, + -1.41173, + 1131.328125, + -266.894531 + ], + [ + 1209.55873, + -1.41173, + 1131.328125, + -266.894531 + ], + [ + 1209.563677, + -1.41173, + 1125.996094, + -266.894531 + ], + [ + 1209.568665, + -1.41173, + 1125.996094, + -266.894531 + ], + [ + 1209.573672, + -1.41173, + 1125.996094, + -266.894531 + ], + [ + 1209.578741, + -1.408895, + 1125.996094, + -266.894531 + ], + [ + 1209.583689, + -1.408895, + 1120.673828, + -267.285156 + ], + [ + 1209.588672, + -1.408895, + 1120.673828, + -267.285156 + ], + [ + 1209.5937, + -1.408895, + 1120.673828, + -267.285156 + ], + [ + 1209.598723, + -1.408895, + 1120.673828, + -267.285156 + ], + [ + 1209.60372, + -1.408895, + 1115.380859, + -266.699219 + ], + [ + 1209.60916, + -1.408895, + 1115.380859, + -266.699219 + ], + [ + 1209.613713, + -1.408895, + 1115.380859, + -266.699219 + ], + [ + 1209.618691, + -1.408895, + 1115.380859, + -266.699219 + ], + [ + 1209.623728, + -1.408895, + 1110.078125, + -266.503906 + ], + [ + 1209.628727, + -1.408895, + 1110.078125, + -266.503906 + ], + [ + 1209.633721, + -1.408895, + 1110.078125, + -266.503906 + ], + [ + 1209.639068, + -1.408895, + 1110.078125, + -266.503906 + ], + [ + 1209.643875, + -1.408895, + 1104.765625, + -265.527344 + ], + [ + 1209.649039, + -1.408895, + 1104.765625, + -265.527344 + ], + [ + 1209.653703, + -1.408895, + 1104.765625, + -265.527344 + ], + [ + 1209.658741, + -1.408895, + 1104.765625, + -265.527344 + ], + [ + 1209.663697, + -1.408895, + 1104.765625, + -265.527344 + ], + [ + 1209.668966, + -1.408895, + 1094.121094, + -265.429688 + ], + [ + 1209.673693, + -1.408895, + 1094.121094, + -265.429688 + ], + [ + 1209.678678, + -1.408895, + 1094.121094, + -265.429688 + ], + [ + 1209.683677, + -1.408895, + 1094.121094, + -265.429688 + ], + [ + 1209.688666, + -1.408895, + 1094.121094, + -265.429688 + ], + [ + 1209.693726, + -1.408895, + 1088.779297, + -266.015625 + ], + [ + 1209.698714, + -1.408895, + 1088.779297, + -266.015625 + ], + [ + 1209.703765, + -1.408895, + 1088.779297, + -266.015625 + ], + [ + 1209.708889, + -1.408895, + 1088.779297, + -266.015625 + ], + [ + 1209.713717, + -1.408895, + 1083.378906, + -266.894531 + ], + [ + 1209.718725, + -1.408895, + 1083.378906, + -266.894531 + ], + [ + 1209.723683, + -1.408895, + 1083.378906, + -266.894531 + ], + [ + 1209.728676, + -1.408895, + 1083.378906, + -266.894531 + ], + [ + 1209.733726, + -1.408895, + 1078.037109, + -267.382812 + ], + [ + 1209.738755, + -1.408895, + 1078.037109, + -267.382812 + ], + [ + 1209.743674, + -1.408895, + 1078.037109, + -267.382812 + ], + [ + 1209.748693, + -1.408895, + 1078.037109, + -267.382812 + ], + [ + 1209.753724, + -1.408895, + 1072.636719, + -267.96875 + ], + [ + 1209.758687, + -1.408895, + 1072.636719, + -267.96875 + ], + [ + 1209.763677, + -1.408895, + 1072.636719, + -267.96875 + ], + [ + 1209.768699, + -1.408895, + 1072.636719, + -267.96875 + ], + [ + 1209.773755, + -1.408895, + 1067.285156, + -268.261719 + ], + [ + 1209.77869, + -1.408895, + 1067.285156, + -268.261719 + ], + [ + 1209.783672, + -1.408895, + 1067.285156, + -268.261719 + ], + [ + 1209.788712, + -1.408895, + 1067.285156, + -268.261719 + ], + [ + 1209.793688, + -1.408895, + 1067.285156, + -268.261719 + ], + [ + 1209.798788, + -1.408895, + 1061.933594, + -268.359375 + ], + [ + 1209.803704, + -1.408895, + 1061.933594, + -268.359375 + ], + [ + 1209.808655, + -1.408895, + 1061.933594, + -268.359375 + ], + [ + 1209.813753, + -1.408895, + 1061.933594, + -268.359375 + ], + [ + 1209.818685, + -1.41173, + 1061.933594, + -268.359375 + ], + [ + 1209.823713, + -1.41173, + 1056.591797, + -267.96875 + ], + [ + 1209.829004, + -1.41173, + 1056.591797, + -267.96875 + ], + [ + 1209.833714, + -1.41173, + 1056.591797, + -267.96875 + ], + [ + 1209.838761, + -1.41173, + 1056.591797, + -267.96875 + ], + [ + 1209.844056, + -1.41173, + 1051.230469, + -268.066406 + ], + [ + 1209.848793, + -1.41173, + 1051.230469, + -268.066406 + ], + [ + 1209.853728, + -1.41173, + 1051.230469, + -268.066406 + ], + [ + 1209.858779, + -1.41173, + 1051.230469, + -268.066406 + ], + [ + 1209.863712, + -1.41173, + 1051.230469, + -268.066406 + ], + [ + 1209.868743, + -1.41173, + 1040.605469, + -266.796875 + ], + [ + 1209.873752, + -1.41173, + 1040.605469, + -266.796875 + ], + [ + 1209.878694, + -1.41173, + 1040.605469, + -266.796875 + ], + [ + 1209.883879, + -1.41173, + 1040.605469, + -266.796875 + ], + [ + 1209.888725, + -1.41173, + 1035.3125, + -266.210938 + ], + [ + 1209.893704, + -1.41173, + 1035.3125, + -266.210938 + ], + [ + 1209.898698, + -1.41173, + 1035.3125, + -266.210938 + ], + [ + 1209.905592, + -1.41173, + 1035.3125, + -266.210938 + ], + [ + 1209.908846, + -1.41173, + 1030.009766, + -265.917969 + ], + [ + 1209.913709, + -1.41173, + 1030.009766, + -265.917969 + ], + [ + 1209.918687, + -1.41173, + 1030.009766, + -265.917969 + ], + [ + 1209.923662, + -1.41173, + 1030.009766, + -265.917969 + ], + [ + 1209.928708, + -1.41173, + 1024.707031, + -265.234375 + ], + [ + 1209.933694, + -1.41173, + 1024.707031, + -265.234375 + ], + [ + 1209.938685, + -1.41173, + 1024.707031, + -265.234375 + ], + [ + 1209.943667, + -1.41173, + 1024.707031, + -265.234375 + ], + [ + 1209.948701, + -1.41173, + 1019.443359, + -264.941406 + ], + [ + 1209.953688, + -1.41173, + 1019.443359, + -264.941406 + ], + [ + 1209.958767, + -1.41173, + 1019.443359, + -264.941406 + ], + [ + 1209.963706, + -1.41173, + 1019.443359, + -264.941406 + ], + [ + 1209.968698, + -1.41173, + 1014.208984, + -264.0625 + ], + [ + 1209.973758, + -1.41173, + 1014.208984, + -264.0625 + ], + [ + 1209.97868, + -1.41173, + 1014.208984, + -264.0625 + ], + [ + 1209.98365, + -1.41173, + 1014.208984, + -264.0625 + ], + [ + 1209.988718, + -1.41173, + 1008.955078, + -263.574219 + ], + [ + 1209.993695, + -1.41173, + 1008.955078, + -263.574219 + ], + [ + 1209.99869, + -1.41173, + 1008.955078, + -263.574219 + ], + [ + 1210.003712, + -1.41173, + 1008.955078, + -263.574219 + ], + [ + 1210.00929, + -1.41173, + 1003.681641, + -263.183594 + ], + [ + 1210.013701, + -1.41173, + 1003.681641, + -263.183594 + ], + [ + 1210.018679, + -1.41173, + 1003.681641, + -263.183594 + ], + [ + 1210.023698, + -1.41173, + 1003.681641, + -263.183594 + ], + [ + 1210.031364, + -1.41173, + 998.457031, + -262.5 + ], + [ + 1210.034381, + -1.417791, + 998.457031, + -262.5 + ], + [ + 1210.038784, + -1.417791, + 998.457031, + -262.5 + ], + [ + 1210.043713, + -1.417791, + 998.457031, + -262.5 + ], + [ + 1210.048812, + -1.41784, + 998.457031, + -262.5 + ], + [ + 1210.053682, + -1.41784, + 993.203125, + -262.402344 + ], + [ + 1210.058667, + -1.41498, + 993.203125, + -262.402344 + ], + [ + 1210.063667, + -1.408895, + 993.203125, + -262.402344 + ], + [ + 1210.068726, + -1.408895, + 993.203125, + -262.402344 + ], + [ + 1210.073773, + -1.408895, + 987.96875, + -262.402344 + ], + [ + 1210.078661, + -1.408895, + 987.96875, + -262.402344 + ], + [ + 1210.083716, + -1.408895, + 987.96875, + -262.402344 + ], + [ + 1210.088715, + -1.408895, + 987.96875, + -262.402344 + ], + [ + 1210.09371, + -1.408895, + 987.96875, + -262.402344 + ], + [ + 1210.098694, + -1.408895, + 982.65625, + -262.890625 + ], + [ + 1210.103686, + -1.408895, + 982.65625, + -262.890625 + ], + [ + 1210.110953, + -1.408895, + 982.65625, + -262.890625 + ], + [ + 1210.113724, + -1.408895, + 982.65625, + -262.890625 + ], + [ + 1210.118726, + -1.408895, + 977.373047, + -263.085938 + ], + [ + 1210.123738, + -1.408895, + 977.373047, + -263.085938 + ], + [ + 1210.128726, + -1.408895, + 977.373047, + -263.085938 + ], + [ + 1210.133769, + -1.408895, + 977.373047, + -263.085938 + ], + [ + 1210.138695, + -1.408895, + 972.070312, + -263.769531 + ], + [ + 1210.143696, + -1.408895, + 972.070312, + -263.769531 + ], + [ + 1210.149056, + -1.408895, + 972.070312, + -263.769531 + ], + [ + 1210.153868, + -1.41498, + 972.070312, + -263.769531 + ], + [ + 1210.158714, + -1.41498, + 966.875, + -263.378906 + ], + [ + 1210.163771, + -1.41498, + 966.875, + -263.378906 + ], + [ + 1210.168695, + -1.41498, + 966.875, + -263.378906 + ], + [ + 1210.173729, + -1.408895, + 966.875, + -263.378906 + ], + [ + 1210.178748, + -1.408895, + 961.601562, + -263.671875 + ], + [ + 1210.183662, + -1.408895, + 961.601562, + -263.671875 + ], + [ + 1210.1887, + -1.408895, + 961.601562, + -263.671875 + ], + [ + 1210.193668, + -1.408895, + 961.601562, + -263.671875 + ], + [ + 1210.19875, + -1.408895, + 956.396484, + -262.597656 + ], + [ + 1210.20366, + -1.408895, + 956.396484, + -262.597656 + ], + [ + 1210.209189, + -1.408895, + 956.396484, + -262.597656 + ], + [ + 1210.213705, + -1.408895, + 956.396484, + -262.597656 + ], + [ + 1210.218705, + -1.408895, + 956.396484, + -262.597656 + ], + [ + 1210.223683, + -1.408895, + 951.142578, + -262.402344 + ], + [ + 1210.228672, + -1.408895, + 951.142578, + -262.402344 + ], + [ + 1210.233963, + -1.408895, + 951.142578, + -262.402344 + ], + [ + 1210.2387, + -1.408895, + 951.142578, + -262.402344 + ], + [ + 1210.243688, + -1.408895, + 945.927734, + -261.523438 + ], + [ + 1210.248805, + -1.408895, + 945.927734, + -261.523438 + ], + [ + 1210.253697, + -1.408895, + 945.927734, + -261.523438 + ], + [ + 1210.258704, + -1.408895, + 945.927734, + -261.523438 + ], + [ + 1210.263684, + -1.408895, + 940.654297, + -262.304688 + ], + [ + 1210.26879, + -1.408895, + 940.654297, + -262.304688 + ], + [ + 1210.273727, + -1.414956, + 940.654297, + -262.304688 + ], + [ + 1210.278693, + -1.414956, + 940.654297, + -262.304688 + ], + [ + 1210.283678, + -1.408895, + 935.439453, + -261.523438 + ], + [ + 1210.288724, + -1.408895, + 935.439453, + -261.523438 + ], + [ + 1210.293752, + -1.408895, + 935.439453, + -261.523438 + ], + [ + 1210.29872, + -1.408895, + 935.439453, + -261.523438 + ], + [ + 1210.303678, + -1.408895, + 930.214844, + -261.816406 + ], + [ + 1210.308862, + -1.408895, + 930.214844, + -261.816406 + ], + [ + 1210.315841, + -1.408895, + 930.214844, + -261.816406 + ], + [ + 1210.318688, + -1.408895, + 930.214844, + -261.816406 + ], + [ + 1210.323755, + -1.408895, + 925.039062, + -260.9375 + ], + [ + 1210.328728, + -1.408895, + 925.039062, + -260.9375 + ], + [ + 1210.33371, + -1.408895, + 925.039062, + -260.9375 + ], + [ + 1210.338693, + -1.408895, + 925.039062, + -260.9375 + ], + [ + 1210.343684, + -1.408895, + 925.039062, + -260.9375 + ], + [ + 1210.34904, + -1.41498, + 914.677734, + -259.667969 + ], + [ + 1210.353738, + -1.421041, + 914.677734, + -259.667969 + ], + [ + 1210.358708, + -1.421041, + 914.677734, + -259.667969 + ], + [ + 1210.363746, + -1.421041, + 914.677734, + -259.667969 + ], + [ + 1210.368718, + -1.421041, + 914.677734, + -259.667969 + ], + [ + 1210.373903, + -1.421041, + 909.492188, + -259.667969 + ], + [ + 1210.378707, + -1.421041, + 909.492188, + -259.667969 + ], + [ + 1210.383687, + -1.414956, + 909.492188, + -259.667969 + ], + [ + 1210.388689, + -1.408895, + 909.492188, + -259.667969 + ], + [ + 1210.393716, + -1.408895, + 909.492188, + -259.667969 + ], + [ + 1210.398716, + -1.414956, + 904.277344, + -259.472656 + ], + [ + 1210.403689, + -1.414956, + 904.277344, + -259.472656 + ], + [ + 1210.408802, + -1.408895, + 904.277344, + -259.472656 + ], + [ + 1210.413669, + -1.408895, + 904.277344, + -259.472656 + ], + [ + 1210.418739, + -1.408895, + 899.0625, + -259.570312 + ], + [ + 1210.42367, + -1.421041, + 899.0625, + -259.570312 + ], + [ + 1210.428724, + -1.421041, + 899.0625, + -259.570312 + ], + [ + 1210.433682, + -1.408895, + 899.0625, + -259.570312 + ], + [ + 1210.439028, + -1.408895, + 893.837891, + -259.863281 + ], + [ + 1210.443678, + -1.421041, + 893.837891, + -259.863281 + ], + [ + 1210.44868, + -1.421041, + 893.837891, + -259.863281 + ], + [ + 1210.453705, + -1.408895, + 893.837891, + -259.863281 + ], + [ + 1210.458649, + -1.408895, + 893.837891, + -259.863281 + ], + [ + 1210.463732, + -1.408895, + 888.574219, + -260.839844 + ], + [ + 1210.468792, + -1.408895, + 888.574219, + -260.839844 + ], + [ + 1210.473682, + -1.408895, + 888.574219, + -260.839844 + ], + [ + 1210.47865, + -1.408895, + 888.574219, + -260.839844 + ], + [ + 1210.483721, + -1.408895, + 883.330078, + -261.621094 + ], + [ + 1210.488723, + -1.408895, + 883.330078, + -261.621094 + ], + [ + 1210.493771, + -1.408895, + 883.330078, + -261.621094 + ], + [ + 1210.498658, + -1.408895, + 883.330078, + -261.621094 + ], + [ + 1210.503723, + -1.408895, + 878.144531, + -261.328125 + ], + [ + 1210.508855, + -1.408895, + 878.144531, + -261.328125 + ], + [ + 1210.513669, + -1.408895, + 878.144531, + -261.328125 + ], + [ + 1210.520786, + -1.408895, + 878.144531, + -261.328125 + ], + [ + 1210.523714, + -1.408895, + 872.939453, + -261.328125 + ], + [ + 1210.529051, + -1.408895, + 872.939453, + -261.328125 + ], + [ + 1210.533714, + -1.408895, + 872.939453, + -261.328125 + ], + [ + 1210.538661, + -1.408895, + 872.939453, + -261.328125 + ], + [ + 1210.543702, + -1.41498, + 867.792969, + -260.546875 + ], + [ + 1210.549228, + -1.41498, + 867.792969, + -260.546875 + ], + [ + 1210.553823, + -1.408895, + 867.792969, + -260.546875 + ], + [ + 1210.55868, + -1.408895, + 867.792969, + -260.546875 + ], + [ + 1210.563692, + -1.408895, + 862.578125, + -260.058594 + ], + [ + 1210.568709, + -1.408895, + 862.578125, + -260.058594 + ], + [ + 1210.573684, + -1.408895, + 862.578125, + -260.058594 + ], + [ + 1210.578694, + -1.408895, + 862.578125, + -260.058594 + ], + [ + 1210.583694, + -1.408895, + 857.412109, + -258.984375 + ], + [ + 1210.588799, + -1.408895, + 857.412109, + -258.984375 + ], + [ + 1210.593713, + -1.408895, + 857.412109, + -258.984375 + ], + [ + 1210.598698, + -1.408895, + 857.412109, + -258.984375 + ], + [ + 1210.603717, + -1.408895, + 852.226562, + -259.179688 + ], + [ + 1210.608721, + -1.408895, + 852.226562, + -259.179688 + ], + [ + 1210.613759, + -1.408895, + 852.226562, + -259.179688 + ], + [ + 1210.618673, + -1.408895, + 852.226562, + -259.179688 + ], + [ + 1210.623843, + -1.408895, + 847.021484, + -259.179688 + ], + [ + 1210.628719, + -1.408895, + 847.021484, + -259.179688 + ], + [ + 1210.633693, + -1.408895, + 847.021484, + -259.179688 + ], + [ + 1210.638697, + -1.408895, + 847.021484, + -259.179688 + ], + [ + 1210.643741, + -1.408895, + 847.021484, + -260.058594 + ], + [ + 1210.648991, + -1.408895, + 841.787109, + -260.058594 + ], + [ + 1210.653659, + -1.408895, + 841.787109, + -260.058594 + ], + [ + 1210.658648, + -1.408895, + 841.787109, + -260.058594 + ], + [ + 1210.663696, + -1.408895, + 841.787109, + -260.058594 + ], + [ + 1210.668817, + -1.408895, + 831.416016, + -259.960938 + ], + [ + 1210.673846, + -1.408895, + 831.416016, + -259.960938 + ], + [ + 1210.678656, + -1.408895, + 831.416016, + -259.960938 + ], + [ + 1210.683684, + -1.408895, + 831.416016, + -259.960938 + ], + [ + 1210.688999, + -1.414956, + 826.220703, + -259.863281 + ], + [ + 1210.693671, + -1.414956, + 826.220703, + -259.863281 + ], + [ + 1210.698687, + -1.414956, + 826.220703, + -259.863281 + ], + [ + 1210.703776, + -1.408895, + 826.220703, + -259.863281 + ], + [ + 1210.708964, + -1.408895, + 821.015625, + -260.15625 + ], + [ + 1210.713666, + -1.408895, + 821.015625, + -260.15625 + ], + [ + 1210.718697, + -1.414956, + 821.015625, + -260.15625 + ], + [ + 1210.723721, + -1.414956, + 821.015625, + -260.15625 + ], + [ + 1210.72877, + -1.408895, + 815.839844, + -259.570312 + ], + [ + 1210.733723, + -1.408895, + 815.839844, + -259.570312 + ], + [ + 1210.738733, + -1.41498, + 815.839844, + -259.570312 + ], + [ + 1210.743732, + -1.41498, + 815.839844, + -259.570312 + ], + [ + 1210.748694, + -1.408895, + 815.839844, + -259.570312 + ], + [ + 1210.75382, + -1.408895, + 810.654297, + -259.667969 + ], + [ + 1210.758672, + -1.408895, + 810.654297, + -259.667969 + ], + [ + 1210.763695, + -1.408895, + 810.654297, + -259.667969 + ], + [ + 1210.768942, + -1.41498, + 810.654297, + -259.667969 + ], + [ + 1210.77366, + -1.41498, + 810.654297, + -259.667969 + ], + [ + 1210.778754, + -1.41498, + 805.46875, + -259.570312 + ], + [ + 1210.783677, + -1.408895, + 805.46875, + -259.570312 + ], + [ + 1210.78901, + -1.408895, + 805.46875, + -259.570312 + ], + [ + 1210.793712, + -1.408895, + 805.46875, + -259.570312 + ], + [ + 1210.798677, + -1.408895, + 805.46875, + -259.570312 + ], + [ + 1210.803779, + -1.408895, + 800.244141, + -259.863281 + ], + [ + 1210.808899, + -1.408895, + 800.244141, + -259.863281 + ], + [ + 1210.813761, + -1.408895, + 800.244141, + -259.863281 + ], + [ + 1210.818671, + -1.408895, + 800.244141, + -259.863281 + ], + [ + 1210.823683, + -1.408895, + 800.244141, + -259.863281 + ], + [ + 1210.830293, + -1.408895, + 789.902344, + -259.375 + ], + [ + 1210.833724, + -1.41498, + 789.902344, + -259.375 + ], + [ + 1210.838727, + -1.41498, + 789.902344, + -259.375 + ], + [ + 1210.843695, + -1.408895, + 789.902344, + -259.375 + ], + [ + 1210.848709, + -1.408895, + 789.902344, + -259.375 + ], + [ + 1210.853737, + -1.408895, + 784.707031, + -259.375 + ], + [ + 1210.858694, + -1.408895, + 784.707031, + -259.375 + ], + [ + 1210.863694, + -1.408895, + 784.707031, + -259.375 + ], + [ + 1210.868706, + -1.408895, + 784.707031, + -259.375 + ], + [ + 1210.873776, + -1.408895, + 779.53125, + -259.375 + ], + [ + 1210.878708, + -1.408895, + 779.53125, + -259.375 + ], + [ + 1210.883746, + -1.408895, + 779.53125, + -259.375 + ], + [ + 1210.888674, + -1.408895, + 779.53125, + -259.375 + ], + [ + 1210.89379, + -1.408895, + 774.306641, + -259.472656 + ], + [ + 1210.898717, + -1.408895, + 774.306641, + -259.472656 + ], + [ + 1210.903693, + -1.408895, + 774.306641, + -259.472656 + ], + [ + 1210.908825, + -1.408895, + 774.306641, + -259.472656 + ], + [ + 1210.913661, + -1.408895, + 774.306641, + -259.472656 + ], + [ + 1210.918686, + -1.408895, + 769.033203, + -260.351562 + ], + [ + 1210.923689, + -1.408895, + 769.033203, + -260.351562 + ], + [ + 1210.928691, + -1.408895, + 769.033203, + -260.351562 + ], + [ + 1210.933747, + -1.408895, + 769.033203, + -260.351562 + ], + [ + 1210.938688, + -1.408895, + 763.75, + -261.328125 + ], + [ + 1210.943731, + -1.408895, + 763.75, + -261.328125 + ], + [ + 1210.948838, + -1.408895, + 763.75, + -261.328125 + ], + [ + 1210.953682, + -1.408895, + 763.75, + -261.328125 + ], + [ + 1210.9587, + -1.408895, + 758.486328, + -262.304688 + ], + [ + 1210.963688, + -1.408895, + 758.486328, + -262.304688 + ], + [ + 1210.968894, + -1.408895, + 758.486328, + -262.304688 + ], + [ + 1210.973714, + -1.408895, + 758.486328, + -262.304688 + ], + [ + 1210.978695, + -1.408895, + 753.232422, + -262.988281 + ], + [ + 1210.983705, + -1.408895, + 753.232422, + -262.988281 + ], + [ + 1210.988672, + -1.408895, + 753.232422, + -262.988281 + ], + [ + 1210.993741, + -1.408895, + 753.232422, + -262.988281 + ], + [ + 1210.998672, + -1.408895, + 748.027344, + -262.695312 + ], + [ + 1211.003691, + -1.408895, + 748.027344, + -262.695312 + ], + [ + 1211.00876, + -1.408895, + 748.027344, + -262.695312 + ], + [ + 1211.013685, + -1.408895, + 748.027344, + -262.695312 + ], + [ + 1211.018749, + -1.408895, + 742.822266, + -262.011719 + ], + [ + 1211.023684, + -1.408895, + 742.822266, + -262.011719 + ], + [ + 1211.02872, + -1.408895, + 742.822266, + -262.011719 + ], + [ + 1211.033876, + -1.408895, + 742.822266, + -262.011719 + ], + [ + 1211.038693, + -1.408895, + 742.822266, + -262.011719 + ], + [ + 1211.043774, + -1.408895, + 737.666016, + -260.839844 + ], + [ + 1211.048716, + -1.408895, + 737.666016, + -260.839844 + ], + [ + 1211.054009, + -1.408895, + 737.666016, + -260.839844 + ], + [ + 1211.058702, + -1.408895, + 737.666016, + -260.839844 + ], + [ + 1211.063678, + -1.408895, + 737.666016, + -260.839844 + ], + [ + 1211.068801, + -1.408895, + 727.294922, + -259.375 + ], + [ + 1211.073738, + -1.408895, + 727.294922, + -259.375 + ], + [ + 1211.078713, + -1.408895, + 727.294922, + -259.375 + ], + [ + 1211.083696, + -1.408895, + 727.294922, + -259.375 + ], + [ + 1211.088676, + -1.408895, + 727.294922, + -259.375 + ], + [ + 1211.093758, + -1.408895, + 722.099609, + -259.375 + ], + [ + 1211.098713, + -1.408895, + 722.099609, + -259.375 + ], + [ + 1211.103687, + -1.408895, + 722.099609, + -259.375 + ], + [ + 1211.108712, + -1.408895, + 722.099609, + -259.375 + ], + [ + 1211.113706, + -1.41498, + 722.099609, + -259.375 + ], + [ + 1211.118815, + -1.41498, + 716.933594, + -258.886719 + ], + [ + 1211.123701, + -1.41498, + 716.933594, + -258.886719 + ], + [ + 1211.12894, + -1.421041, + 716.933594, + -258.886719 + ], + [ + 1211.136013, + -1.414956, + 716.933594, + -258.886719 + ], + [ + 1211.138678, + -1.414956, + 716.933594, + -258.886719 + ], + [ + 1211.143751, + -1.408895, + 711.71875, + -259.570312 + ], + [ + 1211.148683, + -1.41498, + 711.71875, + -259.570312 + ], + [ + 1211.153662, + -1.41498, + 711.71875, + -259.570312 + ], + [ + 1211.158668, + -1.408895, + 711.71875, + -259.570312 + ], + [ + 1211.163703, + -1.408895, + 711.71875, + -259.570312 + ], + [ + 1211.1689, + -1.41498, + 701.318359, + -259.863281 + ], + [ + 1211.173675, + -1.41498, + 701.318359, + -259.863281 + ], + [ + 1211.17872, + -1.41498, + 701.318359, + -259.863281 + ], + [ + 1211.1838, + -1.421041, + 701.318359, + -259.863281 + ], + [ + 1211.188745, + -1.421041, + 701.318359, + -259.960938 + ], + [ + 1211.193669, + -1.421041, + 696.103516, + -259.960938 + ], + [ + 1211.198711, + -1.421041, + 696.103516, + -259.960938 + ], + [ + 1211.203683, + -1.421041, + 696.103516, + -259.960938 + ], + [ + 1211.209268, + -1.408895, + 690.839844, + -260.9375 + ], + [ + 1211.213704, + -1.408895, + 690.839844, + -260.9375 + ], + [ + 1211.218674, + -1.408895, + 690.839844, + -260.9375 + ], + [ + 1211.223807, + -1.408895, + 690.839844, + -260.9375 + ], + [ + 1211.228666, + -1.408895, + 690.839844, + -260.9375 + ], + [ + 1211.233814, + -1.408895, + 685.634766, + -260.742188 + ], + [ + 1211.238729, + -1.41498, + 685.634766, + -260.742188 + ], + [ + 1211.243678, + -1.41498, + 685.634766, + -260.742188 + ], + [ + 1211.248706, + -1.414956, + 685.634766, + -260.742188 + ], + [ + 1211.253671, + -1.414956, + 685.634766, + -260.742188 + ], + [ + 1211.25892, + -1.41498, + 680.410156, + -261.425781 + ], + [ + 1211.263659, + -1.41498, + 680.410156, + -261.425781 + ], + [ + 1211.268798, + -1.408895, + 680.410156, + -261.425781 + ], + [ + 1211.273664, + -1.408895, + 680.410156, + -261.425781 + ], + [ + 1211.278657, + -1.408895, + 680.410156, + -261.425781 + ], + [ + 1211.283755, + -1.408895, + 675.195312, + -261.132812 + ], + [ + 1211.28877, + -1.408895, + 675.195312, + -261.132812 + ], + [ + 1211.293707, + -1.408895, + 675.195312, + -261.132812 + ], + [ + 1211.298705, + -1.408895, + 675.195312, + -261.132812 + ], + [ + 1211.30371, + -1.408895, + 675.195312, + -261.132812 + ], + [ + 1211.309315, + -1.408895, + 664.814453, + -260.253906 + ], + [ + 1211.313717, + -1.408895, + 664.814453, + -260.253906 + ], + [ + 1211.318769, + -1.408895, + 664.814453, + -260.253906 + ], + [ + 1211.323705, + -1.408895, + 664.814453, + -260.253906 + ], + [ + 1211.328906, + -1.408895, + 659.648438, + -259.960938 + ], + [ + 1211.333794, + -1.408895, + 659.648438, + -259.960938 + ], + [ + 1211.340966, + -1.408895, + 659.648438, + -259.960938 + ], + [ + 1211.343708, + -1.408895, + 659.648438, + -259.960938 + ], + [ + 1211.348733, + -1.41498, + 654.472656, + -259.375 + ], + [ + 1211.353787, + -1.421041, + 654.472656, + -259.375 + ], + [ + 1211.35871, + -1.414956, + 654.472656, + -259.375 + ], + [ + 1211.363692, + -1.414956, + 654.472656, + -259.375 + ], + [ + 1211.369046, + -1.414956, + 649.277344, + -259.277344 + ], + [ + 1211.373716, + -1.414956, + 649.277344, + -259.277344 + ], + [ + 1211.378659, + -1.414956, + 649.277344, + -259.277344 + ], + [ + 1211.383868, + -1.408895, + 649.277344, + -259.277344 + ], + [ + 1211.389063, + -1.408895, + 644.082031, + -259.082031 + ], + [ + 1211.393719, + -1.408895, + 644.082031, + -259.082031 + ], + [ + 1211.398727, + -1.414956, + 644.082031, + -259.082031 + ], + [ + 1211.403662, + -1.414956, + 644.082031, + -259.082031 + ], + [ + 1211.408752, + -1.408895, + 638.896484, + -259.277344 + ], + [ + 1211.413697, + -1.408895, + 638.896484, + -259.277344 + ], + [ + 1211.418679, + -1.408895, + 638.896484, + -259.277344 + ], + [ + 1211.423665, + -1.408895, + 638.896484, + -259.277344 + ], + [ + 1211.428851, + -1.408895, + 633.681641, + -259.570312 + ], + [ + 1211.43371, + -1.408895, + 633.681641, + -259.570312 + ], + [ + 1211.438652, + -1.408895, + 633.681641, + -259.570312 + ], + [ + 1211.443693, + -1.408895, + 633.681641, + -259.570312 + ], + [ + 1211.448676, + -1.408895, + 633.681641, + -259.570312 + ], + [ + 1211.453736, + -1.421041, + 628.457031, + -260.15625 + ], + [ + 1211.45871, + -1.421041, + 628.457031, + -260.15625 + ], + [ + 1211.463808, + -1.408895, + 628.457031, + -260.15625 + ], + [ + 1211.468904, + -1.408895, + 628.457031, + -260.15625 + ], + [ + 1211.473739, + -1.408895, + 623.173828, + -260.839844 + ], + [ + 1211.478667, + -1.408895, + 623.173828, + -260.839844 + ], + [ + 1211.483656, + -1.408895, + 623.173828, + -260.839844 + ], + [ + 1211.489018, + -1.41498, + 623.173828, + -260.839844 + ], + [ + 1211.494408, + -1.41498, + 617.96875, + -261.132812 + ], + [ + 1211.498664, + -1.41498, + 617.96875, + -261.132812 + ], + [ + 1211.503665, + -1.408895, + 617.96875, + -261.132812 + ], + [ + 1211.508672, + -1.408895, + 617.96875, + -261.132812 + ], + [ + 1211.513695, + -1.408895, + 617.96875, + -261.132812 + ], + [ + 1211.518669, + -1.408895, + 612.734375, + -261.523438 + ], + [ + 1211.523752, + -1.408895, + 612.734375, + -261.523438 + ], + [ + 1211.528713, + -1.408895, + 612.734375, + -261.523438 + ], + [ + 1211.533749, + -1.408895, + 612.734375, + -261.523438 + ], + [ + 1211.538703, + -1.408895, + 607.548828, + -261.328125 + ], + [ + 1211.545734, + -1.408895, + 607.548828, + -261.328125 + ], + [ + 1211.548727, + -1.408895, + 607.548828, + -261.328125 + ], + [ + 1211.553699, + -1.408895, + 607.548828, + -261.328125 + ], + [ + 1211.55873, + -1.408895, + 602.333984, + -261.132812 + ], + [ + 1211.563703, + -1.408895, + 602.333984, + -261.132812 + ], + [ + 1211.568734, + -1.408895, + 602.333984, + -261.132812 + ], + [ + 1211.573695, + -1.408895, + 602.333984, + -261.132812 + ], + [ + 1211.5787, + -1.408895, + 602.333984, + -261.132812 + ], + [ + 1211.583695, + -1.408895, + 597.197266, + -259.863281 + ], + [ + 1211.588706, + -1.408895, + 597.197266, + -259.863281 + ], + [ + 1211.593719, + -1.408895, + 597.197266, + -259.863281 + ], + [ + 1211.598673, + -1.408895, + 597.197266, + -259.863281 + ], + [ + 1211.60368, + -1.408895, + 592.03125, + -259.472656 + ], + [ + 1211.608901, + -1.408895, + 592.03125, + -259.472656 + ], + [ + 1211.613776, + -1.408895, + 592.03125, + -259.472656 + ], + [ + 1211.618656, + -1.408895, + 592.03125, + -259.472656 + ], + [ + 1211.623691, + -1.408895, + 586.875, + -258.691406 + ], + [ + 1211.628701, + -1.408895, + 586.875, + -258.691406 + ], + [ + 1211.633736, + -1.408895, + 586.875, + -258.691406 + ], + [ + 1211.638702, + -1.408895, + 586.875, + -258.691406 + ], + [ + 1211.643684, + -1.408895, + 581.679688, + -258.789062 + ], + [ + 1211.649017, + -1.408895, + 581.679688, + -258.789062 + ], + [ + 1211.653725, + -1.408895, + 581.679688, + -258.789062 + ], + [ + 1211.658653, + -1.408895, + 581.679688, + -258.789062 + ], + [ + 1211.663685, + -1.408895, + 576.533203, + -258.105469 + ], + [ + 1211.668691, + -1.408895, + 576.533203, + -258.105469 + ], + [ + 1211.673734, + -1.421041, + 576.533203, + -258.105469 + ], + [ + 1211.678654, + -1.421041, + 576.533203, + -258.105469 + ], + [ + 1211.683682, + -1.414956, + 571.357422, + -258.496094 + ], + [ + 1211.688684, + -1.408895, + 571.357422, + -258.496094 + ], + [ + 1211.693798, + -1.408895, + 571.357422, + -258.496094 + ], + [ + 1211.698671, + -1.408895, + 571.357422, + -258.496094 + ], + [ + 1211.703685, + -1.408895, + 566.162109, + -258.496094 + ], + [ + 1211.708692, + -1.408895, + 566.162109, + -258.496094 + ], + [ + 1211.713706, + -1.408895, + 566.162109, + -258.496094 + ], + [ + 1211.718693, + -1.408895, + 566.162109, + -258.496094 + ], + [ + 1211.723756, + -1.408895, + 560.966797, + -259.082031 + ], + [ + 1211.728783, + -1.408895, + 560.966797, + -259.082031 + ], + [ + 1211.733686, + -1.408895, + 560.966797, + -259.082031 + ], + [ + 1211.738755, + -1.408895, + 560.966797, + -259.082031 + ], + [ + 1211.74366, + -1.408895, + 560.966797, + -259.082031 + ], + [ + 1211.751168, + -1.408895, + 550.605469, + -259.277344 + ], + [ + 1211.753668, + -1.408895, + 550.605469, + -259.277344 + ], + [ + 1211.758656, + -1.408895, + 550.605469, + -259.277344 + ], + [ + 1211.763672, + -1.421041, + 550.605469, + -259.277344 + ], + [ + 1211.768711, + -1.421041, + 550.605469, + -259.277344 + ], + [ + 1211.773717, + -1.408895, + 545.410156, + -259.375 + ], + [ + 1211.778684, + -1.408895, + 545.410156, + -259.375 + ], + [ + 1211.783718, + -1.408895, + 545.410156, + -259.375 + ], + [ + 1211.788738, + -1.408895, + 545.410156, + -259.375 + ], + [ + 1211.793728, + -1.41498, + 540.195312, + -259.667969 + ], + [ + 1211.798696, + -1.41498, + 540.195312, + -259.667969 + ], + [ + 1211.803702, + -1.408895, + 540.195312, + -259.667969 + ], + [ + 1211.808722, + -1.408895, + 540.195312, + -259.667969 + ], + [ + 1211.813811, + -1.408895, + 535.029297, + -259.375 + ], + [ + 1211.818697, + -1.408895, + 535.029297, + -259.375 + ], + [ + 1211.823839, + -1.408895, + 535.029297, + -259.375 + ], + [ + 1211.828719, + -1.408895, + 535.029297, + -259.375 + ], + [ + 1211.833701, + -1.408895, + 535.029297, + -259.375 + ], + [ + 1211.838728, + -1.408895, + 529.833984, + -259.570312 + ], + [ + 1211.843657, + -1.408895, + 529.833984, + -259.570312 + ], + [ + 1211.848727, + -1.408895, + 529.833984, + -259.570312 + ], + [ + 1211.853759, + -1.408895, + 529.833984, + -259.570312 + ], + [ + 1211.858698, + -1.408895, + 529.833984, + -259.570312 + ], + [ + 1211.863686, + -1.408895, + 524.667969, + -259.277344 + ], + [ + 1211.868698, + -1.408895, + 524.667969, + -259.277344 + ], + [ + 1211.874239, + -1.408895, + 524.667969, + -259.277344 + ], + [ + 1211.878764, + -1.408895, + 524.667969, + -259.277344 + ], + [ + 1211.883676, + -1.408895, + 519.511719, + -258.984375 + ], + [ + 1211.888946, + -1.408895, + 519.511719, + -258.984375 + ], + [ + 1211.893669, + -1.408895, + 519.511719, + -258.984375 + ], + [ + 1211.898763, + -1.421041, + 519.511719, + -258.984375 + ], + [ + 1211.903674, + -1.421041, + 514.384766, + -258.203125 + ], + [ + 1211.908783, + -1.408895, + 514.384766, + -258.203125 + ], + [ + 1211.913651, + -1.408895, + 514.384766, + -258.203125 + ], + [ + 1211.918692, + -1.408895, + 514.384766, + -258.203125 + ], + [ + 1211.923694, + -1.408895, + 509.21875, + -258.007812 + ], + [ + 1211.928677, + -1.408895, + 509.21875, + -258.007812 + ], + [ + 1211.933676, + -1.408895, + 509.21875, + -258.007812 + ], + [ + 1211.938695, + -1.408895, + 509.21875, + -258.007812 + ], + [ + 1211.943693, + -1.408895, + 504.0625, + -257.8125 + ], + [ + 1211.948698, + -1.408895, + 504.0625, + -257.8125 + ], + [ + 1211.955921, + -1.414956, + 504.0625, + -257.8125 + ], + [ + 1211.958694, + -1.414956, + 504.0625, + -257.8125 + ], + [ + 1211.963673, + -1.414956, + 498.896484, + -257.714844 + ], + [ + 1211.968688, + -1.414956, + 498.896484, + -257.714844 + ], + [ + 1211.973651, + -1.414956, + 498.896484, + -257.714844 + ], + [ + 1211.978699, + -1.406061, + 498.896484, + -257.714844 + ], + [ + 1211.983706, + -1.406061, + 493.710938, + -257.910156 + ], + [ + 1211.98873, + -1.412121, + 493.710938, + -257.910156 + ], + [ + 1211.993696, + -1.412121, + 493.710938, + -257.910156 + ], + [ + 1211.998699, + -1.406061, + 493.710938, + -257.910156 + ], + [ + 1212.003709, + -1.406061, + 488.544922, + -258.300781 + ], + [ + 1212.008874, + -1.406061, + 488.544922, + -258.300781 + ], + [ + 1212.013725, + -1.406061, + 488.544922, + -258.300781 + ], + [ + 1212.018689, + -1.406061, + 488.544922, + -258.300781 + ], + [ + 1212.023706, + -1.412121, + 483.300781, + -259.375 + ], + [ + 1212.02875, + -1.418182, + 483.300781, + -259.375 + ], + [ + 1212.033867, + -1.412121, + 483.300781, + -259.375 + ], + [ + 1212.038768, + -1.406061, + 483.300781, + -259.375 + ], + [ + 1212.043715, + -1.406061, + 478.085938, + -259.765625 + ], + [ + 1212.048714, + -1.406061, + 478.085938, + -259.765625 + ], + [ + 1212.053769, + -1.406061, + 478.085938, + -259.765625 + ], + [ + 1212.058871, + -1.412121, + 478.085938, + -259.765625 + ], + [ + 1212.063734, + -1.418182, + 472.861328, + -260.449219 + ], + [ + 1212.068973, + -1.412121, + 472.861328, + -260.449219 + ], + [ + 1212.073697, + -1.412121, + 472.861328, + -260.449219 + ], + [ + 1212.078797, + -1.412121, + 472.861328, + -260.449219 + ], + [ + 1212.083685, + -1.412121, + 472.861328, + -260.449219 + ], + [ + 1212.088699, + -1.412121, + 462.431641, + -261.230469 + ], + [ + 1212.093689, + -1.406061, + 462.431641, + -261.230469 + ], + [ + 1212.098654, + -1.406061, + 462.431641, + -261.230469 + ], + [ + 1212.103733, + -1.406061, + 462.431641, + -261.230469 + ], + [ + 1212.108997, + -1.406061, + 457.275391, + -260.253906 + ], + [ + 1212.113682, + -1.406061, + 457.275391, + -260.253906 + ], + [ + 1212.118676, + -1.406061, + 457.275391, + -260.253906 + ], + [ + 1212.12372, + -1.406061, + 457.275391, + -260.253906 + ], + [ + 1212.128693, + -1.406061, + 457.275391, + -260.253906 + ], + [ + 1212.133702, + -1.406061, + 452.089844, + -259.960938 + ], + [ + 1212.138671, + -1.406061, + 452.089844, + -259.960938 + ], + [ + 1212.143767, + -1.406061, + 452.089844, + -259.960938 + ], + [ + 1212.148731, + -1.406061, + 452.089844, + -259.960938 + ], + [ + 1212.153685, + -1.406061, + 446.914062, + -259.277344 + ], + [ + 1212.160741, + -1.406061, + 446.914062, + -259.277344 + ], + [ + 1212.163705, + -1.406061, + 446.914062, + -259.277344 + ], + [ + 1212.168686, + -1.406061, + 446.914062, + -259.277344 + ], + [ + 1212.17372, + -1.418182, + 441.748047, + -259.375 + ], + [ + 1212.178648, + -1.418182, + 441.748047, + -259.375 + ], + [ + 1212.183794, + -1.406061, + 441.748047, + -259.375 + ], + [ + 1212.188721, + -1.406061, + 441.748047, + -259.375 + ], + [ + 1212.19376, + -1.406061, + 436.601562, + -258.203125 + ], + [ + 1212.198679, + -1.412121, + 436.601562, + -258.203125 + ], + [ + 1212.203645, + -1.412121, + 436.601562, + -258.203125 + ], + [ + 1212.208846, + -1.412121, + 436.601562, + -258.203125 + ], + [ + 1212.213747, + -1.412121, + 431.435547, + -258.300781 + ], + [ + 1212.218644, + -1.412121, + 431.435547, + -258.300781 + ], + [ + 1212.223684, + -1.406061, + 431.435547, + -258.300781 + ], + [ + 1212.228675, + -1.406061, + 431.435547, + -258.300781 + ], + [ + 1212.233675, + -1.406061, + 431.435547, + -258.300781 + ], + [ + 1212.238719, + -1.406061, + 426.269531, + -258.007812 + ], + [ + 1212.243711, + -1.406061, + 426.269531, + -258.007812 + ], + [ + 1212.248759, + -1.406061, + 426.269531, + -258.007812 + ], + [ + 1212.253708, + -1.412121, + 426.269531, + -258.007812 + ], + [ + 1212.258701, + -1.412121, + 421.09375, + -258.398438 + ], + [ + 1212.263756, + -1.418182, + 421.09375, + -258.398438 + ], + [ + 1212.269001, + -1.418182, + 421.09375, + -258.398438 + ], + [ + 1212.27388, + -1.418182, + 421.09375, + -258.398438 + ], + [ + 1212.278713, + -1.418182, + 415.947266, + -257.910156 + ], + [ + 1212.283704, + -1.418182, + 415.947266, + -257.910156 + ], + [ + 1212.288837, + -1.418182, + 415.947266, + -257.910156 + ], + [ + 1212.293741, + -1.418182, + 415.947266, + -257.910156 + ], + [ + 1212.298689, + -1.418182, + 410.761719, + -258.496094 + ], + [ + 1212.304088, + -1.412121, + 410.761719, + -258.496094 + ], + [ + 1212.308895, + -1.412121, + 410.761719, + -258.496094 + ], + [ + 1212.313763, + -1.418182, + 410.761719, + -258.496094 + ], + [ + 1212.318687, + -1.418182, + 405.566406, + -258.496094 + ], + [ + 1212.323651, + -1.418182, + 405.566406, + -258.496094 + ], + [ + 1212.328902, + -1.418182, + 405.566406, + -258.496094 + ], + [ + 1212.333696, + -1.418182, + 405.566406, + -258.496094 + ], + [ + 1212.338689, + -1.418182, + 400.361328, + -259.179688 + ], + [ + 1212.343673, + -1.418182, + 400.361328, + -259.179688 + ], + [ + 1212.348685, + -1.418182, + 400.361328, + -259.179688 + ], + [ + 1212.353811, + -1.412121, + 400.361328, + -259.179688 + ], + [ + 1212.358727, + -1.412121, + 395.175781, + -259.082031 + ], + [ + 1212.36368, + -1.412121, + 395.175781, + -259.082031 + ], + [ + 1212.36869, + -1.418182, + 395.175781, + -259.082031 + ], + [ + 1212.373688, + -1.418182, + 395.175781, + -259.082031 + ], + [ + 1212.378736, + -1.418182, + 389.960938, + -259.765625 + ], + [ + 1212.383785, + -1.418182, + 389.960938, + -259.765625 + ], + [ + 1212.388819, + -1.418182, + 389.960938, + -259.765625 + ], + [ + 1212.393661, + -1.418182, + 389.960938, + -259.765625 + ], + [ + 1212.3987, + -1.418182, + 389.960938, + -259.765625 + ], + [ + 1212.403683, + -1.418182, + 384.765625, + -259.960938 + ], + [ + 1212.408663, + -1.418182, + 384.765625, + -259.960938 + ], + [ + 1212.413773, + -1.406061, + 384.765625, + -259.960938 + ], + [ + 1212.418692, + -1.403226, + 384.765625, + -259.960938 + ], + [ + 1212.42367, + -1.403226, + 379.570312, + -260.253906 + ], + [ + 1212.428764, + -1.415323, + 379.570312, + -260.253906 + ], + [ + 1212.433656, + -1.415323, + 379.570312, + -260.253906 + ], + [ + 1212.438864, + -1.415323, + 379.570312, + -260.253906 + ], + [ + 1212.443665, + -1.415323, + 374.365234, + -259.863281 + ], + [ + 1212.449068, + -1.415323, + 374.365234, + -259.863281 + ], + [ + 1212.453664, + -1.415323, + 374.365234, + -259.863281 + ], + [ + 1212.458659, + -1.415323, + 374.365234, + -259.863281 + ], + [ + 1212.463706, + -1.415323, + 369.189453, + -259.863281 + ], + [ + 1212.46953, + -1.415323, + 369.189453, + -259.863281 + ], + [ + 1212.47372, + -1.403226, + 369.189453, + -259.863281 + ], + [ + 1212.478727, + -1.403226, + 369.189453, + -259.863281 + ], + [ + 1212.483699, + -1.403226, + 364.003906, + -259.570312 + ], + [ + 1212.488802, + -1.403226, + 364.003906, + -259.570312 + ], + [ + 1212.493714, + -1.403226, + 364.003906, + -259.570312 + ], + [ + 1212.498807, + -1.403226, + 364.003906, + -259.570312 + ], + [ + 1212.503714, + -1.403226, + 358.857422, + -258.984375 + ], + [ + 1212.508706, + -1.403226, + 358.857422, + -258.984375 + ], + [ + 1212.513718, + -1.403226, + 358.857422, + -258.984375 + ], + [ + 1212.518713, + -1.403226, + 358.857422, + -258.984375 + ], + [ + 1212.523747, + -1.403226, + 353.671875, + -258.691406 + ], + [ + 1212.528714, + -1.403226, + 353.671875, + -258.691406 + ], + [ + 1212.533763, + -1.403226, + 353.671875, + -258.691406 + ], + [ + 1212.538695, + -1.403226, + 353.671875, + -258.691406 + ], + [ + 1212.543776, + -1.403226, + 348.505859, + -258.59375 + ], + [ + 1212.548701, + -1.403226, + 348.505859, + -258.59375 + ], + [ + 1212.553757, + -1.403226, + 348.505859, + -258.59375 + ], + [ + 1212.558693, + -1.403226, + 348.505859, + -258.59375 + ], + [ + 1212.563679, + -1.403226, + 348.505859, + -258.59375 + ], + [ + 1212.571383, + -1.403226, + 338.193359, + -258.007812 + ], + [ + 1212.573676, + -1.403226, + 338.193359, + -258.007812 + ], + [ + 1212.578732, + -1.403226, + 338.193359, + -258.007812 + ], + [ + 1212.583697, + -1.403226, + 338.193359, + -258.007812 + ], + [ + 1212.588962, + -1.403226, + 338.193359, + -258.007812 + ], + [ + 1212.593693, + -1.403226, + 333.027344, + -258.300781 + ], + [ + 1212.598692, + -1.403226, + 333.027344, + -258.300781 + ], + [ + 1212.603712, + -1.403226, + 333.027344, + -258.300781 + ], + [ + 1212.608758, + -1.403226, + 333.027344, + -258.300781 + ], + [ + 1212.613709, + -1.403226, + 327.900391, + -257.8125 + ], + [ + 1212.618683, + -1.403226, + 327.900391, + -257.8125 + ], + [ + 1212.623745, + -1.403226, + 327.900391, + -257.8125 + ], + [ + 1212.628675, + -1.403226, + 327.900391, + -257.8125 + ], + [ + 1212.633684, + -1.403226, + 322.724609, + -257.910156 + ], + [ + 1212.638729, + -1.403226, + 322.724609, + -257.910156 + ], + [ + 1212.643689, + -1.403226, + 322.724609, + -257.910156 + ], + [ + 1212.648837, + -1.409262, + 322.724609, + -257.910156 + ], + [ + 1212.653699, + -1.409262, + 317.597656, + -257.421875 + ], + [ + 1212.658782, + -1.406061, + 317.597656, + -257.421875 + ], + [ + 1212.663698, + -1.406061, + 317.597656, + -257.421875 + ], + [ + 1212.669196, + -1.412121, + 317.597656, + -257.421875 + ], + [ + 1212.674056, + -1.412121, + 312.460938, + -257.519531 + ], + [ + 1212.678754, + -1.412121, + 312.460938, + -257.519531 + ], + [ + 1212.683694, + -1.412121, + 312.460938, + -257.519531 + ], + [ + 1212.688668, + -1.412121, + 312.460938, + -257.519531 + ], + [ + 1212.693751, + -1.418182, + 307.294922, + -257.226562 + ], + [ + 1212.698651, + -1.418182, + 307.294922, + -257.226562 + ], + [ + 1212.70368, + -1.412121, + 307.294922, + -257.226562 + ], + [ + 1212.708883, + -1.406061, + 307.294922, + -257.226562 + ], + [ + 1212.713717, + -1.412121, + 302.128906, + -257.8125 + ], + [ + 1212.718794, + -1.418182, + 302.128906, + -257.8125 + ], + [ + 1212.723697, + -1.418182, + 302.128906, + -257.8125 + ], + [ + 1212.728867, + -1.412121, + 302.128906, + -257.8125 + ], + [ + 1212.733714, + -1.412121, + 296.982422, + -257.421875 + ], + [ + 1212.738687, + -1.412121, + 296.982422, + -257.421875 + ], + [ + 1212.743697, + -1.406061, + 296.982422, + -257.421875 + ], + [ + 1212.748706, + -1.406061, + 296.982422, + -257.421875 + ], + [ + 1212.753729, + -1.406061, + 291.796875, + -258.007812 + ], + [ + 1212.758705, + -1.406061, + 291.796875, + -258.007812 + ], + [ + 1212.763719, + -1.418182, + 291.796875, + -258.007812 + ], + [ + 1212.768958, + -1.418182, + 291.796875, + -258.007812 + ], + [ + 1212.773714, + -1.412121, + 286.669922, + -257.8125 + ], + [ + 1212.778752, + -1.406061, + 286.669922, + -257.8125 + ], + [ + 1212.783703, + -1.412121, + 286.669922, + -257.8125 + ], + [ + 1212.788716, + -1.412121, + 286.669922, + -257.8125 + ], + [ + 1212.793761, + -1.406061, + 281.474609, + -258.300781 + ], + [ + 1212.79869, + -1.406061, + 281.474609, + -258.300781 + ], + [ + 1212.803708, + -1.406061, + 281.474609, + -258.300781 + ], + [ + 1212.808681, + -1.412121, + 281.474609, + -258.300781 + ], + [ + 1212.813864, + -1.418182, + 276.328125, + -257.910156 + ], + [ + 1212.818674, + -1.418182, + 276.328125, + -257.910156 + ], + [ + 1212.823774, + -1.418182, + 276.328125, + -257.910156 + ], + [ + 1212.829881, + -1.412121, + 276.328125, + -257.910156 + ], + [ + 1212.833675, + -1.412121, + 276.328125, + -257.910156 + ], + [ + 1212.838679, + -1.406061, + 271.123047, + -258.496094 + ], + [ + 1212.843764, + -1.412121, + 271.123047, + -258.496094 + ], + [ + 1212.848691, + -1.418182, + 271.123047, + -258.496094 + ], + [ + 1212.85366, + -1.418182, + 271.123047, + -258.496094 + ], + [ + 1212.858682, + -1.418182, + 265.976562, + -258.203125 + ], + [ + 1212.863727, + -1.418182, + 265.976562, + -258.203125 + ], + [ + 1212.868854, + -1.406061, + 265.976562, + -258.203125 + ], + [ + 1212.873669, + -1.406061, + 265.976562, + -258.203125 + ], + [ + 1212.879123, + -1.406061, + 260.78125, + -258.984375 + ], + [ + 1212.883782, + -1.406061, + 260.78125, + -258.984375 + ], + [ + 1212.888858, + -1.406061, + 260.78125, + -258.984375 + ], + [ + 1212.893752, + -1.406061, + 260.78125, + -258.984375 + ], + [ + 1212.898648, + -1.406061, + 260.78125, + -258.984375 + ], + [ + 1212.903691, + -1.406061, + 255.615234, + -258.496094 + ], + [ + 1212.908726, + -1.406061, + 255.615234, + -258.496094 + ], + [ + 1212.913671, + -1.406061, + 255.615234, + -258.496094 + ], + [ + 1212.91872, + -1.406061, + 255.615234, + -258.496094 + ], + [ + 1212.923685, + -1.406061, + 250.429688, + -258.984375 + ], + [ + 1212.928698, + -1.408895, + 250.429688, + -258.984375 + ], + [ + 1212.933692, + -1.408895, + 250.429688, + -258.984375 + ], + [ + 1212.938649, + -1.408895, + 250.429688, + -258.984375 + ], + [ + 1212.943683, + -1.41498, + 245.224609, + -258.984375 + ], + [ + 1212.948665, + -1.41498, + 245.224609, + -258.984375 + ], + [ + 1212.953708, + -1.408895, + 245.224609, + -258.984375 + ], + [ + 1212.958644, + -1.408895, + 245.224609, + -258.984375 + ], + [ + 1212.963731, + -1.408895, + 240.019531, + -259.667969 + ], + [ + 1212.968725, + -1.408895, + 240.019531, + -259.667969 + ], + [ + 1212.973698, + -1.408895, + 240.019531, + -259.667969 + ], + [ + 1212.978863, + -1.408895, + 240.019531, + -259.667969 + ], + [ + 1212.983741, + -1.408895, + 234.84375, + -259.277344 + ], + [ + 1212.98934, + -1.408895, + 234.84375, + -259.277344 + ], + [ + 1212.993731, + -1.41498, + 234.84375, + -259.277344 + ], + [ + 1212.998697, + -1.41498, + 234.84375, + -259.277344 + ], + [ + 1213.003728, + -1.408895, + 229.707031, + -259.277344 + ], + [ + 1213.009263, + -1.408895, + 229.707031, + -259.277344 + ], + [ + 1213.01375, + -1.408895, + 229.707031, + -259.277344 + ], + [ + 1213.018681, + -1.408895, + 229.707031, + -259.277344 + ], + [ + 1213.023717, + -1.408895, + 224.53125, + -259.082031 + ], + [ + 1213.02891, + -1.408895, + 224.53125, + -259.082031 + ], + [ + 1213.033679, + -1.408895, + 224.53125, + -259.082031 + ], + [ + 1213.03877, + -1.408895, + 224.53125, + -259.082031 + ], + [ + 1213.04367, + -1.408895, + 224.53125, + -259.082031 + ], + [ + 1213.049036, + -1.408895, + 214.238281, + -257.714844 + ], + [ + 1213.053685, + -1.408895, + 214.238281, + -257.714844 + ], + [ + 1213.058657, + -1.408895, + 214.238281, + -257.714844 + ], + [ + 1213.063698, + -1.408895, + 214.238281, + -257.714844 + ], + [ + 1213.068894, + -1.408895, + 209.101562, + -257.421875 + ], + [ + 1213.073727, + -1.421041, + 209.101562, + -257.421875 + ], + [ + 1213.078656, + -1.421041, + 209.101562, + -257.421875 + ], + [ + 1213.083927, + -1.41498, + 209.101562, + -257.421875 + ], + [ + 1213.088966, + -1.41498, + 203.916016, + -257.8125 + ], + [ + 1213.093683, + -1.41498, + 203.916016, + -257.8125 + ], + [ + 1213.098674, + -1.408895, + 203.916016, + -257.8125 + ], + [ + 1213.104226, + -1.408895, + 203.916016, + -257.8125 + ], + [ + 1213.108946, + -1.408895, + 198.730469, + -257.910156 + ], + [ + 1213.11376, + -1.408895, + 198.730469, + -257.910156 + ], + [ + 1213.118792, + -1.408895, + 198.730469, + -257.910156 + ], + [ + 1213.123706, + -1.408895, + 198.730469, + -257.910156 + ], + [ + 1213.128742, + -1.408895, + 193.59375, + -257.8125 + ], + [ + 1213.133857, + -1.41498, + 193.59375, + -257.8125 + ], + [ + 1213.138721, + -1.41498, + 193.59375, + -257.8125 + ], + [ + 1213.14365, + -1.41498, + 193.59375, + -257.8125 + ], + [ + 1213.148809, + -1.418182, + 188.417969, + -258.203125 + ], + [ + 1213.153656, + -1.418182, + 188.417969, + -258.203125 + ], + [ + 1213.158694, + -1.418182, + 188.417969, + -258.203125 + ], + [ + 1213.163664, + -1.418182, + 188.417969, + -258.203125 + ], + [ + 1213.168824, + -1.418182, + 183.164062, + -259.277344 + ], + [ + 1213.173846, + -1.418182, + 183.164062, + -259.277344 + ], + [ + 1213.178685, + -1.415323, + 183.164062, + -259.277344 + ], + [ + 1213.183649, + -1.415323, + 183.164062, + -259.277344 + ], + [ + 1213.188788, + -1.415323, + 177.978516, + -259.375 + ], + [ + 1213.193658, + -1.415323, + 177.978516, + -259.375 + ], + [ + 1213.198671, + -1.409262, + 177.978516, + -259.375 + ], + [ + 1213.203692, + -1.403226, + 177.978516, + -259.375 + ], + [ + 1213.208737, + -1.403226, + 172.744141, + -259.863281 + ], + [ + 1213.213713, + -1.409262, + 172.744141, + -259.863281 + ], + [ + 1213.218683, + -1.415323, + 172.744141, + -259.863281 + ], + [ + 1213.223722, + -1.415323, + 172.744141, + -259.863281 + ], + [ + 1213.228872, + -1.409262, + 167.548828, + -260.449219 + ], + [ + 1213.233731, + -1.409262, + 167.548828, + -260.449219 + ], + [ + 1213.238717, + -1.409286, + 167.548828, + -260.449219 + ], + [ + 1213.243697, + -1.409286, + 167.548828, + -260.449219 + ], + [ + 1213.249005, + -1.415323, + 162.294922, + -261.230469 + ], + [ + 1213.253708, + -1.415323, + 162.294922, + -261.230469 + ], + [ + 1213.25868, + -1.415323, + 162.294922, + -261.230469 + ], + [ + 1213.263697, + -1.415323, + 162.294922, + -261.230469 + ], + [ + 1213.268947, + -1.415323, + 157.070312, + -261.035156 + ], + [ + 1213.273736, + -1.403226, + 157.070312, + -261.035156 + ], + [ + 1213.278688, + -1.403226, + 157.070312, + -261.035156 + ], + [ + 1213.283664, + -1.409286, + 157.070312, + -261.035156 + ], + [ + 1213.289671, + -1.415323, + 151.855469, + -261.230469 + ], + [ + 1213.293695, + -1.409262, + 151.855469, + -261.230469 + ], + [ + 1213.298712, + -1.403226, + 151.855469, + -261.230469 + ], + [ + 1213.303663, + -1.403226, + 151.855469, + -261.230469 + ], + [ + 1213.308976, + -1.403226, + 146.689453, + -260.449219 + ], + [ + 1213.313689, + -1.403226, + 146.689453, + -260.449219 + ], + [ + 1213.318713, + -1.403226, + 146.689453, + -260.449219 + ], + [ + 1213.323751, + -1.403226, + 146.689453, + -260.449219 + ], + [ + 1213.328778, + -1.403226, + 141.523438, + -260.351562 + ], + [ + 1213.333668, + -1.403226, + 141.523438, + -260.351562 + ], + [ + 1213.338714, + -1.403226, + 141.523438, + -260.351562 + ], + [ + 1213.343645, + -1.403226, + 141.523438, + -260.351562 + ], + [ + 1213.348884, + -1.403226, + 136.40625, + -258.984375 + ], + [ + 1213.353663, + -1.403226, + 136.40625, + -258.984375 + ], + [ + 1213.358695, + -1.403226, + 136.40625, + -258.984375 + ], + [ + 1213.363666, + -1.415323, + 136.40625, + -258.984375 + ], + [ + 1213.368781, + -1.415323, + 131.230469, + -258.398438 + ], + [ + 1213.37387, + -1.409262, + 131.230469, + -258.398438 + ], + [ + 1213.378698, + -1.412121, + 131.230469, + -258.398438 + ], + [ + 1213.383652, + -1.412121, + 131.230469, + -258.398438 + ], + [ + 1213.389039, + -1.412121, + 126.09375, + -257.617188 + ], + [ + 1213.393683, + -1.412121, + 126.09375, + -257.617188 + ], + [ + 1213.398698, + -1.412121, + 126.09375, + -257.617188 + ], + [ + 1213.403665, + -1.418182, + 126.09375, + -257.617188 + ], + [ + 1213.40892, + -1.418182, + 120.927734, + -257.8125 + ], + [ + 1213.413686, + -1.418182, + 120.927734, + -257.8125 + ], + [ + 1213.418671, + -1.418182, + 120.927734, + -257.8125 + ], + [ + 1213.423666, + -1.412121, + 120.927734, + -257.8125 + ], + [ + 1213.428715, + -1.412121, + 115.761719, + -257.421875 + ], + [ + 1213.433706, + -1.406061, + 115.761719, + -257.421875 + ], + [ + 1213.438684, + -1.406061, + 115.761719, + -257.421875 + ], + [ + 1213.443688, + -1.412121, + 115.761719, + -257.421875 + ], + [ + 1213.448722, + -1.412121, + 110.625, + -257.8125 + ], + [ + 1213.453821, + -1.412121, + 110.625, + -257.8125 + ], + [ + 1213.458681, + -1.412121, + 110.625, + -257.8125 + ], + [ + 1213.463691, + -1.412121, + 110.625, + -257.8125 + ], + [ + 1213.468748, + -1.412121, + 105.458984, + -257.617188 + ], + [ + 1213.473747, + -1.418182, + 105.458984, + -257.617188 + ], + [ + 1213.478711, + -1.418182, + 105.458984, + -257.617188 + ], + [ + 1213.48375, + -1.418182, + 105.458984, + -257.617188 + ], + [ + 1213.488893, + -1.418182, + 100.273438, + -258.105469 + ], + [ + 1213.494637, + -1.418182, + 100.273438, + -258.105469 + ], + [ + 1213.498761, + -1.418182, + 100.273438, + -258.105469 + ], + [ + 1213.503711, + -1.418182, + 100.273438, + -258.105469 + ], + [ + 1213.508849, + -1.418182, + 95.126953, + -258.007812 + ], + [ + 1213.513691, + -1.418182, + 95.126953, + -258.007812 + ], + [ + 1213.518702, + -1.412121, + 95.126953, + -258.007812 + ], + [ + 1213.523681, + -1.412121, + 95.126953, + -258.007812 + ], + [ + 1213.528841, + -1.418182, + 89.970703, + -258.105469 + ], + [ + 1213.533703, + -1.418182, + 89.970703, + -258.105469 + ], + [ + 1213.538788, + -1.418182, + 89.970703, + -258.105469 + ], + [ + 1213.543688, + -1.412121, + 89.970703, + -258.105469 + ], + [ + 1213.549121, + -1.406061, + 84.804688, + -258.105469 + ], + [ + 1213.553686, + -1.406061, + 84.804688, + -258.105469 + ], + [ + 1213.558858, + -1.406061, + 84.804688, + -258.105469 + ], + [ + 1213.563695, + -1.406061, + 84.804688, + -258.105469 + ], + [ + 1213.568749, + -1.406061, + 79.6875, + -257.910156 + ], + [ + 1213.573734, + -1.412121, + 79.6875, + -257.910156 + ], + [ + 1213.578648, + -1.412121, + 79.6875, + -257.910156 + ], + [ + 1213.583755, + -1.418182, + 79.6875, + -257.910156 + ], + [ + 1213.588784, + -1.418182, + 74.541016, + -257.421875 + ], + [ + 1213.593658, + -1.418182, + 74.541016, + -257.421875 + ], + [ + 1213.5987, + -1.418182, + 74.541016, + -257.421875 + ], + [ + 1213.603699, + -1.418182, + 74.541016, + -257.421875 + ], + [ + 1213.60873, + -1.418182, + 69.404297, + -257.226562 + ], + [ + 1213.613671, + -1.418182, + 69.404297, + -257.226562 + ], + [ + 1213.618731, + -1.418182, + 69.404297, + -257.226562 + ], + [ + 1213.623785, + -1.418182, + 69.404297, + -257.226562 + ], + [ + 1213.628891, + -1.415323, + 64.277344, + -256.933594 + ], + [ + 1213.633676, + -1.415323, + 64.277344, + -256.933594 + ], + [ + 1213.638654, + -1.415323, + 64.277344, + -256.933594 + ], + [ + 1213.643668, + -1.415323, + 64.277344, + -256.933594 + ], + [ + 1213.648715, + -1.415323, + 59.169922, + -256.347656 + ], + [ + 1213.6537, + -1.415323, + 59.169922, + -256.347656 + ], + [ + 1213.658655, + -1.415323, + 59.169922, + -256.347656 + ], + [ + 1213.663673, + -1.415323, + 59.169922, + -256.347656 + ], + [ + 1213.668728, + -1.415323, + 54.121094, + -255.664062 + ], + [ + 1213.673682, + -1.409286, + 54.121094, + -255.664062 + ], + [ + 1213.678681, + -1.409286, + 54.121094, + -255.664062 + ], + [ + 1213.683712, + -1.403226, + 54.121094, + -255.664062 + ], + [ + 1213.688717, + -1.403226, + 49.091797, + -254.492188 + ], + [ + 1213.693716, + -1.409286, + 49.091797, + -254.492188 + ], + [ + 1213.699523, + -1.415323, + 49.091797, + -254.492188 + ], + [ + 1213.703834, + -1.415323, + 49.091797, + -254.492188 + ], + [ + 1213.708852, + -1.415323, + 44.023438, + -253.808594 + ], + [ + 1213.713725, + -1.415323, + 44.023438, + -253.808594 + ], + [ + 1213.718691, + -1.415323, + 44.023438, + -253.808594 + ], + [ + 1213.72371, + -1.403226, + 44.023438, + -253.808594 + ], + [ + 1213.728947, + -1.403226, + 38.964844, + -253.125 + ], + [ + 1213.733753, + -1.415323, + 38.964844, + -253.125 + ], + [ + 1213.738686, + -1.415323, + 38.964844, + -253.125 + ] + ], + "fast-forward": [ + [ + 1192.868809, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.873735, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.878701, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.883684, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.88872, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.893713, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.898697, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.90366, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.909529, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.913709, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.918693, + 0.0, + 25.625, + 0.0 + ], + [ + 1192.92368, + 0.591202, + 25.625, + 0.0 + ], + [ + 1192.929402, + 0.591202, + 26.425781, + 7.8125 + ], + [ + 1192.933912, + 1.443891, + 26.425781, + 7.8125 + ], + [ + 1192.938691, + 1.443891, + 26.425781, + 7.8125 + ], + [ + 1192.943746, + 1.443915, + 26.425781, + 7.8125 + ], + [ + 1192.949028, + 1.443915, + 30.292969, + 46.289062 + ], + [ + 1192.953715, + 1.443915, + 30.292969, + 46.289062 + ], + [ + 1192.95868, + 1.443915, + 30.292969, + 46.289062 + ], + [ + 1192.963679, + 1.443915, + 30.292969, + 46.289062 + ], + [ + 1192.969227, + 1.443915, + 34.111328, + 84.570312 + ], + [ + 1192.973723, + 1.443915, + 34.111328, + 84.570312 + ], + [ + 1192.978669, + 1.418182, + 34.111328, + 84.570312 + ], + [ + 1192.983675, + 1.418182, + 34.111328, + 84.570312 + ], + [ + 1192.990524, + 1.418182, + 37.851562, + 122.070312 + ], + [ + 1192.99374, + 1.412243, + 37.851562, + 122.070312 + ], + [ + 1192.998656, + 1.412243, + 37.851562, + 122.070312 + ], + [ + 1193.003672, + 1.418182, + 37.851562, + 122.070312 + ], + [ + 1193.008678, + 1.418182, + 37.851562, + 122.070312 + ], + [ + 1193.013711, + 1.38673, + 41.542969, + 158.886719 + ], + [ + 1193.018648, + 1.38673, + 41.542969, + 158.886719 + ], + [ + 1193.0237, + 1.38673, + 41.542969, + 158.886719 + ], + [ + 1193.028703, + 1.38673, + 41.542969, + 158.886719 + ], + [ + 1193.033733, + 1.38673, + 45.390625, + 189.453125 + ], + [ + 1193.038684, + 1.38673, + 45.390625, + 189.453125 + ], + [ + 1193.043701, + 1.38673, + 45.390625, + 189.453125 + ], + [ + 1193.048839, + 1.38673, + 45.390625, + 189.453125 + ], + [ + 1193.053768, + 1.38673, + 49.355469, + 190.722656 + ], + [ + 1193.058796, + 1.38673, + 49.355469, + 190.722656 + ], + [ + 1193.06374, + 1.38673, + 49.355469, + 190.722656 + ], + [ + 1193.06872, + 1.38673, + 49.355469, + 190.722656 + ], + [ + 1193.07375, + 1.38673, + 53.564453, + 194.53125 + ], + [ + 1193.078696, + 1.38673, + 53.564453, + 194.53125 + ], + [ + 1193.083789, + 1.38673, + 53.564453, + 194.53125 + ], + [ + 1193.088705, + 1.38673, + 53.564453, + 194.53125 + ], + [ + 1193.09375, + 1.38673, + 58.056641, + 201.855469 + ], + [ + 1193.098736, + 1.38673, + 58.056641, + 201.855469 + ], + [ + 1193.103708, + 1.38673, + 58.056641, + 201.855469 + ], + [ + 1193.10871, + 1.38673, + 58.056641, + 201.855469 + ], + [ + 1193.11372, + 1.380792, + 62.685547, + 211.328125 + ], + [ + 1193.118693, + 1.380792, + 62.685547, + 211.328125 + ], + [ + 1193.12397, + 1.38673, + 62.685547, + 211.328125 + ], + [ + 1193.128719, + 1.38673, + 62.685547, + 211.328125 + ], + [ + 1193.133881, + 1.38673, + 67.148438, + 217.578125 + ], + [ + 1193.138694, + 1.38673, + 67.148438, + 217.578125 + ], + [ + 1193.143666, + 1.38673, + 67.148438, + 217.578125 + ], + [ + 1193.148672, + 1.38673, + 67.148438, + 217.578125 + ], + [ + 1193.153732, + 1.38673, + 71.289062, + 219.238281 + ], + [ + 1193.158702, + 1.38673, + 71.289062, + 219.238281 + ], + [ + 1193.163681, + 1.38673, + 71.289062, + 219.238281 + ], + [ + 1193.168684, + 1.38673, + 71.289062, + 219.238281 + ], + [ + 1193.173716, + 1.38673, + 75.400391, + 218.261719 + ], + [ + 1193.178737, + 1.38673, + 75.400391, + 218.261719 + ], + [ + 1193.183713, + 1.38673, + 75.400391, + 218.261719 + ], + [ + 1193.188668, + 1.38673, + 75.400391, + 218.261719 + ], + [ + 1193.195641, + 1.38673, + 79.453125, + 213.964844 + ], + [ + 1193.198689, + 1.38673, + 79.453125, + 213.964844 + ], + [ + 1193.203655, + 1.38673, + 79.453125, + 213.964844 + ], + [ + 1193.209071, + 1.38673, + 79.453125, + 213.964844 + ], + [ + 1193.213663, + 1.38673, + 79.453125, + 213.964844 + ], + [ + 1193.21873, + 1.389589, + 83.486328, + 208.105469 + ], + [ + 1193.223739, + 1.389589, + 83.486328, + 208.105469 + ], + [ + 1193.228833, + 1.389589, + 83.486328, + 208.105469 + ], + [ + 1193.233689, + 1.389589, + 83.486328, + 208.105469 + ], + [ + 1193.238829, + 1.389589, + 87.578125, + 204.394531 + ], + [ + 1193.24368, + 1.389589, + 87.578125, + 204.394531 + ], + [ + 1193.248672, + 1.389589, + 87.578125, + 204.394531 + ], + [ + 1193.253689, + 1.389589, + 87.578125, + 204.394531 + ], + [ + 1193.258687, + 1.395308, + 91.650391, + 203.613281 + ], + [ + 1193.263677, + 1.395308, + 91.650391, + 203.613281 + ], + [ + 1193.268769, + 1.395308, + 91.650391, + 203.613281 + ], + [ + 1193.273809, + 1.395308, + 91.650391, + 203.613281 + ], + [ + 1193.278691, + 1.395308, + 95.800781, + 204.003906 + ], + [ + 1193.283698, + 1.395308, + 95.800781, + 204.003906 + ], + [ + 1193.288746, + 1.395308, + 95.800781, + 204.003906 + ], + [ + 1193.293699, + 1.395308, + 95.800781, + 204.003906 + ], + [ + 1193.298735, + 1.395308, + 99.921875, + 204.6875 + ], + [ + 1193.303705, + 1.395308, + 99.921875, + 204.6875 + ], + [ + 1193.309316, + 1.395308, + 99.921875, + 204.6875 + ], + [ + 1193.313778, + 1.395308, + 99.921875, + 204.6875 + ], + [ + 1193.318714, + 1.395308, + 103.994141, + 205.078125 + ], + [ + 1193.323702, + 1.395308, + 103.994141, + 205.078125 + ], + [ + 1193.328704, + 1.395308, + 103.994141, + 205.078125 + ], + [ + 1193.333751, + 1.395308, + 103.994141, + 205.078125 + ], + [ + 1193.338762, + 1.395308, + 108.095703, + 205.078125 + ], + [ + 1193.343711, + 1.395308, + 108.095703, + 205.078125 + ], + [ + 1193.348711, + 1.395308, + 108.095703, + 205.078125 + ], + [ + 1193.353777, + 1.395308, + 108.095703, + 205.078125 + ], + [ + 1193.358732, + 1.395308, + 112.148438, + 204.980469 + ], + [ + 1193.363682, + 1.395308, + 112.148438, + 204.980469 + ], + [ + 1193.36868, + 1.395308, + 112.148438, + 204.980469 + ], + [ + 1193.37368, + 1.395308, + 112.148438, + 204.980469 + ], + [ + 1193.378719, + 1.395308, + 116.201172, + 204.101562 + ], + [ + 1193.383698, + 1.395308, + 116.201172, + 204.101562 + ], + [ + 1193.388672, + 1.395308, + 116.201172, + 204.101562 + ], + [ + 1193.393672, + 1.395308, + 116.201172, + 204.101562 + ], + [ + 1193.400313, + 1.395308, + 120.234375, + 203.125 + ], + [ + 1193.403763, + 1.395308, + 120.234375, + 203.125 + ], + [ + 1193.408838, + 1.395308, + 120.234375, + 203.125 + ], + [ + 1193.413685, + 1.395308, + 120.234375, + 203.125 + ], + [ + 1193.418652, + 1.395308, + 120.234375, + 203.125 + ], + [ + 1193.423733, + 1.395308, + 124.287109, + 202.929688 + ], + [ + 1193.428733, + 1.395308, + 124.287109, + 202.929688 + ], + [ + 1193.433772, + 1.395308, + 124.287109, + 202.929688 + ], + [ + 1193.438725, + 1.395308, + 124.287109, + 202.929688 + ], + [ + 1193.443729, + 1.395308, + 128.359375, + 202.734375 + ], + [ + 1193.448644, + 1.395308, + 128.359375, + 202.734375 + ], + [ + 1193.453693, + 1.395308, + 128.359375, + 202.734375 + ], + [ + 1193.458763, + 1.395308, + 128.359375, + 202.734375 + ], + [ + 1193.463728, + 1.395308, + 132.451172, + 203.027344 + ], + [ + 1193.468646, + 1.395308, + 132.451172, + 203.027344 + ], + [ + 1193.473697, + 1.395308, + 132.451172, + 203.027344 + ], + [ + 1193.478643, + 1.395308, + 132.451172, + 203.027344 + ], + [ + 1193.483753, + 1.395308, + 136.5625, + 203.515625 + ], + [ + 1193.48866, + 1.395308, + 136.5625, + 203.515625 + ], + [ + 1193.493703, + 1.395308, + 136.5625, + 203.515625 + ], + [ + 1193.498736, + 1.395308, + 136.5625, + 203.515625 + ], + [ + 1193.503728, + 1.398167, + 140.605469, + 203.710938 + ], + [ + 1193.508772, + 1.398167, + 140.605469, + 203.710938 + ], + [ + 1193.513837, + 1.398167, + 140.605469, + 203.710938 + ], + [ + 1193.518681, + 1.398167, + 140.605469, + 203.710938 + ], + [ + 1193.52381, + 1.398167, + 144.667969, + 203.710938 + ], + [ + 1193.528813, + 1.398167, + 144.667969, + 203.710938 + ], + [ + 1193.533711, + 1.398167, + 144.667969, + 203.710938 + ], + [ + 1193.538677, + 1.398167, + 144.667969, + 203.710938 + ], + [ + 1193.543798, + 1.398167, + 148.740234, + 203.808594 + ], + [ + 1193.548685, + 1.398167, + 148.740234, + 203.808594 + ], + [ + 1193.553731, + 1.398167, + 148.740234, + 203.808594 + ], + [ + 1193.5587, + 1.398167, + 148.740234, + 203.808594 + ], + [ + 1193.563723, + 1.398167, + 152.8125, + 203.613281 + ], + [ + 1193.569146, + 1.398167, + 152.8125, + 203.613281 + ], + [ + 1193.573711, + 1.398167, + 152.8125, + 203.613281 + ], + [ + 1193.578769, + 1.398167, + 152.8125, + 203.613281 + ], + [ + 1193.583827, + 1.398167, + 156.904297, + 203.515625 + ], + [ + 1193.589038, + 1.398167, + 156.904297, + 203.515625 + ], + [ + 1193.593776, + 1.398167, + 156.904297, + 203.515625 + ], + [ + 1193.598719, + 1.398167, + 156.904297, + 203.515625 + ], + [ + 1193.603769, + 1.398167, + 160.957031, + 203.417969 + ], + [ + 1193.60869, + 1.398167, + 160.957031, + 203.417969 + ], + [ + 1193.613746, + 1.398167, + 160.957031, + 203.417969 + ], + [ + 1193.618664, + 1.398167, + 160.957031, + 203.417969 + ], + [ + 1193.623718, + 1.398167, + 165.0, + 203.417969 + ], + [ + 1193.628737, + 1.398167, + 165.0, + 203.417969 + ], + [ + 1193.633692, + 1.398167, + 165.0, + 203.417969 + ], + [ + 1193.638669, + 1.398167, + 165.0, + 203.417969 + ], + [ + 1193.643713, + 1.398167, + 169.042969, + 203.027344 + ], + [ + 1193.648679, + 1.398167, + 169.042969, + 203.027344 + ], + [ + 1193.653706, + 1.398167, + 169.042969, + 203.027344 + ], + [ + 1193.658649, + 1.398167, + 169.042969, + 203.027344 + ], + [ + 1193.66381, + 1.398167, + 173.105469, + 202.929688 + ], + [ + 1193.668672, + 1.398167, + 173.105469, + 202.929688 + ], + [ + 1193.673699, + 1.398167, + 173.105469, + 202.929688 + ], + [ + 1193.678734, + 1.398167, + 173.105469, + 202.929688 + ], + [ + 1193.683717, + 1.398167, + 177.1875, + 202.832031 + ], + [ + 1193.68871, + 1.398167, + 177.1875, + 202.832031 + ], + [ + 1193.693691, + 1.398167, + 177.1875, + 202.832031 + ], + [ + 1193.698695, + 1.398167, + 177.1875, + 202.832031 + ], + [ + 1193.703721, + 1.398167, + 181.220703, + 202.832031 + ], + [ + 1193.708938, + 1.398167, + 181.220703, + 202.832031 + ], + [ + 1193.713683, + 1.398167, + 181.220703, + 202.832031 + ], + [ + 1193.718643, + 1.398167, + 181.220703, + 202.832031 + ], + [ + 1193.72371, + 1.398167, + 185.283203, + 202.734375 + ], + [ + 1193.729273, + 1.398167, + 185.283203, + 202.734375 + ], + [ + 1193.733756, + 1.398167, + 185.283203, + 202.734375 + ], + [ + 1193.738658, + 1.398167, + 185.283203, + 202.734375 + ], + [ + 1193.743686, + 1.398167, + 189.326172, + 202.636719 + ], + [ + 1193.74882, + 1.398167, + 189.326172, + 202.636719 + ], + [ + 1193.753727, + 1.398167, + 189.326172, + 202.636719 + ], + [ + 1193.758739, + 1.398167, + 189.326172, + 202.636719 + ], + [ + 1193.763949, + 1.398167, + 193.349609, + 202.441406 + ], + [ + 1193.769101, + 1.398167, + 193.349609, + 202.441406 + ], + [ + 1193.773719, + 1.398167, + 193.349609, + 202.441406 + ], + [ + 1193.778679, + 1.398167, + 193.349609, + 202.441406 + ], + [ + 1193.783699, + 1.398167, + 197.392578, + 202.050781 + ], + [ + 1193.789273, + 1.398167, + 197.392578, + 202.050781 + ], + [ + 1193.793723, + 1.398167, + 197.392578, + 202.050781 + ], + [ + 1193.79869, + 1.398167, + 197.392578, + 202.050781 + ], + [ + 1193.803729, + 1.398167, + 201.416016, + 201.855469 + ], + [ + 1193.811087, + 1.398167, + 201.416016, + 201.855469 + ], + [ + 1193.813829, + 1.398167, + 201.416016, + 201.855469 + ], + [ + 1193.818682, + 1.398167, + 201.416016, + 201.855469 + ], + [ + 1193.823715, + 1.398167, + 205.449219, + 201.757812 + ], + [ + 1193.828705, + 1.398167, + 205.449219, + 201.757812 + ], + [ + 1193.833711, + 1.398167, + 205.449219, + 201.757812 + ], + [ + 1193.838675, + 1.398167, + 205.449219, + 201.757812 + ], + [ + 1193.843724, + 1.398167, + 209.501953, + 201.953125 + ], + [ + 1193.848669, + 1.398167, + 209.501953, + 201.953125 + ], + [ + 1193.85369, + 1.398167, + 209.501953, + 201.953125 + ], + [ + 1193.858651, + 1.398167, + 209.501953, + 201.953125 + ], + [ + 1193.863721, + 1.398167, + 213.554688, + 202.148438 + ], + [ + 1193.868676, + 1.398167, + 213.554688, + 202.148438 + ], + [ + 1193.873687, + 1.398167, + 213.554688, + 202.148438 + ], + [ + 1193.87865, + 1.398167, + 213.554688, + 202.148438 + ], + [ + 1193.883716, + 1.398167, + 217.646484, + 202.441406 + ], + [ + 1193.888692, + 1.398167, + 217.646484, + 202.441406 + ], + [ + 1193.893782, + 1.398167, + 217.646484, + 202.441406 + ], + [ + 1193.898645, + 1.398167, + 217.646484, + 202.441406 + ], + [ + 1193.903737, + 1.398167, + 221.699219, + 202.832031 + ], + [ + 1193.908671, + 1.398167, + 221.699219, + 202.832031 + ], + [ + 1193.913709, + 1.398167, + 221.699219, + 202.832031 + ], + [ + 1193.918708, + 1.398167, + 221.699219, + 202.832031 + ], + [ + 1193.923746, + 1.398167, + 225.800781, + 203.417969 + ], + [ + 1193.92926, + 1.398167, + 225.800781, + 203.417969 + ], + [ + 1193.933727, + 1.398167, + 225.800781, + 203.417969 + ], + [ + 1193.938695, + 1.398167, + 225.800781, + 203.417969 + ], + [ + 1193.943715, + 1.398167, + 229.863281, + 203.417969 + ], + [ + 1193.948776, + 1.398167, + 229.863281, + 203.417969 + ], + [ + 1193.953684, + 1.398167, + 229.863281, + 203.417969 + ], + [ + 1193.958661, + 1.398167, + 229.863281, + 203.417969 + ], + [ + 1193.963715, + 1.398167, + 233.935547, + 203.710938 + ], + [ + 1193.968727, + 1.398167, + 233.935547, + 203.710938 + ], + [ + 1193.973744, + 1.398167, + 233.935547, + 203.710938 + ], + [ + 1193.978701, + 1.398167, + 233.935547, + 203.710938 + ], + [ + 1193.983688, + 1.398167, + 238.017578, + 203.710938 + ], + [ + 1193.988675, + 1.398167, + 238.017578, + 203.710938 + ], + [ + 1193.99371, + 1.398167, + 238.017578, + 203.710938 + ], + [ + 1193.998742, + 1.398167, + 238.017578, + 203.710938 + ], + [ + 1194.003705, + 1.398167, + 242.001953, + 203.125 + ], + [ + 1194.008718, + 1.398167, + 242.001953, + 203.125 + ], + [ + 1194.013755, + 1.398167, + 242.001953, + 203.125 + ], + [ + 1194.018715, + 1.398167, + 242.001953, + 203.125 + ], + [ + 1194.023711, + 1.398167, + 246.074219, + 202.734375 + ], + [ + 1194.02888, + 1.398167, + 246.074219, + 202.734375 + ], + [ + 1194.033782, + 1.398167, + 246.074219, + 202.734375 + ], + [ + 1194.038707, + 1.398167, + 246.074219, + 202.734375 + ], + [ + 1194.043714, + 1.398167, + 250.117188, + 202.636719 + ], + [ + 1194.048813, + 1.398167, + 250.117188, + 202.636719 + ], + [ + 1194.05377, + 1.398167, + 250.117188, + 202.636719 + ], + [ + 1194.058778, + 1.398167, + 250.117188, + 202.636719 + ], + [ + 1194.063716, + 1.398167, + 254.208984, + 202.832031 + ], + [ + 1194.068812, + 1.398167, + 254.208984, + 202.832031 + ], + [ + 1194.073776, + 1.398167, + 254.208984, + 202.832031 + ], + [ + 1194.078684, + 1.398167, + 254.208984, + 202.832031 + ], + [ + 1194.083815, + 1.398167, + 258.349609, + 203.222656 + ], + [ + 1194.088667, + 1.398167, + 258.349609, + 203.222656 + ], + [ + 1194.093686, + 1.398167, + 258.349609, + 203.222656 + ], + [ + 1194.098815, + 1.398167, + 258.349609, + 203.222656 + ], + [ + 1194.103791, + 1.398167, + 262.412109, + 204.101562 + ], + [ + 1194.108672, + 1.398167, + 262.412109, + 204.101562 + ], + [ + 1194.113683, + 1.398167, + 262.412109, + 204.101562 + ], + [ + 1194.118686, + 1.398167, + 262.412109, + 204.101562 + ], + [ + 1194.123734, + 1.398167, + 266.542969, + 204.6875 + ], + [ + 1194.128701, + 1.398167, + 266.542969, + 204.6875 + ], + [ + 1194.133697, + 1.398167, + 266.542969, + 204.6875 + ], + [ + 1194.138652, + 1.398167, + 266.542969, + 204.6875 + ], + [ + 1194.14379, + 1.398167, + 270.654297, + 205.371094 + ], + [ + 1194.14867, + 1.398167, + 270.654297, + 205.371094 + ], + [ + 1194.153683, + 1.398167, + 270.654297, + 205.371094 + ], + [ + 1194.158728, + 1.398167, + 270.654297, + 205.371094 + ], + [ + 1194.163727, + 1.398167, + 274.804688, + 205.761719 + ], + [ + 1194.168691, + 1.398167, + 274.804688, + 205.761719 + ], + [ + 1194.173682, + 1.398167, + 274.804688, + 205.761719 + ], + [ + 1194.17872, + 1.398167, + 274.804688, + 205.761719 + ], + [ + 1194.183795, + 1.395308, + 278.916016, + 205.761719 + ], + [ + 1194.188673, + 1.395308, + 278.916016, + 205.761719 + ], + [ + 1194.193677, + 1.395308, + 278.916016, + 205.761719 + ], + [ + 1194.198659, + 1.395308, + 278.916016, + 205.761719 + ], + [ + 1194.203706, + 1.395308, + 283.007812, + 205.957031 + ], + [ + 1194.209255, + 1.395308, + 283.007812, + 205.957031 + ], + [ + 1194.213694, + 1.395308, + 283.007812, + 205.957031 + ], + [ + 1194.219154, + 1.395308, + 283.007812, + 205.957031 + ], + [ + 1194.223711, + 1.395308, + 287.128906, + 205.761719 + ], + [ + 1194.228663, + 1.395308, + 287.128906, + 205.761719 + ], + [ + 1194.233707, + 1.395308, + 287.128906, + 205.761719 + ], + [ + 1194.238675, + 1.395308, + 287.128906, + 205.761719 + ], + [ + 1194.243707, + 1.395308, + 291.191406, + 205.46875 + ], + [ + 1194.248728, + 1.395308, + 291.191406, + 205.46875 + ], + [ + 1194.253792, + 1.395308, + 291.191406, + 205.46875 + ], + [ + 1194.258679, + 1.395308, + 291.191406, + 205.46875 + ], + [ + 1194.263716, + 1.395308, + 295.322266, + 205.371094 + ], + [ + 1194.26893, + 1.395308, + 295.322266, + 205.371094 + ], + [ + 1194.273731, + 1.395308, + 295.322266, + 205.371094 + ], + [ + 1194.278702, + 1.395308, + 295.322266, + 205.371094 + ], + [ + 1194.28372, + 1.395308, + 299.453125, + 205.371094 + ], + [ + 1194.288879, + 1.395308, + 299.453125, + 205.371094 + ], + [ + 1194.293712, + 1.395308, + 299.453125, + 205.371094 + ], + [ + 1194.298674, + 1.395308, + 299.453125, + 205.371094 + ], + [ + 1194.303858, + 1.395308, + 303.544922, + 205.273438 + ], + [ + 1194.309286, + 1.395308, + 303.544922, + 205.273438 + ], + [ + 1194.313938, + 1.395308, + 303.544922, + 205.273438 + ], + [ + 1194.318713, + 1.395308, + 303.544922, + 205.273438 + ], + [ + 1194.323745, + 1.395308, + 307.675781, + 205.566406 + ], + [ + 1194.328677, + 1.395308, + 307.675781, + 205.566406 + ], + [ + 1194.333681, + 1.395308, + 307.675781, + 205.566406 + ], + [ + 1194.338649, + 1.395308, + 307.675781, + 205.566406 + ], + [ + 1194.343966, + 1.395308, + 311.777344, + 205.761719 + ], + [ + 1194.348765, + 1.395308, + 311.777344, + 205.761719 + ], + [ + 1194.353688, + 1.395308, + 311.777344, + 205.761719 + ], + [ + 1194.358648, + 1.395308, + 311.777344, + 205.761719 + ], + [ + 1194.36373, + 1.395308, + 315.898438, + 205.664062 + ], + [ + 1194.368676, + 1.395308, + 315.898438, + 205.664062 + ], + [ + 1194.373714, + 1.395308, + 315.898438, + 205.664062 + ], + [ + 1194.379168, + 1.395308, + 315.898438, + 205.664062 + ], + [ + 1194.383768, + 1.395308, + 319.980469, + 205.273438 + ], + [ + 1194.388878, + 1.395308, + 319.980469, + 205.273438 + ], + [ + 1194.393686, + 1.395308, + 319.980469, + 205.273438 + ], + [ + 1194.398645, + 1.395308, + 319.980469, + 205.273438 + ], + [ + 1194.403719, + 1.395308, + 324.082031, + 205.46875 + ], + [ + 1194.409119, + 1.395308, + 324.082031, + 205.46875 + ], + [ + 1194.413688, + 1.395308, + 324.082031, + 205.46875 + ], + [ + 1194.418647, + 1.395308, + 324.082031, + 205.46875 + ], + [ + 1194.42561, + 1.395308, + 328.203125, + 205.371094 + ], + [ + 1194.428712, + 1.395308, + 328.203125, + 205.371094 + ], + [ + 1194.433732, + 1.395308, + 328.203125, + 205.371094 + ], + [ + 1194.438668, + 1.395308, + 328.203125, + 205.371094 + ], + [ + 1194.443652, + 1.395308, + 328.203125, + 205.371094 + ], + [ + 1194.448873, + 1.395308, + 336.464844, + 205.664062 + ], + [ + 1194.453677, + 1.395308, + 336.464844, + 205.664062 + ], + [ + 1194.458823, + 1.395308, + 336.464844, + 205.664062 + ], + [ + 1194.463653, + 1.395308, + 336.464844, + 205.664062 + ], + [ + 1194.468683, + 1.395308, + 340.507812, + 205.371094 + ], + [ + 1194.473672, + 1.395308, + 340.507812, + 205.371094 + ], + [ + 1194.478698, + 1.395308, + 340.507812, + 205.371094 + ], + [ + 1194.48369, + 1.395308, + 340.507812, + 205.371094 + ], + [ + 1194.488726, + 1.395308, + 344.599609, + 205.175781 + ], + [ + 1194.493706, + 1.395308, + 344.599609, + 205.175781 + ], + [ + 1194.498721, + 1.395308, + 344.599609, + 205.175781 + ], + [ + 1194.503723, + 1.395308, + 344.599609, + 205.175781 + ], + [ + 1194.508786, + 1.395308, + 348.691406, + 204.882812 + ], + [ + 1194.513721, + 1.395308, + 348.691406, + 204.882812 + ], + [ + 1194.518712, + 1.395308, + 348.691406, + 204.882812 + ], + [ + 1194.523688, + 1.395308, + 348.691406, + 204.882812 + ], + [ + 1194.529219, + 1.395308, + 352.802734, + 204.980469 + ], + [ + 1194.533846, + 1.395308, + 352.802734, + 204.980469 + ], + [ + 1194.538685, + 1.395308, + 352.802734, + 204.980469 + ], + [ + 1194.543748, + 1.395308, + 352.802734, + 204.980469 + ], + [ + 1194.549388, + 1.395308, + 356.982422, + 205.273438 + ], + [ + 1194.55375, + 1.395308, + 356.982422, + 205.273438 + ], + [ + 1194.558671, + 1.395308, + 356.982422, + 205.273438 + ], + [ + 1194.563666, + 1.395308, + 356.982422, + 205.273438 + ], + [ + 1194.568728, + 1.395308, + 356.982422, + 205.273438 + ], + [ + 1194.573736, + 1.395308, + 361.09375, + 205.859375 + ], + [ + 1194.578737, + 1.395308, + 361.09375, + 205.859375 + ], + [ + 1194.583666, + 1.395308, + 361.09375, + 205.859375 + ], + [ + 1194.58883, + 1.395308, + 361.09375, + 205.859375 + ], + [ + 1194.593737, + 1.395308, + 365.244141, + 206.347656 + ], + [ + 1194.598699, + 1.395308, + 365.244141, + 206.347656 + ], + [ + 1194.603666, + 1.395308, + 365.244141, + 206.347656 + ], + [ + 1194.609182, + 1.395308, + 365.244141, + 206.347656 + ], + [ + 1194.613794, + 1.395308, + 369.375, + 206.738281 + ], + [ + 1194.618655, + 1.395308, + 369.375, + 206.738281 + ], + [ + 1194.623668, + 1.395308, + 369.375, + 206.738281 + ], + [ + 1194.630967, + 1.395308, + 369.375, + 206.738281 + ], + [ + 1194.633742, + 1.395308, + 373.535156, + 207.128906 + ], + [ + 1194.638733, + 1.395308, + 373.535156, + 207.128906 + ], + [ + 1194.643678, + 1.395308, + 373.535156, + 207.128906 + ], + [ + 1194.648682, + 1.395308, + 373.535156, + 207.128906 + ], + [ + 1194.653829, + 1.398167, + 377.675781, + 206.933594 + ], + [ + 1194.658751, + 1.398167, + 377.675781, + 206.933594 + ], + [ + 1194.663674, + 1.398167, + 377.675781, + 206.933594 + ], + [ + 1194.668671, + 1.398167, + 377.675781, + 206.933594 + ], + [ + 1194.67375, + 1.398167, + 381.796875, + 206.933594 + ], + [ + 1194.678651, + 1.398167, + 381.796875, + 206.933594 + ], + [ + 1194.683687, + 1.398167, + 381.796875, + 206.933594 + ], + [ + 1194.6889, + 1.398167, + 381.796875, + 206.933594 + ], + [ + 1194.693751, + 1.398167, + 385.9375, + 207.03125 + ], + [ + 1194.698784, + 1.398167, + 385.9375, + 207.03125 + ], + [ + 1194.703691, + 1.398167, + 385.9375, + 207.03125 + ], + [ + 1194.708887, + 1.398167, + 385.9375, + 207.03125 + ], + [ + 1194.713718, + 1.398167, + 390.048828, + 206.640625 + ], + [ + 1194.718704, + 1.398167, + 390.048828, + 206.640625 + ], + [ + 1194.723718, + 1.398167, + 390.048828, + 206.640625 + ], + [ + 1194.728732, + 1.398167, + 390.048828, + 206.640625 + ], + [ + 1194.733806, + 1.398167, + 394.169922, + 206.445312 + ], + [ + 1194.738682, + 1.398167, + 394.169922, + 206.445312 + ], + [ + 1194.743709, + 1.398167, + 394.169922, + 206.445312 + ], + [ + 1194.748719, + 1.398167, + 394.169922, + 206.445312 + ], + [ + 1194.753798, + 1.398167, + 398.310547, + 206.25 + ], + [ + 1194.758692, + 1.398167, + 398.310547, + 206.25 + ], + [ + 1194.763693, + 1.398167, + 398.310547, + 206.25 + ], + [ + 1194.76871, + 1.398167, + 398.310547, + 206.25 + ], + [ + 1194.773911, + 1.398167, + 402.412109, + 206.152344 + ], + [ + 1194.778755, + 1.398167, + 402.412109, + 206.152344 + ], + [ + 1194.783688, + 1.398167, + 402.412109, + 206.152344 + ], + [ + 1194.788699, + 1.398167, + 402.412109, + 206.152344 + ], + [ + 1194.793761, + 1.398167, + 406.523438, + 205.761719 + ], + [ + 1194.798649, + 1.398167, + 406.523438, + 205.761719 + ], + [ + 1194.803693, + 1.398167, + 406.523438, + 205.761719 + ], + [ + 1194.808787, + 1.398167, + 406.523438, + 205.761719 + ], + [ + 1194.813737, + 1.398167, + 410.595703, + 205.664062 + ], + [ + 1194.818655, + 1.398167, + 410.595703, + 205.664062 + ], + [ + 1194.823662, + 1.398167, + 410.595703, + 205.664062 + ], + [ + 1194.828734, + 1.398167, + 410.595703, + 205.664062 + ], + [ + 1194.833771, + 1.398167, + 414.697266, + 205.273438 + ], + [ + 1194.838728, + 1.398167, + 414.697266, + 205.273438 + ], + [ + 1194.843699, + 1.398167, + 414.697266, + 205.273438 + ], + [ + 1194.848737, + 1.398167, + 414.697266, + 205.273438 + ], + [ + 1194.853737, + 1.398167, + 418.798828, + 204.882812 + ], + [ + 1194.858661, + 1.398167, + 418.798828, + 204.882812 + ], + [ + 1194.863774, + 1.398167, + 418.798828, + 204.882812 + ], + [ + 1194.86867, + 1.398167, + 418.798828, + 204.882812 + ], + [ + 1194.873751, + 1.398167, + 422.890625, + 204.785156 + ], + [ + 1194.878706, + 1.398167, + 422.890625, + 204.785156 + ], + [ + 1194.883729, + 1.398167, + 422.890625, + 204.785156 + ], + [ + 1194.888678, + 1.398167, + 422.890625, + 204.785156 + ], + [ + 1194.893726, + 1.398167, + 427.03125, + 205.078125 + ], + [ + 1194.898649, + 1.398167, + 427.03125, + 205.078125 + ], + [ + 1194.903682, + 1.398167, + 427.03125, + 205.078125 + ], + [ + 1194.908734, + 1.398167, + 427.03125, + 205.078125 + ], + [ + 1194.913821, + 1.398167, + 431.113281, + 205.078125 + ], + [ + 1194.918663, + 1.398167, + 431.113281, + 205.078125 + ], + [ + 1194.923677, + 1.398167, + 431.113281, + 205.078125 + ], + [ + 1194.92873, + 1.398167, + 431.113281, + 205.078125 + ], + [ + 1194.933749, + 1.398167, + 435.234375, + 205.371094 + ], + [ + 1194.938687, + 1.398167, + 435.234375, + 205.371094 + ], + [ + 1194.943718, + 1.398167, + 435.234375, + 205.371094 + ], + [ + 1194.949431, + 1.398167, + 435.234375, + 205.371094 + ], + [ + 1194.953725, + 1.398167, + 439.306641, + 205.078125 + ], + [ + 1194.958695, + 1.398167, + 439.306641, + 205.078125 + ], + [ + 1194.963697, + 1.398167, + 439.306641, + 205.078125 + ], + [ + 1194.968702, + 1.398167, + 439.306641, + 205.078125 + ], + [ + 1194.973796, + 1.398167, + 443.349609, + 204.6875 + ], + [ + 1194.978691, + 1.398167, + 443.349609, + 204.6875 + ], + [ + 1194.983753, + 1.398167, + 443.349609, + 204.6875 + ], + [ + 1194.988849, + 1.398167, + 443.349609, + 204.6875 + ], + [ + 1194.993738, + 1.398167, + 447.451172, + 204.296875 + ], + [ + 1194.999081, + 1.398167, + 447.451172, + 204.296875 + ], + [ + 1195.003767, + 1.398167, + 447.451172, + 204.296875 + ], + [ + 1195.008805, + 1.398167, + 447.451172, + 204.296875 + ], + [ + 1195.013734, + 1.398167, + 451.533203, + 204.199219 + ], + [ + 1195.018687, + 1.398167, + 451.533203, + 204.199219 + ], + [ + 1195.02371, + 1.398167, + 451.533203, + 204.199219 + ], + [ + 1195.028725, + 1.398167, + 451.533203, + 204.199219 + ], + [ + 1195.033797, + 1.398167, + 455.644531, + 204.101562 + ], + [ + 1195.038697, + 1.398167, + 455.644531, + 204.101562 + ], + [ + 1195.043705, + 1.398167, + 455.644531, + 204.101562 + ], + [ + 1195.048718, + 1.398167, + 455.644531, + 204.101562 + ], + [ + 1195.053774, + 1.398167, + 459.746094, + 204.394531 + ], + [ + 1195.058655, + 1.398167, + 459.746094, + 204.394531 + ], + [ + 1195.063699, + 1.398167, + 459.746094, + 204.394531 + ], + [ + 1195.068741, + 1.398167, + 459.746094, + 204.394531 + ], + [ + 1195.07374, + 1.398167, + 463.828125, + 204.6875 + ], + [ + 1195.078649, + 1.398167, + 463.828125, + 204.6875 + ], + [ + 1195.083769, + 1.398167, + 463.828125, + 204.6875 + ], + [ + 1195.088674, + 1.398167, + 463.828125, + 204.6875 + ], + [ + 1195.09373, + 1.398167, + 467.949219, + 204.785156 + ], + [ + 1195.098659, + 1.398167, + 467.949219, + 204.785156 + ], + [ + 1195.10379, + 1.398167, + 467.949219, + 204.785156 + ], + [ + 1195.109114, + 1.398167, + 467.949219, + 204.785156 + ], + [ + 1195.113731, + 1.398167, + 472.041016, + 205.078125 + ], + [ + 1195.118735, + 1.398167, + 472.041016, + 205.078125 + ], + [ + 1195.12368, + 1.398167, + 472.041016, + 205.078125 + ], + [ + 1195.128672, + 1.398167, + 472.041016, + 205.078125 + ], + [ + 1195.133815, + 1.398167, + 476.191406, + 205.46875 + ], + [ + 1195.138665, + 1.398167, + 476.191406, + 205.46875 + ], + [ + 1195.143697, + 1.398167, + 476.191406, + 205.46875 + ], + [ + 1195.148676, + 1.398167, + 476.191406, + 205.46875 + ], + [ + 1195.153782, + 1.398167, + 480.283203, + 205.273438 + ], + [ + 1195.15867, + 1.398167, + 480.283203, + 205.273438 + ], + [ + 1195.16423, + 1.398167, + 480.283203, + 205.273438 + ], + [ + 1195.168973, + 1.398167, + 480.283203, + 205.273438 + ], + [ + 1195.173712, + 1.398167, + 484.375, + 205.46875 + ], + [ + 1195.17872, + 1.398167, + 484.375, + 205.46875 + ], + [ + 1195.183691, + 1.398167, + 484.375, + 205.46875 + ], + [ + 1195.188823, + 1.398167, + 484.375, + 205.46875 + ], + [ + 1195.193701, + 1.398167, + 488.466797, + 205.273438 + ], + [ + 1195.198697, + 1.398167, + 488.466797, + 205.273438 + ], + [ + 1195.20368, + 1.398167, + 488.466797, + 205.273438 + ], + [ + 1195.208722, + 1.398167, + 488.466797, + 205.273438 + ], + [ + 1195.213716, + 1.398167, + 492.539062, + 204.980469 + ], + [ + 1195.218694, + 1.398167, + 492.539062, + 204.980469 + ], + [ + 1195.223698, + 1.398167, + 492.539062, + 204.980469 + ], + [ + 1195.229586, + 1.398167, + 492.539062, + 204.980469 + ], + [ + 1195.233783, + 1.398167, + 496.650391, + 204.589844 + ], + [ + 1195.238693, + 1.398167, + 496.650391, + 204.589844 + ], + [ + 1195.246258, + 1.398167, + 496.650391, + 204.589844 + ], + [ + 1195.24877, + 1.398167, + 496.650391, + 204.589844 + ], + [ + 1195.25382, + 1.398167, + 500.673828, + 204.101562 + ], + [ + 1195.258705, + 1.398167, + 500.673828, + 204.101562 + ], + [ + 1195.263724, + 1.398167, + 500.673828, + 204.101562 + ], + [ + 1195.269043, + 1.398167, + 500.673828, + 204.101562 + ], + [ + 1195.273724, + 1.398167, + 504.755859, + 203.710938 + ], + [ + 1195.278709, + 1.398167, + 504.755859, + 203.710938 + ], + [ + 1195.283696, + 1.398167, + 504.755859, + 203.710938 + ], + [ + 1195.289175, + 1.398167, + 504.755859, + 203.710938 + ], + [ + 1195.293782, + 1.398167, + 508.808594, + 203.515625 + ], + [ + 1195.298657, + 1.398167, + 508.808594, + 203.515625 + ], + [ + 1195.303667, + 1.398167, + 508.808594, + 203.515625 + ], + [ + 1195.308651, + 1.398167, + 508.808594, + 203.515625 + ], + [ + 1195.313745, + 1.398167, + 512.861328, + 203.125 + ], + [ + 1195.318661, + 1.398167, + 512.861328, + 203.125 + ], + [ + 1195.323664, + 1.398167, + 512.861328, + 203.125 + ], + [ + 1195.328746, + 1.398167, + 512.861328, + 203.125 + ], + [ + 1195.333728, + 1.398167, + 516.943359, + 202.929688 + ], + [ + 1195.338654, + 1.398167, + 516.943359, + 202.929688 + ], + [ + 1195.34374, + 1.398167, + 516.943359, + 202.929688 + ], + [ + 1195.348786, + 1.398167, + 516.943359, + 202.929688 + ], + [ + 1195.353759, + 1.398167, + 521.005859, + 203.222656 + ], + [ + 1195.358661, + 1.398167, + 521.005859, + 203.222656 + ], + [ + 1195.363747, + 1.398167, + 521.005859, + 203.222656 + ], + [ + 1195.368829, + 1.398167, + 521.005859, + 203.222656 + ], + [ + 1195.37374, + 1.398167, + 525.097656, + 203.515625 + ], + [ + 1195.378666, + 1.398167, + 525.097656, + 203.515625 + ], + [ + 1195.383738, + 1.398167, + 525.097656, + 203.515625 + ], + [ + 1195.388685, + 1.398167, + 525.097656, + 203.515625 + ], + [ + 1195.393718, + 1.398167, + 529.179688, + 203.613281 + ], + [ + 1195.398696, + 1.398167, + 529.179688, + 203.613281 + ], + [ + 1195.403679, + 1.398167, + 529.179688, + 203.613281 + ], + [ + 1195.408907, + 1.398167, + 529.179688, + 203.613281 + ], + [ + 1195.413698, + 1.398167, + 533.251953, + 204.003906 + ], + [ + 1195.418651, + 1.398167, + 533.251953, + 204.003906 + ], + [ + 1195.423695, + 1.398167, + 533.251953, + 204.003906 + ], + [ + 1195.429322, + 1.398167, + 533.251953, + 204.003906 + ], + [ + 1195.433825, + 1.398167, + 537.333984, + 203.90625 + ], + [ + 1195.438684, + 1.398167, + 537.333984, + 203.90625 + ], + [ + 1195.44369, + 1.398167, + 537.333984, + 203.90625 + ], + [ + 1195.451311, + 1.398167, + 537.333984, + 203.90625 + ], + [ + 1195.453777, + 1.398167, + 541.357422, + 203.515625 + ], + [ + 1195.458685, + 1.398167, + 541.357422, + 203.515625 + ], + [ + 1195.463701, + 1.398167, + 541.357422, + 203.515625 + ], + [ + 1195.46887, + 1.398167, + 541.357422, + 203.515625 + ], + [ + 1195.473748, + 1.398167, + 545.419922, + 203.320312 + ], + [ + 1195.478688, + 1.398167, + 545.419922, + 203.320312 + ], + [ + 1195.483696, + 1.398167, + 545.419922, + 203.320312 + ], + [ + 1195.48872, + 1.398167, + 545.419922, + 203.320312 + ], + [ + 1195.493793, + 1.398167, + 549.482422, + 203.027344 + ], + [ + 1195.49871, + 1.398167, + 549.482422, + 203.027344 + ], + [ + 1195.503832, + 1.398167, + 549.482422, + 203.027344 + ], + [ + 1195.508849, + 1.398167, + 549.482422, + 203.027344 + ], + [ + 1195.513728, + 1.398167, + 553.544922, + 202.929688 + ], + [ + 1195.518663, + 1.398167, + 553.544922, + 202.929688 + ], + [ + 1195.523667, + 1.398167, + 553.544922, + 202.929688 + ], + [ + 1195.528777, + 1.398167, + 553.544922, + 202.929688 + ], + [ + 1195.533733, + 1.398167, + 557.626953, + 202.832031 + ], + [ + 1195.538736, + 1.398167, + 557.626953, + 202.832031 + ], + [ + 1195.543759, + 1.398167, + 557.626953, + 202.832031 + ], + [ + 1195.548649, + 1.398167, + 557.626953, + 202.832031 + ], + [ + 1195.553771, + 1.398167, + 561.650391, + 202.929688 + ], + [ + 1195.558689, + 1.398167, + 561.650391, + 202.929688 + ], + [ + 1195.563673, + 1.398167, + 561.650391, + 202.929688 + ], + [ + 1195.568694, + 1.398167, + 561.650391, + 202.929688 + ], + [ + 1195.573809, + 1.398167, + 565.712891, + 202.929688 + ], + [ + 1195.578681, + 1.398167, + 565.712891, + 202.929688 + ], + [ + 1195.583666, + 1.398167, + 565.712891, + 202.929688 + ], + [ + 1195.58867, + 1.398167, + 565.712891, + 202.929688 + ], + [ + 1195.593728, + 1.398167, + 569.775391, + 202.929688 + ], + [ + 1195.598666, + 1.398167, + 569.775391, + 202.929688 + ], + [ + 1195.603672, + 1.398167, + 569.775391, + 202.929688 + ], + [ + 1195.608667, + 1.398167, + 569.775391, + 202.929688 + ], + [ + 1195.61377, + 1.398167, + 573.847656, + 202.929688 + ], + [ + 1195.618799, + 1.398167, + 573.847656, + 202.929688 + ], + [ + 1195.623682, + 1.398167, + 573.847656, + 202.929688 + ], + [ + 1195.628679, + 1.398167, + 573.847656, + 202.929688 + ], + [ + 1195.633714, + 1.398167, + 577.910156, + 202.929688 + ], + [ + 1195.638651, + 1.398167, + 577.910156, + 202.929688 + ], + [ + 1195.643678, + 1.398167, + 577.910156, + 202.929688 + ], + [ + 1195.648671, + 1.398167, + 577.910156, + 202.929688 + ], + [ + 1195.653734, + 1.395308, + 581.933594, + 202.734375 + ], + [ + 1195.658833, + 1.395308, + 581.933594, + 202.734375 + ], + [ + 1195.663715, + 1.395308, + 581.933594, + 202.734375 + ], + [ + 1195.669056, + 1.395308, + 581.933594, + 202.734375 + ], + [ + 1195.673769, + 1.395308, + 585.996094, + 202.832031 + ], + [ + 1195.678691, + 1.395308, + 585.996094, + 202.832031 + ], + [ + 1195.683714, + 1.395308, + 585.996094, + 202.832031 + ], + [ + 1195.688707, + 1.395308, + 585.996094, + 202.832031 + ], + [ + 1195.693717, + 1.395308, + 590.029297, + 202.441406 + ], + [ + 1195.698731, + 1.395308, + 590.029297, + 202.441406 + ], + [ + 1195.703716, + 1.395308, + 590.029297, + 202.441406 + ], + [ + 1195.708752, + 1.395308, + 590.029297, + 202.441406 + ], + [ + 1195.713733, + 1.395308, + 594.052734, + 202.148438 + ], + [ + 1195.718686, + 1.395308, + 594.052734, + 202.148438 + ], + [ + 1195.723722, + 1.395308, + 594.052734, + 202.148438 + ], + [ + 1195.728722, + 1.395308, + 594.052734, + 202.148438 + ], + [ + 1195.733736, + 1.401271, + 598.134766, + 202.246094 + ], + [ + 1195.7388, + 1.401271, + 598.134766, + 202.246094 + ], + [ + 1195.743759, + 1.401271, + 598.134766, + 202.246094 + ], + [ + 1195.748726, + 1.401271, + 598.134766, + 202.246094 + ], + [ + 1195.753731, + 1.395308, + 602.167969, + 202.441406 + ], + [ + 1195.758691, + 1.395308, + 602.167969, + 202.441406 + ], + [ + 1195.763729, + 1.395308, + 602.167969, + 202.441406 + ], + [ + 1195.768731, + 1.395308, + 602.167969, + 202.441406 + ], + [ + 1195.773731, + 1.395308, + 606.230469, + 202.148438 + ], + [ + 1195.778692, + 1.395308, + 606.230469, + 202.148438 + ], + [ + 1195.783713, + 1.395308, + 606.230469, + 202.148438 + ], + [ + 1195.788668, + 1.395308, + 606.230469, + 202.148438 + ], + [ + 1195.793804, + 1.395308, + 610.253906, + 202.34375 + ], + [ + 1195.798877, + 1.395308, + 610.253906, + 202.34375 + ], + [ + 1195.803684, + 1.395308, + 610.253906, + 202.34375 + ], + [ + 1195.808644, + 1.395308, + 610.253906, + 202.34375 + ], + [ + 1195.813758, + 1.395308, + 614.296875, + 202.441406 + ], + [ + 1195.818662, + 1.395308, + 614.296875, + 202.441406 + ], + [ + 1195.823763, + 1.395308, + 614.296875, + 202.441406 + ], + [ + 1195.828751, + 1.395308, + 614.296875, + 202.441406 + ], + [ + 1195.833788, + 1.395308, + 618.349609, + 202.050781 + ], + [ + 1195.838641, + 1.395308, + 618.349609, + 202.050781 + ], + [ + 1195.843675, + 1.395308, + 618.349609, + 202.050781 + ], + [ + 1195.848665, + 1.395308, + 618.349609, + 202.050781 + ], + [ + 1195.853717, + 1.395308, + 622.353516, + 201.855469 + ], + [ + 1195.86118, + 1.395308, + 622.353516, + 201.855469 + ], + [ + 1195.86369, + 1.395308, + 622.353516, + 201.855469 + ], + [ + 1195.868669, + 1.395308, + 622.353516, + 201.855469 + ], + [ + 1195.873754, + 1.395308, + 626.445312, + 202.246094 + ], + [ + 1195.878644, + 1.395308, + 626.445312, + 202.246094 + ], + [ + 1195.883692, + 1.395308, + 626.445312, + 202.246094 + ], + [ + 1195.88868, + 1.395308, + 626.445312, + 202.246094 + ], + [ + 1195.8937, + 1.395308, + 630.478516, + 202.148438 + ], + [ + 1195.898657, + 1.395308, + 630.478516, + 202.148438 + ], + [ + 1195.9037, + 1.395308, + 630.478516, + 202.148438 + ], + [ + 1195.908752, + 1.395308, + 630.478516, + 202.148438 + ], + [ + 1195.913689, + 1.395308, + 634.541016, + 202.441406 + ], + [ + 1195.918641, + 1.395308, + 634.541016, + 202.441406 + ], + [ + 1195.923698, + 1.395308, + 634.541016, + 202.441406 + ], + [ + 1195.928722, + 1.395308, + 634.541016, + 202.441406 + ], + [ + 1195.933722, + 1.395308, + 638.603516, + 202.636719 + ], + [ + 1195.93868, + 1.395308, + 638.603516, + 202.636719 + ], + [ + 1195.943759, + 1.395308, + 638.603516, + 202.636719 + ], + [ + 1195.948723, + 1.395308, + 638.603516, + 202.636719 + ], + [ + 1195.95374, + 1.395308, + 642.587891, + 202.441406 + ], + [ + 1195.95874, + 1.395308, + 642.587891, + 202.441406 + ], + [ + 1195.963777, + 1.395308, + 642.587891, + 202.441406 + ], + [ + 1195.96873, + 1.395308, + 642.587891, + 202.441406 + ], + [ + 1195.973762, + 1.395308, + 646.669922, + 202.246094 + ], + [ + 1195.978685, + 1.395308, + 646.669922, + 202.246094 + ], + [ + 1195.984049, + 1.395308, + 646.669922, + 202.246094 + ], + [ + 1195.988712, + 1.395308, + 646.669922, + 202.246094 + ], + [ + 1195.993785, + 1.395308, + 650.751953, + 202.734375 + ], + [ + 1195.998708, + 1.395308, + 650.751953, + 202.734375 + ], + [ + 1196.003707, + 1.395308, + 650.751953, + 202.734375 + ], + [ + 1196.008689, + 1.395308, + 650.751953, + 202.734375 + ], + [ + 1196.013728, + 1.395308, + 654.882812, + 203.320312 + ], + [ + 1196.01873, + 1.395308, + 654.882812, + 203.320312 + ], + [ + 1196.023662, + 1.395308, + 654.882812, + 203.320312 + ], + [ + 1196.028853, + 1.395308, + 654.882812, + 203.320312 + ], + [ + 1196.033738, + 1.395308, + 658.994141, + 203.90625 + ], + [ + 1196.03875, + 1.395308, + 658.994141, + 203.90625 + ], + [ + 1196.043754, + 1.395308, + 658.994141, + 203.90625 + ], + [ + 1196.048697, + 1.395308, + 658.994141, + 203.90625 + ], + [ + 1196.053724, + 1.395308, + 663.085938, + 204.882812 + ], + [ + 1196.058677, + 1.395308, + 663.085938, + 204.882812 + ], + [ + 1196.065894, + 1.395308, + 663.085938, + 204.882812 + ], + [ + 1196.068696, + 1.395308, + 663.085938, + 204.882812 + ], + [ + 1196.073857, + 1.395308, + 667.177734, + 205.175781 + ], + [ + 1196.078663, + 1.395308, + 667.177734, + 205.175781 + ], + [ + 1196.083652, + 1.395308, + 667.177734, + 205.175781 + ], + [ + 1196.088699, + 1.395308, + 667.177734, + 205.175781 + ], + [ + 1196.093789, + 1.392449, + 671.289062, + 205.371094 + ], + [ + 1196.09867, + 1.392449, + 671.289062, + 205.371094 + ], + [ + 1196.103669, + 1.392449, + 671.289062, + 205.371094 + ], + [ + 1196.108876, + 1.392449, + 671.289062, + 205.371094 + ], + [ + 1196.113772, + 1.392449, + 675.419922, + 205.273438 + ], + [ + 1196.118769, + 1.392449, + 675.419922, + 205.273438 + ], + [ + 1196.123752, + 1.392449, + 675.419922, + 205.273438 + ], + [ + 1196.129005, + 1.392449, + 675.419922, + 205.273438 + ], + [ + 1196.133692, + 1.395308, + 679.511719, + 205.175781 + ], + [ + 1196.138655, + 1.395308, + 679.511719, + 205.175781 + ], + [ + 1196.143752, + 1.395308, + 679.511719, + 205.175781 + ], + [ + 1196.148711, + 1.395308, + 679.511719, + 205.175781 + ], + [ + 1196.153815, + 1.395308, + 683.603516, + 205.175781 + ], + [ + 1196.15869, + 1.395308, + 683.603516, + 205.175781 + ], + [ + 1196.163775, + 1.395308, + 683.603516, + 205.175781 + ], + [ + 1196.169139, + 1.395308, + 683.603516, + 205.175781 + ], + [ + 1196.173736, + 1.395308, + 687.685547, + 204.980469 + ], + [ + 1196.178683, + 1.395308, + 687.685547, + 204.980469 + ], + [ + 1196.183766, + 1.395308, + 687.685547, + 204.980469 + ], + [ + 1196.188965, + 1.395308, + 687.685547, + 204.980469 + ], + [ + 1196.193723, + 1.395308, + 691.757812, + 204.785156 + ], + [ + 1196.198679, + 1.395308, + 691.757812, + 204.785156 + ], + [ + 1196.203697, + 1.395308, + 691.757812, + 204.785156 + ], + [ + 1196.208703, + 1.395308, + 691.757812, + 204.785156 + ], + [ + 1196.213757, + 1.395308, + 695.888672, + 204.882812 + ], + [ + 1196.218683, + 1.395308, + 695.888672, + 204.882812 + ], + [ + 1196.223715, + 1.395308, + 695.888672, + 204.882812 + ], + [ + 1196.228806, + 1.395308, + 695.888672, + 204.882812 + ], + [ + 1196.233737, + 1.395308, + 699.990234, + 204.785156 + ], + [ + 1196.23865, + 1.395308, + 699.990234, + 204.785156 + ], + [ + 1196.243742, + 1.395308, + 699.990234, + 204.785156 + ], + [ + 1196.24868, + 1.395308, + 699.990234, + 204.785156 + ], + [ + 1196.253733, + 1.395308, + 704.091797, + 204.882812 + ], + [ + 1196.258745, + 1.395308, + 704.091797, + 204.882812 + ], + [ + 1196.263671, + 1.395308, + 704.091797, + 204.882812 + ], + [ + 1196.268705, + 1.395308, + 704.091797, + 204.882812 + ], + [ + 1196.273751, + 1.395308, + 708.203125, + 205.078125 + ], + [ + 1196.278654, + 1.395308, + 708.203125, + 205.078125 + ], + [ + 1196.283698, + 1.395308, + 708.203125, + 205.078125 + ], + [ + 1196.288672, + 1.395308, + 708.203125, + 205.078125 + ], + [ + 1196.293806, + 1.395308, + 712.285156, + 205.175781 + ], + [ + 1196.298654, + 1.395308, + 712.285156, + 205.175781 + ], + [ + 1196.303675, + 1.395308, + 712.285156, + 205.175781 + ], + [ + 1196.308883, + 1.395308, + 712.285156, + 205.175781 + ], + [ + 1196.313824, + 1.395308, + 716.376953, + 204.882812 + ], + [ + 1196.318706, + 1.395308, + 716.376953, + 204.882812 + ], + [ + 1196.323681, + 1.395308, + 716.376953, + 204.882812 + ], + [ + 1196.328689, + 1.395308, + 716.376953, + 204.882812 + ], + [ + 1196.333721, + 1.395308, + 720.439453, + 204.492188 + ], + [ + 1196.338652, + 1.395308, + 720.439453, + 204.492188 + ], + [ + 1196.343668, + 1.395308, + 720.439453, + 204.492188 + ], + [ + 1196.348666, + 1.395308, + 720.439453, + 204.492188 + ], + [ + 1196.353724, + 1.395308, + 724.541016, + 204.492188 + ], + [ + 1196.358659, + 1.395308, + 724.541016, + 204.492188 + ], + [ + 1196.363668, + 1.395308, + 724.541016, + 204.492188 + ], + [ + 1196.368694, + 1.395308, + 724.541016, + 204.492188 + ], + [ + 1196.373732, + 1.395308, + 728.632812, + 204.296875 + ], + [ + 1196.378654, + 1.395308, + 728.632812, + 204.296875 + ], + [ + 1196.383713, + 1.395308, + 728.632812, + 204.296875 + ], + [ + 1196.388715, + 1.395308, + 728.632812, + 204.296875 + ], + [ + 1196.393902, + 1.395308, + 732.724609, + 204.394531 + ], + [ + 1196.398701, + 1.395308, + 732.724609, + 204.394531 + ], + [ + 1196.404409, + 1.395308, + 732.724609, + 204.394531 + ], + [ + 1196.40882, + 1.395308, + 732.724609, + 204.394531 + ], + [ + 1196.413698, + 1.395308, + 736.845703, + 204.492188 + ], + [ + 1196.418699, + 1.395308, + 736.845703, + 204.492188 + ], + [ + 1196.423695, + 1.395308, + 736.845703, + 204.492188 + ], + [ + 1196.428736, + 1.395308, + 736.845703, + 204.492188 + ], + [ + 1196.433735, + 1.395308, + 740.878906, + 204.296875 + ], + [ + 1196.438701, + 1.395308, + 740.878906, + 204.296875 + ], + [ + 1196.443701, + 1.395308, + 740.878906, + 204.296875 + ], + [ + 1196.448719, + 1.395308, + 740.878906, + 204.296875 + ], + [ + 1196.453759, + 1.395308, + 744.951172, + 204.199219 + ], + [ + 1196.4587, + 1.395308, + 744.951172, + 204.199219 + ], + [ + 1196.463675, + 1.395308, + 744.951172, + 204.199219 + ], + [ + 1196.468781, + 1.395308, + 744.951172, + 204.199219 + ], + [ + 1196.47385, + 1.395308, + 749.052734, + 204.199219 + ], + [ + 1196.47876, + 1.395308, + 749.052734, + 204.199219 + ], + [ + 1196.483648, + 1.395308, + 749.052734, + 204.199219 + ], + [ + 1196.488804, + 1.395308, + 749.052734, + 204.199219 + ], + [ + 1196.493732, + 1.395308, + 753.183594, + 204.785156 + ], + [ + 1196.498687, + 1.395308, + 753.183594, + 204.785156 + ], + [ + 1196.503644, + 1.395308, + 753.183594, + 204.785156 + ], + [ + 1196.509347, + 1.395308, + 753.183594, + 204.785156 + ], + [ + 1196.513736, + 1.395308, + 757.353516, + 205.273438 + ], + [ + 1196.518679, + 1.395308, + 757.353516, + 205.273438 + ], + [ + 1196.523674, + 1.395308, + 757.353516, + 205.273438 + ], + [ + 1196.528716, + 1.395308, + 757.353516, + 205.273438 + ], + [ + 1196.533738, + 1.395308, + 761.435547, + 205.566406 + ], + [ + 1196.538652, + 1.395308, + 761.435547, + 205.566406 + ], + [ + 1196.543771, + 1.395308, + 761.435547, + 205.566406 + ], + [ + 1196.5493, + 1.395308, + 761.435547, + 205.566406 + ], + [ + 1196.553766, + 1.395308, + 765.527344, + 205.664062 + ], + [ + 1196.558678, + 1.395308, + 765.527344, + 205.664062 + ], + [ + 1196.563677, + 1.395308, + 765.527344, + 205.664062 + ], + [ + 1196.568672, + 1.395308, + 765.527344, + 205.664062 + ], + [ + 1196.573726, + 1.395308, + 769.609375, + 205.664062 + ], + [ + 1196.578734, + 1.395308, + 769.609375, + 205.664062 + ], + [ + 1196.583692, + 1.395308, + 769.609375, + 205.664062 + ], + [ + 1196.588677, + 1.395308, + 769.609375, + 205.664062 + ], + [ + 1196.593729, + 1.395308, + 773.701172, + 205.175781 + ], + [ + 1196.598986, + 1.395308, + 773.701172, + 205.175781 + ], + [ + 1196.603679, + 1.395308, + 773.701172, + 205.175781 + ], + [ + 1196.608707, + 1.395308, + 773.701172, + 205.175781 + ], + [ + 1196.613708, + 1.395308, + 777.832031, + 204.6875 + ], + [ + 1196.618649, + 1.395308, + 777.832031, + 204.6875 + ], + [ + 1196.623677, + 1.395308, + 777.832031, + 204.6875 + ], + [ + 1196.629075, + 1.395308, + 777.832031, + 204.6875 + ], + [ + 1196.633726, + 1.395308, + 781.914062, + 204.785156 + ], + [ + 1196.638696, + 1.395308, + 781.914062, + 204.785156 + ], + [ + 1196.643711, + 1.395308, + 781.914062, + 204.785156 + ], + [ + 1196.648704, + 1.395308, + 781.914062, + 204.785156 + ], + [ + 1196.653707, + 1.395308, + 786.035156, + 204.980469 + ], + [ + 1196.658675, + 1.395308, + 786.035156, + 204.980469 + ], + [ + 1196.663721, + 1.395308, + 786.035156, + 204.980469 + ], + [ + 1196.668732, + 1.395308, + 786.035156, + 204.980469 + ], + [ + 1196.673766, + 1.395308, + 790.117188, + 205.078125 + ], + [ + 1196.681024, + 1.395308, + 790.117188, + 205.078125 + ], + [ + 1196.683811, + 1.395308, + 790.117188, + 205.078125 + ], + [ + 1196.688718, + 1.395308, + 790.117188, + 205.078125 + ], + [ + 1196.693733, + 1.395308, + 794.257812, + 205.371094 + ], + [ + 1196.698685, + 1.395308, + 794.257812, + 205.371094 + ], + [ + 1196.703796, + 1.395308, + 794.257812, + 205.371094 + ], + [ + 1196.708716, + 1.395308, + 794.257812, + 205.371094 + ], + [ + 1196.713737, + 1.395308, + 798.398438, + 205.664062 + ], + [ + 1196.718668, + 1.395308, + 798.398438, + 205.664062 + ], + [ + 1196.723679, + 1.395308, + 798.398438, + 205.664062 + ], + [ + 1196.728739, + 1.395308, + 798.398438, + 205.664062 + ], + [ + 1196.733744, + 1.395308, + 802.460938, + 205.566406 + ], + [ + 1196.738649, + 1.395308, + 802.460938, + 205.566406 + ], + [ + 1196.743677, + 1.395308, + 802.460938, + 205.566406 + ], + [ + 1196.748718, + 1.395308, + 802.460938, + 205.566406 + ], + [ + 1196.753761, + 1.395308, + 806.5625, + 205.273438 + ], + [ + 1196.758667, + 1.395308, + 806.5625, + 205.273438 + ], + [ + 1196.763751, + 1.395308, + 806.5625, + 205.273438 + ], + [ + 1196.768671, + 1.395308, + 806.5625, + 205.273438 + ], + [ + 1196.773728, + 1.395308, + 810.595703, + 204.785156 + ], + [ + 1196.778646, + 1.395308, + 810.595703, + 204.785156 + ], + [ + 1196.783701, + 1.395308, + 810.595703, + 204.785156 + ], + [ + 1196.788899, + 1.395308, + 810.595703, + 204.785156 + ], + [ + 1196.793765, + 1.395308, + 814.648438, + 203.90625 + ], + [ + 1196.798689, + 1.395308, + 814.648438, + 203.90625 + ], + [ + 1196.804189, + 1.395308, + 814.648438, + 203.90625 + ], + [ + 1196.808695, + 1.395308, + 814.648438, + 203.90625 + ], + [ + 1196.813715, + 1.395308, + 818.701172, + 203.125 + ], + [ + 1196.818814, + 1.395308, + 818.701172, + 203.125 + ], + [ + 1196.823646, + 1.395308, + 818.701172, + 203.125 + ], + [ + 1196.828695, + 1.395308, + 818.701172, + 203.125 + ], + [ + 1196.833714, + 1.395308, + 822.744141, + 202.734375 + ], + [ + 1196.838662, + 1.395308, + 822.744141, + 202.734375 + ], + [ + 1196.843642, + 1.395308, + 822.744141, + 202.734375 + ], + [ + 1196.84867, + 1.395308, + 822.744141, + 202.734375 + ], + [ + 1196.853683, + 1.392449, + 826.845703, + 202.832031 + ], + [ + 1196.858662, + 1.392449, + 826.845703, + 202.832031 + ], + [ + 1196.863683, + 1.392449, + 826.845703, + 202.832031 + ], + [ + 1196.868781, + 1.392449, + 826.845703, + 202.832031 + ], + [ + 1196.873694, + 1.392449, + 830.908203, + 203.125 + ], + [ + 1196.87871, + 1.392449, + 830.908203, + 203.125 + ], + [ + 1196.883984, + 1.392449, + 830.908203, + 203.125 + ], + [ + 1196.88871, + 1.392449, + 830.908203, + 203.125 + ], + [ + 1196.893731, + 1.392449, + 835.019531, + 203.808594 + ], + [ + 1196.898692, + 1.392449, + 835.019531, + 203.808594 + ], + [ + 1196.903734, + 1.392449, + 835.019531, + 203.808594 + ], + [ + 1196.908724, + 1.392449, + 835.019531, + 203.808594 + ], + [ + 1196.913711, + 1.392449, + 839.082031, + 203.808594 + ], + [ + 1196.918688, + 1.392449, + 839.082031, + 203.808594 + ], + [ + 1196.923686, + 1.392449, + 839.082031, + 203.808594 + ], + [ + 1196.928698, + 1.392449, + 839.082031, + 203.808594 + ], + [ + 1196.933729, + 1.392449, + 843.095703, + 203.613281 + ], + [ + 1196.938711, + 1.392449, + 843.095703, + 203.613281 + ], + [ + 1196.943697, + 1.392449, + 843.095703, + 203.613281 + ], + [ + 1196.948711, + 1.392449, + 843.095703, + 203.613281 + ], + [ + 1196.953711, + 1.392449, + 847.177734, + 203.417969 + ], + [ + 1196.959832, + 1.392449, + 847.177734, + 203.417969 + ], + [ + 1196.963706, + 1.392449, + 847.177734, + 203.417969 + ], + [ + 1196.968841, + 1.392449, + 847.177734, + 203.417969 + ], + [ + 1196.973833, + 1.392449, + 851.25, + 203.320312 + ], + [ + 1196.978659, + 1.392449, + 851.25, + 203.320312 + ], + [ + 1196.983708, + 1.392449, + 851.25, + 203.320312 + ], + [ + 1196.988916, + 1.392449, + 851.25, + 203.320312 + ], + [ + 1196.993837, + 1.392449, + 855.332031, + 203.125 + ], + [ + 1196.998651, + 1.392449, + 855.332031, + 203.125 + ], + [ + 1197.003671, + 1.392449, + 855.332031, + 203.125 + ], + [ + 1197.008971, + 1.392449, + 855.332031, + 203.125 + ], + [ + 1197.013791, + 1.392449, + 859.375, + 202.929688 + ], + [ + 1197.01866, + 1.392449, + 859.375, + 202.929688 + ], + [ + 1197.023684, + 1.392449, + 859.375, + 202.929688 + ], + [ + 1197.028671, + 1.392449, + 859.375, + 202.929688 + ], + [ + 1197.033887, + 1.392449, + 863.388672, + 202.929688 + ], + [ + 1197.038654, + 1.392449, + 863.388672, + 202.929688 + ], + [ + 1197.043662, + 1.392449, + 863.388672, + 202.929688 + ], + [ + 1197.048678, + 1.392449, + 863.388672, + 202.929688 + ], + [ + 1197.053733, + 1.395308, + 867.441406, + 202.539062 + ], + [ + 1197.058663, + 1.395308, + 867.441406, + 202.539062 + ], + [ + 1197.063704, + 1.395308, + 867.441406, + 202.539062 + ], + [ + 1197.068743, + 1.395308, + 867.441406, + 202.539062 + ], + [ + 1197.073716, + 1.395308, + 871.464844, + 202.246094 + ], + [ + 1197.078692, + 1.395308, + 871.464844, + 202.246094 + ], + [ + 1197.08381, + 1.395308, + 871.464844, + 202.246094 + ], + [ + 1197.088639, + 1.395308, + 871.464844, + 202.246094 + ], + [ + 1197.093767, + 1.395308, + 875.537109, + 202.050781 + ], + [ + 1197.098652, + 1.395308, + 875.537109, + 202.050781 + ], + [ + 1197.103716, + 1.395308, + 875.537109, + 202.050781 + ], + [ + 1197.108684, + 1.395308, + 875.537109, + 202.050781 + ], + [ + 1197.113713, + 1.395308, + 879.589844, + 202.148438 + ], + [ + 1197.118688, + 1.395308, + 879.589844, + 202.148438 + ], + [ + 1197.123695, + 1.395308, + 879.589844, + 202.148438 + ], + [ + 1197.128757, + 1.395308, + 879.589844, + 202.148438 + ], + [ + 1197.133709, + 1.395308, + 883.623047, + 202.34375 + ], + [ + 1197.138768, + 1.395308, + 883.623047, + 202.34375 + ], + [ + 1197.143711, + 1.395308, + 883.623047, + 202.34375 + ], + [ + 1197.1487, + 1.395308, + 883.623047, + 202.34375 + ], + [ + 1197.153726, + 1.395308, + 887.695312, + 202.539062 + ], + [ + 1197.158678, + 1.395308, + 887.695312, + 202.539062 + ], + [ + 1197.163941, + 1.395308, + 887.695312, + 202.539062 + ], + [ + 1197.168822, + 1.395308, + 887.695312, + 202.539062 + ], + [ + 1197.173734, + 1.395308, + 891.708984, + 202.441406 + ], + [ + 1197.178691, + 1.395308, + 891.708984, + 202.441406 + ], + [ + 1197.183696, + 1.395308, + 891.708984, + 202.441406 + ], + [ + 1197.188799, + 1.401271, + 891.708984, + 202.441406 + ], + [ + 1197.193775, + 1.401271, + 895.761719, + 202.246094 + ], + [ + 1197.198673, + 1.395308, + 895.761719, + 202.246094 + ], + [ + 1197.203658, + 1.395308, + 895.761719, + 202.246094 + ], + [ + 1197.208657, + 1.395308, + 895.761719, + 202.246094 + ], + [ + 1197.213803, + 1.395308, + 899.775391, + 201.855469 + ], + [ + 1197.218665, + 1.395308, + 899.775391, + 201.855469 + ], + [ + 1197.223656, + 1.395308, + 899.775391, + 201.855469 + ], + [ + 1197.228656, + 1.395308, + 899.775391, + 201.855469 + ], + [ + 1197.233721, + 1.395308, + 903.759766, + 201.367188 + ], + [ + 1197.23884, + 1.395308, + 903.759766, + 201.367188 + ], + [ + 1197.243692, + 1.395308, + 903.759766, + 201.367188 + ], + [ + 1197.248917, + 1.395308, + 903.759766, + 201.367188 + ], + [ + 1197.253725, + 1.395308, + 907.783203, + 200.976562 + ], + [ + 1197.258672, + 1.401271, + 907.783203, + 200.976562 + ], + [ + 1197.263677, + 1.401271, + 907.783203, + 200.976562 + ], + [ + 1197.268655, + 1.395308, + 907.783203, + 200.976562 + ], + [ + 1197.273855, + 1.395308, + 911.777344, + 200.683594 + ], + [ + 1197.278665, + 1.395308, + 911.777344, + 200.683594 + ], + [ + 1197.283651, + 1.395308, + 911.777344, + 200.683594 + ], + [ + 1197.288655, + 1.395308, + 911.777344, + 200.683594 + ], + [ + 1197.293772, + 1.395308, + 915.810547, + 200.488281 + ], + [ + 1197.29869, + 1.395308, + 915.810547, + 200.488281 + ], + [ + 1197.303726, + 1.395308, + 915.810547, + 200.488281 + ], + [ + 1197.308664, + 1.395308, + 915.810547, + 200.488281 + ], + [ + 1197.313708, + 1.395308, + 919.833984, + 200.585938 + ], + [ + 1197.318696, + 1.395308, + 919.833984, + 200.585938 + ], + [ + 1197.323672, + 1.395308, + 919.833984, + 200.585938 + ], + [ + 1197.328779, + 1.395308, + 919.833984, + 200.585938 + ], + [ + 1197.333747, + 1.395308, + 923.867188, + 201.074219 + ], + [ + 1197.33866, + 1.395308, + 923.867188, + 201.074219 + ], + [ + 1197.343709, + 1.395308, + 923.867188, + 201.074219 + ], + [ + 1197.348867, + 1.395308, + 923.867188, + 201.074219 + ], + [ + 1197.353705, + 1.395308, + 927.919922, + 201.269531 + ], + [ + 1197.358699, + 1.395308, + 927.919922, + 201.269531 + ], + [ + 1197.36371, + 1.395308, + 927.919922, + 201.269531 + ], + [ + 1197.368785, + 1.395308, + 927.919922, + 201.269531 + ], + [ + 1197.373697, + 1.395308, + 931.943359, + 201.5625 + ], + [ + 1197.378761, + 1.395308, + 931.943359, + 201.5625 + ], + [ + 1197.383701, + 1.395308, + 931.943359, + 201.5625 + ], + [ + 1197.388699, + 1.395308, + 931.943359, + 201.5625 + ], + [ + 1197.393724, + 1.395308, + 935.996094, + 201.757812 + ], + [ + 1197.399123, + 1.395308, + 935.996094, + 201.757812 + ], + [ + 1197.403893, + 1.395308, + 935.996094, + 201.757812 + ], + [ + 1197.40889, + 1.395308, + 935.996094, + 201.757812 + ], + [ + 1197.414696, + 1.395308, + 940.009766, + 201.660156 + ], + [ + 1197.418797, + 1.395308, + 940.009766, + 201.660156 + ], + [ + 1197.423694, + 1.395308, + 940.009766, + 201.660156 + ], + [ + 1197.428722, + 1.395308, + 940.009766, + 201.660156 + ], + [ + 1197.433694, + 1.395308, + 940.009766, + 201.660156 + ], + [ + 1197.438699, + 1.395308, + 943.994141, + 201.171875 + ], + [ + 1197.443653, + 1.395308, + 943.994141, + 201.171875 + ], + [ + 1197.44866, + 1.395308, + 943.994141, + 201.171875 + ], + [ + 1197.453709, + 1.395308, + 943.994141, + 201.171875 + ], + [ + 1197.458779, + 1.407234, + 948.046875, + 201.269531 + ], + [ + 1197.463711, + 1.407234, + 948.046875, + 201.269531 + ], + [ + 1197.468665, + 1.395308, + 948.046875, + 201.269531 + ], + [ + 1197.473685, + 1.395308, + 948.046875, + 201.269531 + ], + [ + 1197.478692, + 1.395308, + 952.080078, + 201.367188 + ], + [ + 1197.483647, + 1.395308, + 952.080078, + 201.367188 + ], + [ + 1197.488702, + 1.395308, + 952.080078, + 201.367188 + ], + [ + 1197.493693, + 1.395308, + 952.080078, + 201.367188 + ], + [ + 1197.498788, + 1.395308, + 956.132812, + 201.464844 + ], + [ + 1197.503681, + 1.395308, + 956.132812, + 201.464844 + ], + [ + 1197.508827, + 1.395308, + 956.132812, + 201.464844 + ], + [ + 1197.51371, + 1.395308, + 956.132812, + 201.464844 + ], + [ + 1197.518878, + 1.395308, + 960.146484, + 201.367188 + ], + [ + 1197.523664, + 1.395308, + 960.146484, + 201.367188 + ], + [ + 1197.528766, + 1.395308, + 960.146484, + 201.367188 + ], + [ + 1197.533877, + 1.395308, + 960.146484, + 201.367188 + ], + [ + 1197.538732, + 1.395308, + 964.121094, + 201.367188 + ], + [ + 1197.543657, + 1.395308, + 964.121094, + 201.367188 + ], + [ + 1197.54871, + 1.395308, + 964.121094, + 201.367188 + ], + [ + 1197.553686, + 1.395308, + 964.121094, + 201.367188 + ], + [ + 1197.558702, + 1.395308, + 968.134766, + 200.878906 + ], + [ + 1197.56367, + 1.395308, + 968.134766, + 200.878906 + ], + [ + 1197.568677, + 1.395308, + 968.134766, + 200.878906 + ], + [ + 1197.57382, + 1.395308, + 968.134766, + 200.878906 + ], + [ + 1197.578674, + 1.395308, + 972.119141, + 200.488281 + ], + [ + 1197.583995, + 1.395308, + 972.119141, + 200.488281 + ], + [ + 1197.588735, + 1.395308, + 972.119141, + 200.488281 + ], + [ + 1197.593694, + 1.395308, + 972.119141, + 200.488281 + ], + [ + 1197.598738, + 1.395308, + 976.152344, + 200.195312 + ], + [ + 1197.604435, + 1.395308, + 976.152344, + 200.195312 + ], + [ + 1197.609014, + 1.395308, + 976.152344, + 200.195312 + ], + [ + 1197.613712, + 1.395308, + 976.152344, + 200.195312 + ], + [ + 1197.618746, + 1.395308, + 980.126953, + 199.902344 + ], + [ + 1197.623712, + 1.395308, + 980.126953, + 199.902344 + ], + [ + 1197.628701, + 1.395308, + 980.126953, + 199.902344 + ], + [ + 1197.633747, + 1.395308, + 980.126953, + 199.902344 + ], + [ + 1197.638694, + 1.395308, + 984.111328, + 200.0 + ], + [ + 1197.64377, + 1.395308, + 984.111328, + 200.0 + ], + [ + 1197.648713, + 1.395308, + 984.111328, + 200.0 + ], + [ + 1197.653736, + 1.395308, + 984.111328, + 200.0 + ], + [ + 1197.65871, + 1.395308, + 988.125, + 199.902344 + ], + [ + 1197.663696, + 1.395308, + 988.125, + 199.902344 + ], + [ + 1197.669218, + 1.395308, + 988.125, + 199.902344 + ], + [ + 1197.67372, + 1.395308, + 988.125, + 199.902344 + ], + [ + 1197.678706, + 1.395308, + 992.099609, + 199.707031 + ], + [ + 1197.683694, + 1.395308, + 992.099609, + 199.707031 + ], + [ + 1197.688674, + 1.395308, + 992.099609, + 199.707031 + ], + [ + 1197.693778, + 1.395308, + 992.099609, + 199.707031 + ], + [ + 1197.698684, + 1.395308, + 996.113281, + 199.511719 + ], + [ + 1197.703759, + 1.395308, + 996.113281, + 199.511719 + ], + [ + 1197.708671, + 1.395308, + 996.113281, + 199.511719 + ], + [ + 1197.713709, + 1.395308, + 996.113281, + 199.511719 + ], + [ + 1197.718744, + 1.395308, + 1000.097656, + 199.707031 + ], + [ + 1197.723665, + 1.395308, + 1000.097656, + 199.707031 + ], + [ + 1197.728654, + 1.395308, + 1000.097656, + 199.707031 + ], + [ + 1197.733745, + 1.395308, + 1000.097656, + 199.707031 + ], + [ + 1197.738774, + 1.395308, + 1004.072266, + 199.511719 + ], + [ + 1197.743735, + 1.395308, + 1004.072266, + 199.511719 + ], + [ + 1197.748647, + 1.395308, + 1004.072266, + 199.511719 + ], + [ + 1197.753691, + 1.395308, + 1004.072266, + 199.511719 + ], + [ + 1197.758685, + 1.395308, + 1008.056641, + 199.414062 + ], + [ + 1197.76367, + 1.395308, + 1008.056641, + 199.414062 + ], + [ + 1197.768652, + 1.395308, + 1008.056641, + 199.414062 + ], + [ + 1197.773693, + 1.395308, + 1008.056641, + 199.414062 + ], + [ + 1197.778748, + 1.392449, + 1012.021484, + 199.21875 + ], + [ + 1197.783682, + 1.392449, + 1012.021484, + 199.21875 + ], + [ + 1197.789296, + 1.392449, + 1012.021484, + 199.21875 + ], + [ + 1197.793774, + 1.392449, + 1012.021484, + 199.21875 + ], + [ + 1197.798773, + 1.392449, + 1016.005859, + 198.925781 + ], + [ + 1197.803706, + 1.392449, + 1016.005859, + 198.925781 + ], + [ + 1197.809876, + 1.392449, + 1016.005859, + 198.925781 + ], + [ + 1197.813729, + 1.392449, + 1016.005859, + 198.925781 + ], + [ + 1197.81868, + 1.392449, + 1019.980469, + 198.730469 + ], + [ + 1197.823667, + 1.392449, + 1019.980469, + 198.730469 + ], + [ + 1197.828705, + 1.392449, + 1019.980469, + 198.730469 + ], + [ + 1197.833707, + 1.392449, + 1019.980469, + 198.730469 + ], + [ + 1197.838686, + 1.392449, + 1023.964844, + 198.828125 + ], + [ + 1197.843698, + 1.392449, + 1023.964844, + 198.828125 + ], + [ + 1197.848763, + 1.392449, + 1023.964844, + 198.828125 + ], + [ + 1197.85382, + 1.392449, + 1023.964844, + 198.828125 + ], + [ + 1197.858708, + 1.392449, + 1027.949219, + 198.925781 + ], + [ + 1197.863724, + 1.392449, + 1027.949219, + 198.925781 + ], + [ + 1197.868684, + 1.392449, + 1027.949219, + 198.925781 + ], + [ + 1197.873738, + 1.392449, + 1027.949219, + 198.925781 + ], + [ + 1197.878723, + 1.392449, + 1031.933594, + 199.21875 + ], + [ + 1197.883692, + 1.392449, + 1031.933594, + 199.21875 + ], + [ + 1197.888682, + 1.392449, + 1031.933594, + 199.21875 + ], + [ + 1197.893689, + 1.392449, + 1031.933594, + 199.21875 + ], + [ + 1197.898702, + 1.392449, + 1035.957031, + 199.609375 + ], + [ + 1197.903693, + 1.392449, + 1035.957031, + 199.609375 + ], + [ + 1197.90875, + 1.392449, + 1035.957031, + 199.609375 + ], + [ + 1197.913812, + 1.392449, + 1035.957031, + 199.609375 + ], + [ + 1197.918702, + 1.392449, + 1039.931641, + 199.511719 + ], + [ + 1197.923777, + 1.392449, + 1039.931641, + 199.511719 + ], + [ + 1197.928643, + 1.392449, + 1039.931641, + 199.511719 + ], + [ + 1197.93376, + 1.392449, + 1039.931641, + 199.511719 + ], + [ + 1197.938687, + 1.392449, + 1043.876953, + 199.21875 + ], + [ + 1197.943661, + 1.392449, + 1043.876953, + 199.21875 + ], + [ + 1197.948678, + 1.392449, + 1043.876953, + 199.21875 + ], + [ + 1197.953758, + 1.392449, + 1043.876953, + 199.21875 + ], + [ + 1197.958776, + 1.392449, + 1047.900391, + 199.511719 + ], + [ + 1197.963826, + 1.392449, + 1047.900391, + 199.511719 + ], + [ + 1197.968649, + 1.392449, + 1047.900391, + 199.511719 + ], + [ + 1197.973885, + 1.392449, + 1047.900391, + 199.511719 + ], + [ + 1197.978689, + 1.392449, + 1051.914062, + 199.804688 + ], + [ + 1197.983994, + 1.392449, + 1051.914062, + 199.804688 + ], + [ + 1197.989126, + 1.392449, + 1051.914062, + 199.804688 + ], + [ + 1197.994189, + 1.392449, + 1051.914062, + 199.804688 + ], + [ + 1197.99878, + 1.392449, + 1055.996094, + 200.390625 + ], + [ + 1198.00365, + 1.392449, + 1055.996094, + 200.390625 + ], + [ + 1198.008704, + 1.392449, + 1055.996094, + 200.390625 + ], + [ + 1198.013694, + 1.392449, + 1055.996094, + 200.390625 + ], + [ + 1198.018734, + 1.392449, + 1060.039062, + 201.074219 + ], + [ + 1198.023667, + 1.392449, + 1060.039062, + 201.074219 + ], + [ + 1198.029235, + 1.392449, + 1060.039062, + 201.074219 + ], + [ + 1198.033676, + 1.392449, + 1060.039062, + 201.074219 + ], + [ + 1198.038736, + 1.392449, + 1064.052734, + 201.757812 + ], + [ + 1198.043671, + 1.392449, + 1064.052734, + 201.757812 + ], + [ + 1198.0494, + 1.392449, + 1064.052734, + 201.757812 + ], + [ + 1198.053708, + 1.392449, + 1064.052734, + 201.757812 + ], + [ + 1198.058744, + 1.392449, + 1068.076172, + 201.757812 + ], + [ + 1198.063726, + 1.392449, + 1068.076172, + 201.757812 + ], + [ + 1198.068711, + 1.392449, + 1068.076172, + 201.757812 + ], + [ + 1198.073706, + 1.392449, + 1068.076172, + 201.757812 + ], + [ + 1198.078715, + 1.392449, + 1072.099609, + 201.660156 + ], + [ + 1198.083699, + 1.392449, + 1072.099609, + 201.660156 + ], + [ + 1198.088678, + 1.392449, + 1072.099609, + 201.660156 + ], + [ + 1198.093681, + 1.392449, + 1072.099609, + 201.660156 + ], + [ + 1198.098753, + 1.392449, + 1076.132812, + 201.367188 + ], + [ + 1198.103726, + 1.392449, + 1076.132812, + 201.367188 + ], + [ + 1198.108855, + 1.392449, + 1076.132812, + 201.367188 + ], + [ + 1198.113723, + 1.392449, + 1076.132812, + 201.367188 + ], + [ + 1198.118798, + 1.392449, + 1080.146484, + 201.074219 + ], + [ + 1198.123708, + 1.398412, + 1080.146484, + 201.074219 + ], + [ + 1198.128781, + 1.398412, + 1080.146484, + 201.074219 + ], + [ + 1198.133704, + 1.392449, + 1080.146484, + 201.074219 + ], + [ + 1198.138724, + 1.392449, + 1084.169922, + 201.074219 + ], + [ + 1198.143693, + 1.392449, + 1084.169922, + 201.074219 + ], + [ + 1198.148689, + 1.392449, + 1084.169922, + 201.074219 + ], + [ + 1198.153688, + 1.398412, + 1084.169922, + 201.074219 + ], + [ + 1198.158787, + 1.398412, + 1088.203125, + 201.074219 + ], + [ + 1198.163668, + 1.392449, + 1088.203125, + 201.074219 + ], + [ + 1198.168646, + 1.392449, + 1088.203125, + 201.074219 + ], + [ + 1198.173654, + 1.392449, + 1088.203125, + 201.074219 + ], + [ + 1198.178706, + 1.392449, + 1092.1875, + 201.074219 + ], + [ + 1198.183695, + 1.392449, + 1092.1875, + 201.074219 + ], + [ + 1198.188647, + 1.392449, + 1092.1875, + 201.074219 + ], + [ + 1198.193667, + 1.392449, + 1092.1875, + 201.074219 + ], + [ + 1198.198703, + 1.392449, + 1096.220703, + 200.78125 + ], + [ + 1198.203668, + 1.398387, + 1096.220703, + 200.78125 + ], + [ + 1198.208639, + 1.398387, + 1096.220703, + 200.78125 + ], + [ + 1198.213668, + 1.392449, + 1096.220703, + 200.78125 + ], + [ + 1198.219704, + 1.392449, + 1100.214844, + 200.683594 + ], + [ + 1198.223672, + 1.392449, + 1100.214844, + 200.683594 + ], + [ + 1198.228709, + 1.392449, + 1100.214844, + 200.683594 + ], + [ + 1198.233668, + 1.392449, + 1100.214844, + 200.683594 + ], + [ + 1198.238646, + 1.392449, + 1100.214844, + 200.683594 + ], + [ + 1198.243737, + 1.40435, + 1104.21875, + 200.488281 + ], + [ + 1198.248674, + 1.40435, + 1104.21875, + 200.488281 + ], + [ + 1198.253679, + 1.398412, + 1104.21875, + 200.488281 + ], + [ + 1198.258659, + 1.398412, + 1104.21875, + 200.488281 + ], + [ + 1198.263715, + 1.398387, + 1108.28125, + 200.78125 + ], + [ + 1198.268876, + 1.398387, + 1108.28125, + 200.78125 + ], + [ + 1198.273682, + 1.398412, + 1108.28125, + 200.78125 + ], + [ + 1198.278653, + 1.398412, + 1108.28125, + 200.78125 + ], + [ + 1198.283713, + 1.392449, + 1112.294922, + 200.976562 + ], + [ + 1198.288701, + 1.392449, + 1112.294922, + 200.976562 + ], + [ + 1198.293662, + 1.392449, + 1112.294922, + 200.976562 + ], + [ + 1198.298773, + 1.392449, + 1112.294922, + 200.976562 + ], + [ + 1198.303698, + 1.392449, + 1116.357422, + 201.367188 + ], + [ + 1198.308646, + 1.392449, + 1116.357422, + 201.367188 + ], + [ + 1198.313683, + 1.392449, + 1116.357422, + 201.367188 + ], + [ + 1198.318679, + 1.392449, + 1116.357422, + 201.367188 + ], + [ + 1198.32374, + 1.392449, + 1120.361328, + 201.464844 + ], + [ + 1198.328686, + 1.392449, + 1120.361328, + 201.464844 + ], + [ + 1198.333691, + 1.392449, + 1120.361328, + 201.464844 + ], + [ + 1198.338677, + 1.392449, + 1120.361328, + 201.464844 + ], + [ + 1198.343706, + 1.392449, + 1124.384766, + 201.757812 + ], + [ + 1198.348715, + 1.392449, + 1124.384766, + 201.757812 + ], + [ + 1198.353747, + 1.392449, + 1124.384766, + 201.757812 + ], + [ + 1198.3587, + 1.392449, + 1124.384766, + 201.757812 + ], + [ + 1198.363725, + 1.392449, + 1128.417969, + 201.464844 + ], + [ + 1198.368681, + 1.392449, + 1128.417969, + 201.464844 + ], + [ + 1198.373764, + 1.392449, + 1128.417969, + 201.464844 + ], + [ + 1198.3787, + 1.392449, + 1128.417969, + 201.464844 + ], + [ + 1198.38377, + 1.392449, + 1132.441406, + 201.464844 + ], + [ + 1198.388677, + 1.392449, + 1132.441406, + 201.464844 + ], + [ + 1198.393729, + 1.392449, + 1132.441406, + 201.464844 + ], + [ + 1198.398766, + 1.392449, + 1132.441406, + 201.464844 + ], + [ + 1198.40373, + 1.392449, + 1136.464844, + 201.074219 + ], + [ + 1198.408674, + 1.392449, + 1136.464844, + 201.074219 + ], + [ + 1198.413695, + 1.398387, + 1136.464844, + 201.074219 + ], + [ + 1198.418687, + 1.398387, + 1136.464844, + 201.074219 + ], + [ + 1198.424507, + 1.398387, + 1140.429688, + 200.683594 + ], + [ + 1198.428711, + 1.398387, + 1140.429688, + 200.683594 + ], + [ + 1198.43368, + 1.398387, + 1140.429688, + 200.683594 + ], + [ + 1198.438761, + 1.392449, + 1140.429688, + 200.683594 + ], + [ + 1198.443652, + 1.392449, + 1140.429688, + 200.683594 + ], + [ + 1198.44913, + 1.392449, + 1148.417969, + 200.0 + ], + [ + 1198.453686, + 1.392449, + 1148.417969, + 200.0 + ], + [ + 1198.458957, + 1.392449, + 1148.417969, + 200.0 + ], + [ + 1198.463703, + 1.392449, + 1148.417969, + 200.0 + ], + [ + 1198.468771, + 1.392449, + 1148.417969, + 200.0 + ], + [ + 1198.473719, + 1.392449, + 1152.441406, + 199.902344 + ], + [ + 1198.478637, + 1.392449, + 1152.441406, + 199.902344 + ], + [ + 1198.483663, + 1.398387, + 1152.441406, + 199.902344 + ], + [ + 1198.488644, + 1.398387, + 1152.441406, + 199.902344 + ], + [ + 1198.493838, + 1.398412, + 1156.513672, + 200.585938 + ], + [ + 1198.498638, + 1.398412, + 1156.513672, + 200.585938 + ], + [ + 1198.503664, + 1.398412, + 1156.513672, + 200.585938 + ], + [ + 1198.508637, + 1.398412, + 1156.513672, + 200.585938 + ], + [ + 1198.513691, + 1.398412, + 1160.566406, + 201.464844 + ], + [ + 1198.518641, + 1.398412, + 1160.566406, + 201.464844 + ], + [ + 1198.523673, + 1.392449, + 1160.566406, + 201.464844 + ], + [ + 1198.528729, + 1.392449, + 1160.566406, + 201.464844 + ], + [ + 1198.533698, + 1.392449, + 1164.589844, + 201.757812 + ], + [ + 1198.538643, + 1.392449, + 1164.589844, + 201.757812 + ], + [ + 1198.543709, + 1.392449, + 1164.589844, + 201.757812 + ], + [ + 1198.548728, + 1.392449, + 1164.589844, + 201.757812 + ], + [ + 1198.553812, + 1.392449, + 1168.574219, + 201.660156 + ], + [ + 1198.55866, + 1.392449, + 1168.574219, + 201.660156 + ], + [ + 1198.563752, + 1.392449, + 1168.574219, + 201.660156 + ], + [ + 1198.568695, + 1.392449, + 1168.574219, + 201.660156 + ], + [ + 1198.573715, + 1.392449, + 1172.607422, + 201.757812 + ], + [ + 1198.57869, + 1.392449, + 1172.607422, + 201.757812 + ], + [ + 1198.583706, + 1.392449, + 1172.607422, + 201.757812 + ], + [ + 1198.588685, + 1.392449, + 1172.607422, + 201.757812 + ], + [ + 1198.593708, + 1.398387, + 1176.640625, + 201.269531 + ], + [ + 1198.598715, + 1.398387, + 1176.640625, + 201.269531 + ], + [ + 1198.603721, + 1.398412, + 1176.640625, + 201.269531 + ], + [ + 1198.608874, + 1.398412, + 1176.640625, + 201.269531 + ], + [ + 1198.613728, + 1.392449, + 1180.654297, + 200.78125 + ], + [ + 1198.618678, + 1.392449, + 1180.654297, + 200.78125 + ], + [ + 1198.623725, + 1.392449, + 1180.654297, + 200.78125 + ], + [ + 1198.63011, + 1.392449, + 1180.654297, + 200.78125 + ], + [ + 1198.633786, + 1.392449, + 1184.667969, + 200.878906 + ], + [ + 1198.638642, + 1.392449, + 1184.667969, + 200.878906 + ], + [ + 1198.643743, + 1.392449, + 1184.667969, + 200.878906 + ], + [ + 1198.649068, + 1.392449, + 1184.667969, + 200.878906 + ], + [ + 1198.653905, + 1.392449, + 1188.652344, + 200.683594 + ], + [ + 1198.658652, + 1.392449, + 1188.652344, + 200.683594 + ], + [ + 1198.663676, + 1.398412, + 1188.652344, + 200.683594 + ], + [ + 1198.668681, + 1.398412, + 1188.652344, + 200.683594 + ], + [ + 1198.67374, + 1.398412, + 1192.666016, + 200.488281 + ], + [ + 1198.678657, + 1.398412, + 1192.666016, + 200.488281 + ], + [ + 1198.683686, + 1.392449, + 1192.666016, + 200.488281 + ], + [ + 1198.688828, + 1.392449, + 1192.666016, + 200.488281 + ], + [ + 1198.693743, + 1.392449, + 1196.708984, + 200.585938 + ], + [ + 1198.698675, + 1.392449, + 1196.708984, + 200.585938 + ], + [ + 1198.703719, + 1.392449, + 1196.708984, + 200.585938 + ], + [ + 1198.708719, + 1.392449, + 1196.708984, + 200.585938 + ], + [ + 1198.713778, + 1.392449, + 1200.664062, + 200.097656 + ], + [ + 1198.718644, + 1.392449, + 1200.664062, + 200.097656 + ], + [ + 1198.723664, + 1.392449, + 1200.664062, + 200.097656 + ], + [ + 1198.728642, + 1.392449, + 1200.664062, + 200.097656 + ], + [ + 1198.73379, + 1.392449, + 1204.638672, + 199.707031 + ], + [ + 1198.738657, + 1.392449, + 1204.638672, + 199.707031 + ], + [ + 1198.743685, + 1.392449, + 1204.638672, + 199.707031 + ], + [ + 1198.748645, + 1.392449, + 1204.638672, + 199.707031 + ], + [ + 1198.753837, + 1.392449, + 1208.613281, + 199.609375 + ], + [ + 1198.758668, + 1.392449, + 1208.613281, + 199.609375 + ], + [ + 1198.763678, + 1.392449, + 1208.613281, + 199.609375 + ], + [ + 1198.768664, + 1.392449, + 1208.613281, + 199.609375 + ], + [ + 1198.773686, + 1.392449, + 1212.558594, + 199.121094 + ], + [ + 1198.77865, + 1.392449, + 1212.558594, + 199.121094 + ], + [ + 1198.783713, + 1.392449, + 1212.558594, + 199.121094 + ], + [ + 1198.788683, + 1.392449, + 1212.558594, + 199.121094 + ], + [ + 1198.793709, + 1.392449, + 1216.542969, + 198.339844 + ], + [ + 1198.798706, + 1.392449, + 1216.542969, + 198.339844 + ], + [ + 1198.80373, + 1.392449, + 1216.542969, + 198.339844 + ], + [ + 1198.808703, + 1.392449, + 1216.542969, + 198.339844 + ], + [ + 1198.814161, + 1.392449, + 1220.498047, + 198.339844 + ], + [ + 1198.818706, + 1.392449, + 1220.498047, + 198.339844 + ], + [ + 1198.823716, + 1.392449, + 1220.498047, + 198.339844 + ], + [ + 1198.828838, + 1.392449, + 1220.498047, + 198.339844 + ], + [ + 1198.834524, + 1.392449, + 1224.482422, + 198.535156 + ], + [ + 1198.838695, + 1.392449, + 1224.482422, + 198.535156 + ], + [ + 1198.84369, + 1.392449, + 1224.482422, + 198.535156 + ], + [ + 1198.848718, + 1.392449, + 1224.482422, + 198.535156 + ], + [ + 1198.85369, + 1.392449, + 1224.482422, + 198.535156 + ], + [ + 1198.858737, + 1.392449, + 1228.476562, + 198.632812 + ], + [ + 1198.863696, + 1.392449, + 1228.476562, + 198.632812 + ], + [ + 1198.868911, + 1.392449, + 1228.476562, + 198.632812 + ], + [ + 1198.873688, + 1.392449, + 1228.476562, + 198.632812 + ], + [ + 1198.878749, + 1.392449, + 1232.441406, + 198.828125 + ], + [ + 1198.883665, + 1.392449, + 1232.441406, + 198.828125 + ], + [ + 1198.888859, + 1.392449, + 1232.441406, + 198.828125 + ], + [ + 1198.893696, + 1.392449, + 1232.441406, + 198.828125 + ], + [ + 1198.898707, + 1.392449, + 1236.425781, + 198.925781 + ], + [ + 1198.903716, + 1.392449, + 1236.425781, + 198.925781 + ], + [ + 1198.90866, + 1.398412, + 1236.425781, + 198.925781 + ], + [ + 1198.913718, + 1.398412, + 1236.425781, + 198.925781 + ], + [ + 1198.918701, + 1.392449, + 1240.361328, + 198.535156 + ], + [ + 1198.923844, + 1.398387, + 1240.361328, + 198.535156 + ], + [ + 1198.928648, + 1.398387, + 1240.361328, + 198.535156 + ], + [ + 1198.933816, + 1.392449, + 1240.361328, + 198.535156 + ], + [ + 1198.938741, + 1.392449, + 1244.277344, + 197.949219 + ], + [ + 1198.943678, + 1.392449, + 1244.277344, + 197.949219 + ], + [ + 1198.94873, + 1.392449, + 1244.277344, + 197.949219 + ], + [ + 1198.953741, + 1.392449, + 1244.277344, + 197.949219 + ], + [ + 1198.95876, + 1.392449, + 1248.212891, + 197.460938 + ], + [ + 1198.963677, + 1.392449, + 1248.212891, + 197.460938 + ], + [ + 1198.968659, + 1.392449, + 1248.212891, + 197.460938 + ], + [ + 1198.973706, + 1.392449, + 1248.212891, + 197.460938 + ], + [ + 1198.978775, + 1.392449, + 1252.148438, + 197.070312 + ], + [ + 1198.983661, + 1.392449, + 1252.148438, + 197.070312 + ], + [ + 1198.98873, + 1.392449, + 1252.148438, + 197.070312 + ], + [ + 1198.993688, + 1.398387, + 1252.148438, + 197.070312 + ], + [ + 1198.998669, + 1.40435, + 1256.123047, + 196.875 + ], + [ + 1199.003661, + 1.398412, + 1256.123047, + 196.875 + ], + [ + 1199.008685, + 1.392449, + 1256.123047, + 196.875 + ], + [ + 1199.013703, + 1.389589, + 1256.123047, + 196.875 + ], + [ + 1199.018748, + 1.389589, + 1260.068359, + 197.167969 + ], + [ + 1199.023673, + 1.389589, + 1260.068359, + 197.167969 + ], + [ + 1199.02879, + 1.395528, + 1260.068359, + 197.167969 + ], + [ + 1199.033686, + 1.395528, + 1260.068359, + 197.167969 + ], + [ + 1199.039399, + 1.389589, + 1263.984375, + 197.167969 + ], + [ + 1199.043714, + 1.389589, + 1263.984375, + 197.167969 + ], + [ + 1199.048716, + 1.389589, + 1263.984375, + 197.167969 + ], + [ + 1199.053698, + 1.389589, + 1263.984375, + 197.167969 + ], + [ + 1199.058695, + 1.389589, + 1263.984375, + 197.167969 + ], + [ + 1199.063791, + 1.395528, + 1267.939453, + 197.265625 + ], + [ + 1199.068764, + 1.395528, + 1267.939453, + 197.265625 + ], + [ + 1199.073796, + 1.389589, + 1267.939453, + 197.265625 + ], + [ + 1199.0787, + 1.389589, + 1267.939453, + 197.265625 + ] + ], + "slow-backward": [ + [ + 1086.838818, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.843756, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.848717, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.853659, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.858736, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.863757, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.868688, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.873742, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.87876, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.883664, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.888718, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.893721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.898758, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.903666, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.908915, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.9137, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.91895, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.923757, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.928689, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.933683, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.938782, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.943718, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.948923, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.953719, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.9587, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.963701, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.968709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.973715, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.980372, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.983709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.988731, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.993725, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1086.998704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.003714, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.008715, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.01372, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.018762, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.023901, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.028724, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.033712, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.038712, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.043688, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.048666, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.053694, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.058716, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.063688, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.068664, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.073671, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.078707, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.083748, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.088676, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.093684, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.098737, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.103681, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.108741, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.11368, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.118708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.123996, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.129353, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.133706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.138718, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.143672, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.148685, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.153676, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.158762, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.163735, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.168959, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.173678, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.17871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.185604, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.188722, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.193705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.19869, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.203736, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.208731, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.213693, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.218804, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.223681, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.22874, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.233702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.238697, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.243687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.248729, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.253697, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.258702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.263783, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.268828, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.273685, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.278714, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.28366, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.289251, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.293669, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.298766, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.303658, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.308699, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.31366, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.318719, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.323677, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.328709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.333722, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.338795, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.343758, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.349368, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.353662, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.358716, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.363655, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.368697, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.373664, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.378709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.383646, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.390793, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.393673, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.398687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.403766, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.40896, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.413742, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.418695, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.423868, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.42871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.433713, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.438839, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.443699, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.448755, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.453721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.458779, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.463741, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.468691, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.473753, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.478708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.483705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.488721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.493754, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.498895, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.503694, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.508709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.51373, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.518702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.523678, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.528675, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.533693, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.538715, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.543673, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.548766, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.553888, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.558711, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.563728, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.568669, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.573696, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.578711, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.58383, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.5890220000001, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.59573, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.598788, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.603657, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.60873, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.613708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.618718, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.623702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.628684, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.633655, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.638766, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.643653, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.648695, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.653673, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.658719, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.663682, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.668761, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.673704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.678824, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.683699, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.688728, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.693703, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.698729, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.703698, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.708757, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.71377, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.718938, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.723691, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.728722, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.733702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.738744, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.743715, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.748732, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.753691, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.758887, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.763677, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.768687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.773653, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.77871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.783659, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.788736, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.793677, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.800699, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.803665, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.808683, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.813685, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.818646, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.823747, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.828745, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.83366, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.838643, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.84372, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.848675, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.853677, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.858699, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.863728, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.868782, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.873687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.878714, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.883779, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.888676, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.893916, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.898658, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.903711, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.908678, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.913729, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.918682, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.924116, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.92871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.933724, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.938748, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.943936, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.948813, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.953742, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.9587, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.963738, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.968713, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.9737, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.978728, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.983714, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.988671, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.993679, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1087.998646, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.005836, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.008669, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.01366, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.018677, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.023656, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.028964, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.033668, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.038672, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.04371, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.048927, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.053658, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.058739, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.063654, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.068791, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.073659, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.078657, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.083645, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.088742, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.093704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.098678, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.103641, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.108845, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.113666, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.118695, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.123649, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.128819, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.13366, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.138676, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.143659, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.148804, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.153669, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.158843, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.16368, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.168747, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.173743, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.178921, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.183744, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.188738, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.193763, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.198708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.203702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.210125, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.213701, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.218681, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.223686, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.228718, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.23371, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.238689, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.243657, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.248702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.253715, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.258645, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.263672, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.268749, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.273706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.278724, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.283667, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.288706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.293716, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.298693, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.30366, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.308816, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.313736, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.318711, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.32372, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.328791, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.333708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.338653, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.343727, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.348893, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.353694, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.35865, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.363715, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.368793, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.373999, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.378659, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.383693, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.388707, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.393735, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.398704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.403701, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.40871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.415086, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.418739, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.423721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.428841, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.433703, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.438708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.443687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.44873, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.453721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.458705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.463682, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.468734, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.473705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.478696, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.483656, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.488732, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.493692, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.498713, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.503654, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.508723, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.513777, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.518707, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.52377, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.528729, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.533704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.538686, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.543651, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.548743, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.55368, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.558732, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.563646, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.568706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.573875, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.578922, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.583662, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.588741, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.593719, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.598756, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.603643, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.608747, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.613653, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.620223, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.623708, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.628699, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.633704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.638701, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.643705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.648766, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.653705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.6587, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.663722, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.668726, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.673734, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.678819, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.683735, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.688721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.693805, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.698743, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.703808, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.708704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.713718, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.71871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.723778, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.72879, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.733711, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.738649, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.743683, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.748704, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.753723, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.758642, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.763687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.768774, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.773712, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.778661, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.783737, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.788705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.793756, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.798641, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.803851, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.80871, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.813734, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.818684, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.823725, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.828741, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.833684, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.838706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.843696, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.848691, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.853676, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.858644, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.863695, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.868762, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.873709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.878725, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.883698, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.888706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.893762, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.898685, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.903812, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.908721, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.913728, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.918685, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.923801, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.928843, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.933735, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.938686, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.943698, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.948734, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.953726, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.95865, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.963687, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.968717, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.97372, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.978744, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.983723, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.988843, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.993787, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1088.998642, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.003681, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.00878, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.013709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.018714, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.023683, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.030356, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.033731, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.038655, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.043681, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.048671, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.053723, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.058654, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.063684, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.068742, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.07381, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.078648, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.083684, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.088849, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.093701, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.098653, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.103702, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.108759, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.113714, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.118671, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.123698, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.128808, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.133733, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.138689, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.143722, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.148717, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.153942, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.158736, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.163895, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.168782, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.174073, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.178706, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.183705, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.188832, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.193724, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.198658, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.203709, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.20868, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.213734, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.218655, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.223683, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.228683, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.233763, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.238809, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.243686, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.248666, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.253728, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.258651, + 0.0, + 1217.148438, + 0.0 + ], + [ + 1089.263679, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.268731, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.273737, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.278753, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.283671, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.288673, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.293726, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.298662, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.303673, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.308737, + -0.012341, + 1217.148438, + 0.0 + ], + [ + 1089.313707, + -0.018524, + 1217.148438, + 0.0 + ], + [ + 1089.318844, + -0.018524, + 1217.148438, + 0.0 + ], + [ + 1089.323701, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.328676, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.333699, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.338691, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.343858, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.348704, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.353721, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.358701, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.363715, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.368718, + -0.024682, + 1217.148438, + 0.0 + ], + [ + 1089.37371, + -0.030865, + 1217.148438, + 0.0 + ], + [ + 1089.37875, + -0.030865, + 1217.148438, + 0.0 + ], + [ + 1089.38372, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.388717, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.393765, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.398703, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.403715, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.408704, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.413718, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.419226, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.423709, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.428686, + -0.037023, + 1217.148438, + 0.0 + ], + [ + 1089.433707, + -0.043206, + 1217.148438, + 0.0 + ], + [ + 1089.438687, + -0.043206, + 1217.148438, + 0.0 + ], + [ + 1089.443887, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.448686, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.45373, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.458674, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.463691, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.468678, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.473728, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.478662, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.483688, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.488692, + -0.049365, + 1217.148438, + 0.0 + ], + [ + 1089.493722, + -0.055547, + 1217.148438, + 0.0 + ], + [ + 1089.498659, + -0.055547, + 1217.148438, + 0.0 + ], + [ + 1089.50372, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.508682, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.513771, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.518749, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.523688, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.528711, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.533716, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.538795, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.543738, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.549177, + -0.061706, + 1217.148438, + 0.0 + ], + [ + 1089.553714, + -0.067889, + 1217.148438, + 0.0 + ], + [ + 1089.558659, + -0.067889, + 1217.148438, + 0.0 + ], + [ + 1089.563684, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.568851, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.573763, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.578655, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.583706, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.588709, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.593702, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.598695, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.603707, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.608815, + -0.074047, + 1217.148438, + 0.0 + ], + [ + 1089.613699, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.618819, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.624087, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.628731, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.633724, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.638688, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.643776, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.648729, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.653716, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.65876, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.663696, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.66887, + -0.086388, + 1217.148438, + 0.0 + ], + [ + 1089.673715, + -0.092546, + 1217.148438, + 0.0 + ], + [ + 1089.67867, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.683669, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.688715, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.693769, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.698672, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.703747, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.708703, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.713726, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.718739, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.723667, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.728749, + -0.098729, + 1217.148438, + 0.0 + ], + [ + 1089.733713, + -0.104888, + 1217.148438, + 0.0 + ], + [ + 1089.738781, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.743711, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.748781, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.75372, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.75867, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.763716, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.768715, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.773711, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.778669, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.783706, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.789062, + -0.11107, + 1217.148438, + 0.0 + ], + [ + 1089.793742, + -0.117229, + 1217.148438, + 0.0 + ], + [ + 1089.798669, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.803664, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.808689, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.813727, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.81977, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.82371, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.828734, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.83372, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.838748, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.843692, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.85121, + -0.123412, + 1217.148438, + 0.0 + ], + [ + 1089.85372, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.858687, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.863708, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.868778, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.873729, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.878678, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.883725, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.888699, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.893772, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.898672, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.903694, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.908709, + -0.135753, + 1217.148438, + 0.0 + ], + [ + 1089.913725, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.918765, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.923675, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.928777, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.933741, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.938645, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.943667, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.948729, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.95409, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.958666, + -0.148094, + 1217.148438, + 0.0 + ], + [ + 1089.963674, + -0.154277, + 1217.148438, + 0.0 + ], + [ + 1089.968674, + -0.154277, + 1217.148438, + 0.0 + ], + [ + 1089.973733, + -0.160435, + 1217.148438, + 0.0 + ], + [ + 1089.978667, + -0.160435, + 1217.148438, + 0.0 + ], + [ + 1089.983673, + -0.160435, + 1217.148438, + 0.0 + ], + [ + 1089.988669, + -0.160435, + 1217.148438, + 0.0 + ], + [ + 1089.993731, + -0.160435, + 1217.099609, + -0.488281 + ], + [ + 1089.998682, + -0.160435, + 1217.099609, + -0.488281 + ], + [ + 1090.003671, + -0.160435, + 1217.099609, + -0.488281 + ], + [ + 1090.008795, + -0.160435, + 1217.099609, + -0.488281 + ], + [ + 1090.013763, + -0.160435, + 1216.787109, + -3.613281 + ], + [ + 1090.018713, + -0.160435, + 1216.787109, + -3.613281 + ], + [ + 1090.023854, + -0.172776, + 1216.787109, + -3.613281 + ], + [ + 1090.028671, + -0.172776, + 1216.787109, + -3.613281 + ], + [ + 1090.033714, + -0.172776, + 1216.171875, + -9.765625 + ], + [ + 1090.0387, + -0.172776, + 1216.171875, + -9.765625 + ], + [ + 1090.043669, + -0.172776, + 1216.171875, + -9.765625 + ], + [ + 1090.048759, + -0.172776, + 1216.171875, + -9.765625 + ], + [ + 1090.055914, + -0.172776, + 1215.830078, + -13.085938 + ], + [ + 1090.058659, + -0.172776, + 1215.830078, + -13.085938 + ], + [ + 1090.063758, + -0.172776, + 1215.830078, + -13.085938 + ], + [ + 1090.06872, + -0.172776, + 1215.830078, + -13.085938 + ], + [ + 1090.073748, + -0.172776, + 1215.830078, + -13.085938 + ], + [ + 1090.078705, + -0.172776, + 1215.634766, + -15.039062 + ], + [ + 1090.083704, + -0.172776, + 1215.634766, + -15.039062 + ], + [ + 1090.088721, + -0.185117, + 1215.634766, + -15.039062 + ], + [ + 1090.093696, + -0.185117, + 1215.634766, + -15.039062 + ], + [ + 1090.098871, + -0.185117, + 1215.429688, + -16.699219 + ], + [ + 1090.103683, + -0.185117, + 1215.429688, + -16.699219 + ], + [ + 1090.108734, + -0.185117, + 1215.429688, + -16.699219 + ], + [ + 1090.113715, + -0.185117, + 1215.429688, + -16.699219 + ], + [ + 1090.118901, + -0.185117, + 1214.794922, + -19.921875 + ], + [ + 1090.123747, + -0.185117, + 1214.794922, + -19.921875 + ], + [ + 1090.128717, + -0.185117, + 1214.794922, + -19.921875 + ], + [ + 1090.133711, + -0.185117, + 1214.794922, + -19.921875 + ], + [ + 1090.138703, + -0.191276, + 1214.130859, + -20.3125 + ], + [ + 1090.143733, + -0.191276, + 1214.130859, + -20.3125 + ], + [ + 1090.148773, + -0.197458, + 1214.130859, + -20.3125 + ], + [ + 1090.153712, + -0.197458, + 1214.130859, + -20.3125 + ], + [ + 1090.158745, + -0.197458, + 1213.349609, + -24.804688 + ], + [ + 1090.163664, + -0.197458, + 1213.349609, + -24.804688 + ], + [ + 1090.16877, + -0.197458, + 1213.349609, + -24.804688 + ], + [ + 1090.17374, + -0.197458, + 1213.349609, + -24.804688 + ], + [ + 1090.178946, + -0.197458, + 1212.509766, + -31.25 + ], + [ + 1090.183664, + -0.197458, + 1212.509766, + -31.25 + ], + [ + 1090.188693, + -0.197458, + 1212.509766, + -31.25 + ], + [ + 1090.1937, + -0.197458, + 1212.509766, + -31.25 + ], + [ + 1090.198725, + -0.203617, + 1211.484375, + -39.355469 + ], + [ + 1090.203711, + -0.203617, + 1211.484375, + -39.355469 + ], + [ + 1090.208698, + -0.2098, + 1211.484375, + -39.355469 + ], + [ + 1090.213697, + -0.2098, + 1211.484375, + -39.355469 + ], + [ + 1090.218775, + -0.2098, + 1210.400391, + -43.945312 + ], + [ + 1090.223659, + -0.2098, + 1210.400391, + -43.945312 + ], + [ + 1090.228689, + -0.2098, + 1210.400391, + -43.945312 + ], + [ + 1090.233721, + -0.2098, + 1210.400391, + -43.945312 + ], + [ + 1090.238691, + -0.2098, + 1209.296875, + -48.339844 + ], + [ + 1090.243663, + -0.2098, + 1209.296875, + -48.339844 + ], + [ + 1090.248682, + -0.2098, + 1209.296875, + -48.339844 + ], + [ + 1090.253675, + -0.2098, + 1209.296875, + -48.339844 + ], + [ + 1090.260687, + -0.215958, + 1208.222656, + -51.367188 + ], + [ + 1090.263673, + -0.215958, + 1208.222656, + -51.367188 + ], + [ + 1090.268675, + -0.215958, + 1208.222656, + -51.367188 + ], + [ + 1090.273679, + -0.222141, + 1208.222656, + -51.367188 + ], + [ + 1090.278645, + -0.222141, + 1208.222656, + -51.367188 + ], + [ + 1090.28376, + -0.222141, + 1206.054688, + -54.296875 + ], + [ + 1090.288794, + -0.222141, + 1206.054688, + -54.296875 + ], + [ + 1090.293671, + -0.222141, + 1206.054688, + -54.296875 + ], + [ + 1090.298645, + -0.222141, + 1206.054688, + -54.296875 + ], + [ + 1090.3037, + -0.222141, + 1204.990234, + -54.003906 + ], + [ + 1090.308748, + -0.222141, + 1204.990234, + -54.003906 + ], + [ + 1090.313699, + -0.222141, + 1204.990234, + -54.003906 + ], + [ + 1090.318725, + -0.222141, + 1204.990234, + -54.003906 + ], + [ + 1090.32376, + -0.234482, + 1203.896484, + -54.101562 + ], + [ + 1090.328792, + -0.234482, + 1203.896484, + -54.101562 + ], + [ + 1090.33376, + -0.234482, + 1203.896484, + -54.101562 + ], + [ + 1090.338695, + -0.234482, + 1203.896484, + -54.101562 + ], + [ + 1090.343791, + -0.234482, + 1202.773438, + -54.394531 + ], + [ + 1090.348705, + -0.234482, + 1202.773438, + -54.394531 + ], + [ + 1090.353893, + -0.234482, + 1202.773438, + -54.394531 + ], + [ + 1090.358695, + -0.234482, + 1202.773438, + -54.394531 + ], + [ + 1090.363821, + -0.234482, + 1201.669922, + -54.589844 + ], + [ + 1090.368801, + -0.234482, + 1201.669922, + -54.589844 + ], + [ + 1090.373712, + -0.234482, + 1201.669922, + -54.589844 + ], + [ + 1090.378784, + -0.234482, + 1201.669922, + -54.589844 + ], + [ + 1090.383788, + -0.246823, + 1200.585938, + -54.6875 + ], + [ + 1090.388782, + -0.246823, + 1200.585938, + -54.6875 + ], + [ + 1090.393703, + -0.246823, + 1200.585938, + -54.6875 + ], + [ + 1090.398726, + -0.246823, + 1200.585938, + -54.6875 + ], + [ + 1090.403709, + -0.246823, + 1199.462891, + -55.273438 + ], + [ + 1090.408672, + -0.246823, + 1199.462891, + -55.273438 + ], + [ + 1090.413715, + -0.246823, + 1199.462891, + -55.273438 + ], + [ + 1090.418648, + -0.246823, + 1199.462891, + -55.273438 + ], + [ + 1090.423711, + -0.246823, + 1198.300781, + -55.761719 + ], + [ + 1090.428707, + -0.246823, + 1198.300781, + -55.761719 + ], + [ + 1090.433696, + -0.253006, + 1198.300781, + -55.761719 + ], + [ + 1090.43865, + -0.253006, + 1198.300781, + -55.761719 + ], + [ + 1090.443731, + -0.259164, + 1197.128906, + -56.445312 + ], + [ + 1090.448804, + -0.259164, + 1197.128906, + -56.445312 + ], + [ + 1090.453789, + -0.259164, + 1197.128906, + -56.445312 + ], + [ + 1090.458654, + -0.259164, + 1197.128906, + -56.445312 + ], + [ + 1090.463745, + -0.259164, + 1195.9375, + -57.324219 + ], + [ + 1090.468687, + -0.259164, + 1195.9375, + -57.324219 + ], + [ + 1090.473722, + -0.259164, + 1195.9375, + -57.324219 + ], + [ + 1090.478752, + -0.259164, + 1195.9375, + -57.324219 + ], + [ + 1090.483784, + -0.259164, + 1194.785156, + -58.007812 + ], + [ + 1090.488721, + -0.259164, + 1194.785156, + -58.007812 + ], + [ + 1090.493691, + -0.271505, + 1194.785156, + -58.007812 + ], + [ + 1090.498661, + -0.271505, + 1194.785156, + -58.007812 + ], + [ + 1090.503789, + -0.271505, + 1193.603516, + -58.59375 + ], + [ + 1090.508797, + -0.271505, + 1193.603516, + -58.59375 + ], + [ + 1090.513706, + -0.271505, + 1193.603516, + -58.59375 + ], + [ + 1090.51865, + -0.271505, + 1193.603516, + -58.59375 + ], + [ + 1090.523861, + -0.271505, + 1192.392578, + -59.179688 + ], + [ + 1090.52868, + -0.271505, + 1192.392578, + -59.179688 + ], + [ + 1090.533677, + -0.271505, + 1192.392578, + -59.179688 + ], + [ + 1090.538648, + -0.271505, + 1192.392578, + -59.179688 + ], + [ + 1090.543701, + -0.271505, + 1191.162109, + -59.667969 + ], + [ + 1090.548706, + -0.271505, + 1191.162109, + -59.667969 + ], + [ + 1090.553757, + -0.277688, + 1191.162109, + -59.667969 + ], + [ + 1090.558674, + -0.277688, + 1191.162109, + -59.667969 + ], + [ + 1090.563701, + -0.283847, + 1189.912109, + -60.253906 + ], + [ + 1090.569003, + -0.283847, + 1189.912109, + -60.253906 + ], + [ + 1090.573734, + -0.283847, + 1189.912109, + -60.253906 + ], + [ + 1090.5787, + -0.283847, + 1189.912109, + -60.253906 + ], + [ + 1090.583731, + -0.283847, + 1188.652344, + -61.328125 + ], + [ + 1090.588749, + -0.283847, + 1188.652344, + -61.328125 + ], + [ + 1090.593728, + -0.283847, + 1188.652344, + -61.328125 + ], + [ + 1090.598685, + -0.283847, + 1188.652344, + -61.328125 + ], + [ + 1090.603968, + -0.283847, + 1187.382812, + -62.207031 + ], + [ + 1090.609425, + -0.283847, + 1187.382812, + -62.207031 + ], + [ + 1090.613833, + -0.296188, + 1187.382812, + -62.207031 + ], + [ + 1090.618679, + -0.296188, + 1187.382812, + -62.207031 + ], + [ + 1090.623706, + -0.296188, + 1186.09375, + -62.988281 + ], + [ + 1090.628754, + -0.296188, + 1186.09375, + -62.988281 + ], + [ + 1090.633715, + -0.296188, + 1186.09375, + -62.988281 + ], + [ + 1090.638698, + -0.296188, + 1186.09375, + -62.988281 + ], + [ + 1090.643709, + -0.296188, + 1184.785156, + -63.769531 + ], + [ + 1090.64867, + -0.296188, + 1184.785156, + -63.769531 + ], + [ + 1090.653709, + -0.296188, + 1184.785156, + -63.769531 + ], + [ + 1090.658648, + -0.296188, + 1184.785156, + -63.769531 + ], + [ + 1090.663766, + -0.296188, + 1183.486328, + -64.257812 + ], + [ + 1090.670919, + -0.296188, + 1183.486328, + -64.257812 + ], + [ + 1090.673728, + -0.308529, + 1183.486328, + -64.257812 + ], + [ + 1090.678656, + -0.308529, + 1183.486328, + -64.257812 + ], + [ + 1090.683716, + -0.308529, + 1182.167969, + -64.84375 + ], + [ + 1090.688745, + -0.308529, + 1182.167969, + -64.84375 + ], + [ + 1090.693711, + -0.308529, + 1182.167969, + -64.84375 + ], + [ + 1090.698733, + -0.308529, + 1182.167969, + -64.84375 + ], + [ + 1090.703725, + -0.308529, + 1180.800781, + -65.722656 + ], + [ + 1090.708675, + -0.308529, + 1180.800781, + -65.722656 + ], + [ + 1090.713721, + -0.308529, + 1180.800781, + -65.722656 + ], + [ + 1090.718674, + -0.308529, + 1180.800781, + -65.722656 + ], + [ + 1090.723821, + -0.308529, + 1179.433594, + -66.601562 + ], + [ + 1090.72869, + -0.308529, + 1179.433594, + -66.601562 + ], + [ + 1090.733697, + -0.333211, + 1179.433594, + -66.601562 + ], + [ + 1090.738647, + -0.333211, + 1179.433594, + -66.601562 + ], + [ + 1090.743766, + -0.333211, + 1178.027344, + -67.480469 + ], + [ + 1090.748751, + -0.333211, + 1178.027344, + -67.480469 + ], + [ + 1090.753682, + -0.333211, + 1178.027344, + -67.480469 + ], + [ + 1090.758695, + -0.333211, + 1178.027344, + -67.480469 + ], + [ + 1090.763702, + -0.333211, + 1176.601562, + -68.75 + ], + [ + 1090.768658, + -0.333211, + 1176.601562, + -68.75 + ], + [ + 1090.773707, + -0.333211, + 1176.601562, + -68.75 + ], + [ + 1090.778659, + -0.333211, + 1176.601562, + -68.75 + ], + [ + 1090.783716, + -0.339394, + 1175.166016, + -70.019531 + ], + [ + 1090.78879, + -0.339394, + 1175.166016, + -70.019531 + ], + [ + 1090.793914, + -0.345552, + 1175.166016, + -70.019531 + ], + [ + 1090.798761, + -0.345552, + 1175.166016, + -70.019531 + ], + [ + 1090.803698, + -0.345552, + 1173.671875, + -71.386719 + ], + [ + 1090.808717, + -0.345552, + 1173.671875, + -71.386719 + ], + [ + 1090.813725, + -0.345552, + 1173.671875, + -71.386719 + ], + [ + 1090.818728, + -0.345552, + 1173.671875, + -71.386719 + ], + [ + 1090.823723, + -0.345552, + 1172.197266, + -72.460938 + ], + [ + 1090.828725, + -0.345552, + 1172.197266, + -72.460938 + ], + [ + 1090.833776, + -0.345552, + 1172.197266, + -72.460938 + ], + [ + 1090.838679, + -0.345552, + 1172.197266, + -72.460938 + ], + [ + 1090.843711, + -0.351735, + 1170.722656, + -73.046875 + ], + [ + 1090.848711, + -0.351735, + 1170.722656, + -73.046875 + ], + [ + 1090.853718, + -0.357893, + 1170.722656, + -73.046875 + ], + [ + 1090.858688, + -0.357893, + 1170.722656, + -73.046875 + ], + [ + 1090.863729, + -0.357893, + 1169.21875, + -73.925781 + ], + [ + 1090.868673, + -0.357893, + 1169.21875, + -73.925781 + ], + [ + 1090.875833, + -0.357893, + 1169.21875, + -73.925781 + ], + [ + 1090.878672, + -0.357893, + 1169.21875, + -73.925781 + ], + [ + 1090.883704, + -0.357893, + 1167.714844, + -74.414062 + ], + [ + 1090.888689, + -0.357893, + 1167.714844, + -74.414062 + ], + [ + 1090.893656, + -0.357893, + 1167.714844, + -74.414062 + ], + [ + 1090.898699, + -0.364052, + 1167.714844, + -74.414062 + ], + [ + 1090.903693, + -0.364052, + 1166.220703, + -74.511719 + ], + [ + 1090.908693, + -0.370235, + 1166.220703, + -74.511719 + ], + [ + 1090.913673, + -0.370235, + 1166.220703, + -74.511719 + ], + [ + 1090.918756, + -0.370235, + 1166.220703, + -74.511719 + ], + [ + 1090.923759, + -0.370235, + 1164.6875, + -75.0 + ], + [ + 1090.928738, + -0.370235, + 1164.6875, + -75.0 + ], + [ + 1090.933665, + -0.370235, + 1164.6875, + -75.0 + ], + [ + 1090.938741, + -0.370235, + 1164.6875, + -75.0 + ], + [ + 1090.943742, + -0.370235, + 1163.144531, + -75.878906 + ], + [ + 1090.948689, + -0.370235, + 1163.144531, + -75.878906 + ], + [ + 1090.95366, + -0.370235, + 1163.144531, + -75.878906 + ], + [ + 1090.958691, + -0.370235, + 1163.144531, + -75.878906 + ], + [ + 1090.963837, + -0.370235, + 1161.601562, + -76.074219 + ], + [ + 1090.968764, + -0.382576, + 1161.601562, + -76.074219 + ], + [ + 1090.973664, + -0.382576, + 1161.601562, + -76.074219 + ], + [ + 1090.978714, + -0.382576, + 1161.601562, + -76.074219 + ], + [ + 1090.983784, + -0.382576, + 1160.029297, + -76.953125 + ], + [ + 1090.988696, + -0.382576, + 1160.029297, + -76.953125 + ], + [ + 1090.993808, + -0.382576, + 1160.029297, + -76.953125 + ], + [ + 1090.998764, + -0.382576, + 1160.029297, + -76.953125 + ], + [ + 1091.003678, + -0.382576, + 1158.427734, + -77.929688 + ], + [ + 1091.008802, + -0.382576, + 1158.427734, + -77.929688 + ], + [ + 1091.013706, + -0.382576, + 1158.427734, + -77.929688 + ], + [ + 1091.0188, + -0.388734, + 1158.427734, + -77.929688 + ], + [ + 1091.02367, + -0.388734, + 1156.796875, + -78.90625 + ], + [ + 1091.028717, + -0.394917, + 1156.796875, + -78.90625 + ], + [ + 1091.033685, + -0.394917, + 1156.796875, + -78.90625 + ], + [ + 1091.038688, + -0.394917, + 1156.796875, + -78.90625 + ], + [ + 1091.04376, + -0.394917, + 1155.126953, + -80.078125 + ], + [ + 1091.04871, + -0.394917, + 1155.126953, + -80.078125 + ], + [ + 1091.053746, + -0.394917, + 1155.126953, + -80.078125 + ], + [ + 1091.058707, + -0.394917, + 1155.126953, + -80.078125 + ], + [ + 1091.063713, + -0.394917, + 1153.466797, + -81.445312 + ], + [ + 1091.068757, + -0.394917, + 1153.466797, + -81.445312 + ], + [ + 1091.073704, + -0.394917, + 1153.466797, + -81.445312 + ], + [ + 1091.07876, + -0.394917, + 1153.466797, + -81.445312 + ], + [ + 1091.083818, + -0.394917, + 1151.816406, + -82.128906 + ], + [ + 1091.088788, + -0.407258, + 1151.816406, + -82.128906 + ], + [ + 1091.093707, + -0.407258, + 1151.816406, + -82.128906 + ], + [ + 1091.098711, + -0.407258, + 1151.816406, + -82.128906 + ], + [ + 1091.1037, + -0.407258, + 1150.136719, + -82.8125 + ], + [ + 1091.108829, + -0.407258, + 1150.136719, + -82.8125 + ], + [ + 1091.113662, + -0.407258, + 1150.136719, + -82.8125 + ], + [ + 1091.118813, + -0.407258, + 1150.136719, + -82.8125 + ], + [ + 1091.123697, + -0.407258, + 1148.496094, + -83.007812 + ], + [ + 1091.128689, + -0.407258, + 1148.496094, + -83.007812 + ], + [ + 1091.133665, + -0.407258, + 1148.496094, + -83.007812 + ], + [ + 1091.138692, + -0.413416, + 1148.496094, + -83.007812 + ], + [ + 1091.143776, + -0.413416, + 1146.835938, + -83.007812 + ], + [ + 1091.14869, + -0.419599, + 1146.835938, + -83.007812 + ], + [ + 1091.153656, + -0.419599, + 1146.835938, + -83.007812 + ], + [ + 1091.158694, + -0.419599, + 1146.835938, + -83.007812 + ], + [ + 1091.163704, + -0.419599, + 1145.126953, + -83.300781 + ], + [ + 1091.169033, + -0.419599, + 1145.126953, + -83.300781 + ], + [ + 1091.17367, + -0.419599, + 1145.126953, + -83.300781 + ], + [ + 1091.178785, + -0.419599, + 1145.126953, + -83.300781 + ], + [ + 1091.183738, + -0.419599, + 1143.408203, + -83.984375 + ], + [ + 1091.188693, + -0.419599, + 1143.408203, + -83.984375 + ], + [ + 1091.193657, + -0.419599, + 1143.408203, + -83.984375 + ], + [ + 1091.198696, + -0.425758, + 1143.408203, + -83.984375 + ], + [ + 1091.203696, + -0.425758, + 1141.71875, + -84.179688 + ], + [ + 1091.208703, + -0.43194, + 1141.71875, + -84.179688 + ], + [ + 1091.213663, + -0.43194, + 1141.71875, + -84.179688 + ], + [ + 1091.218679, + -0.43194, + 1141.71875, + -84.179688 + ], + [ + 1091.223753, + -0.43194, + 1140.029297, + -84.667969 + ], + [ + 1091.228999, + -0.43194, + 1140.029297, + -84.667969 + ], + [ + 1091.233673, + -0.43194, + 1140.029297, + -84.667969 + ], + [ + 1091.238668, + -0.43194, + 1140.029297, + -84.667969 + ], + [ + 1091.24397, + -0.43194, + 1138.320312, + -85.15625 + ], + [ + 1091.248832, + -0.43194, + 1138.320312, + -85.15625 + ], + [ + 1091.253654, + -0.43194, + 1138.320312, + -85.15625 + ], + [ + 1091.258664, + -0.444282, + 1138.320312, + -85.15625 + ], + [ + 1091.263655, + -0.444282, + 1136.572266, + -85.644531 + ], + [ + 1091.268765, + -0.444282, + 1136.572266, + -85.644531 + ], + [ + 1091.273688, + -0.444282, + 1136.572266, + -85.644531 + ], + [ + 1091.278766, + -0.444282, + 1136.572266, + -85.644531 + ], + [ + 1091.283728, + -0.444282, + 1134.775391, + -86.425781 + ], + [ + 1091.288735, + -0.444282, + 1134.775391, + -86.425781 + ], + [ + 1091.293705, + -0.444282, + 1134.775391, + -86.425781 + ], + [ + 1091.298705, + -0.444282, + 1134.775391, + -86.425781 + ], + [ + 1091.303706, + -0.444282, + 1132.96875, + -87.597656 + ], + [ + 1091.308899, + -0.444282, + 1132.96875, + -87.597656 + ], + [ + 1091.313715, + -0.444282, + 1132.96875, + -87.597656 + ], + [ + 1091.318714, + -0.456623, + 1132.96875, + -87.597656 + ], + [ + 1091.323742, + -0.456623, + 1131.162109, + -88.574219 + ], + [ + 1091.328883, + -0.456623, + 1131.162109, + -88.574219 + ], + [ + 1091.3337, + -0.456623, + 1131.162109, + -88.574219 + ], + [ + 1091.338781, + -0.456623, + 1131.162109, + -88.574219 + ], + [ + 1091.343691, + -0.456623, + 1129.326172, + -89.84375 + ], + [ + 1091.349142, + -0.456623, + 1129.326172, + -89.84375 + ], + [ + 1091.353679, + -0.456623, + 1129.326172, + -89.84375 + ], + [ + 1091.35871, + -0.456623, + 1129.326172, + -89.84375 + ], + [ + 1091.363694, + -0.456623, + 1127.490234, + -90.722656 + ], + [ + 1091.368696, + -0.456623, + 1127.490234, + -90.722656 + ], + [ + 1091.373656, + -0.456623, + 1127.490234, + -90.722656 + ], + [ + 1091.3787, + -0.468964, + 1127.490234, + -90.722656 + ], + [ + 1091.383738, + -0.468964, + 1125.634766, + -91.308594 + ], + [ + 1091.389078, + -0.468964, + 1125.634766, + -91.308594 + ], + [ + 1091.393823, + -0.468964, + 1125.634766, + -91.308594 + ], + [ + 1091.398705, + -0.468964, + 1125.634766, + -91.308594 + ], + [ + 1091.403707, + -0.468964, + 1123.75, + -92.1875 + ], + [ + 1091.40984, + -0.468964, + 1123.75, + -92.1875 + ], + [ + 1091.413668, + -0.468964, + 1123.75, + -92.1875 + ], + [ + 1091.418698, + -0.468964, + 1123.75, + -92.1875 + ], + [ + 1091.423699, + -0.468964, + 1121.865234, + -92.96875 + ], + [ + 1091.428776, + -0.468964, + 1121.865234, + -92.96875 + ], + [ + 1091.433703, + -0.475147, + 1121.865234, + -92.96875 + ], + [ + 1091.43869, + -0.475147, + 1121.865234, + -92.96875 + ], + [ + 1091.443701, + -0.481305, + 1119.980469, + -93.457031 + ], + [ + 1091.448808, + -0.481305, + 1119.980469, + -93.457031 + ], + [ + 1091.453682, + -0.481305, + 1119.980469, + -93.457031 + ], + [ + 1091.458765, + -0.481305, + 1119.980469, + -93.457031 + ], + [ + 1091.463713, + -0.481305, + 1118.085938, + -94.042969 + ], + [ + 1091.468686, + -0.481305, + 1118.085938, + -94.042969 + ], + [ + 1091.473741, + -0.481305, + 1118.085938, + -94.042969 + ], + [ + 1091.478704, + -0.481305, + 1118.085938, + -94.042969 + ], + [ + 1091.483913, + -0.481305, + 1116.171875, + -94.726562 + ], + [ + 1091.491792, + -0.481305, + 1116.171875, + -94.726562 + ], + [ + 1091.493685, + -0.487488, + 1116.171875, + -94.726562 + ], + [ + 1091.498653, + -0.487488, + 1116.171875, + -94.726562 + ], + [ + 1091.503687, + -0.493646, + 1114.21875, + -95.3125 + ], + [ + 1091.508764, + -0.493646, + 1114.21875, + -95.3125 + ], + [ + 1091.513732, + -0.493646, + 1114.21875, + -95.3125 + ], + [ + 1091.518681, + -0.493646, + 1114.21875, + -95.3125 + ], + [ + 1091.523784, + -0.493646, + 1112.226562, + -96.289062 + ], + [ + 1091.528709, + -0.493646, + 1112.226562, + -96.289062 + ], + [ + 1091.533795, + -0.493646, + 1112.226562, + -96.289062 + ], + [ + 1091.538698, + -0.493646, + 1112.226562, + -96.289062 + ], + [ + 1091.543718, + -0.493646, + 1110.244141, + -97.363281 + ], + [ + 1091.549318, + -0.493646, + 1110.244141, + -97.363281 + ], + [ + 1091.553739, + -0.505987, + 1110.244141, + -97.363281 + ], + [ + 1091.558725, + -0.505987, + 1110.244141, + -97.363281 + ], + [ + 1091.563718, + -0.505987, + 1108.242188, + -98.4375 + ], + [ + 1091.568848, + -0.505987, + 1108.242188, + -98.4375 + ], + [ + 1091.574283, + -0.505987, + 1108.242188, + -98.4375 + ], + [ + 1091.578759, + -0.505987, + 1108.242188, + -98.4375 + ], + [ + 1091.583703, + -0.505987, + 1106.201172, + -99.609375 + ], + [ + 1091.588821, + -0.505987, + 1106.201172, + -99.609375 + ], + [ + 1091.593726, + -0.505987, + 1106.201172, + -99.609375 + ], + [ + 1091.598713, + -0.505987, + 1106.201172, + -99.609375 + ], + [ + 1091.603725, + -0.51217, + 1104.150391, + -100.488281 + ], + [ + 1091.608757, + -0.51217, + 1104.150391, + -100.488281 + ], + [ + 1091.613769, + -0.518328, + 1104.150391, + -100.488281 + ], + [ + 1091.618692, + -0.518328, + 1104.150391, + -100.488281 + ], + [ + 1091.623713, + -0.518328, + 1102.080078, + -101.660156 + ], + [ + 1091.628734, + -0.518328, + 1102.080078, + -101.660156 + ], + [ + 1091.633779, + -0.518328, + 1102.080078, + -101.660156 + ], + [ + 1091.638696, + -0.518328, + 1102.080078, + -101.660156 + ], + [ + 1091.64373, + -0.518328, + 1100.009766, + -102.34375 + ], + [ + 1091.648726, + -0.518328, + 1100.009766, + -102.34375 + ], + [ + 1091.653709, + -0.518328, + 1100.009766, + -102.34375 + ], + [ + 1091.65873, + -0.518328, + 1100.009766, + -102.34375 + ], + [ + 1091.66375, + -0.524511, + 1097.929688, + -103.125 + ], + [ + 1091.66867, + -0.524511, + 1097.929688, + -103.125 + ], + [ + 1091.673686, + -0.53067, + 1097.929688, + -103.125 + ], + [ + 1091.678711, + -0.53067, + 1097.929688, + -103.125 + ], + [ + 1091.683713, + -0.53067, + 1095.791016, + -104.101562 + ], + [ + 1091.688672, + -0.53067, + 1095.791016, + -104.101562 + ], + [ + 1091.695837, + -0.53067, + 1095.791016, + -104.101562 + ], + [ + 1091.698688, + -0.53067, + 1095.791016, + -104.101562 + ], + [ + 1091.703702, + -0.53067, + 1093.671875, + -104.882812 + ], + [ + 1091.708692, + -0.53067, + 1093.671875, + -104.882812 + ], + [ + 1091.713678, + -0.53067, + 1093.671875, + -104.882812 + ], + [ + 1091.718682, + -0.536828, + 1093.671875, + -104.882812 + ], + [ + 1091.723716, + -0.536828, + 1091.523438, + -105.46875 + ], + [ + 1091.728704, + -0.543011, + 1091.523438, + -105.46875 + ], + [ + 1091.733662, + -0.543011, + 1091.523438, + -105.46875 + ], + [ + 1091.73867, + -0.543011, + 1091.523438, + -105.46875 + ], + [ + 1091.743693, + -0.5419349999999999, + 1089.375, + -106.347656 + ], + [ + 1091.748713, + -0.5419349999999999, + 1089.375, + -106.347656 + ], + [ + 1091.753709, + -0.5419349999999999, + 1089.375, + -106.347656 + ], + [ + 1091.758696, + -0.5419349999999999, + 1089.375, + -106.347656 + ], + [ + 1091.763691, + -0.5419349999999999, + 1087.207031, + -107.226562 + ], + [ + 1091.768925, + -0.5419349999999999, + 1087.207031, + -107.226562 + ], + [ + 1091.773698, + -0.5419349999999999, + 1087.207031, + -107.226562 + ], + [ + 1091.778787, + -0.5419349999999999, + 1087.207031, + -107.226562 + ], + [ + 1091.783755, + -0.5419349999999999, + 1085.029297, + -107.617188 + ], + [ + 1091.788846, + -0.554252, + 1085.029297, + -107.617188 + ], + [ + 1091.79371, + -0.554252, + 1085.029297, + -107.617188 + ], + [ + 1091.798801, + -0.554252, + 1085.029297, + -107.617188 + ], + [ + 1091.803759, + -0.554252, + 1082.802734, + -108.59375 + ], + [ + 1091.808962, + -0.554252, + 1082.802734, + -108.59375 + ], + [ + 1091.813683, + -0.554252, + 1082.802734, + -108.59375 + ], + [ + 1091.819705, + -0.554252, + 1082.802734, + -108.59375 + ], + [ + 1091.823713, + -0.554252, + 1080.605469, + -109.277344 + ], + [ + 1091.828795, + -0.554252, + 1080.605469, + -109.277344 + ], + [ + 1091.834882, + -0.554252, + 1080.605469, + -109.277344 + ], + [ + 1091.838697, + -0.554252, + 1080.605469, + -109.277344 + ], + [ + 1091.84372, + -0.554252, + 1078.388672, + -109.960938 + ], + [ + 1091.848706, + -0.566569, + 1078.388672, + -109.960938 + ], + [ + 1091.853664, + -0.566569, + 1078.388672, + -109.960938 + ], + [ + 1091.858711, + -0.566569, + 1078.388672, + -109.960938 + ], + [ + 1091.863715, + -0.566569, + 1076.113281, + -110.9375 + ], + [ + 1091.868684, + -0.566569, + 1076.113281, + -110.9375 + ], + [ + 1091.87366, + -0.566569, + 1076.113281, + -110.9375 + ], + [ + 1091.878678, + -0.566569, + 1076.113281, + -110.9375 + ], + [ + 1091.883765, + -0.566569, + 1073.837891, + -111.914062 + ], + [ + 1091.888692, + -0.566569, + 1073.837891, + -111.914062 + ], + [ + 1091.893659, + -0.566569, + 1073.837891, + -111.914062 + ], + [ + 1091.900564, + -0.578886, + 1073.837891, + -111.914062 + ], + [ + 1091.903723, + -0.578886, + 1071.542969, + -112.792969 + ], + [ + 1091.908644, + -0.578886, + 1071.542969, + -112.792969 + ], + [ + 1091.913761, + -0.578886, + 1071.542969, + -112.792969 + ], + [ + 1091.918651, + -0.578886, + 1071.542969, + -112.792969 + ], + [ + 1091.923724, + -0.578886, + 1069.257812, + -113.476562 + ], + [ + 1091.928668, + -0.578886, + 1069.257812, + -113.476562 + ], + [ + 1091.933765, + -0.578886, + 1069.257812, + -113.476562 + ], + [ + 1091.938661, + -0.578886, + 1069.257812, + -113.476562 + ], + [ + 1091.943869, + -0.578886, + 1066.962891, + -114.160156 + ], + [ + 1091.94868, + -0.578886, + 1066.962891, + -114.160156 + ], + [ + 1091.953682, + -0.578886, + 1066.962891, + -114.160156 + ], + [ + 1091.958657, + -0.578886, + 1066.962891, + -114.160156 + ], + [ + 1091.96372, + -0.592375, + 1064.658203, + -114.550781 + ], + [ + 1091.968893, + -0.592375, + 1064.658203, + -114.550781 + ], + [ + 1091.973729, + -0.592375, + 1064.658203, + -114.550781 + ], + [ + 1091.978648, + -0.592375, + 1064.658203, + -114.550781 + ], + [ + 1091.983714, + -0.592375, + 1062.324219, + -115.136719 + ], + [ + 1091.988812, + -0.592375, + 1062.324219, + -115.136719 + ], + [ + 1091.993801, + -0.592375, + 1062.324219, + -115.136719 + ], + [ + 1091.998688, + -0.592375, + 1062.324219, + -115.136719 + ], + [ + 1092.003794, + -0.592375, + 1060.0, + -115.429688 + ], + [ + 1092.008754, + -0.592375, + 1060.0, + -115.429688 + ], + [ + 1092.013745, + -0.592375, + 1060.0, + -115.429688 + ], + [ + 1092.01874, + -0.592375, + 1060.0, + -115.429688 + ], + [ + 1092.023846, + -0.604717, + 1057.636719, + -116.113281 + ], + [ + 1092.028731, + -0.604717, + 1057.636719, + -116.113281 + ], + [ + 1092.033726, + -0.604717, + 1057.636719, + -116.113281 + ], + [ + 1092.038701, + -0.604717, + 1057.636719, + -116.113281 + ], + [ + 1092.043842, + -0.604717, + 1055.234375, + -117.285156 + ], + [ + 1092.048723, + -0.604717, + 1055.234375, + -117.285156 + ], + [ + 1092.053774, + -0.604717, + 1055.234375, + -117.285156 + ], + [ + 1092.058689, + -0.604717, + 1055.234375, + -117.285156 + ], + [ + 1092.063711, + -0.604717, + 1052.783203, + -118.75 + ], + [ + 1092.068689, + -0.604717, + 1052.783203, + -118.75 + ], + [ + 1092.073701, + -0.610899, + 1052.783203, + -118.75 + ], + [ + 1092.078763, + -0.610899, + 1052.783203, + -118.75 + ], + [ + 1092.083718, + -0.617058, + 1050.341797, + -119.824219 + ], + [ + 1092.088749, + -0.617058, + 1050.341797, + -119.824219 + ], + [ + 1092.093725, + -0.617058, + 1050.341797, + -119.824219 + ], + [ + 1092.098661, + -0.617058, + 1050.341797, + -119.824219 + ], + [ + 1092.105841, + -0.617058, + 1047.890625, + -120.996094 + ], + [ + 1092.108678, + -0.617058, + 1047.890625, + -120.996094 + ], + [ + 1092.113674, + -0.617058, + 1047.890625, + -120.996094 + ], + [ + 1092.118678, + -0.617058, + 1047.890625, + -120.996094 + ], + [ + 1092.123692, + -0.617058, + 1047.890625, + -120.996094 + ], + [ + 1092.128848, + -0.617058, + 1045.458984, + -121.875 + ], + [ + 1092.133658, + -0.617058, + 1045.458984, + -121.875 + ], + [ + 1092.138754, + -0.629374, + 1045.458984, + -121.875 + ], + [ + 1092.14365, + -0.629374, + 1045.458984, + -121.875 + ], + [ + 1092.148783, + -0.64174, + 1042.998047, + -122.363281 + ], + [ + 1092.153672, + -0.64174, + 1042.998047, + -122.363281 + ], + [ + 1092.158669, + -0.64174, + 1042.998047, + -122.363281 + ], + [ + 1092.163654, + -0.64174, + 1042.998047, + -122.363281 + ], + [ + 1092.16872, + -0.64174, + 1040.527344, + -122.460938 + ], + [ + 1092.17367, + -0.64174, + 1040.527344, + -122.460938 + ], + [ + 1092.178713, + -0.64174, + 1040.527344, + -122.460938 + ], + [ + 1092.183651, + -0.64174, + 1040.527344, + -122.460938 + ], + [ + 1092.188755, + -0.64174, + 1038.076172, + -122.65625 + ], + [ + 1092.193669, + -0.64174, + 1038.076172, + -122.65625 + ], + [ + 1092.198679, + -0.654081, + 1038.076172, + -122.65625 + ], + [ + 1092.203665, + -0.654081, + 1038.076172, + -122.65625 + ], + [ + 1092.209148, + -0.654081, + 1035.556641, + -123.242188 + ], + [ + 1092.213669, + -0.654081, + 1035.556641, + -123.242188 + ], + [ + 1092.218707, + -0.654081, + 1035.556641, + -123.242188 + ], + [ + 1092.223657, + -0.654081, + 1035.556641, + -123.242188 + ], + [ + 1092.228934, + -0.654081, + 1032.988281, + -124.609375 + ], + [ + 1092.233663, + -0.654081, + 1032.988281, + -124.609375 + ], + [ + 1092.238796, + -0.654081, + 1032.988281, + -124.609375 + ], + [ + 1092.24368, + -0.654081, + 1032.988281, + -124.609375 + ], + [ + 1092.248769, + -0.654081, + 1030.429688, + -125.585938 + ], + [ + 1092.253741, + -0.654081, + 1030.429688, + -125.585938 + ], + [ + 1092.258716, + -0.666422, + 1030.429688, + -125.585938 + ], + [ + 1092.263742, + -0.666422, + 1030.429688, + -125.585938 + ], + [ + 1092.26879, + -0.666422, + 1027.861328, + -126.757812 + ], + [ + 1092.273713, + -0.666422, + 1027.861328, + -126.757812 + ], + [ + 1092.278707, + -0.666422, + 1027.861328, + -126.757812 + ], + [ + 1092.283695, + -0.666422, + 1027.861328, + -126.757812 + ], + [ + 1092.288733, + -0.666422, + 1025.263672, + -128.125 + ], + [ + 1092.293737, + -0.666422, + 1025.263672, + -128.125 + ], + [ + 1092.298699, + -0.666422, + 1025.263672, + -128.125 + ], + [ + 1092.303672, + -0.666422, + 1025.263672, + -128.125 + ], + [ + 1092.311271, + -0.666422, + 1022.646484, + -129.199219 + ], + [ + 1092.313656, + -0.666422, + 1022.646484, + -129.199219 + ], + [ + 1092.318668, + -0.666422, + 1022.646484, + -129.199219 + ], + [ + 1092.32372, + -0.678763, + 1022.646484, + -129.199219 + ], + [ + 1092.328683, + -0.678763, + 1022.646484, + -129.199219 + ], + [ + 1092.333737, + -0.678763, + 1020.058594, + -129.394531 + ], + [ + 1092.338657, + -0.678763, + 1020.058594, + -129.394531 + ], + [ + 1092.343668, + -0.678763, + 1020.058594, + -129.394531 + ], + [ + 1092.348789, + -0.678763, + 1020.058594, + -129.394531 + ], + [ + 1092.353897, + -0.678763, + 1017.441406, + -129.882812 + ], + [ + 1092.358709, + -0.678763, + 1017.441406, + -129.882812 + ], + [ + 1092.363723, + -0.678763, + 1017.441406, + -129.882812 + ], + [ + 1092.368664, + -0.678763, + 1017.441406, + -129.882812 + ], + [ + 1092.373728, + -0.691105, + 1014.833984, + -130.273438 + ], + [ + 1092.378649, + -0.691105, + 1014.833984, + -130.273438 + ], + [ + 1092.38371, + -0.691105, + 1014.833984, + -130.273438 + ], + [ + 1092.388898, + -0.691105, + 1014.833984, + -130.273438 + ], + [ + 1092.393804, + -0.691105, + 1012.177734, + -130.859375 + ], + [ + 1092.398665, + -0.691105, + 1012.177734, + -130.859375 + ], + [ + 1092.403665, + -0.691105, + 1012.177734, + -130.859375 + ], + [ + 1092.408667, + -0.691105, + 1012.177734, + -130.859375 + ], + [ + 1092.414327, + -0.691105, + 1009.53125, + -131.152344 + ], + [ + 1092.418718, + -0.691105, + 1009.53125, + -131.152344 + ], + [ + 1092.42367, + -0.697287, + 1009.53125, + -131.152344 + ], + [ + 1092.428639, + -0.697287, + 1009.53125, + -131.152344 + ], + [ + 1092.433709, + -0.703446, + 1006.865234, + -131.835938 + ], + [ + 1092.438779, + -0.703446, + 1006.865234, + -131.835938 + ], + [ + 1092.443698, + -0.703446, + 1006.865234, + -131.835938 + ], + [ + 1092.448896, + -0.703446, + 1006.865234, + -131.835938 + ], + [ + 1092.4537, + -0.703446, + 1004.130859, + -133.105469 + ], + [ + 1092.458732, + -0.703446, + 1004.130859, + -133.105469 + ], + [ + 1092.4637, + -0.703446, + 1004.130859, + -133.105469 + ], + [ + 1092.468811, + -0.703446, + 1004.130859, + -133.105469 + ], + [ + 1092.473717, + -0.709629, + 1001.40625, + -134.277344 + ], + [ + 1092.478694, + -0.709629, + 1001.40625, + -134.277344 + ], + [ + 1092.483757, + -0.715787, + 1001.40625, + -134.277344 + ], + [ + 1092.488684, + -0.715787, + 1001.40625, + -134.277344 + ], + [ + 1092.493751, + -0.715787, + 998.662109, + -135.058594 + ], + [ + 1092.498745, + -0.715787, + 998.662109, + -135.058594 + ], + [ + 1092.503718, + -0.715787, + 998.662109, + -135.058594 + ], + [ + 1092.509235, + -0.715787, + 998.662109, + -135.058594 + ], + [ + 1092.513836, + -0.715787, + 995.908203, + -136.328125 + ], + [ + 1092.518724, + -0.715787, + 995.908203, + -136.328125 + ], + [ + 1092.523716, + -0.715787, + 995.908203, + -136.328125 + ], + [ + 1092.529244, + -0.715787, + 995.908203, + -136.328125 + ], + [ + 1092.53377, + -0.715787, + 993.154297, + -137.011719 + ], + [ + 1092.538693, + -0.715787, + 993.154297, + -137.011719 + ], + [ + 1092.543766, + -0.715787, + 993.154297, + -137.011719 + ], + [ + 1092.548678, + -0.715787, + 993.154297, + -137.011719 + ], + [ + 1092.553741, + -0.728128, + 990.46875, + -136.71875 + ], + [ + 1092.558658, + -0.728128, + 990.46875, + -136.71875 + ], + [ + 1092.563671, + -0.728128, + 990.46875, + -136.71875 + ], + [ + 1092.56868, + -0.728128, + 990.46875, + -136.71875 + ], + [ + 1092.573732, + -0.728128, + 987.763672, + -136.328125 + ], + [ + 1092.578808, + -0.728128, + 987.763672, + -136.328125 + ], + [ + 1092.583699, + -0.728128, + 987.763672, + -136.328125 + ], + [ + 1092.588675, + -0.728128, + 987.763672, + -136.328125 + ], + [ + 1092.593764, + -0.728128, + 985.058594, + -136.132812 + ], + [ + 1092.598672, + -0.728128, + 985.058594, + -136.132812 + ], + [ + 1092.603836, + -0.734311, + 985.058594, + -136.132812 + ], + [ + 1092.608642, + -0.734311, + 985.058594, + -136.132812 + ], + [ + 1092.61374, + -0.740469, + 982.34375, + -135.546875 + ], + [ + 1092.618732, + -0.740469, + 982.34375, + -135.546875 + ], + [ + 1092.623679, + -0.740469, + 982.34375, + -135.546875 + ], + [ + 1092.628672, + -0.740469, + 982.34375, + -135.546875 + ], + [ + 1092.633735, + -0.740469, + 979.638672, + -135.253906 + ], + [ + 1092.638762, + -0.740469, + 979.638672, + -135.253906 + ], + [ + 1092.643774, + -0.740469, + 979.638672, + -135.253906 + ], + [ + 1092.648647, + -0.740469, + 979.638672, + -135.253906 + ], + [ + 1092.653736, + -0.740469, + 976.933594, + -135.253906 + ], + [ + 1092.658658, + -0.740469, + 976.933594, + -135.253906 + ], + [ + 1092.663682, + -0.75281, + 976.933594, + -135.253906 + ], + [ + 1092.668669, + -0.75281, + 976.933594, + -135.253906 + ], + [ + 1092.673736, + -0.75281, + 974.21875, + -135.546875 + ], + [ + 1092.678656, + -0.75281, + 974.21875, + -135.546875 + ], + [ + 1092.683842, + -0.75281, + 974.21875, + -135.546875 + ], + [ + 1092.688678, + -0.75281, + 974.21875, + -135.546875 + ], + [ + 1092.693702, + -0.75281, + 971.455078, + -135.9375 + ], + [ + 1092.698653, + -0.75281, + 971.455078, + -135.9375 + ], + [ + 1092.703707, + -0.75281, + 971.455078, + -135.9375 + ], + [ + 1092.708703, + -0.75281, + 971.455078, + -135.9375 + ], + [ + 1092.713734, + -0.75281, + 968.701172, + -136.425781 + ], + [ + 1092.72099, + -0.75281, + 968.701172, + -136.425781 + ], + [ + 1092.72371, + -0.758993, + 968.701172, + -136.425781 + ], + [ + 1092.72871, + -0.758993, + 968.701172, + -136.425781 + ], + [ + 1092.733709, + -0.765152, + 965.927734, + -137.109375 + ], + [ + 1092.738685, + -0.765152, + 965.927734, + -137.109375 + ], + [ + 1092.743714, + -0.765152, + 965.927734, + -137.109375 + ], + [ + 1092.748722, + -0.765152, + 965.927734, + -137.109375 + ], + [ + 1092.753741, + -0.765152, + 963.105469, + -138.378906 + ], + [ + 1092.758689, + -0.765152, + 963.105469, + -138.378906 + ], + [ + 1092.763816, + -0.765152, + 963.105469, + -138.378906 + ], + [ + 1092.768709, + -0.765152, + 963.105469, + -138.378906 + ], + [ + 1092.77379, + -0.771334, + 960.273438, + -139.355469 + ], + [ + 1092.778739, + -0.771334, + 960.273438, + -139.355469 + ], + [ + 1092.783687, + -0.777493, + 960.273438, + -139.355469 + ], + [ + 1092.78871, + -0.777493, + 960.273438, + -139.355469 + ], + [ + 1092.793729, + -0.777493, + 957.431641, + -140.234375 + ], + [ + 1092.798675, + -0.777493, + 957.431641, + -140.234375 + ], + [ + 1092.803668, + -0.777493, + 957.431641, + -140.234375 + ], + [ + 1092.808761, + -0.777493, + 957.431641, + -140.234375 + ], + [ + 1092.813742, + -0.777493, + 954.560547, + -141.308594 + ], + [ + 1092.818646, + -0.777493, + 954.560547, + -141.308594 + ], + [ + 1092.824081, + -0.777493, + 954.560547, + -141.308594 + ], + [ + 1092.828683, + -0.777493, + 954.560547, + -141.308594 + ], + [ + 1092.83385, + -0.783651, + 951.679688, + -142.382812 + ], + [ + 1092.838661, + -0.783651, + 951.679688, + -142.382812 + ], + [ + 1092.843758, + -0.789834, + 951.679688, + -142.382812 + ], + [ + 1092.848747, + -0.789834, + 951.679688, + -142.382812 + ], + [ + 1092.853731, + -0.789834, + 948.808594, + -142.96875 + ], + [ + 1092.858642, + -0.789834, + 948.808594, + -142.96875 + ], + [ + 1092.86367, + -0.789834, + 948.808594, + -142.96875 + ], + [ + 1092.868677, + -0.789834, + 948.808594, + -142.96875 + ], + [ + 1092.873729, + -0.789834, + 945.878906, + -143.945312 + ], + [ + 1092.878658, + -0.789834, + 945.878906, + -143.945312 + ], + [ + 1092.883723, + -0.789834, + 945.878906, + -143.945312 + ], + [ + 1092.888666, + -0.789834, + 945.878906, + -143.945312 + ], + [ + 1092.893717, + -0.802175, + 942.958984, + -144.726562 + ], + [ + 1092.898744, + -0.802175, + 942.958984, + -144.726562 + ], + [ + 1092.903668, + -0.802175, + 942.958984, + -144.726562 + ], + [ + 1092.908655, + -0.802175, + 942.958984, + -144.726562 + ], + [ + 1092.913732, + -0.802175, + 940.058594, + -145.019531 + ], + [ + 1092.918798, + -0.802175, + 940.058594, + -145.019531 + ], + [ + 1092.926083, + -0.802175, + 940.058594, + -145.019531 + ], + [ + 1092.928938, + -0.802175, + 940.058594, + -145.019531 + ], + [ + 1092.933887, + -0.802175, + 937.148438, + -145.3125 + ], + [ + 1092.93868, + -0.802175, + 937.148438, + -145.3125 + ], + [ + 1092.943733, + -0.802175, + 937.148438, + -145.3125 + ], + [ + 1092.948723, + -0.802175, + 937.148438, + -145.3125 + ], + [ + 1092.953706, + -0.802175, + 934.21875, + -145.898438 + ], + [ + 1092.958691, + -0.808333, + 934.21875, + -145.898438 + ], + [ + 1092.963684, + -0.808333, + 934.21875, + -145.898438 + ], + [ + 1092.969238, + -0.814516, + 934.21875, + -145.898438 + ], + [ + 1092.973707, + -0.814516, + 931.289062, + -145.996094 + ], + [ + 1092.97884, + -0.814516, + 931.289062, + -145.996094 + ], + [ + 1092.983706, + -0.814516, + 931.289062, + -145.996094 + ], + [ + 1092.988742, + -0.814516, + 931.289062, + -145.996094 + ], + [ + 1092.993729, + -0.814516, + 928.330078, + -146.289062 + ], + [ + 1092.998694, + -0.814516, + 928.330078, + -146.289062 + ], + [ + 1093.003737, + -0.814516, + 928.330078, + -146.289062 + ], + [ + 1093.008968, + -0.814516, + 928.330078, + -146.289062 + ], + [ + 1093.013714, + -0.814516, + 925.371094, + -146.972656 + ], + [ + 1093.018832, + -0.826857, + 925.371094, + -146.972656 + ], + [ + 1093.023686, + -0.826857, + 925.371094, + -146.972656 + ], + [ + 1093.029272, + -0.826857, + 925.371094, + -146.972656 + ], + [ + 1093.033734, + -0.826857, + 922.333984, + -148.144531 + ], + [ + 1093.03867, + -0.826857, + 922.333984, + -148.144531 + ], + [ + 1093.043731, + -0.826857, + 922.333984, + -148.144531 + ], + [ + 1093.048686, + -0.826857, + 922.333984, + -148.144531 + ], + [ + 1093.053727, + -0.826857, + 919.326172, + -148.730469 + ], + [ + 1093.058766, + -0.826857, + 919.326172, + -148.730469 + ], + [ + 1093.06366, + -0.826857, + 919.326172, + -148.730469 + ], + [ + 1093.068821, + -0.833016, + 919.326172, + -148.730469 + ], + [ + 1093.073726, + -0.833016, + 916.337891, + -149.414062 + ], + [ + 1093.078741, + -0.839198, + 916.337891, + -149.414062 + ], + [ + 1093.083655, + -0.839198, + 916.337891, + -149.414062 + ], + [ + 1093.088715, + -0.839198, + 916.337891, + -149.414062 + ], + [ + 1093.09376, + -0.839198, + 913.300781, + -150.292969 + ], + [ + 1093.09868, + -0.839198, + 913.300781, + -150.292969 + ], + [ + 1093.10366, + -0.839198, + 913.300781, + -150.292969 + ], + [ + 1093.108714, + -0.839198, + 913.300781, + -150.292969 + ], + [ + 1093.113721, + -0.839198, + 910.253906, + -151.074219 + ], + [ + 1093.118704, + -0.839198, + 910.253906, + -151.074219 + ], + [ + 1093.123652, + -0.839198, + 910.253906, + -151.074219 + ], + [ + 1093.128718, + -0.839198, + 910.253906, + -151.074219 + ], + [ + 1093.133732, + -0.839198, + 907.216797, + -151.269531 + ], + [ + 1093.138678, + -0.85154, + 907.216797, + -151.269531 + ], + [ + 1093.143724, + -0.85154, + 907.216797, + -151.269531 + ], + [ + 1093.148698, + -0.85154, + 907.216797, + -151.269531 + ], + [ + 1093.153717, + -0.85154, + 904.101562, + -152.34375 + ], + [ + 1093.158678, + -0.85154, + 904.101562, + -152.34375 + ], + [ + 1093.163698, + -0.85154, + 904.101562, + -152.34375 + ], + [ + 1093.168796, + -0.85154, + 904.101562, + -152.34375 + ], + [ + 1093.173686, + -0.85154, + 900.957031, + -153.710938 + ], + [ + 1093.178716, + -0.85154, + 900.957031, + -153.710938 + ], + [ + 1093.183684, + -0.85154, + 900.957031, + -153.710938 + ], + [ + 1093.188716, + -0.857698, + 900.957031, + -153.710938 + ], + [ + 1093.19371, + -0.857698, + 897.832031, + -154.6875 + ], + [ + 1093.198696, + -0.863881, + 897.832031, + -154.6875 + ], + [ + 1093.203684, + -0.863881, + 897.832031, + -154.6875 + ], + [ + 1093.208716, + -0.863881, + 897.832031, + -154.6875 + ], + [ + 1093.213748, + -0.863881, + 894.658203, + -156.054688 + ], + [ + 1093.21872, + -0.863881, + 894.658203, + -156.054688 + ], + [ + 1093.223705, + -0.863881, + 894.658203, + -156.054688 + ], + [ + 1093.228789, + -0.863881, + 894.658203, + -156.054688 + ], + [ + 1093.233738, + -0.863881, + 891.484375, + -157.226562 + ], + [ + 1093.238704, + -0.870039, + 891.484375, + -157.226562 + ], + [ + 1093.243716, + -0.870039, + 891.484375, + -157.226562 + ], + [ + 1093.248727, + -0.876222, + 891.484375, + -157.226562 + ], + [ + 1093.25413, + -0.876222, + 888.349609, + -157.519531 + ], + [ + 1093.258694, + -0.876222, + 888.349609, + -157.519531 + ], + [ + 1093.263729, + -0.876222, + 888.349609, + -157.519531 + ], + [ + 1093.268717, + -0.876222, + 888.349609, + -157.519531 + ], + [ + 1093.273714, + -0.876222, + 885.175781, + -158.007812 + ], + [ + 1093.278716, + -0.876222, + 885.175781, + -158.007812 + ], + [ + 1093.283651, + -0.876222, + 885.175781, + -158.007812 + ], + [ + 1093.288792, + -0.876222, + 885.175781, + -158.007812 + ], + [ + 1093.293716, + -0.876222, + 881.962891, + -158.59375 + ], + [ + 1093.298668, + -0.876222, + 881.962891, + -158.59375 + ], + [ + 1093.303648, + -0.876222, + 881.962891, + -158.59375 + ], + [ + 1093.30899, + -0.888563, + 881.962891, + -158.59375 + ], + [ + 1093.313779, + -0.888563, + 878.808594, + -158.496094 + ], + [ + 1093.318734, + -0.888563, + 878.808594, + -158.496094 + ], + [ + 1093.323655, + -0.888563, + 878.808594, + -158.496094 + ], + [ + 1093.328703, + -0.888563, + 878.808594, + -158.496094 + ], + [ + 1093.333767, + -0.888563, + 875.537109, + -159.375 + ], + [ + 1093.338739, + -0.888563, + 875.537109, + -159.375 + ], + [ + 1093.343665, + -0.888563, + 875.537109, + -159.375 + ], + [ + 1093.348787, + -0.888563, + 875.537109, + -159.375 + ], + [ + 1093.353726, + -0.888563, + 872.265625, + -160.9375 + ], + [ + 1093.358684, + -0.888563, + 872.265625, + -160.9375 + ], + [ + 1093.363658, + -0.888563, + 872.265625, + -160.9375 + ], + [ + 1093.36869, + -0.900904, + 872.265625, + -160.9375 + ], + [ + 1093.373718, + -0.900904, + 869.003906, + -161.523438 + ], + [ + 1093.378704, + -0.900904, + 869.003906, + -161.523438 + ], + [ + 1093.383659, + -0.900904, + 869.003906, + -161.523438 + ], + [ + 1093.38869, + -0.900904, + 869.003906, + -161.523438 + ], + [ + 1093.393708, + -0.900904, + 865.732422, + -162.402344 + ], + [ + 1093.398771, + -0.900904, + 865.732422, + -162.402344 + ], + [ + 1093.40366, + -0.900904, + 865.732422, + -162.402344 + ], + [ + 1093.408735, + -0.900904, + 865.732422, + -162.402344 + ], + [ + 1093.413701, + -0.900904, + 862.412109, + -163.867188 + ], + [ + 1093.41884, + -0.900904, + 862.412109, + -163.867188 + ], + [ + 1093.423685, + -0.900904, + 862.412109, + -163.867188 + ], + [ + 1093.428824, + -0.913245, + 862.412109, + -163.867188 + ], + [ + 1093.433687, + -0.913245, + 859.121094, + -164.257812 + ], + [ + 1093.438759, + -0.913245, + 859.121094, + -164.257812 + ], + [ + 1093.443759, + -0.913245, + 859.121094, + -164.257812 + ], + [ + 1093.448758, + -0.913245, + 859.121094, + -164.257812 + ], + [ + 1093.453718, + -0.913245, + 855.761719, + -164.941406 + ], + [ + 1093.458855, + -0.913245, + 855.761719, + -164.941406 + ], + [ + 1093.463712, + -0.913245, + 855.761719, + -164.941406 + ], + [ + 1093.468838, + -0.913245, + 855.761719, + -164.941406 + ], + [ + 1093.47372, + -0.913245, + 852.373047, + -166.40625 + ], + [ + 1093.478693, + -0.919404, + 852.373047, + -166.40625 + ], + [ + 1093.4837, + -0.919404, + 852.373047, + -166.40625 + ], + [ + 1093.488995, + -0.925587, + 852.373047, + -166.40625 + ], + [ + 1093.493749, + -0.925587, + 848.994141, + -167.382812 + ], + [ + 1093.498706, + -0.925587, + 848.994141, + -167.382812 + ], + [ + 1093.5037, + -0.925587, + 848.994141, + -167.382812 + ], + [ + 1093.50874, + -0.925587, + 848.994141, + -167.382812 + ], + [ + 1093.513736, + -0.925587, + 845.566406, + -168.457031 + ], + [ + 1093.518671, + -0.925587, + 845.566406, + -168.457031 + ], + [ + 1093.523669, + -0.925587, + 845.566406, + -168.457031 + ], + [ + 1093.528687, + -0.925587, + 845.566406, + -168.457031 + ], + [ + 1093.533729, + -0.925587, + 842.128906, + -169.921875 + ], + [ + 1093.538734, + -0.937928, + 842.128906, + -169.921875 + ], + [ + 1093.54373, + -0.937928, + 842.128906, + -169.921875 + ], + [ + 1093.548691, + -0.937928, + 842.128906, + -169.921875 + ], + [ + 1093.55373, + -0.937928, + 838.720703, + -170.3125 + ], + [ + 1093.558671, + -0.937928, + 838.720703, + -170.3125 + ], + [ + 1093.563652, + -0.937928, + 838.720703, + -170.3125 + ], + [ + 1093.568768, + -0.937928, + 838.720703, + -170.3125 + ], + [ + 1093.573729, + -0.937928, + 835.292969, + -170.703125 + ], + [ + 1093.578779, + -0.937928, + 835.292969, + -170.703125 + ], + [ + 1093.583647, + -0.937928, + 835.292969, + -170.703125 + ], + [ + 1093.588695, + -0.937928, + 835.292969, + -170.703125 + ], + [ + 1093.593731, + -0.937928, + 831.845703, + -171.386719 + ], + [ + 1093.598677, + -0.96261, + 831.845703, + -171.386719 + ], + [ + 1093.603663, + -0.96261, + 831.845703, + -171.386719 + ], + [ + 1093.608668, + -0.96261, + 831.845703, + -171.386719 + ], + [ + 1093.613724, + -0.96261, + 828.359375, + -172.070312 + ], + [ + 1093.618676, + -0.96261, + 828.359375, + -172.070312 + ], + [ + 1093.623716, + -0.96261, + 828.359375, + -172.070312 + ], + [ + 1093.628689, + -0.96261, + 828.359375, + -172.070312 + ], + [ + 1093.633706, + -0.96261, + 824.814453, + -173.242188 + ], + [ + 1093.638668, + -0.96261, + 824.814453, + -173.242188 + ], + [ + 1093.64424, + -0.96261, + 824.814453, + -173.242188 + ], + [ + 1093.648737, + -0.968768, + 824.814453, + -173.242188 + ], + [ + 1093.6538, + -0.968768, + 821.259766, + -174.609375 + ], + [ + 1093.65868, + -0.974951, + 821.259766, + -174.609375 + ], + [ + 1093.663679, + -0.974951, + 821.259766, + -174.609375 + ], + [ + 1093.668716, + -0.974951, + 821.259766, + -174.609375 + ], + [ + 1093.673711, + -0.974951, + 817.744141, + -175.488281 + ], + [ + 1093.678704, + -0.974951, + 817.744141, + -175.488281 + ], + [ + 1093.683684, + -0.974951, + 817.744141, + -175.488281 + ], + [ + 1093.688701, + -0.974951, + 817.744141, + -175.488281 + ], + [ + 1093.693696, + -0.974951, + 814.208984, + -176.464844 + ], + [ + 1093.698692, + -0.974951, + 814.208984, + -176.464844 + ], + [ + 1093.703742, + -0.974951, + 814.208984, + -176.464844 + ], + [ + 1093.70915, + -0.987292, + 814.208984, + -176.464844 + ], + [ + 1093.713731, + -0.987292, + 810.664062, + -177.050781 + ], + [ + 1093.718698, + -0.987292, + 810.664062, + -177.050781 + ], + [ + 1093.723685, + -0.987292, + 810.664062, + -177.050781 + ], + [ + 1093.728703, + -0.987292, + 810.664062, + -177.050781 + ], + [ + 1093.733932, + -0.987292, + 807.070312, + -177.34375 + ], + [ + 1093.738914, + -0.987292, + 807.070312, + -177.34375 + ], + [ + 1093.743685, + -0.987292, + 807.070312, + -177.34375 + ], + [ + 1093.748734, + -0.987292, + 807.070312, + -177.34375 + ], + [ + 1093.753722, + -0.987292, + 803.4375, + -178.222656 + ], + [ + 1093.758694, + -0.987292, + 803.4375, + -178.222656 + ], + [ + 1093.763693, + -0.987292, + 803.4375, + -178.222656 + ], + [ + 1093.768742, + -0.993451, + 803.4375, + -178.222656 + ], + [ + 1093.773717, + -0.993451, + 799.84375, + -179.101562 + ], + [ + 1093.778666, + -0.999633, + 799.84375, + -179.101562 + ], + [ + 1093.783646, + -0.999633, + 799.84375, + -179.101562 + ], + [ + 1093.788702, + -0.999633, + 799.84375, + -179.101562 + ], + [ + 1093.793726, + -0.999633, + 796.210938, + -179.980469 + ], + [ + 1093.798666, + -0.999633, + 796.210938, + -179.980469 + ], + [ + 1093.803654, + -0.999633, + 796.210938, + -179.980469 + ], + [ + 1093.808682, + -0.999633, + 796.210938, + -179.980469 + ], + [ + 1093.813786, + -0.999633, + 792.568359, + -180.859375 + ], + [ + 1093.81882, + -0.999633, + 792.568359, + -180.859375 + ], + [ + 1093.823643, + -0.999633, + 792.568359, + -180.859375 + ], + [ + 1093.828797, + -1.011975, + 792.568359, + -180.859375 + ], + [ + 1093.83382, + -1.011975, + 788.945312, + -181.152344 + ], + [ + 1093.838664, + -1.011975, + 788.945312, + -181.152344 + ], + [ + 1093.84365, + -1.011975, + 788.945312, + -181.152344 + ], + [ + 1093.850017, + -1.011975, + 788.945312, + -181.152344 + ], + [ + 1093.853724, + -1.011975, + 785.292969, + -181.445312 + ], + [ + 1093.858682, + -1.011975, + 785.292969, + -181.445312 + ], + [ + 1093.863678, + -1.011975, + 785.292969, + -181.445312 + ], + [ + 1093.868744, + -1.011975, + 785.292969, + -181.445312 + ], + [ + 1093.873789, + -1.011975, + 781.601562, + -182.421875 + ], + [ + 1093.878652, + -1.011975, + 781.601562, + -182.421875 + ], + [ + 1093.883665, + -1.018133, + 781.601562, + -182.421875 + ], + [ + 1093.888676, + -1.018133, + 781.601562, + -182.421875 + ], + [ + 1093.893711, + -1.024316, + 777.900391, + -183.007812 + ], + [ + 1093.898656, + -1.024316, + 777.900391, + -183.007812 + ], + [ + 1093.903727, + -1.024316, + 777.900391, + -183.007812 + ], + [ + 1093.908874, + -1.024316, + 777.900391, + -183.007812 + ], + [ + 1093.913717, + -1.024316, + 774.101562, + -184.667969 + ], + [ + 1093.918732, + -1.024316, + 774.101562, + -184.667969 + ], + [ + 1093.923696, + -1.024316, + 774.101562, + -184.667969 + ], + [ + 1093.928728, + -1.024316, + 774.101562, + -184.667969 + ], + [ + 1093.93372, + -1.024316, + 770.263672, + -186.914062 + ], + [ + 1093.938678, + -1.024316, + 770.263672, + -186.914062 + ], + [ + 1093.943792, + -1.030499, + 770.263672, + -186.914062 + ], + [ + 1093.948728, + -1.030499, + 770.263672, + -186.914062 + ], + [ + 1093.95375, + -1.036657, + 766.455078, + -188.28125 + ], + [ + 1093.958805, + -1.036657, + 766.455078, + -188.28125 + ], + [ + 1093.963708, + -1.036657, + 766.455078, + -188.28125 + ], + [ + 1093.968855, + -1.036657, + 766.455078, + -188.28125 + ], + [ + 1093.973806, + -1.036657, + 762.646484, + -189.550781 + ], + [ + 1093.978686, + -1.036657, + 762.646484, + -189.550781 + ], + [ + 1093.98375, + -1.036657, + 762.646484, + -189.550781 + ], + [ + 1093.988714, + -1.036657, + 762.646484, + -189.550781 + ], + [ + 1093.993729, + -1.036657, + 758.896484, + -190.136719 + ], + [ + 1093.998645, + -1.036657, + 758.896484, + -190.136719 + ], + [ + 1094.003672, + -1.04284, + 758.896484, + -190.136719 + ], + [ + 1094.008694, + -1.04284, + 758.896484, + -190.136719 + ], + [ + 1094.013954, + -1.048998, + 755.146484, + -189.550781 + ], + [ + 1094.018706, + -1.048998, + 755.146484, + -189.550781 + ], + [ + 1094.023664, + -1.048998, + 755.146484, + -189.550781 + ], + [ + 1094.028668, + -1.048998, + 755.146484, + -189.550781 + ], + [ + 1094.03373, + -1.048998, + 751.318359, + -189.355469 + ], + [ + 1094.038662, + -1.048998, + 751.318359, + -189.355469 + ], + [ + 1094.043663, + -1.048998, + 751.318359, + -189.355469 + ], + [ + 1094.048669, + -1.048998, + 751.318359, + -189.355469 + ], + [ + 1094.055143, + -1.048998, + 747.5, + -189.648438 + ], + [ + 1094.05869, + -1.048998, + 747.5, + -189.648438 + ], + [ + 1094.063664, + -1.048998, + 747.5, + -189.648438 + ], + [ + 1094.069374, + -1.061339, + 747.5, + -189.648438 + ], + [ + 1094.073666, + -1.061339, + 747.5, + -189.648438 + ], + [ + 1094.078818, + -1.061339, + 743.652344, + -189.941406 + ], + [ + 1094.083669, + -1.061339, + 743.652344, + -189.941406 + ], + [ + 1094.088691, + -1.061339, + 743.652344, + -189.941406 + ], + [ + 1094.093679, + -1.061339, + 743.652344, + -189.941406 + ], + [ + 1094.098775, + -1.061339, + 739.755859, + -191.308594 + ], + [ + 1094.103671, + -1.061339, + 739.755859, + -191.308594 + ], + [ + 1094.108699, + -1.061339, + 739.755859, + -191.308594 + ], + [ + 1094.113671, + -1.061339, + 739.755859, + -191.308594 + ], + [ + 1094.118889, + -1.067522, + 735.888672, + -192.578125 + ], + [ + 1094.123661, + -1.07368, + 735.888672, + -192.578125 + ], + [ + 1094.128688, + -1.07368, + 735.888672, + -192.578125 + ], + [ + 1094.133715, + -1.07368, + 735.888672, + -192.578125 + ], + [ + 1094.138696, + -1.07368, + 731.953125, + -193.554688 + ], + [ + 1094.143778, + -1.07368, + 731.953125, + -193.554688 + ], + [ + 1094.148988, + -1.07368, + 731.953125, + -193.554688 + ], + [ + 1094.153697, + -1.07368, + 731.953125, + -193.554688 + ], + [ + 1094.158742, + -1.07368, + 728.066406, + -194.433594 + ], + [ + 1094.163699, + -1.07368, + 728.066406, + -194.433594 + ], + [ + 1094.169176, + -1.07368, + 728.066406, + -194.433594 + ], + [ + 1094.173715, + -1.07368, + 728.066406, + -194.433594 + ], + [ + 1094.178702, + -1.07368, + 724.140625, + -195.019531 + ], + [ + 1094.183687, + -1.07368, + 724.140625, + -195.019531 + ], + [ + 1094.188733, + -1.079863, + 724.140625, + -195.019531 + ], + [ + 1094.193729, + -1.086022, + 724.140625, + -195.019531 + ], + [ + 1094.198736, + -1.086022, + 720.234375, + -195.3125 + ], + [ + 1094.203687, + -1.086022, + 720.234375, + -195.3125 + ], + [ + 1094.208785, + -1.086022, + 720.234375, + -195.3125 + ], + [ + 1094.213744, + -1.086022, + 720.234375, + -195.3125 + ], + [ + 1094.218827, + -1.086022, + 716.308594, + -195.703125 + ], + [ + 1094.223714, + -1.086022, + 716.308594, + -195.703125 + ], + [ + 1094.228712, + -1.086022, + 716.308594, + -195.703125 + ], + [ + 1094.233728, + -1.086022, + 716.308594, + -195.703125 + ], + [ + 1094.238715, + -1.086022, + 712.363281, + -196.09375 + ], + [ + 1094.243711, + -1.09218, + 712.363281, + -196.09375 + ], + [ + 1094.248758, + -1.098363, + 712.363281, + -196.09375 + ], + [ + 1094.253685, + -1.098363, + 712.363281, + -196.09375 + ], + [ + 1094.260244, + -1.098363, + 708.457031, + -196.09375 + ], + [ + 1094.263768, + -1.098363, + 708.457031, + -196.09375 + ], + [ + 1094.268713, + -1.098363, + 708.457031, + -196.09375 + ], + [ + 1094.273681, + -1.098363, + 708.457031, + -196.09375 + ], + [ + 1094.278643, + -1.098363, + 708.457031, + -196.09375 + ], + [ + 1094.283732, + -1.098363, + 700.478516, + -197.558594 + ], + [ + 1094.288765, + -1.098363, + 700.478516, + -197.558594 + ], + [ + 1094.293673, + -1.098363, + 700.478516, + -197.558594 + ], + [ + 1094.298711, + -1.098363, + 700.478516, + -197.558594 + ], + [ + 1094.303724, + -1.104545, + 696.464844, + -198.4375 + ], + [ + 1094.308671, + -1.104545, + 696.464844, + -198.4375 + ], + [ + 1094.313672, + -1.110704, + 696.464844, + -198.4375 + ], + [ + 1094.318639, + -1.110704, + 696.464844, + -198.4375 + ], + [ + 1094.323722, + -1.110704, + 692.402344, + -199.511719 + ], + [ + 1094.328668, + -1.110704, + 692.402344, + -199.511719 + ], + [ + 1094.333678, + -1.110704, + 692.402344, + -199.511719 + ], + [ + 1094.338659, + -1.110704, + 692.402344, + -199.511719 + ], + [ + 1094.343717, + -1.110704, + 688.359375, + -200.878906 + ], + [ + 1094.348679, + -1.110704, + 688.359375, + -200.878906 + ], + [ + 1094.35369, + -1.116862, + 688.359375, + -200.878906 + ], + [ + 1094.358669, + -1.116862, + 688.359375, + -200.878906 + ], + [ + 1094.363774, + -1.123045, + 684.277344, + -201.855469 + ], + [ + 1094.368672, + -1.123045, + 684.277344, + -201.855469 + ], + [ + 1094.373683, + -1.123045, + 684.277344, + -201.855469 + ], + [ + 1094.378661, + -1.123045, + 684.277344, + -201.855469 + ], + [ + 1094.383748, + -1.123045, + 680.195312, + -202.734375 + ], + [ + 1094.388713, + -1.123045, + 680.195312, + -202.734375 + ], + [ + 1094.393716, + -1.123045, + 680.195312, + -202.734375 + ], + [ + 1094.398793, + -1.123045, + 680.195312, + -202.734375 + ], + [ + 1094.403706, + -1.123045, + 676.083984, + -203.710938 + ], + [ + 1094.408704, + -1.123045, + 676.083984, + -203.710938 + ], + [ + 1094.413724, + -1.135386, + 676.083984, + -203.710938 + ], + [ + 1094.418699, + -1.135386, + 676.083984, + -203.710938 + ], + [ + 1094.423714, + -1.135386, + 671.943359, + -204.492188 + ], + [ + 1094.428715, + -1.135386, + 671.943359, + -204.492188 + ], + [ + 1094.433798, + -1.135386, + 671.943359, + -204.492188 + ], + [ + 1094.438703, + -1.135386, + 671.943359, + -204.492188 + ], + [ + 1094.44405, + -1.135386, + 667.822266, + -205.371094 + ], + [ + 1094.448767, + -1.135386, + 667.822266, + -205.371094 + ], + [ + 1094.453706, + -1.135386, + 667.822266, + -205.371094 + ], + [ + 1094.458683, + -1.135386, + 667.822266, + -205.371094 + ], + [ + 1094.465019, + -1.135386, + 663.662109, + -206.25 + ], + [ + 1094.468676, + -1.135386, + 663.662109, + -206.25 + ], + [ + 1094.473699, + -1.135386, + 663.662109, + -206.25 + ], + [ + 1094.478664, + -1.147727, + 663.662109, + -206.25 + ], + [ + 1094.483698, + -1.147727, + 663.662109, + -206.25 + ], + [ + 1094.488761, + -1.147727, + 659.511719, + -206.835938 + ], + [ + 1094.493669, + -1.147727, + 659.511719, + -206.835938 + ], + [ + 1094.498674, + -1.147727, + 659.511719, + -206.835938 + ], + [ + 1094.50365, + -1.147727, + 659.511719, + -206.835938 + ], + [ + 1094.508747, + -1.147727, + 655.371094, + -207.226562 + ], + [ + 1094.513673, + -1.147727, + 655.371094, + -207.226562 + ], + [ + 1094.518682, + -1.153886, + 655.371094, + -207.226562 + ], + [ + 1094.523695, + -1.153886, + 655.371094, + -207.226562 + ], + [ + 1094.528916, + -1.15391, + 651.210938, + -207.519531 + ], + [ + 1094.533667, + -1.15391, + 651.210938, + -207.519531 + ], + [ + 1094.538676, + -1.153886, + 651.210938, + -207.519531 + ], + [ + 1094.543646, + -1.153886, + 651.210938, + -207.519531 + ], + [ + 1094.549233, + -1.160068, + 647.03125, + -207.910156 + ], + [ + 1094.55367, + -1.160068, + 647.03125, + -207.910156 + ], + [ + 1094.558672, + -1.160068, + 647.03125, + -207.910156 + ], + [ + 1094.563719, + -1.160068, + 647.03125, + -207.910156 + ], + [ + 1094.569255, + -1.160068, + 642.792969, + -208.789062 + ], + [ + 1094.573686, + -1.160068, + 642.792969, + -208.789062 + ], + [ + 1094.578825, + -1.160068, + 642.792969, + -208.789062 + ], + [ + 1094.58368, + -1.160068, + 642.792969, + -208.789062 + ], + [ + 1094.588737, + -1.166227, + 638.574219, + -209.375 + ], + [ + 1094.593686, + -1.166227, + 638.574219, + -209.375 + ], + [ + 1094.598724, + -1.17241, + 638.574219, + -209.375 + ], + [ + 1094.603665, + -1.17241, + 638.574219, + -209.375 + ], + [ + 1094.60872, + -1.17241, + 634.277344, + -210.839844 + ], + [ + 1094.613708, + -1.17241, + 634.277344, + -210.839844 + ], + [ + 1094.618692, + -1.17241, + 634.277344, + -210.839844 + ], + [ + 1094.623795, + -1.17241, + 634.277344, + -210.839844 + ], + [ + 1094.629018, + -1.17241, + 629.970703, + -212.304688 + ], + [ + 1094.633711, + -1.17241, + 629.970703, + -212.304688 + ], + [ + 1094.638707, + -1.17241, + 629.970703, + -212.304688 + ], + [ + 1094.643684, + -1.17241, + 629.970703, + -212.304688 + ], + [ + 1094.648839, + -1.178568, + 625.664062, + -213.671875 + ], + [ + 1094.653697, + -1.178568, + 625.664062, + -213.671875 + ], + [ + 1094.658813, + -1.184751, + 625.664062, + -213.671875 + ], + [ + 1094.663701, + -1.184751, + 625.664062, + -213.671875 + ], + [ + 1094.668787, + -1.184751, + 621.367188, + -214.160156 + ], + [ + 1094.673807, + -1.184751, + 621.367188, + -214.160156 + ], + [ + 1094.6787, + -1.184751, + 621.367188, + -214.160156 + ], + [ + 1094.683715, + -1.184751, + 621.367188, + -214.160156 + ], + [ + 1094.688774, + -1.184751, + 617.089844, + -214.746094 + ], + [ + 1094.693713, + -1.184751, + 617.089844, + -214.746094 + ], + [ + 1094.698759, + -1.184751, + 617.089844, + -214.746094 + ], + [ + 1094.703744, + -1.184751, + 617.089844, + -214.746094 + ], + [ + 1094.708732, + -1.197092, + 612.773438, + -215.136719 + ], + [ + 1094.713688, + -1.197092, + 612.773438, + -215.136719 + ], + [ + 1094.718685, + -1.197092, + 612.773438, + -215.136719 + ], + [ + 1094.723659, + -1.197092, + 612.773438, + -215.136719 + ], + [ + 1094.728794, + -1.197092, + 608.447266, + -215.234375 + ], + [ + 1094.733668, + -1.197092, + 608.447266, + -215.234375 + ], + [ + 1094.738669, + -1.197092, + 608.447266, + -215.234375 + ], + [ + 1094.743652, + -1.197092, + 608.447266, + -215.234375 + ], + [ + 1094.74887, + -1.197092, + 604.091797, + -215.722656 + ], + [ + 1094.753667, + -1.197092, + 604.091797, + -215.722656 + ], + [ + 1094.758677, + -1.20325, + 604.091797, + -215.722656 + ], + [ + 1094.76365, + -1.20325, + 604.091797, + -215.722656 + ], + [ + 1094.768796, + -1.209433, + 599.746094, + -216.210938 + ], + [ + 1094.773685, + -1.209433, + 599.746094, + -216.210938 + ], + [ + 1094.778671, + -1.209433, + 599.746094, + -216.210938 + ], + [ + 1094.783648, + -1.209433, + 599.746094, + -216.210938 + ], + [ + 1094.78879, + -1.209433, + 595.390625, + -217.1875 + ], + [ + 1094.793665, + -1.209433, + 595.390625, + -217.1875 + ], + [ + 1094.798663, + -1.209433, + 595.390625, + -217.1875 + ], + [ + 1094.80365, + -1.209433, + 595.390625, + -217.1875 + ], + [ + 1094.808729, + -1.209433, + 590.986328, + -217.871094 + ], + [ + 1094.813684, + -1.209433, + 590.986328, + -217.871094 + ], + [ + 1094.818669, + -1.209433, + 590.986328, + -217.871094 + ], + [ + 1094.823653, + -1.209433, + 590.986328, + -217.871094 + ], + [ + 1094.828739, + -1.221774, + 586.611328, + -218.457031 + ], + [ + 1094.833881, + -1.221774, + 586.611328, + -218.457031 + ], + [ + 1094.838673, + -1.221774, + 586.611328, + -218.457031 + ], + [ + 1094.843651, + -1.221774, + 586.611328, + -218.457031 + ], + [ + 1094.848769, + -1.221774, + 582.128906, + -219.628906 + ], + [ + 1094.853747, + -1.221774, + 582.128906, + -219.628906 + ], + [ + 1094.858705, + -1.221774, + 582.128906, + -219.628906 + ], + [ + 1094.863676, + -1.221774, + 582.128906, + -219.628906 + ], + [ + 1094.86874, + -1.221774, + 577.695312, + -220.507812 + ], + [ + 1094.874879, + -1.221774, + 577.695312, + -220.507812 + ], + [ + 1094.878723, + -1.234115, + 577.695312, + -220.507812 + ], + [ + 1094.883684, + -1.234115, + 577.695312, + -220.507812 + ], + [ + 1094.88883, + -1.234115, + 573.242188, + -221.484375 + ], + [ + 1094.893699, + -1.234115, + 573.242188, + -221.484375 + ], + [ + 1094.898709, + -1.234115, + 573.242188, + -221.484375 + ], + [ + 1094.903698, + -1.234115, + 573.242188, + -221.484375 + ], + [ + 1094.908735, + -1.234115, + 568.779297, + -222.167969 + ], + [ + 1094.913762, + -1.234115, + 568.779297, + -222.167969 + ], + [ + 1094.9187, + -1.234115, + 568.779297, + -222.167969 + ], + [ + 1094.923685, + -1.234115, + 568.779297, + -222.167969 + ], + [ + 1094.929192, + -1.240274, + 564.287109, + -223.144531 + ], + [ + 1094.933697, + -1.240274, + 564.287109, + -223.144531 + ], + [ + 1094.938806, + -1.234115, + 564.287109, + -223.144531 + ], + [ + 1094.943681, + -1.234115, + 564.287109, + -223.144531 + ], + [ + 1094.948786, + -1.246457, + 559.785156, + -223.339844 + ], + [ + 1094.953659, + -1.246457, + 559.785156, + -223.339844 + ], + [ + 1094.958726, + -1.246457, + 559.785156, + -223.339844 + ], + [ + 1094.963647, + -1.246457, + 559.785156, + -223.339844 + ], + [ + 1094.969235, + -1.246457, + 555.273438, + -224.21875 + ], + [ + 1094.973676, + -1.246457, + 555.273438, + -224.21875 + ], + [ + 1094.978696, + -1.246457, + 555.273438, + -224.21875 + ], + [ + 1094.983659, + -1.246457, + 555.273438, + -224.21875 + ], + [ + 1094.988737, + -1.246457, + 550.751953, + -224.902344 + ], + [ + 1094.993664, + -1.246457, + 550.751953, + -224.902344 + ], + [ + 1094.998723, + -1.246457, + 550.751953, + -224.902344 + ], + [ + 1095.003672, + -1.246457, + 550.751953, + -224.902344 + ], + [ + 1095.009288, + -1.258822, + 546.240234, + -225.292969 + ], + [ + 1095.013705, + -1.271139, + 546.240234, + -225.292969 + ], + [ + 1095.018691, + -1.271139, + 546.240234, + -225.292969 + ], + [ + 1095.023672, + -1.271139, + 546.240234, + -225.292969 + ], + [ + 1095.028743, + -1.271139, + 541.621094, + -226.5625 + ], + [ + 1095.033667, + -1.271139, + 541.621094, + -226.5625 + ], + [ + 1095.038675, + -1.271139, + 541.621094, + -226.5625 + ], + [ + 1095.043691, + -1.271139, + 541.621094, + -226.5625 + ], + [ + 1095.04883, + -1.271139, + 537.070312, + -227.246094 + ], + [ + 1095.053681, + -1.271139, + 537.070312, + -227.246094 + ], + [ + 1095.058841, + -1.271139, + 537.070312, + -227.246094 + ], + [ + 1095.063674, + -1.277297, + 537.070312, + -227.246094 + ], + [ + 1095.068725, + -1.273314, + 532.451172, + -228.222656 + ], + [ + 1095.073671, + -1.273314, + 532.451172, + -228.222656 + ], + [ + 1095.07999, + -1.273314, + 532.451172, + -228.222656 + ], + [ + 1095.083736, + -1.273314, + 532.451172, + -228.222656 + ], + [ + 1095.088777, + -1.263148, + 527.832031, + -229.003906 + ], + [ + 1095.093702, + -1.263148, + 527.832031, + -229.003906 + ], + [ + 1095.098689, + -1.263148, + 527.832031, + -229.003906 + ], + [ + 1095.103793, + -1.263148, + 527.832031, + -229.003906 + ], + [ + 1095.108697, + -1.263148, + 523.203125, + -230.371094 + ], + [ + 1095.113677, + -1.269233, + 523.203125, + -230.371094 + ], + [ + 1095.118687, + -1.269233, + 523.203125, + -230.371094 + ], + [ + 1095.123703, + -1.269233, + 523.203125, + -230.371094 + ], + [ + 1095.128719, + -1.269233, + 518.583984, + -230.46875 + ], + [ + 1095.133776, + -1.275293, + 518.583984, + -230.46875 + ], + [ + 1095.138821, + -1.275293, + 518.583984, + -230.46875 + ], + [ + 1095.143718, + -1.275293, + 518.583984, + -230.46875 + ], + [ + 1095.149029, + -1.275293, + 513.916016, + -231.542969 + ], + [ + 1095.153725, + -1.275293, + 513.916016, + -231.542969 + ], + [ + 1095.158755, + -1.275293, + 513.916016, + -231.542969 + ], + [ + 1095.163738, + -1.275293, + 513.916016, + -231.542969 + ], + [ + 1095.168738, + -1.275293, + 509.267578, + -231.835938 + ], + [ + 1095.17372, + -1.287439, + 509.267578, + -231.835938 + ], + [ + 1095.178681, + -1.287439, + 509.267578, + -231.835938 + ], + [ + 1095.183727, + -1.287439, + 509.267578, + -231.835938 + ], + [ + 1095.188735, + -1.287439, + 504.589844, + -232.519531 + ], + [ + 1095.193683, + -1.287439, + 504.589844, + -232.519531 + ], + [ + 1095.198655, + -1.287439, + 504.589844, + -232.519531 + ], + [ + 1095.20367, + -1.287439, + 504.589844, + -232.519531 + ], + [ + 1095.208858, + -1.287439, + 499.853516, + -233.398438 + ], + [ + 1095.21368, + -1.287439, + 499.853516, + -233.398438 + ], + [ + 1095.218798, + -1.287439, + 499.853516, + -233.398438 + ], + [ + 1095.223684, + -1.287439, + 499.853516, + -233.398438 + ], + [ + 1095.228803, + -1.287439, + 495.166016, + -234.179688 + ], + [ + 1095.233754, + -1.293524, + 495.166016, + -234.179688 + ], + [ + 1095.23865, + -1.293524, + 495.166016, + -234.179688 + ], + [ + 1095.243803, + -1.299585, + 495.166016, + -234.179688 + ], + [ + 1095.248751, + -1.299585, + 490.410156, + -234.960938 + ], + [ + 1095.253679, + -1.299585, + 490.410156, + -234.960938 + ], + [ + 1095.258738, + -1.299585, + 490.410156, + -234.960938 + ], + [ + 1095.263739, + -1.299585, + 490.410156, + -234.960938 + ], + [ + 1095.268818, + -1.299585, + 485.634766, + -236.230469 + ], + [ + 1095.27367, + -1.299585, + 485.634766, + -236.230469 + ], + [ + 1095.278749, + -1.299585, + 485.634766, + -236.230469 + ], + [ + 1095.284446, + -1.299585, + 485.634766, + -236.230469 + ], + [ + 1095.288727, + -1.302199, + 480.839844, + -237.5 + ], + [ + 1095.293657, + -1.302199, + 480.839844, + -237.5 + ], + [ + 1095.298705, + -1.31437, + 480.839844, + -237.5 + ], + [ + 1095.303649, + -1.31437, + 480.839844, + -237.5 + ], + [ + 1095.308779, + -1.31437, + 476.044922, + -238.183594 + ], + [ + 1095.313737, + -1.31437, + 476.044922, + -238.183594 + ], + [ + 1095.31867, + -1.31437, + 476.044922, + -238.183594 + ], + [ + 1095.323646, + -1.31437, + 476.044922, + -238.183594 + ], + [ + 1095.328782, + -1.31437, + 471.142578, + -240.039062 + ], + [ + 1095.333658, + -1.31437, + 471.142578, + -240.039062 + ], + [ + 1095.338793, + -1.31437, + 471.142578, + -240.039062 + ], + [ + 1095.34376, + -1.31437, + 471.142578, + -240.039062 + ], + [ + 1095.349672, + -1.320455, + 466.279297, + -241.308594 + ], + [ + 1095.353798, + -1.320455, + 466.279297, + -241.308594 + ], + [ + 1095.358688, + -1.320455, + 466.279297, + -241.308594 + ], + [ + 1095.363691, + -1.32654, + 466.279297, + -241.308594 + ], + [ + 1095.368714, + -1.32654, + 466.279297, + -241.308594 + ], + [ + 1095.373712, + -1.32654, + 461.396484, + -242.285156 + ], + [ + 1095.378787, + -1.32654, + 461.396484, + -242.285156 + ], + [ + 1095.383755, + -1.32654, + 461.396484, + -242.285156 + ], + [ + 1095.388837, + -1.32654, + 461.396484, + -242.285156 + ], + [ + 1095.393732, + -1.32654, + 456.582031, + -242.382812 + ], + [ + 1095.398692, + -1.32654, + 456.582031, + -242.382812 + ], + [ + 1095.403702, + -1.32654, + 456.582031, + -242.382812 + ], + [ + 1095.408728, + -1.32654, + 456.582031, + -242.382812 + ], + [ + 1095.413739, + -1.33871, + 451.748047, + -242.96875 + ], + [ + 1095.418704, + -1.33871, + 451.748047, + -242.96875 + ], + [ + 1095.423874, + -1.33871, + 451.748047, + -242.96875 + ], + [ + 1095.428724, + -1.33871, + 451.748047, + -242.96875 + ], + [ + 1095.43369, + -1.33871, + 446.894531, + -242.578125 + ], + [ + 1095.438666, + -1.33871, + 446.894531, + -242.578125 + ], + [ + 1095.443665, + -1.33871, + 446.894531, + -242.578125 + ], + [ + 1095.448768, + -1.33871, + 446.894531, + -242.578125 + ], + [ + 1095.453705, + -1.33871, + 441.992188, + -242.871094 + ], + [ + 1095.458657, + -1.33871, + 441.992188, + -242.871094 + ], + [ + 1095.463674, + -1.33871, + 441.992188, + -242.871094 + ], + [ + 1095.468731, + -1.33871, + 441.992188, + -242.871094 + ], + [ + 1095.473729, + -1.35088, + 437.138672, + -242.773438 + ], + [ + 1095.478651, + -1.35088, + 437.138672, + -242.773438 + ], + [ + 1095.483698, + -1.35088, + 437.138672, + -242.773438 + ], + [ + 1095.48958, + -1.35088, + 437.138672, + -242.773438 + ], + [ + 1095.493728, + -1.35088, + 432.207031, + -243.847656 + ], + [ + 1095.498793, + -1.35088, + 432.207031, + -243.847656 + ], + [ + 1095.503689, + -1.35088, + 432.207031, + -243.847656 + ], + [ + 1095.50867, + -1.35088, + 432.207031, + -243.847656 + ], + [ + 1095.513785, + -1.35088, + 427.285156, + -244.53125 + ], + [ + 1095.518668, + -1.35088, + 427.285156, + -244.53125 + ], + [ + 1095.523892, + -1.35088, + 427.285156, + -244.53125 + ], + [ + 1095.528723, + -1.35088, + 427.285156, + -244.53125 + ], + [ + 1095.533748, + -1.354252, + 422.294922, + -245.996094 + ], + [ + 1095.538657, + -1.354252, + 422.294922, + -245.996094 + ], + [ + 1095.543739, + -1.360313, + 422.294922, + -245.996094 + ], + [ + 1095.548698, + -1.360313, + 422.294922, + -245.996094 + ], + [ + 1095.55372, + -1.360313, + 417.363281, + -246.386719 + ], + [ + 1095.558714, + -1.360313, + 417.363281, + -246.386719 + ], + [ + 1095.563663, + -1.360313, + 417.363281, + -246.386719 + ], + [ + 1095.568674, + -1.360313, + 417.363281, + -246.386719 + ], + [ + 1095.573713, + -1.360313, + 412.373047, + -247.65625 + ], + [ + 1095.578655, + -1.360313, + 412.373047, + -247.65625 + ], + [ + 1095.583825, + -1.366398, + 412.373047, + -247.65625 + ], + [ + 1095.588716, + -1.366398, + 412.373047, + -247.65625 + ], + [ + 1095.594341, + -1.372458, + 407.402344, + -247.949219 + ], + [ + 1095.598749, + -1.372458, + 407.402344, + -247.949219 + ], + [ + 1095.603699, + -1.372458, + 407.402344, + -247.949219 + ], + [ + 1095.608707, + -1.372458, + 407.402344, + -247.949219 + ], + [ + 1095.613715, + -1.372458, + 402.353516, + -249.316406 + ], + [ + 1095.618694, + -1.372458, + 402.353516, + -249.316406 + ], + [ + 1095.623707, + -1.372458, + 402.353516, + -249.316406 + ], + [ + 1095.628832, + -1.372458, + 402.353516, + -249.316406 + ], + [ + 1095.63374, + -1.372458, + 397.353516, + -249.511719 + ], + [ + 1095.638691, + -1.372458, + 397.353516, + -249.511719 + ], + [ + 1095.643703, + -1.384604, + 397.353516, + -249.511719 + ], + [ + 1095.648705, + -1.384604, + 397.353516, + -249.511719 + ], + [ + 1095.653729, + -1.384604, + 392.304688, + -250.488281 + ], + [ + 1095.658746, + -1.384604, + 392.304688, + -250.488281 + ], + [ + 1095.663743, + -1.384604, + 392.304688, + -250.488281 + ], + [ + 1095.668901, + -1.384604, + 392.304688, + -250.488281 + ], + [ + 1095.673767, + -1.384604, + 387.246094, + -251.171875 + ], + [ + 1095.678651, + -1.384604, + 387.246094, + -251.171875 + ], + [ + 1095.683677, + -1.384604, + 387.246094, + -251.171875 + ], + [ + 1095.688673, + -1.384604, + 387.246094, + -251.171875 + ], + [ + 1095.693777, + -1.390689, + 382.128906, + -252.832031 + ], + [ + 1095.698716, + -1.390689, + 382.128906, + -252.832031 + ], + [ + 1095.703678, + -1.39675, + 382.128906, + -252.832031 + ], + [ + 1095.708683, + -1.39675, + 382.128906, + -252.832031 + ], + [ + 1095.71405, + -1.39675, + 377.041016, + -253.027344 + ], + [ + 1095.718799, + -1.39675, + 377.041016, + -253.027344 + ], + [ + 1095.723701, + -1.39675, + 377.041016, + -253.027344 + ], + [ + 1095.728766, + -1.39675, + 377.041016, + -253.027344 + ], + [ + 1095.733736, + -1.39675, + 371.933594, + -254.199219 + ], + [ + 1095.738674, + -1.39675, + 371.933594, + -254.199219 + ], + [ + 1095.743698, + -1.408895, + 371.933594, + -254.199219 + ], + [ + 1095.748686, + -1.408895, + 371.933594, + -254.199219 + ], + [ + 1095.753784, + -1.408895, + 366.826172, + -254.6875 + ], + [ + 1095.758662, + -1.408895, + 366.826172, + -254.6875 + ], + [ + 1095.763671, + -1.408895, + 366.826172, + -254.6875 + ], + [ + 1095.76873, + -1.408895, + 366.826172, + -254.6875 + ], + [ + 1095.773798, + -1.408895, + 361.650391, + -255.859375 + ], + [ + 1095.778657, + -1.408895, + 361.650391, + -255.859375 + ], + [ + 1095.783672, + -1.408895, + 361.650391, + -255.859375 + ], + [ + 1095.788671, + -1.408895, + 361.650391, + -255.859375 + ], + [ + 1095.793725, + -1.408895, + 356.503906, + -256.25 + ], + [ + 1095.799097, + -1.408895, + 356.503906, + -256.25 + ], + [ + 1095.803699, + -1.41498, + 356.503906, + -256.25 + ], + [ + 1095.80865, + -1.41498, + 356.503906, + -256.25 + ], + [ + 1095.813709, + -1.41498, + 351.298828, + -257.421875 + ], + [ + 1095.818658, + -1.41498, + 351.298828, + -257.421875 + ], + [ + 1095.823896, + -1.421041, + 351.298828, + -257.421875 + ], + [ + 1095.828803, + -1.421041, + 351.298828, + -257.421875 + ], + [ + 1095.833711, + -1.421041, + 346.103516, + -258.105469 + ], + [ + 1095.838762, + -1.421041, + 346.103516, + -258.105469 + ], + [ + 1095.843696, + -1.421041, + 346.103516, + -258.105469 + ], + [ + 1095.848765, + -1.421041, + 346.103516, + -258.105469 + ], + [ + 1095.853712, + -1.421041, + 340.888672, + -259.375 + ], + [ + 1095.858685, + -1.421041, + 340.888672, + -259.375 + ], + [ + 1095.863712, + -1.421041, + 340.888672, + -259.375 + ], + [ + 1095.868736, + -1.421041, + 340.888672, + -259.375 + ], + [ + 1095.873745, + -1.427126, + 335.722656, + -259.277344 + ], + [ + 1095.878685, + -1.427126, + 335.722656, + -259.277344 + ], + [ + 1095.883764, + -1.427102, + 335.722656, + -259.277344 + ], + [ + 1095.888674, + -1.427102, + 335.722656, + -259.277344 + ], + [ + 1095.893709, + -1.433187, + 330.507812, + -259.863281 + ], + [ + 1095.898685, + -1.433187, + 330.507812, + -259.863281 + ], + [ + 1095.903898, + -1.433187, + 330.507812, + -259.863281 + ], + [ + 1095.908692, + -1.433187, + 330.507812, + -259.863281 + ], + [ + 1095.913773, + -1.433187, + 325.292969, + -260.058594 + ], + [ + 1095.918743, + -1.433187, + 325.292969, + -260.058594 + ], + [ + 1095.923684, + -1.433187, + 325.292969, + -260.058594 + ], + [ + 1095.928673, + -1.433187, + 325.292969, + -260.058594 + ], + [ + 1095.933732, + -1.445332, + 320.039062, + -260.644531 + ], + [ + 1095.938657, + -1.445332, + 320.039062, + -260.644531 + ], + [ + 1095.943673, + -1.445332, + 320.039062, + -260.644531 + ], + [ + 1095.948663, + -1.445332, + 320.039062, + -260.644531 + ], + [ + 1095.953726, + -1.445332, + 314.785156, + -261.035156 + ], + [ + 1095.958721, + -1.445332, + 314.785156, + -261.035156 + ], + [ + 1095.963708, + -1.445332, + 314.785156, + -261.035156 + ], + [ + 1095.968669, + -1.445332, + 314.785156, + -261.035156 + ], + [ + 1095.973732, + -1.445332, + 309.511719, + -262.109375 + ], + [ + 1095.978907, + -1.445332, + 309.511719, + -262.109375 + ], + [ + 1095.983681, + -1.445332, + 309.511719, + -262.109375 + ], + [ + 1095.98889, + -1.445332, + 309.511719, + -262.109375 + ], + [ + 1095.993821, + -1.457478, + 304.21875, + -262.890625 + ], + [ + 1095.998648, + -1.457478, + 304.21875, + -262.890625 + ], + [ + 1096.00406, + -1.457478, + 304.21875, + -262.890625 + ], + [ + 1096.008676, + -1.457478, + 304.21875, + -262.890625 + ], + [ + 1096.013811, + -1.457478, + 298.916016, + -263.769531 + ], + [ + 1096.018651, + -1.457478, + 298.916016, + -263.769531 + ], + [ + 1096.023692, + -1.457478, + 298.916016, + -263.769531 + ], + [ + 1096.028695, + -1.457478, + 298.916016, + -263.769531 + ], + [ + 1096.033734, + -1.457478, + 293.583984, + -264.453125 + ], + [ + 1096.038652, + -1.457478, + 293.583984, + -264.453125 + ], + [ + 1096.043746, + -1.463563, + 293.583984, + -264.453125 + ], + [ + 1096.048702, + -1.463563, + 293.583984, + -264.453125 + ], + [ + 1096.053698, + -1.466667, + 288.271484, + -265.136719 + ], + [ + 1096.058649, + -1.466667, + 288.271484, + -265.136719 + ], + [ + 1096.063706, + -1.466667, + 288.271484, + -265.136719 + ], + [ + 1096.068801, + -1.466667, + 288.271484, + -265.136719 + ], + [ + 1096.073725, + -1.466667, + 282.910156, + -266.113281 + ], + [ + 1096.078704, + -1.466667, + 282.910156, + -266.113281 + ], + [ + 1096.083756, + -1.466667, + 282.910156, + -266.113281 + ], + [ + 1096.0887, + -1.466667, + 282.910156, + -266.113281 + ], + [ + 1096.093714, + -1.466667, + 277.568359, + -266.699219 + ], + [ + 1096.098682, + -1.466667, + 277.568359, + -266.699219 + ], + [ + 1096.103742, + -1.472727, + 277.568359, + -266.699219 + ], + [ + 1096.108932, + -1.472727, + 277.568359, + -266.699219 + ], + [ + 1096.113733, + -1.478788, + 272.167969, + -267.480469 + ], + [ + 1096.118709, + -1.478788, + 272.167969, + -267.480469 + ], + [ + 1096.123708, + -1.478788, + 272.167969, + -267.480469 + ], + [ + 1096.128732, + -1.478788, + 272.167969, + -267.480469 + ], + [ + 1096.133746, + -1.478788, + 266.777344, + -268.164062 + ], + [ + 1096.138688, + -1.478788, + 266.777344, + -268.164062 + ], + [ + 1096.143764, + -1.478788, + 266.777344, + -268.164062 + ], + [ + 1096.148721, + -1.478788, + 266.777344, + -268.164062 + ], + [ + 1096.153771, + -1.478788, + 261.357422, + -269.238281 + ], + [ + 1096.158755, + -1.478788, + 261.357422, + -269.238281 + ], + [ + 1096.163673, + -1.478788, + 261.357422, + -269.238281 + ], + [ + 1096.168665, + -1.478788, + 261.357422, + -269.238281 + ], + [ + 1096.173732, + -1.484848, + 255.947266, + -269.628906 + ], + [ + 1096.178647, + -1.484848, + 255.947266, + -269.628906 + ], + [ + 1096.183678, + -1.490909, + 255.947266, + -269.628906 + ], + [ + 1096.188667, + -1.490909, + 255.947266, + -269.628906 + ], + [ + 1096.193742, + -1.490909, + 250.458984, + -270.996094 + ], + [ + 1096.198652, + -1.490909, + 250.458984, + -270.996094 + ], + [ + 1096.203713, + -1.490909, + 250.458984, + -270.996094 + ], + [ + 1096.20934, + -1.490909, + 250.458984, + -270.996094 + ], + [ + 1096.213748, + -1.490909, + 244.941406, + -272.363281 + ], + [ + 1096.218655, + -1.490909, + 244.941406, + -272.363281 + ], + [ + 1096.223701, + -1.490909, + 244.941406, + -272.363281 + ], + [ + 1096.228669, + -1.490909, + 244.941406, + -272.363281 + ], + [ + 1096.233816, + -1.50303, + 239.414062, + -273.535156 + ], + [ + 1096.238653, + -1.50303, + 239.414062, + -273.535156 + ], + [ + 1096.243871, + -1.50303, + 239.414062, + -273.535156 + ], + [ + 1096.249712, + -1.50303, + 239.414062, + -273.535156 + ], + [ + 1096.253848, + -1.50303, + 233.90625, + -274.316406 + ], + [ + 1096.258655, + -1.50303, + 233.90625, + -274.316406 + ], + [ + 1096.263743, + -1.50303, + 233.90625, + -274.316406 + ], + [ + 1096.268733, + -1.50303, + 233.90625, + -274.316406 + ], + [ + 1096.273725, + -1.50303, + 228.388672, + -275.390625 + ], + [ + 1096.278752, + -1.50303, + 228.388672, + -275.390625 + ], + [ + 1096.283671, + -1.509091, + 228.388672, + -275.390625 + ], + [ + 1096.28906, + -1.509091, + 228.388672, + -275.390625 + ], + [ + 1096.293712, + -1.515152, + 222.832031, + -276.074219 + ], + [ + 1096.298648, + -1.515152, + 222.832031, + -276.074219 + ], + [ + 1096.303694, + -1.515152, + 222.832031, + -276.074219 + ], + [ + 1096.308705, + -1.515152, + 222.832031, + -276.074219 + ], + [ + 1096.313757, + -1.515152, + 217.324219, + -276.074219 + ], + [ + 1096.318731, + -1.515152, + 217.324219, + -276.074219 + ], + [ + 1096.323723, + -1.515152, + 217.324219, + -276.074219 + ], + [ + 1096.328712, + -1.515152, + 217.324219, + -276.074219 + ], + [ + 1096.33379, + -1.515152, + 211.777344, + -276.5625 + ], + [ + 1096.338688, + -1.515152, + 211.777344, + -276.5625 + ], + [ + 1096.343789, + -1.515152, + 211.777344, + -276.5625 + ], + [ + 1096.348816, + -1.515152, + 211.777344, + -276.5625 + ], + [ + 1096.35386, + -1.527273, + 206.240234, + -276.855469 + ], + [ + 1096.358768, + -1.527273, + 206.240234, + -276.855469 + ], + [ + 1096.363711, + -1.527273, + 206.240234, + -276.855469 + ], + [ + 1096.368709, + -1.527273, + 206.240234, + -276.855469 + ], + [ + 1096.373723, + -1.527273, + 200.625, + -277.734375 + ], + [ + 1096.378738, + -1.527273, + 200.625, + -277.734375 + ], + [ + 1096.383714, + -1.527273, + 200.625, + -277.734375 + ], + [ + 1096.388719, + -1.527273, + 200.625, + -277.734375 + ], + [ + 1096.393738, + -1.527273, + 195.009766, + -278.222656 + ], + [ + 1096.398662, + -1.527273, + 195.009766, + -278.222656 + ], + [ + 1096.403826, + -1.539394, + 195.009766, + -278.222656 + ], + [ + 1096.40876, + -1.539394, + 195.009766, + -278.222656 + ], + [ + 1096.41377, + -1.551515, + 189.404297, + -279.101562 + ], + [ + 1096.418661, + -1.551515, + 189.404297, + -279.101562 + ], + [ + 1096.423674, + -1.551515, + 189.404297, + -279.101562 + ], + [ + 1096.42867, + -1.551515, + 189.404297, + -279.101562 + ], + [ + 1096.433736, + -1.551515, + 183.710938, + -280.46875 + ], + [ + 1096.438658, + -1.551515, + 183.710938, + -280.46875 + ], + [ + 1096.443665, + -1.551515, + 183.710938, + -280.46875 + ], + [ + 1096.448676, + -1.551515, + 183.710938, + -280.46875 + ], + [ + 1096.453739, + -1.551515, + 178.017578, + -282.03125 + ], + [ + 1096.458655, + -1.551515, + 178.017578, + -282.03125 + ], + [ + 1096.463671, + -1.563636, + 178.017578, + -282.03125 + ], + [ + 1096.468945, + -1.563636, + 178.017578, + -282.03125 + ], + [ + 1096.473747, + -1.563636, + 172.285156, + -283.300781 + ], + [ + 1096.478714, + -1.563636, + 172.285156, + -283.300781 + ], + [ + 1096.483786, + -1.563636, + 172.285156, + -283.300781 + ], + [ + 1096.488853, + -1.563636, + 172.285156, + -283.300781 + ], + [ + 1096.493786, + -1.560484, + 166.542969, + -284.765625 + ], + [ + 1096.498651, + -1.560484, + 166.542969, + -284.765625 + ], + [ + 1096.503661, + -1.560484, + 166.542969, + -284.765625 + ], + [ + 1096.508773, + -1.560484, + 166.542969, + -284.765625 + ], + [ + 1096.513753, + -1.560484, + 160.742188, + -286.621094 + ], + [ + 1096.518687, + -1.560484, + 160.742188, + -286.621094 + ], + [ + 1096.523691, + -1.572581, + 160.742188, + -286.621094 + ], + [ + 1096.528828, + -1.572581, + 160.742188, + -286.621094 + ], + [ + 1096.533708, + -1.572581, + 155.009766, + -287.011719 + ], + [ + 1096.538677, + -1.572581, + 155.009766, + -287.011719 + ], + [ + 1096.543699, + -1.572581, + 155.009766, + -287.011719 + ], + [ + 1096.548702, + -1.572581, + 155.009766, + -287.011719 + ], + [ + 1096.553719, + -1.572581, + 149.228516, + -287.890625 + ], + [ + 1096.558751, + -1.572581, + 149.228516, + -287.890625 + ], + [ + 1096.563707, + -1.572581, + 149.228516, + -287.890625 + ], + [ + 1096.568759, + -1.572581, + 149.228516, + -287.890625 + ], + [ + 1096.573794, + -1.584677, + 143.447266, + -288.574219 + ], + [ + 1096.578762, + -1.584677, + 143.447266, + -288.574219 + ], + [ + 1096.583706, + -1.584677, + 143.447266, + -288.574219 + ], + [ + 1096.588716, + -1.584677, + 143.447266, + -288.574219 + ], + [ + 1096.593918, + -1.584677, + 137.65625, + -288.769531 + ], + [ + 1096.598702, + -1.584677, + 137.65625, + -288.769531 + ], + [ + 1096.603761, + -1.584677, + 137.65625, + -288.769531 + ], + [ + 1096.60873, + -1.584677, + 137.65625, + -288.769531 + ], + [ + 1096.613736, + -1.584677, + 131.845703, + -289.0625 + ], + [ + 1096.618722, + -1.584677, + 131.845703, + -289.0625 + ], + [ + 1096.623714, + -1.584677, + 131.845703, + -289.0625 + ], + [ + 1096.628719, + -1.584677, + 131.845703, + -289.0625 + ], + [ + 1096.633744, + -1.596774, + 126.044922, + -289.648438 + ], + [ + 1096.638661, + -1.596774, + 126.044922, + -289.648438 + ], + [ + 1096.643754, + -1.596774, + 126.044922, + -289.648438 + ], + [ + 1096.648674, + -1.596774, + 126.044922, + -289.648438 + ], + [ + 1096.653735, + -1.596774, + 120.224609, + -290.136719 + ], + [ + 1096.658646, + -1.596774, + 120.224609, + -290.136719 + ], + [ + 1096.663661, + -1.596774, + 120.224609, + -290.136719 + ], + [ + 1096.668673, + -1.596774, + 120.224609, + -290.136719 + ], + [ + 1096.673728, + -1.596774, + 114.394531, + -290.429688 + ], + [ + 1096.678734, + -1.596774, + 114.394531, + -290.429688 + ], + [ + 1096.683666, + -1.596774, + 114.394531, + -290.429688 + ], + [ + 1096.688674, + -1.596774, + 114.394531, + -290.429688 + ], + [ + 1096.693738, + -1.608871, + 108.564453, + -290.917969 + ], + [ + 1096.698649, + -1.608871, + 108.564453, + -290.917969 + ], + [ + 1096.703688, + -1.608871, + 108.564453, + -290.917969 + ], + [ + 1096.708682, + -1.608871, + 108.564453, + -290.917969 + ], + [ + 1096.71374, + -1.608871, + 102.695312, + -291.503906 + ], + [ + 1096.720909, + -1.608871, + 102.695312, + -291.503906 + ], + [ + 1096.723687, + -1.608871, + 102.695312, + -291.503906 + ], + [ + 1096.728787, + -1.608871, + 102.695312, + -291.503906 + ], + [ + 1096.733923, + -1.608871, + 96.835938, + -292.1875 + ], + [ + 1096.738652, + -1.608871, + 96.835938, + -292.1875 + ], + [ + 1096.743661, + -1.614932, + 96.835938, + -292.1875 + ], + [ + 1096.748676, + -1.614932, + 96.835938, + -292.1875 + ], + [ + 1096.753768, + -1.620968, + 90.9375, + -292.871094 + ], + [ + 1096.758714, + -1.620968, + 90.9375, + -292.871094 + ], + [ + 1096.763692, + -1.620968, + 90.9375, + -292.871094 + ], + [ + 1096.768671, + -1.620968, + 90.9375, + -292.871094 + ], + [ + 1096.773709, + -1.620968, + 85.009766, + -293.75 + ], + [ + 1096.778655, + -1.620968, + 85.009766, + -293.75 + ], + [ + 1096.783697, + -1.620968, + 85.009766, + -293.75 + ], + [ + 1096.788709, + -1.620968, + 85.009766, + -293.75 + ], + [ + 1096.793706, + -1.620968, + 79.072266, + -295.019531 + ], + [ + 1096.798691, + -1.620968, + 79.072266, + -295.019531 + ], + [ + 1096.803719, + -1.627028, + 79.072266, + -295.019531 + ], + [ + 1096.808699, + -1.627028, + 79.072266, + -295.019531 + ], + [ + 1096.813714, + -1.633065, + 73.173828, + -295.3125 + ], + [ + 1096.818679, + -1.633065, + 73.173828, + -295.3125 + ], + [ + 1096.82376, + -1.633065, + 73.173828, + -295.3125 + ], + [ + 1096.829169, + -1.633065, + 73.173828, + -295.3125 + ], + [ + 1096.833776, + -1.633065, + 67.216797, + -296.09375 + ], + [ + 1096.838695, + -1.633065, + 67.216797, + -296.09375 + ], + [ + 1096.843701, + -1.639125, + 67.216797, + -296.09375 + ], + [ + 1096.848712, + -1.639125, + 67.216797, + -296.09375 + ], + [ + 1096.85373, + -1.645161, + 61.269531, + -296.679688 + ], + [ + 1096.858692, + -1.645161, + 61.269531, + -296.679688 + ], + [ + 1096.863696, + -1.645161, + 61.269531, + -296.679688 + ], + [ + 1096.868712, + -1.645161, + 61.269531, + -296.679688 + ], + [ + 1096.87376, + -1.645161, + 55.371094, + -296.386719 + ], + [ + 1096.878729, + -1.645161, + 55.371094, + -296.386719 + ], + [ + 1096.883666, + -1.645161, + 55.371094, + -296.386719 + ], + [ + 1096.888669, + -1.645161, + 55.371094, + -296.386719 + ], + [ + 1096.893723, + -1.645161, + 49.511719, + -295.605469 + ], + [ + 1096.898648, + -1.645161, + 49.511719, + -295.605469 + ], + [ + 1096.903665, + -1.645161, + 49.511719, + -295.605469 + ], + [ + 1096.908669, + -1.645161, + 49.511719, + -295.605469 + ], + [ + 1096.913739, + -1.651222, + 43.603516, + -295.507812 + ], + [ + 1096.918658, + -1.651222, + 43.603516, + -295.507812 + ], + [ + 1096.925306, + -1.657258, + 43.603516, + -295.507812 + ], + [ + 1096.929173, + -1.657258, + 43.603516, + -295.507812 + ], + [ + 1096.933734, + -1.657258, + 37.675781, + -295.214844 + ], + [ + 1096.938666, + -1.657258, + 37.675781, + -295.214844 + ] + ], + "slow-forward": [ + [ + 1050.168772, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.173734, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.178728, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.183726, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.188693, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.193729, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.198832, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.203676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.208748, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.213759, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.219138, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.224029, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.229315, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.233812, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.23868, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.243707, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.249043, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.253742, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.258735, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.263729, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.268731, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.273877, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.278728, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.283729, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.288714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.293783, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.298686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.303719, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.308712, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.313717, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.31866, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.323689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.328668, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.333715, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.338655, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.343723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.348695, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.353765, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.358661, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.363684, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.368671, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.373733, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.378653, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.383721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.388669, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.393836, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.398721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.403692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.408685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.413855, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.418684, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.424024, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.428982, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.433719, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.438741, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.443704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.448716, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.453689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.458672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.463744, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.468726, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.473806, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.478695, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.48383, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.48911, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.493718, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.498737, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.503711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.508728, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.513745, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.518711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.5238, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.52871, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.533733, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.538735, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.543689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.548717, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.55376, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.558655, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.563673, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.568675, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.573721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.578644, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.583663, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.588991, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.593748, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.598675, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.603667, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.608662, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.613731, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.618698, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.623665, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.628665, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.633737, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.638646, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.643687, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.648786, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.653808, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.65866, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.663721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.668666, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.673778, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.67871, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.683685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.688724, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.693788, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.698661, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.703768, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.708763, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.713723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.718821, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.723694, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.729009, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.733714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.738682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.743755, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.74872, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.753838, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.758739, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.763767, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.768703, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.773743, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.778682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.783692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.788702, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.794528, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.79868, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.803658, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.80893, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.813671, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.818747, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.823677, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.828691, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.833669, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.838757, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.843738, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.84866, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.853716, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.858793, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.863656, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.868691, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.87369, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.878735, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.883692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.888697, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.893668, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.898936, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.903795, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.908686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.913829, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.918726, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.923819, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.928756, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.933739, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.93871, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.943656, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.948722, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.953705, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.95871, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.963676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.968714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.973685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.978757, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.983747, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.988819, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.993706, + 0.0, + 0.048828, + 0.0 + ], + [ + 1050.999443, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.003708, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.008707, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.01374, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.018673, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.023846, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.029005, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.033711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.038773, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.04372, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.04874, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.053676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.058782, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.063709, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.068676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.073681, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.078688, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.083935, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.089304, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.093761, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.098688, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.10374, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.108739, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.113674, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.118742, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.123763, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.128671, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.133676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.138681, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.143714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.14867, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.153679, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.158687, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.163711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.168688, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.173676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.178686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.183686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.188672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.193706, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.19868, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.204661, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.208998, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.213704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.218689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.223701, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.22875, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.233758, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.238923, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.243693, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.24877, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.253699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.258741, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.263698, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.268728, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.273685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.278692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.283734, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.288702, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.293672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.298702, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.303693, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.308831, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.313675, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.318715, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.323691, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.32871, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.333712, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.338695, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.343686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.348683, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.353678, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.358704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.363688, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.368866, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.373667, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.378693, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.38369, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.388707, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.393725, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.398722, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.403652, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.410275, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.413679, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.418797, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.423676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.42867, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.43373, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.438742, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.4437, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.448715, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.453823, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.458682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.463704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.46873, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.473742, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.478686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.483713, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.488699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.493722, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.498672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.503762, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.508704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.513808, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.518692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.523699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.528686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.533703, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.538687, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.543702, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.548677, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.553896, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.558672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.56374, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.568667, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.574026, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.578678, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.58368, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.588739, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.593664, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.598708, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.603694, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.608692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.614892, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.618718, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.623764, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.628692, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.633677, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.638753, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.643658, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.648754, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.653659, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.658699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.663711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.668686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.673703, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.678702, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.683711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.688721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.693689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.698804, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.703752, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.70874, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.713727, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.718768, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.723762, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.728689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.73371, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.738714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.743704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.748714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.753782, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.7587, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.763723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.768685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.773758, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.778716, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.783685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.788709, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.793659, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.798737, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.803703, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.808687, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.813681, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.819648, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.823824, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.828671, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.833682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.838648, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.843723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.848669, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.85376, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.858663, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.863805, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.868673, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.873715, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.878657, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.883935, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.888685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.893733, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.898648, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.903737, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.908674, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.913704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.918678, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.923733, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.928718, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.933723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.938728, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.943721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.94873, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.95372, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.958699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.963724, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.969258, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.973708, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.978682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.98371, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.988668, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.993683, + 0.0, + 0.048828, + 0.0 + ], + [ + 1051.998642, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.003797, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.008669, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.013672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.018641, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.023758, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.028708, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.033682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.03866, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.043724, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.048764, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.053781, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.058647, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.063722, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.068676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.073674, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.078648, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.083782, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.088678, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.093737, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.098671, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.103709, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.108669, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.113707, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.118663, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.123681, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.128683, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.133698, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.138647, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.143679, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.148674, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.153709, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.158687, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.163699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.168918, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.173723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.178782, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.183767, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.188726, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.193723, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.198705, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.203776, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.208725, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.213705, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.218684, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.223711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.230385, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.233685, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.23865, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.243717, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.248971, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.253689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.258775, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.263716, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.268678, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.273726, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.278749, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.283877, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.288722, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.293676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.298656, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.303717, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.308752, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.313688, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.318718, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.32372, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.328675, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.333708, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.338676, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.343773, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.348865, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.353686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.358735, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.363698, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.36874, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.373682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.378646, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.383724, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.388682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.393991, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.398689, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.403699, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.408729, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.413726, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.418719, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.423722, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.428728, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.435657, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.438742, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.443715, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.448799, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.453704, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.458698, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.463714, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.468702, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.473711, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.478687, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.483892, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.489282, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.493668, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.498701, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.503721, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.508668, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.513686, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.518655, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.523847, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.528665, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.533682, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.538674, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.543734, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.548684, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.553688, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.558672, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.563715, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.568679, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.573806, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.578647, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.583729, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.588669, + 0.0, + 0.048828, + 0.0 + ], + [ + 1052.593683, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.59864, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.603718, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.608716, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.613683, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.618699, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.623681, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.628738, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.633713, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.638753, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.643725, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.648706, + 0.012341, + 0.048828, + 0.0 + ], + [ + 1052.653731, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.658746, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.663718, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.668717, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.673732, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.678696, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.683734, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.688878, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.693715, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.698678, + 0.024682, + 0.048828, + 0.0 + ], + [ + 1052.703806, + 0.030865, + 0.048828, + 0.0 + ], + [ + 1052.708668, + 0.030865, + 0.048828, + 0.0 + ], + [ + 1052.713678, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.718657, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.723735, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.728685, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.733683, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.738687, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.743764, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.74874, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.753683, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.758649, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.763718, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.768693, + 0.037023, + 0.048828, + 0.0 + ], + [ + 1052.773679, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.778646, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.783789, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.788666, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.793679, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.79865, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.803713, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.808674, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.813846, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.818655, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.823713, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.828667, + 0.049365, + 0.048828, + 0.0 + ], + [ + 1052.833785, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.838699, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.843853, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.848698, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.8539, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.858703, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.863783, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.868673, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.873717, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.878768, + 0.061706, + 0.048828, + 0.0 + ], + [ + 1052.883697, + 0.067889, + 0.048828, + 0.0 + ], + [ + 1052.888707, + 0.067889, + 0.048828, + 0.0 + ], + [ + 1052.893735, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.898706, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.90371, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.908726, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.913751, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.918702, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.923754, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.929128, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.933759, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.938858, + 0.074047, + 0.048828, + 0.0 + ], + [ + 1052.943711, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.94879, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.953686, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.958652, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.963794, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.969041, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.973683, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.97865, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.983717, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.988682, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.993734, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1052.998667, + 0.086388, + 0.048828, + 0.0 + ], + [ + 1053.003786, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.008663, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.013688, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.018647, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.023711, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.028662, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.033678, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.038645, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.043704, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.048696, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.053729, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.058673, + 0.098729, + 0.048828, + 0.0 + ], + [ + 1053.06373, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.068652, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.073763, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.078736, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.083802, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.088736, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.093686, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.098756, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.103678, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.10868, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.11372, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.118704, + 0.11107, + 0.048828, + 0.0 + ], + [ + 1053.123698, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.128764, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.133715, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.138762, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.143712, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.148687, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.154862, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.158742, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.163767, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.168774, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.173693, + 0.123412, + 0.048828, + 0.0 + ], + [ + 1053.17873, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.183715, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.188702, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.193662, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.198685, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.203828, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.208688, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.213763, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.218671, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.22372, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.228709, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.233656, + 0.135753, + 0.048828, + 0.0 + ], + [ + 1053.238682, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.243724, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.248731, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.253697, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.258742, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.263723, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.269547, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.273674, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.27869, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.283784, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.288778, + 0.148094, + 0.048828, + 0.0 + ], + [ + 1053.293683, + 0.154277, + 0.048828, + 0.0 + ], + [ + 1053.298781, + 0.154277, + 0.048828, + 0.0 + ], + [ + 1053.303736, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.308671, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.31368, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.318681, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.323737, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.328713, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.333681, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.338661, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.343687, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.348665, + 0.160435, + 0.048828, + 0.0 + ], + [ + 1053.353777, + 0.172776, + 0.048828, + 0.0 + ], + [ + 1053.358884, + 0.172776, + 0.048828, + 0.0 + ], + [ + 1053.363714, + 0.172776, + 0.058594, + 0.097656 + ], + [ + 1053.368713, + 0.172776, + 0.058594, + 0.097656 + ], + [ + 1053.373727, + 0.172776, + 0.058594, + 0.097656 + ], + [ + 1053.378881, + 0.172776, + 0.058594, + 0.097656 + ], + [ + 1053.38373, + 0.172776, + 0.068359, + 0.195312 + ], + [ + 1053.388837, + 0.172776, + 0.068359, + 0.195312 + ], + [ + 1053.393781, + 0.172776, + 0.068359, + 0.195312 + ], + [ + 1053.398706, + 0.172776, + 0.068359, + 0.195312 + ], + [ + 1053.403739, + 0.172776, + 0.068359, + 0.195312 + ], + [ + 1053.408706, + 0.172776, + 0.068359, + 0.195312 + ], + [ + 1053.413706, + 0.185117, + 0.068359, + 0.195312 + ], + [ + 1053.418676, + 0.185117, + 0.068359, + 0.195312 + ], + [ + 1053.423732, + 0.185117, + 0.087891, + 0.390625 + ], + [ + 1053.428669, + 0.185117, + 0.087891, + 0.390625 + ], + [ + 1053.433682, + 0.185117, + 0.087891, + 0.390625 + ], + [ + 1053.438655, + 0.185117, + 0.087891, + 0.390625 + ], + [ + 1053.443729, + 0.185117, + 0.126953, + 0.78125 + ], + [ + 1053.448661, + 0.185117, + 0.126953, + 0.78125 + ], + [ + 1053.453673, + 0.185117, + 0.126953, + 0.78125 + ], + [ + 1053.461254, + 0.185117, + 0.126953, + 0.78125 + ], + [ + 1053.463755, + 0.185117, + 0.166016, + 1.074219 + ], + [ + 1053.468667, + 0.185117, + 0.166016, + 1.074219 + ], + [ + 1053.473812, + 0.1913, + 0.166016, + 1.074219 + ], + [ + 1053.47866, + 0.1913, + 0.166016, + 1.074219 + ], + [ + 1053.483749, + 0.197458, + 0.234375, + 1.660156 + ], + [ + 1053.488664, + 0.197458, + 0.234375, + 1.660156 + ], + [ + 1053.493682, + 0.197458, + 0.234375, + 1.660156 + ], + [ + 1053.498654, + 0.197458, + 0.234375, + 1.660156 + ], + [ + 1053.503788, + 0.197458, + 0.332031, + 2.636719 + ], + [ + 1053.508667, + 0.197458, + 0.332031, + 2.636719 + ], + [ + 1053.513694, + 0.197458, + 0.332031, + 2.636719 + ], + [ + 1053.518656, + 0.197458, + 0.332031, + 2.636719 + ], + [ + 1053.52372, + 0.197458, + 0.478516, + 3.808594 + ], + [ + 1053.528669, + 0.197458, + 0.478516, + 3.808594 + ], + [ + 1053.533726, + 0.2098, + 0.478516, + 3.808594 + ], + [ + 1053.538654, + 0.2098, + 0.478516, + 3.808594 + ], + [ + 1053.543723, + 0.2098, + 0.644531, + 5.078125 + ], + [ + 1053.548693, + 0.2098, + 0.644531, + 5.078125 + ], + [ + 1053.553691, + 0.2098, + 0.644531, + 5.078125 + ], + [ + 1053.558648, + 0.2098, + 0.644531, + 5.078125 + ], + [ + 1053.564203, + 0.2098, + 0.751953, + 5.859375 + ], + [ + 1053.568705, + 0.2098, + 0.751953, + 5.859375 + ], + [ + 1053.573683, + 0.2098, + 0.751953, + 5.859375 + ], + [ + 1053.578701, + 0.2098, + 0.751953, + 5.859375 + ], + [ + 1053.583703, + 0.2098, + 0.751953, + 5.859375 + ], + [ + 1053.58903, + 0.222141, + 0.800781, + 5.664062 + ], + [ + 1053.593704, + 0.222141, + 0.800781, + 5.664062 + ], + [ + 1053.598695, + 0.222141, + 0.800781, + 5.664062 + ], + [ + 1053.603688, + 0.222141, + 0.800781, + 5.664062 + ], + [ + 1053.608707, + 0.222141, + 0.800781, + 5.664062 + ], + [ + 1053.613707, + 0.222141, + 0.878906, + 5.46875 + ], + [ + 1053.618707, + 0.222141, + 0.878906, + 5.46875 + ], + [ + 1053.623702, + 0.222141, + 0.878906, + 5.46875 + ], + [ + 1053.628712, + 0.222141, + 0.878906, + 5.46875 + ], + [ + 1053.633741, + 0.222141, + 0.996094, + 5.175781 + ], + [ + 1053.638739, + 0.222141, + 0.996094, + 5.175781 + ], + [ + 1053.643711, + 0.222141, + 0.996094, + 5.175781 + ], + [ + 1053.649143, + 0.222141, + 0.996094, + 5.175781 + ], + [ + 1053.65371, + 0.228299, + 1.132812, + 4.980469 + ], + [ + 1053.658685, + 0.228299, + 1.132812, + 4.980469 + ], + [ + 1053.663747, + 0.234482, + 1.132812, + 4.980469 + ], + [ + 1053.668719, + 0.234482, + 1.132812, + 4.980469 + ], + [ + 1053.673752, + 0.234482, + 1.289062, + 5.273438 + ], + [ + 1053.678657, + 0.234482, + 1.289062, + 5.273438 + ], + [ + 1053.683708, + 0.234482, + 1.289062, + 5.273438 + ], + [ + 1053.68873, + 0.234482, + 1.289062, + 5.273438 + ], + [ + 1053.693706, + 0.234482, + 1.425781, + 6.152344 + ], + [ + 1053.698675, + 0.234482, + 1.425781, + 6.152344 + ], + [ + 1053.7037, + 0.240665, + 1.425781, + 6.152344 + ], + [ + 1053.708788, + 0.240665, + 1.425781, + 6.152344 + ], + [ + 1053.713682, + 0.246823, + 1.650391, + 7.617188 + ], + [ + 1053.718645, + 0.246823, + 1.650391, + 7.617188 + ], + [ + 1053.723697, + 0.246823, + 1.650391, + 7.617188 + ], + [ + 1053.728694, + 0.246823, + 1.650391, + 7.617188 + ], + [ + 1053.733679, + 0.246823, + 1.835938, + 8.496094 + ], + [ + 1053.738673, + 0.246823, + 1.835938, + 8.496094 + ], + [ + 1053.743723, + 0.246823, + 1.835938, + 8.496094 + ], + [ + 1053.7487, + 0.246823, + 1.835938, + 8.496094 + ], + [ + 1053.753741, + 0.246823, + 1.962891, + 8.300781 + ], + [ + 1053.75865, + 0.246823, + 1.962891, + 8.300781 + ], + [ + 1053.763784, + 0.259164, + 1.962891, + 8.300781 + ], + [ + 1053.769906, + 0.259164, + 1.962891, + 8.300781 + ], + [ + 1053.773797, + 0.259164, + 2.050781, + 7.714844 + ], + [ + 1053.778712, + 0.259164, + 2.050781, + 7.714844 + ], + [ + 1053.783719, + 0.259164, + 2.050781, + 7.714844 + ], + [ + 1053.788749, + 0.259164, + 2.050781, + 7.714844 + ], + [ + 1053.793735, + 0.259164, + 2.226562, + 8.007812 + ], + [ + 1053.798795, + 0.259164, + 2.226562, + 8.007812 + ], + [ + 1053.803683, + 0.259164, + 2.226562, + 8.007812 + ], + [ + 1053.80867, + 0.259164, + 2.226562, + 8.007812 + ], + [ + 1053.813715, + 0.259164, + 2.333984, + 6.933594 + ], + [ + 1053.818647, + 0.259164, + 2.333984, + 6.933594 + ], + [ + 1053.823727, + 0.271505, + 2.333984, + 6.933594 + ], + [ + 1053.828905, + 0.271505, + 2.333984, + 6.933594 + ], + [ + 1053.833715, + 0.271505, + 2.392578, + 5.566406 + ], + [ + 1053.838693, + 0.271505, + 2.392578, + 5.566406 + ], + [ + 1053.843703, + 0.271505, + 2.392578, + 5.566406 + ], + [ + 1053.848819, + 0.271505, + 2.392578, + 5.566406 + ], + [ + 1053.853712, + 0.271505, + 2.431641, + 4.6875 + ], + [ + 1053.858686, + 0.271505, + 2.431641, + 4.6875 + ], + [ + 1053.863709, + 0.271505, + 2.431641, + 4.6875 + ], + [ + 1053.868716, + 0.271505, + 2.431641, + 4.6875 + ], + [ + 1053.873757, + 0.277688, + 2.460938, + 4.003906 + ], + [ + 1053.878707, + 0.277688, + 2.460938, + 4.003906 + ], + [ + 1053.883716, + 0.283847, + 2.460938, + 4.003906 + ], + [ + 1053.888708, + 0.283847, + 2.460938, + 4.003906 + ], + [ + 1053.893737, + 0.283847, + 2.568359, + 3.417969 + ], + [ + 1053.89868, + 0.283847, + 2.568359, + 3.417969 + ], + [ + 1053.903716, + 0.283847, + 2.568359, + 3.417969 + ], + [ + 1053.908761, + 0.283847, + 2.568359, + 3.417969 + ], + [ + 1053.913719, + 0.283847, + 2.8125, + 4.6875 + ], + [ + 1053.918681, + 0.283847, + 2.8125, + 4.6875 + ], + [ + 1053.923697, + 0.283847, + 2.8125, + 4.6875 + ], + [ + 1053.928774, + 0.283847, + 2.8125, + 4.6875 + ], + [ + 1053.933813, + 0.283847, + 3.027344, + 6.347656 + ], + [ + 1053.938651, + 0.283847, + 3.027344, + 6.347656 + ], + [ + 1053.943697, + 0.296188, + 3.027344, + 6.347656 + ], + [ + 1053.948668, + 0.296188, + 3.027344, + 6.347656 + ], + [ + 1053.953778, + 0.296188, + 3.291016, + 8.496094 + ], + [ + 1053.958662, + 0.296188, + 3.291016, + 8.496094 + ], + [ + 1053.963849, + 0.296188, + 3.291016, + 8.496094 + ], + [ + 1053.96867, + 0.296188, + 3.291016, + 8.496094 + ], + [ + 1053.974393, + 0.296188, + 3.496094, + 10.351562 + ], + [ + 1053.97868, + 0.296188, + 3.496094, + 10.351562 + ], + [ + 1053.983696, + 0.296188, + 3.496094, + 10.351562 + ], + [ + 1053.988913, + 0.296188, + 3.496094, + 10.351562 + ], + [ + 1053.993654, + 0.296188, + 3.496094, + 10.351562 + ], + [ + 1053.998704, + 0.302346, + 3.613281, + 10.546875 + ], + [ + 1054.003684, + 0.302346, + 3.613281, + 10.546875 + ], + [ + 1054.008691, + 0.308529, + 3.613281, + 10.546875 + ], + [ + 1054.013704, + 0.308529, + 3.613281, + 10.546875 + ], + [ + 1054.018718, + 0.308529, + 3.75, + 9.472656 + ], + [ + 1054.023682, + 0.308529, + 3.75, + 9.472656 + ], + [ + 1054.0287, + 0.308529, + 3.75, + 9.472656 + ], + [ + 1054.03365, + 0.308529, + 3.75, + 9.472656 + ], + [ + 1054.038715, + 0.308529, + 3.984375, + 9.472656 + ], + [ + 1054.043658, + 0.308529, + 3.984375, + 9.472656 + ], + [ + 1054.048688, + 0.308529, + 3.984375, + 9.472656 + ], + [ + 1054.053703, + 0.308529, + 3.984375, + 9.472656 + ], + [ + 1054.058697, + 0.333211, + 4.208984, + 9.277344 + ], + [ + 1054.063653, + 0.333211, + 4.208984, + 9.277344 + ], + [ + 1054.068693, + 0.333211, + 4.208984, + 9.277344 + ], + [ + 1054.073699, + 0.333211, + 4.208984, + 9.277344 + ], + [ + 1054.078745, + 0.333211, + 4.550781, + 10.546875 + ], + [ + 1054.083693, + 0.333211, + 4.550781, + 10.546875 + ], + [ + 1054.088685, + 0.333211, + 4.550781, + 10.546875 + ], + [ + 1054.093714, + 0.333211, + 4.550781, + 10.546875 + ], + [ + 1054.098727, + 0.333211, + 4.863281, + 12.304688 + ], + [ + 1054.103702, + 0.333211, + 4.863281, + 12.304688 + ], + [ + 1054.108747, + 0.333211, + 4.863281, + 12.304688 + ], + [ + 1054.11372, + 0.333211, + 4.863281, + 12.304688 + ], + [ + 1054.118727, + 0.345552, + 5.136719, + 13.769531 + ], + [ + 1054.123761, + 0.345552, + 5.136719, + 13.769531 + ], + [ + 1054.128729, + 0.345552, + 5.136719, + 13.769531 + ], + [ + 1054.133689, + 0.345552, + 5.136719, + 13.769531 + ], + [ + 1054.138829, + 0.345552, + 5.3125, + 13.28125 + ], + [ + 1054.143699, + 0.345552, + 5.3125, + 13.28125 + ], + [ + 1054.14873, + 0.345552, + 5.3125, + 13.28125 + ], + [ + 1054.153684, + 0.345552, + 5.3125, + 13.28125 + ], + [ + 1054.158709, + 0.345552, + 5.595703, + 13.671875 + ], + [ + 1054.163737, + 0.345552, + 5.595703, + 13.671875 + ], + [ + 1054.168697, + 0.351711, + 5.595703, + 13.671875 + ], + [ + 1054.173753, + 0.351711, + 5.595703, + 13.671875 + ], + [ + 1054.179352, + 0.357893, + 5.957031, + 13.964844 + ], + [ + 1054.183826, + 0.357893, + 5.957031, + 13.964844 + ], + [ + 1054.188658, + 0.357893, + 5.957031, + 13.964844 + ], + [ + 1054.193829, + 0.357893, + 5.957031, + 13.964844 + ], + [ + 1054.198657, + 0.357893, + 5.957031, + 13.964844 + ], + [ + 1054.203736, + 0.357893, + 6.640625, + 15.039062 + ], + [ + 1054.208667, + 0.357893, + 6.640625, + 15.039062 + ], + [ + 1054.213662, + 0.357893, + 6.640625, + 15.039062 + ], + [ + 1054.218662, + 0.357893, + 6.640625, + 15.039062 + ], + [ + 1054.223829, + 0.357893, + 6.953125, + 16.40625 + ], + [ + 1054.228853, + 0.357893, + 6.953125, + 16.40625 + ], + [ + 1054.233679, + 0.370235, + 6.953125, + 16.40625 + ], + [ + 1054.238654, + 0.370235, + 6.953125, + 16.40625 + ], + [ + 1054.243856, + 0.370235, + 7.392578, + 17.96875 + ], + [ + 1054.248776, + 0.370235, + 7.392578, + 17.96875 + ], + [ + 1054.253674, + 0.370235, + 7.392578, + 17.96875 + ], + [ + 1054.258639, + 0.370235, + 7.392578, + 17.96875 + ], + [ + 1054.263723, + 0.370235, + 7.832031, + 18.75 + ], + [ + 1054.268647, + 0.370235, + 7.832031, + 18.75 + ], + [ + 1054.273663, + 0.370235, + 7.832031, + 18.75 + ], + [ + 1054.278726, + 0.370235, + 7.832031, + 18.75 + ], + [ + 1054.283732, + 0.370235, + 8.154297, + 18.164062 + ], + [ + 1054.288651, + 0.370235, + 8.154297, + 18.164062 + ], + [ + 1054.293795, + 0.382576, + 8.154297, + 18.164062 + ], + [ + 1054.298654, + 0.382576, + 8.154297, + 18.164062 + ], + [ + 1054.303688, + 0.382576, + 8.59375, + 19.433594 + ], + [ + 1054.308673, + 0.382576, + 8.59375, + 19.433594 + ], + [ + 1054.313706, + 0.382576, + 8.59375, + 19.433594 + ], + [ + 1054.318691, + 0.382576, + 8.59375, + 19.433594 + ], + [ + 1054.323753, + 0.382576, + 9.111328, + 21.484375 + ], + [ + 1054.328702, + 0.382576, + 9.111328, + 21.484375 + ], + [ + 1054.333762, + 0.382576, + 9.111328, + 21.484375 + ], + [ + 1054.338694, + 0.382576, + 9.111328, + 21.484375 + ], + [ + 1054.344012, + 0.382576, + 9.53125, + 21.484375 + ], + [ + 1054.348746, + 0.382576, + 9.53125, + 21.484375 + ], + [ + 1054.353706, + 0.382576, + 9.53125, + 21.484375 + ], + [ + 1054.3587, + 0.394917, + 9.53125, + 21.484375 + ], + [ + 1054.363704, + 0.394917, + 9.53125, + 21.484375 + ], + [ + 1054.368729, + 0.394917, + 10.0, + 21.679688 + ], + [ + 1054.373736, + 0.394917, + 10.0, + 21.679688 + ], + [ + 1054.378686, + 0.394917, + 10.0, + 21.679688 + ], + [ + 1054.384213, + 0.394917, + 10.0, + 21.679688 + ], + [ + 1054.38935, + 0.394917, + 10.585938, + 24.21875 + ], + [ + 1054.393678, + 0.394917, + 10.585938, + 24.21875 + ], + [ + 1054.398663, + 0.394917, + 10.585938, + 24.21875 + ], + [ + 1054.403673, + 0.394917, + 10.585938, + 24.21875 + ], + [ + 1054.408732, + 0.394917, + 10.585938, + 24.21875 + ], + [ + 1054.413691, + 0.407258, + 11.064453, + 24.707031 + ], + [ + 1054.418652, + 0.407258, + 11.064453, + 24.707031 + ], + [ + 1054.423687, + 0.407258, + 11.064453, + 24.707031 + ], + [ + 1054.428731, + 0.407258, + 11.064453, + 24.707031 + ], + [ + 1054.433741, + 0.407258, + 11.640625, + 25.097656 + ], + [ + 1054.43865, + 0.407258, + 11.640625, + 25.097656 + ], + [ + 1054.443805, + 0.407258, + 11.640625, + 25.097656 + ], + [ + 1054.448725, + 0.407258, + 11.640625, + 25.097656 + ], + [ + 1054.453693, + 0.407258, + 12.236328, + 26.953125 + ], + [ + 1054.458646, + 0.407258, + 12.236328, + 26.953125 + ], + [ + 1054.463669, + 0.407258, + 12.236328, + 26.953125 + ], + [ + 1054.468778, + 0.407258, + 12.236328, + 26.953125 + ], + [ + 1054.473693, + 0.419599, + 12.802734, + 27.929688 + ], + [ + 1054.478649, + 0.419599, + 12.802734, + 27.929688 + ], + [ + 1054.483682, + 0.419599, + 12.802734, + 27.929688 + ], + [ + 1054.48892, + 0.419599, + 12.802734, + 27.929688 + ], + [ + 1054.493694, + 0.419599, + 13.476562, + 28.90625 + ], + [ + 1054.498645, + 0.419599, + 13.476562, + 28.90625 + ], + [ + 1054.503728, + 0.419599, + 13.476562, + 28.90625 + ], + [ + 1054.508758, + 0.419599, + 13.476562, + 28.90625 + ], + [ + 1054.513696, + 0.419599, + 14.0625, + 29.882812 + ], + [ + 1054.51865, + 0.419599, + 14.0625, + 29.882812 + ], + [ + 1054.523744, + 0.43194, + 14.0625, + 29.882812 + ], + [ + 1054.528788, + 0.43194, + 14.0625, + 29.882812 + ], + [ + 1054.533695, + 0.43194, + 14.746094, + 31.152344 + ], + [ + 1054.538694, + 0.43194, + 14.746094, + 31.152344 + ], + [ + 1054.543693, + 0.43194, + 14.746094, + 31.152344 + ], + [ + 1054.548711, + 0.43194, + 14.746094, + 31.152344 + ], + [ + 1054.553729, + 0.43194, + 15.351562, + 31.054688 + ], + [ + 1054.558682, + 0.43194, + 15.351562, + 31.054688 + ], + [ + 1054.563696, + 0.43194, + 15.351562, + 31.054688 + ], + [ + 1054.568867, + 0.43194, + 15.351562, + 31.054688 + ], + [ + 1054.573834, + 0.43194, + 16.035156, + 32.324219 + ], + [ + 1054.578695, + 0.43194, + 16.035156, + 32.324219 + ], + [ + 1054.583708, + 0.438123, + 16.035156, + 32.324219 + ], + [ + 1054.589745, + 0.438123, + 16.035156, + 32.324219 + ], + [ + 1054.593729, + 0.444282, + 16.660156, + 31.738281 + ], + [ + 1054.598676, + 0.444282, + 16.660156, + 31.738281 + ], + [ + 1054.603701, + 0.444282, + 16.660156, + 31.738281 + ], + [ + 1054.608722, + 0.444282, + 16.660156, + 31.738281 + ], + [ + 1054.613726, + 0.444282, + 17.353516, + 32.8125 + ], + [ + 1054.618681, + 0.444282, + 17.353516, + 32.8125 + ], + [ + 1054.623692, + 0.444282, + 17.353516, + 32.8125 + ], + [ + 1054.62874, + 0.444282, + 17.353516, + 32.8125 + ], + [ + 1054.633723, + 0.450464, + 18.027344, + 32.8125 + ], + [ + 1054.63864, + 0.450464, + 18.027344, + 32.8125 + ], + [ + 1054.643666, + 0.456623, + 18.027344, + 32.8125 + ], + [ + 1054.6487, + 0.456623, + 18.027344, + 32.8125 + ], + [ + 1054.653839, + 0.456623, + 18.691406, + 33.398438 + ], + [ + 1054.658647, + 0.456623, + 18.691406, + 33.398438 + ], + [ + 1054.663661, + 0.456623, + 18.691406, + 33.398438 + ], + [ + 1054.668708, + 0.456623, + 18.691406, + 33.398438 + ], + [ + 1054.673733, + 0.456623, + 19.433594, + 33.984375 + ], + [ + 1054.678676, + 0.456623, + 19.433594, + 33.984375 + ], + [ + 1054.683663, + 0.456623, + 19.433594, + 33.984375 + ], + [ + 1054.688853, + 0.456623, + 19.433594, + 33.984375 + ], + [ + 1054.69376, + 0.462805, + 20.126953, + 34.667969 + ], + [ + 1054.698796, + 0.462805, + 20.126953, + 34.667969 + ], + [ + 1054.703748, + 0.468964, + 20.126953, + 34.667969 + ], + [ + 1054.708683, + 0.468964, + 20.126953, + 34.667969 + ], + [ + 1054.71384, + 0.468964, + 20.878906, + 35.351562 + ], + [ + 1054.718662, + 0.468964, + 20.878906, + 35.351562 + ], + [ + 1054.723765, + 0.468964, + 20.878906, + 35.351562 + ], + [ + 1054.729276, + 0.468964, + 20.878906, + 35.351562 + ], + [ + 1054.733875, + 0.468964, + 21.630859, + 36.035156 + ], + [ + 1054.738678, + 0.468964, + 21.630859, + 36.035156 + ], + [ + 1054.743683, + 0.468964, + 21.630859, + 36.035156 + ], + [ + 1054.748796, + 0.468964, + 21.630859, + 36.035156 + ], + [ + 1054.754163, + 0.475147, + 22.412109, + 37.304688 + ], + [ + 1054.758641, + 0.475147, + 22.412109, + 37.304688 + ], + [ + 1054.763646, + 0.475147, + 22.412109, + 37.304688 + ], + [ + 1054.768692, + 0.481305, + 22.412109, + 37.304688 + ], + [ + 1054.773655, + 0.481305, + 22.412109, + 37.304688 + ], + [ + 1054.778705, + 0.481305, + 23.222656, + 37.792969 + ], + [ + 1054.78369, + 0.481305, + 23.222656, + 37.792969 + ], + [ + 1054.788716, + 0.481305, + 23.222656, + 37.792969 + ], + [ + 1054.79496, + 0.481305, + 23.222656, + 37.792969 + ], + [ + 1054.798713, + 0.481305, + 24.033203, + 39.0625 + ], + [ + 1054.803691, + 0.481305, + 24.033203, + 39.0625 + ], + [ + 1054.80879, + 0.487488, + 24.033203, + 39.0625 + ], + [ + 1054.813695, + 0.487488, + 24.033203, + 39.0625 + ], + [ + 1054.818725, + 0.487463, + 24.902344, + 40.136719 + ], + [ + 1054.823688, + 0.487463, + 24.902344, + 40.136719 + ], + [ + 1054.828759, + 0.493646, + 24.902344, + 40.136719 + ], + [ + 1054.833751, + 0.493646, + 24.902344, + 40.136719 + ], + [ + 1054.838713, + 0.493646, + 25.732422, + 41.015625 + ], + [ + 1054.843749, + 0.493646, + 25.732422, + 41.015625 + ], + [ + 1054.848725, + 0.493646, + 25.732422, + 41.015625 + ], + [ + 1054.853811, + 0.493646, + 25.732422, + 41.015625 + ], + [ + 1054.858826, + 0.493646, + 26.640625, + 42.285156 + ], + [ + 1054.863695, + 0.493646, + 26.640625, + 42.285156 + ], + [ + 1054.868742, + 0.499804, + 26.640625, + 42.285156 + ], + [ + 1054.87371, + 0.499804, + 26.640625, + 42.285156 + ], + [ + 1054.8788, + 0.505987, + 27.558594, + 43.359375 + ], + [ + 1054.883651, + 0.505987, + 27.558594, + 43.359375 + ], + [ + 1054.888665, + 0.505987, + 27.558594, + 43.359375 + ], + [ + 1054.893732, + 0.505987, + 27.558594, + 43.359375 + ], + [ + 1054.898735, + 0.505987, + 28.457031, + 44.140625 + ], + [ + 1054.903672, + 0.505987, + 28.457031, + 44.140625 + ], + [ + 1054.909495, + 0.505987, + 28.457031, + 44.140625 + ], + [ + 1054.913723, + 0.505987, + 28.457031, + 44.140625 + ], + [ + 1054.918745, + 0.505987, + 29.423828, + 45.214844 + ], + [ + 1054.923673, + 0.505987, + 29.423828, + 45.214844 + ], + [ + 1054.928921, + 0.505987, + 29.423828, + 45.214844 + ], + [ + 1054.933712, + 0.518328, + 29.423828, + 45.214844 + ], + [ + 1054.938754, + 0.518328, + 30.371094, + 46.289062 + ], + [ + 1054.943668, + 0.518328, + 30.371094, + 46.289062 + ], + [ + 1054.948678, + 0.518328, + 30.371094, + 46.289062 + ], + [ + 1054.953733, + 0.518328, + 30.371094, + 46.289062 + ], + [ + 1054.958697, + 0.518328, + 31.318359, + 46.582031 + ], + [ + 1054.963703, + 0.518328, + 31.318359, + 46.582031 + ], + [ + 1054.968683, + 0.518328, + 31.318359, + 46.582031 + ], + [ + 1054.973737, + 0.518328, + 31.318359, + 46.582031 + ], + [ + 1054.978697, + 0.518328, + 32.324219, + 47.65625 + ], + [ + 1054.983671, + 0.518328, + 32.324219, + 47.65625 + ], + [ + 1054.9887, + 0.518328, + 32.324219, + 47.65625 + ], + [ + 1054.993687, + 0.53067, + 32.324219, + 47.65625 + ], + [ + 1054.999481, + 0.53067, + 33.320312, + 48.632812 + ], + [ + 1055.003687, + 0.53067, + 33.320312, + 48.632812 + ], + [ + 1055.00875, + 0.53067, + 33.320312, + 48.632812 + ], + [ + 1055.013673, + 0.53067, + 33.320312, + 48.632812 + ], + [ + 1055.018641, + 0.53067, + 33.320312, + 48.632812 + ], + [ + 1055.023713, + 0.53067, + 35.351562, + 49.804688 + ], + [ + 1055.028706, + 0.53067, + 35.351562, + 49.804688 + ], + [ + 1055.033698, + 0.53067, + 35.351562, + 49.804688 + ], + [ + 1055.038672, + 0.53067, + 35.351562, + 49.804688 + ], + [ + 1055.043702, + 0.536852, + 36.386719, + 50.683594 + ], + [ + 1055.048779, + 0.536852, + 36.386719, + 50.683594 + ], + [ + 1055.053717, + 0.543011, + 36.386719, + 50.683594 + ], + [ + 1055.05868, + 0.543011, + 36.386719, + 50.683594 + ], + [ + 1055.063726, + 0.543011, + 37.421875, + 50.878906 + ], + [ + 1055.068809, + 0.543011, + 37.421875, + 50.878906 + ], + [ + 1055.073724, + 0.543011, + 37.421875, + 50.878906 + ], + [ + 1055.078844, + 0.543011, + 37.421875, + 50.878906 + ], + [ + 1055.083699, + 0.543011, + 38.447266, + 51.269531 + ], + [ + 1055.088787, + 0.543011, + 38.447266, + 51.269531 + ], + [ + 1055.093715, + 0.543011, + 38.447266, + 51.269531 + ], + [ + 1055.098671, + 0.543011, + 38.447266, + 51.269531 + ], + [ + 1055.103754, + 0.549194, + 39.492188, + 51.855469 + ], + [ + 1055.108714, + 0.549194, + 39.492188, + 51.855469 + ], + [ + 1055.113888, + 0.555352, + 39.492188, + 51.855469 + ], + [ + 1055.118688, + 0.555352, + 39.492188, + 51.855469 + ], + [ + 1055.123703, + 0.555352, + 40.556641, + 51.953125 + ], + [ + 1055.128677, + 0.555352, + 40.556641, + 51.953125 + ], + [ + 1055.133706, + 0.555352, + 40.556641, + 51.953125 + ], + [ + 1055.138702, + 0.555352, + 40.556641, + 51.953125 + ], + [ + 1055.143709, + 0.555352, + 41.601562, + 52.148438 + ], + [ + 1055.148672, + 0.555352, + 41.601562, + 52.148438 + ], + [ + 1055.153742, + 0.555352, + 41.601562, + 52.148438 + ], + [ + 1055.158691, + 0.555352, + 41.601562, + 52.148438 + ], + [ + 1055.163807, + 0.561535, + 42.675781, + 52.636719 + ], + [ + 1055.168727, + 0.561535, + 42.675781, + 52.636719 + ], + [ + 1055.173706, + 0.567693, + 42.675781, + 52.636719 + ], + [ + 1055.17866, + 0.567693, + 42.675781, + 52.636719 + ], + [ + 1055.183704, + 0.567693, + 43.837891, + 53.808594 + ], + [ + 1055.188736, + 0.567693, + 43.837891, + 53.808594 + ], + [ + 1055.193711, + 0.567693, + 43.837891, + 53.808594 + ], + [ + 1055.198644, + 0.567693, + 43.837891, + 53.808594 + ], + [ + 1055.204318, + 0.567693, + 45.0, + 54.980469 + ], + [ + 1055.209406, + 0.567693, + 45.0, + 54.980469 + ], + [ + 1055.213696, + 0.567693, + 45.0, + 54.980469 + ], + [ + 1055.218664, + 0.567693, + 45.0, + 54.980469 + ], + [ + 1055.223652, + 0.567693, + 45.0, + 54.980469 + ], + [ + 1055.228751, + 0.573851, + 46.142578, + 55.859375 + ], + [ + 1055.233666, + 0.573851, + 46.142578, + 55.859375 + ], + [ + 1055.238815, + 0.580034, + 46.142578, + 55.859375 + ], + [ + 1055.243657, + 0.580034, + 46.142578, + 55.859375 + ], + [ + 1055.248707, + 0.580034, + 47.294922, + 56.835938 + ], + [ + 1055.253663, + 0.580034, + 47.294922, + 56.835938 + ], + [ + 1055.258664, + 0.580034, + 47.294922, + 56.835938 + ], + [ + 1055.263688, + 0.580034, + 47.294922, + 56.835938 + ], + [ + 1055.26872, + 0.580034, + 48.476562, + 58.007812 + ], + [ + 1055.273696, + 0.580034, + 48.476562, + 58.007812 + ], + [ + 1055.278699, + 0.586193, + 48.476562, + 58.007812 + ], + [ + 1055.283684, + 0.586193, + 48.476562, + 58.007812 + ], + [ + 1055.288765, + 0.592375, + 49.6875, + 58.59375 + ], + [ + 1055.293711, + 0.592375, + 49.6875, + 58.59375 + ], + [ + 1055.298731, + 0.592375, + 49.6875, + 58.59375 + ], + [ + 1055.303705, + 0.592375, + 49.6875, + 58.59375 + ], + [ + 1055.308929, + 0.592375, + 50.947266, + 59.375 + ], + [ + 1055.313786, + 0.592375, + 50.947266, + 59.375 + ], + [ + 1055.318696, + 0.592375, + 50.947266, + 59.375 + ], + [ + 1055.323705, + 0.592375, + 50.947266, + 59.375 + ], + [ + 1055.328711, + 0.592375, + 50.947266, + 59.375 + ], + [ + 1055.333731, + 0.592375, + 52.197266, + 60.546875 + ], + [ + 1055.338687, + 0.598558, + 52.197266, + 60.546875 + ], + [ + 1055.343698, + 0.604717, + 52.197266, + 60.546875 + ], + [ + 1055.348747, + 0.604717, + 52.197266, + 60.546875 + ], + [ + 1055.353721, + 0.604717, + 53.466797, + 61.71875 + ], + [ + 1055.358715, + 0.604717, + 53.466797, + 61.71875 + ], + [ + 1055.363665, + 0.604717, + 53.466797, + 61.71875 + ], + [ + 1055.369073, + 0.604717, + 53.466797, + 61.71875 + ], + [ + 1055.373724, + 0.604717, + 54.755859, + 62.597656 + ], + [ + 1055.37865, + 0.604717, + 54.755859, + 62.597656 + ], + [ + 1055.383668, + 0.604717, + 54.755859, + 62.597656 + ], + [ + 1055.388671, + 0.604717, + 54.755859, + 62.597656 + ], + [ + 1055.393835, + 0.604717, + 56.035156, + 63.378906 + ], + [ + 1055.398648, + 0.604717, + 56.035156, + 63.378906 + ], + [ + 1055.403671, + 0.617058, + 56.035156, + 63.378906 + ], + [ + 1055.409681, + 0.617058, + 56.035156, + 63.378906 + ], + [ + 1055.413753, + 0.617058, + 57.333984, + 63.769531 + ], + [ + 1055.418649, + 0.617058, + 57.333984, + 63.769531 + ], + [ + 1055.423669, + 0.617058, + 57.333984, + 63.769531 + ], + [ + 1055.428667, + 0.617058, + 57.333984, + 63.769531 + ], + [ + 1055.43379, + 0.617058, + 58.662109, + 64.550781 + ], + [ + 1055.438652, + 0.617058, + 58.662109, + 64.550781 + ], + [ + 1055.443673, + 0.617058, + 58.662109, + 64.550781 + ], + [ + 1055.448766, + 0.617058, + 58.662109, + 64.550781 + ], + [ + 1055.453732, + 0.617058, + 59.980469, + 65.136719 + ], + [ + 1055.458654, + 0.617058, + 59.980469, + 65.136719 + ], + [ + 1055.463673, + 0.64174, + 59.980469, + 65.136719 + ], + [ + 1055.468683, + 0.64174, + 59.980469, + 65.136719 + ], + [ + 1055.473733, + 0.64174, + 61.318359, + 65.722656 + ], + [ + 1055.478658, + 0.64174, + 61.318359, + 65.722656 + ], + [ + 1055.483756, + 0.64174, + 61.318359, + 65.722656 + ], + [ + 1055.488691, + 0.64174, + 61.318359, + 65.722656 + ], + [ + 1055.493767, + 0.64174, + 62.714844, + 66.796875 + ], + [ + 1055.498654, + 0.64174, + 62.714844, + 66.796875 + ], + [ + 1055.503702, + 0.64174, + 62.714844, + 66.796875 + ], + [ + 1055.508754, + 0.64174, + 62.714844, + 66.796875 + ], + [ + 1055.513785, + 0.654081, + 64.130859, + 67.96875 + ], + [ + 1055.518685, + 0.654081, + 64.130859, + 67.96875 + ], + [ + 1055.523696, + 0.654081, + 64.130859, + 67.96875 + ], + [ + 1055.528698, + 0.654081, + 64.130859, + 67.96875 + ], + [ + 1055.533725, + 0.654081, + 65.556641, + 69.042969 + ], + [ + 1055.538677, + 0.654081, + 65.556641, + 69.042969 + ], + [ + 1055.543707, + 0.654081, + 65.556641, + 69.042969 + ], + [ + 1055.548736, + 0.654081, + 65.556641, + 69.042969 + ], + [ + 1055.553755, + 0.654081, + 67.011719, + 70.214844 + ], + [ + 1055.558874, + 0.654081, + 67.011719, + 70.214844 + ], + [ + 1055.563699, + 0.660264, + 67.011719, + 70.214844 + ], + [ + 1055.568942, + 0.660264, + 67.011719, + 70.214844 + ], + [ + 1055.573966, + 0.666422, + 68.447266, + 71.289062 + ], + [ + 1055.57874, + 0.666422, + 68.447266, + 71.289062 + ], + [ + 1055.583777, + 0.666422, + 68.447266, + 71.289062 + ], + [ + 1055.588679, + 0.666422, + 68.447266, + 71.289062 + ], + [ + 1055.593742, + 0.666422, + 68.447266, + 71.289062 + ], + [ + 1055.598726, + 0.666422, + 69.921875, + 72.070312 + ], + [ + 1055.603663, + 0.666422, + 69.921875, + 72.070312 + ], + [ + 1055.608692, + 0.666422, + 69.921875, + 72.070312 + ], + [ + 1055.614771, + 0.666422, + 69.921875, + 72.070312 + ], + [ + 1055.618716, + 0.666422, + 71.425781, + 72.949219 + ], + [ + 1055.623652, + 0.666422, + 71.425781, + 72.949219 + ], + [ + 1055.6287, + 0.678763, + 71.425781, + 72.949219 + ], + [ + 1055.633659, + 0.678763, + 71.425781, + 72.949219 + ], + [ + 1055.638756, + 0.678763, + 72.919922, + 73.4375 + ], + [ + 1055.643656, + 0.678763, + 72.919922, + 73.4375 + ], + [ + 1055.648689, + 0.678763, + 72.919922, + 73.4375 + ], + [ + 1055.653675, + 0.678763, + 72.919922, + 73.4375 + ], + [ + 1055.658719, + 0.678763, + 74.453125, + 74.414062 + ], + [ + 1055.663792, + 0.678763, + 74.453125, + 74.414062 + ], + [ + 1055.668681, + 0.678763, + 74.453125, + 74.414062 + ], + [ + 1055.673748, + 0.678763, + 74.453125, + 74.414062 + ], + [ + 1055.678715, + 0.678763, + 75.996094, + 75.390625 + ], + [ + 1055.683651, + 0.678763, + 75.996094, + 75.390625 + ], + [ + 1055.688687, + 0.691105, + 75.996094, + 75.390625 + ], + [ + 1055.69366, + 0.691105, + 75.996094, + 75.390625 + ], + [ + 1055.698827, + 0.684922, + 77.539062, + 75.976562 + ], + [ + 1055.703656, + 0.684922, + 77.539062, + 75.976562 + ], + [ + 1055.708687, + 0.691105, + 77.539062, + 75.976562 + ], + [ + 1055.713659, + 0.691105, + 77.539062, + 75.976562 + ], + [ + 1055.718744, + 0.691105, + 79.091797, + 76.660156 + ], + [ + 1055.723687, + 0.691105, + 79.091797, + 76.660156 + ], + [ + 1055.728701, + 0.691105, + 79.091797, + 76.660156 + ], + [ + 1055.733673, + 0.691105, + 79.091797, + 76.660156 + ], + [ + 1055.738758, + 0.691105, + 80.654297, + 77.34375 + ], + [ + 1055.743767, + 0.691105, + 80.654297, + 77.34375 + ], + [ + 1055.748818, + 0.703446, + 80.654297, + 77.34375 + ], + [ + 1055.753697, + 0.703446, + 80.654297, + 77.34375 + ], + [ + 1055.75871, + 0.703446, + 82.207031, + 77.441406 + ], + [ + 1055.76368, + 0.703446, + 82.207031, + 77.441406 + ], + [ + 1055.768718, + 0.703446, + 82.207031, + 77.441406 + ], + [ + 1055.773775, + 0.703446, + 82.207031, + 77.441406 + ], + [ + 1055.778701, + 0.703446, + 83.808594, + 78.125 + ], + [ + 1055.783775, + 0.703446, + 83.808594, + 78.125 + ], + [ + 1055.78874, + 0.703446, + 83.808594, + 78.125 + ], + [ + 1055.793705, + 0.703446, + 83.808594, + 78.125 + ], + [ + 1055.79904, + 0.703446, + 85.419922, + 78.90625 + ], + [ + 1055.803696, + 0.703446, + 85.419922, + 78.90625 + ], + [ + 1055.808738, + 0.703446, + 85.419922, + 78.90625 + ], + [ + 1055.813803, + 0.715787, + 85.419922, + 78.90625 + ], + [ + 1055.819029, + 0.715787, + 87.001953, + 79.101562 + ], + [ + 1055.823778, + 0.715787, + 87.001953, + 79.101562 + ], + [ + 1055.828875, + 0.715787, + 87.001953, + 79.101562 + ], + [ + 1055.833712, + 0.715787, + 87.001953, + 79.101562 + ], + [ + 1055.838683, + 0.715787, + 87.001953, + 79.101562 + ], + [ + 1055.843709, + 0.715787, + 90.253906, + 80.46875 + ], + [ + 1055.848672, + 0.715787, + 90.253906, + 80.46875 + ], + [ + 1055.853694, + 0.72197, + 90.253906, + 80.46875 + ], + [ + 1055.858692, + 0.72197, + 90.253906, + 80.46875 + ], + [ + 1055.863722, + 0.728128, + 91.904297, + 80.761719 + ], + [ + 1055.868669, + 0.728128, + 91.904297, + 80.761719 + ], + [ + 1055.873773, + 0.728128, + 91.904297, + 80.761719 + ], + [ + 1055.878692, + 0.728128, + 91.904297, + 80.761719 + ], + [ + 1055.883715, + 0.728128, + 93.574219, + 81.445312 + ], + [ + 1055.888717, + 0.728128, + 93.574219, + 81.445312 + ], + [ + 1055.893734, + 0.728128, + 93.574219, + 81.445312 + ], + [ + 1055.89886, + 0.728128, + 93.574219, + 81.445312 + ], + [ + 1055.903744, + 0.728128, + 95.244141, + 82.421875 + ], + [ + 1055.908799, + 0.728128, + 95.244141, + 82.421875 + ], + [ + 1055.91368, + 0.728128, + 95.244141, + 82.421875 + ], + [ + 1055.918691, + 0.728128, + 95.244141, + 82.421875 + ], + [ + 1055.923738, + 0.734311, + 96.923828, + 82.910156 + ], + [ + 1055.928676, + 0.734311, + 96.923828, + 82.910156 + ], + [ + 1055.933739, + 0.740469, + 96.923828, + 82.910156 + ], + [ + 1055.9387, + 0.740469, + 96.923828, + 82.910156 + ], + [ + 1055.94369, + 0.741935, + 98.59375, + 83.496094 + ], + [ + 1055.948683, + 0.741935, + 98.59375, + 83.496094 + ], + [ + 1055.953671, + 0.741935, + 98.59375, + 83.496094 + ], + [ + 1055.958684, + 0.741935, + 98.59375, + 83.496094 + ], + [ + 1055.963686, + 0.741935, + 100.273438, + 83.789062 + ], + [ + 1055.968672, + 0.741935, + 100.273438, + 83.789062 + ], + [ + 1055.973705, + 0.741935, + 100.273438, + 83.789062 + ], + [ + 1055.9787, + 0.741935, + 100.273438, + 83.789062 + ], + [ + 1055.983736, + 0.748118, + 101.962891, + 83.886719 + ], + [ + 1055.988664, + 0.748118, + 101.962891, + 83.886719 + ], + [ + 1055.99383, + 0.754301, + 101.962891, + 83.886719 + ], + [ + 1055.998685, + 0.754301, + 101.962891, + 83.886719 + ], + [ + 1056.004199, + 0.754301, + 103.681641, + 84.277344 + ], + [ + 1056.008733, + 0.754301, + 103.681641, + 84.277344 + ], + [ + 1056.01369, + 0.754301, + 103.681641, + 84.277344 + ], + [ + 1056.018766, + 0.754301, + 103.681641, + 84.277344 + ], + [ + 1056.023717, + 0.754301, + 103.681641, + 84.277344 + ], + [ + 1056.02876, + 0.754301, + 105.419922, + 84.863281 + ], + [ + 1056.03371, + 0.754301, + 105.419922, + 84.863281 + ], + [ + 1056.038716, + 0.754301, + 105.419922, + 84.863281 + ], + [ + 1056.043831, + 0.754301, + 105.419922, + 84.863281 + ], + [ + 1056.048733, + 0.766667, + 107.138672, + 85.351562 + ], + [ + 1056.053688, + 0.766667, + 107.138672, + 85.351562 + ], + [ + 1056.058693, + 0.766667, + 107.138672, + 85.351562 + ], + [ + 1056.063688, + 0.766667, + 107.138672, + 85.351562 + ], + [ + 1056.068721, + 0.766667, + 108.90625, + 86.230469 + ], + [ + 1056.073679, + 0.766667, + 108.90625, + 86.230469 + ], + [ + 1056.078698, + 0.766667, + 108.90625, + 86.230469 + ], + [ + 1056.083779, + 0.766667, + 108.90625, + 86.230469 + ], + [ + 1056.088705, + 0.766667, + 110.673828, + 87.011719 + ], + [ + 1056.093655, + 0.766667, + 110.673828, + 87.011719 + ], + [ + 1056.098696, + 0.779032, + 110.673828, + 87.011719 + ], + [ + 1056.103682, + 0.779032, + 110.673828, + 87.011719 + ], + [ + 1056.108763, + 0.779032, + 112.441406, + 87.597656 + ], + [ + 1056.113655, + 0.779032, + 112.441406, + 87.597656 + ], + [ + 1056.118697, + 0.779032, + 112.441406, + 87.597656 + ], + [ + 1056.123743, + 0.779032, + 112.441406, + 87.597656 + ], + [ + 1056.128791, + 0.779032, + 114.257812, + 88.378906 + ], + [ + 1056.133679, + 0.779032, + 114.257812, + 88.378906 + ], + [ + 1056.138804, + 0.779032, + 114.257812, + 88.378906 + ], + [ + 1056.143685, + 0.779032, + 114.257812, + 88.378906 + ], + [ + 1056.148839, + 0.779032, + 116.083984, + 89.355469 + ], + [ + 1056.153664, + 0.779032, + 116.083984, + 89.355469 + ], + [ + 1056.158707, + 0.785215, + 116.083984, + 89.355469 + ], + [ + 1056.16368, + 0.785215, + 116.083984, + 89.355469 + ], + [ + 1056.168732, + 0.791398, + 117.900391, + 90.039062 + ], + [ + 1056.173662, + 0.791398, + 117.900391, + 90.039062 + ], + [ + 1056.178775, + 0.791398, + 117.900391, + 90.039062 + ], + [ + 1056.183782, + 0.789834, + 117.900391, + 90.039062 + ], + [ + 1056.188713, + 0.789834, + 119.726562, + 90.625 + ], + [ + 1056.19367, + 0.789834, + 119.726562, + 90.625 + ], + [ + 1056.198702, + 0.789834, + 119.726562, + 90.625 + ], + [ + 1056.203675, + 0.789834, + 119.726562, + 90.625 + ], + [ + 1056.208773, + 0.789834, + 121.542969, + 91.015625 + ], + [ + 1056.213664, + 0.789834, + 121.542969, + 91.015625 + ], + [ + 1056.218815, + 0.802175, + 121.542969, + 91.015625 + ], + [ + 1056.223645, + 0.802175, + 121.542969, + 91.015625 + ], + [ + 1056.230632, + 0.802175, + 123.427734, + 91.699219 + ], + [ + 1056.233707, + 0.802175, + 123.427734, + 91.699219 + ], + [ + 1056.238695, + 0.802175, + 123.427734, + 91.699219 + ], + [ + 1056.243701, + 0.802175, + 123.427734, + 91.699219 + ], + [ + 1056.24871, + 0.802175, + 123.427734, + 91.699219 + ], + [ + 1056.253783, + 0.802175, + 125.341797, + 92.578125 + ], + [ + 1056.258681, + 0.802175, + 125.341797, + 92.578125 + ], + [ + 1056.263752, + 0.808358, + 125.341797, + 92.578125 + ], + [ + 1056.268726, + 0.808358, + 125.341797, + 92.578125 + ], + [ + 1056.273739, + 0.814516, + 127.216797, + 93.066406 + ], + [ + 1056.278808, + 0.814516, + 127.216797, + 93.066406 + ], + [ + 1056.283758, + 0.814516, + 127.216797, + 93.066406 + ], + [ + 1056.288895, + 0.814516, + 127.216797, + 93.066406 + ], + [ + 1056.293715, + 0.814516, + 129.140625, + 94.140625 + ], + [ + 1056.298682, + 0.814516, + 129.140625, + 94.140625 + ], + [ + 1056.303744, + 0.814516, + 129.140625, + 94.140625 + ], + [ + 1056.308702, + 0.814516, + 129.140625, + 94.140625 + ], + [ + 1056.313721, + 0.814516, + 131.083984, + 95.3125 + ], + [ + 1056.318687, + 0.814516, + 131.083984, + 95.3125 + ], + [ + 1056.323779, + 0.820699, + 131.083984, + 95.3125 + ], + [ + 1056.328757, + 0.820699, + 131.083984, + 95.3125 + ], + [ + 1056.333717, + 0.820699, + 133.007812, + 95.800781 + ], + [ + 1056.338743, + 0.820699, + 133.007812, + 95.800781 + ], + [ + 1056.343702, + 0.826857, + 133.007812, + 95.800781 + ], + [ + 1056.348671, + 0.826857, + 133.007812, + 95.800781 + ], + [ + 1056.353695, + 0.826857, + 134.990234, + 96.484375 + ], + [ + 1056.358698, + 0.826857, + 134.990234, + 96.484375 + ], + [ + 1056.363786, + 0.826857, + 134.990234, + 96.484375 + ], + [ + 1056.368662, + 0.826857, + 134.990234, + 96.484375 + ], + [ + 1056.373823, + 0.826857, + 136.943359, + 97.363281 + ], + [ + 1056.378756, + 0.826857, + 136.943359, + 97.363281 + ], + [ + 1056.383699, + 0.83304, + 136.943359, + 97.363281 + ], + [ + 1056.388665, + 0.83304, + 136.943359, + 97.363281 + ], + [ + 1056.393687, + 0.83304, + 138.896484, + 97.363281 + ], + [ + 1056.398761, + 0.83304, + 138.896484, + 97.363281 + ], + [ + 1056.40375, + 0.839198, + 138.896484, + 97.363281 + ], + [ + 1056.408667, + 0.839198, + 138.896484, + 97.363281 + ], + [ + 1056.41369, + 0.839198, + 140.869141, + 97.851562 + ], + [ + 1056.4188, + 0.839198, + 140.869141, + 97.851562 + ], + [ + 1056.423689, + 0.839198, + 140.869141, + 97.851562 + ], + [ + 1056.428722, + 0.839198, + 140.869141, + 97.851562 + ], + [ + 1056.433733, + 0.839198, + 142.851562, + 98.4375 + ], + [ + 1056.43872, + 0.839198, + 142.851562, + 98.4375 + ], + [ + 1056.443744, + 0.839198, + 142.851562, + 98.4375 + ], + [ + 1056.448664, + 0.839198, + 142.851562, + 98.4375 + ], + [ + 1056.45369, + 0.85154, + 144.902344, + 99.121094 + ], + [ + 1056.458684, + 0.85154, + 144.902344, + 99.121094 + ], + [ + 1056.46367, + 0.85154, + 144.902344, + 99.121094 + ], + [ + 1056.468661, + 0.85154, + 144.902344, + 99.121094 + ], + [ + 1056.473744, + 0.85154, + 146.943359, + 99.804688 + ], + [ + 1056.478696, + 0.85154, + 146.943359, + 99.804688 + ], + [ + 1056.483711, + 0.85154, + 146.943359, + 99.804688 + ], + [ + 1056.488774, + 0.85154, + 146.943359, + 99.804688 + ], + [ + 1056.493732, + 0.85154, + 148.984375, + 100.878906 + ], + [ + 1056.498695, + 0.85154, + 148.984375, + 100.878906 + ], + [ + 1056.5037, + 0.85154, + 148.984375, + 100.878906 + ], + [ + 1056.50873, + 0.85154, + 148.984375, + 100.878906 + ], + [ + 1056.513726, + 0.863881, + 151.044922, + 101.660156 + ], + [ + 1056.518718, + 0.863881, + 151.044922, + 101.660156 + ], + [ + 1056.523721, + 0.863881, + 151.044922, + 101.660156 + ], + [ + 1056.528696, + 0.863881, + 151.044922, + 101.660156 + ], + [ + 1056.533727, + 0.863881, + 153.115234, + 102.539062 + ], + [ + 1056.538722, + 0.863881, + 153.115234, + 102.539062 + ], + [ + 1056.543845, + 0.863881, + 153.115234, + 102.539062 + ], + [ + 1056.548708, + 0.863881, + 153.115234, + 102.539062 + ], + [ + 1056.553731, + 0.863881, + 155.224609, + 103.222656 + ], + [ + 1056.558755, + 0.863881, + 155.224609, + 103.222656 + ], + [ + 1056.563701, + 0.870064, + 155.224609, + 103.222656 + ], + [ + 1056.568664, + 0.870064, + 155.224609, + 103.222656 + ], + [ + 1056.573688, + 0.876222, + 157.324219, + 103.90625 + ], + [ + 1056.578694, + 0.876222, + 157.324219, + 103.90625 + ], + [ + 1056.583706, + 0.876222, + 157.324219, + 103.90625 + ], + [ + 1056.589446, + 0.876222, + 157.324219, + 103.90625 + ], + [ + 1056.593766, + 0.876222, + 159.453125, + 104.785156 + ], + [ + 1056.59887, + 0.876222, + 159.453125, + 104.785156 + ], + [ + 1056.603725, + 0.876222, + 159.453125, + 104.785156 + ], + [ + 1056.608743, + 0.876222, + 159.453125, + 104.785156 + ], + [ + 1056.613734, + 0.882405, + 161.552734, + 105.078125 + ], + [ + 1056.61883, + 0.882405, + 161.552734, + 105.078125 + ], + [ + 1056.62372, + 0.882405, + 161.552734, + 105.078125 + ], + [ + 1056.628681, + 0.882405, + 161.552734, + 105.078125 + ], + [ + 1056.633681, + 0.888563, + 163.701172, + 105.859375 + ], + [ + 1056.638717, + 0.888563, + 163.701172, + 105.859375 + ], + [ + 1056.643723, + 0.888563, + 163.701172, + 105.859375 + ], + [ + 1056.648667, + 0.888563, + 163.701172, + 105.859375 + ], + [ + 1056.653816, + 0.888563, + 165.859375, + 106.25 + ], + [ + 1056.658682, + 0.888563, + 165.859375, + 106.25 + ], + [ + 1056.663725, + 0.888563, + 165.859375, + 106.25 + ], + [ + 1056.668673, + 0.888563, + 165.859375, + 106.25 + ], + [ + 1056.67369, + 0.894746, + 168.017578, + 106.933594 + ], + [ + 1056.678681, + 0.894746, + 168.017578, + 106.933594 + ], + [ + 1056.683725, + 0.900904, + 168.017578, + 106.933594 + ], + [ + 1056.688683, + 0.900904, + 168.017578, + 106.933594 + ], + [ + 1056.693741, + 0.900904, + 170.175781, + 107.128906 + ], + [ + 1056.698808, + 0.89912, + 170.175781, + 107.128906 + ], + [ + 1056.703679, + 0.89912, + 170.175781, + 107.128906 + ], + [ + 1056.708745, + 0.89912, + 170.175781, + 107.128906 + ], + [ + 1056.713737, + 0.89912, + 172.402344, + 108.398438 + ], + [ + 1056.718685, + 0.89912, + 172.402344, + 108.398438 + ], + [ + 1056.723803, + 0.905279, + 172.402344, + 108.398438 + ], + [ + 1056.728701, + 0.905279, + 172.402344, + 108.398438 + ], + [ + 1056.73371, + 0.905279, + 174.628906, + 109.179688 + ], + [ + 1056.738688, + 0.905279, + 174.628906, + 109.179688 + ], + [ + 1056.74375, + 0.911437, + 174.628906, + 109.179688 + ], + [ + 1056.748812, + 0.911437, + 174.628906, + 109.179688 + ], + [ + 1056.753729, + 0.911437, + 176.865234, + 110.058594 + ], + [ + 1056.7587, + 0.911437, + 176.865234, + 110.058594 + ], + [ + 1056.763857, + 0.911437, + 176.865234, + 110.058594 + ], + [ + 1056.768843, + 0.911437, + 176.865234, + 110.058594 + ], + [ + 1056.773712, + 0.911437, + 179.101562, + 110.742188 + ], + [ + 1056.77875, + 0.911437, + 179.101562, + 110.742188 + ], + [ + 1056.783744, + 0.911437, + 179.101562, + 110.742188 + ], + [ + 1056.788709, + 0.911437, + 179.101562, + 110.742188 + ], + [ + 1056.793742, + 0.917595, + 181.308594, + 111.328125 + ], + [ + 1056.798678, + 0.917595, + 181.308594, + 111.328125 + ], + [ + 1056.803692, + 0.923754, + 181.308594, + 111.328125 + ], + [ + 1056.808665, + 0.923754, + 181.308594, + 111.328125 + ], + [ + 1056.813686, + 0.923754, + 183.564453, + 111.621094 + ], + [ + 1056.818858, + 0.923754, + 183.564453, + 111.621094 + ], + [ + 1056.823716, + 0.923754, + 183.564453, + 111.621094 + ], + [ + 1056.828671, + 0.923754, + 183.564453, + 111.621094 + ], + [ + 1056.833689, + 0.923754, + 185.849609, + 112.207031 + ], + [ + 1056.838685, + 0.923754, + 185.849609, + 112.207031 + ], + [ + 1056.846102, + 0.93607, + 185.849609, + 112.207031 + ], + [ + 1056.848674, + 0.93607, + 185.849609, + 112.207031 + ], + [ + 1056.853693, + 0.93607, + 188.125, + 112.695312 + ], + [ + 1056.858701, + 0.93607, + 188.125, + 112.695312 + ], + [ + 1056.86377, + 0.93607, + 188.125, + 112.695312 + ], + [ + 1056.868727, + 0.93607, + 188.125, + 112.695312 + ], + [ + 1056.873694, + 0.93607, + 190.439453, + 113.28125 + ], + [ + 1056.87871, + 0.93607, + 190.439453, + 113.28125 + ], + [ + 1056.883654, + 0.93607, + 190.439453, + 113.28125 + ], + [ + 1056.888709, + 0.93607, + 190.439453, + 113.28125 + ], + [ + 1056.893675, + 0.93607, + 192.734375, + 114.257812 + ], + [ + 1056.8987, + 0.93607, + 192.734375, + 114.257812 + ], + [ + 1056.903655, + 0.93607, + 192.734375, + 114.257812 + ], + [ + 1056.908702, + 0.948387, + 192.734375, + 114.257812 + ], + [ + 1056.913676, + 0.948387, + 195.087891, + 115.234375 + ], + [ + 1056.91878, + 0.960704, + 195.087891, + 115.234375 + ], + [ + 1056.923646, + 0.960704, + 195.087891, + 115.234375 + ], + [ + 1056.928686, + 0.960704, + 195.087891, + 115.234375 + ], + [ + 1056.933751, + 0.960704, + 197.490234, + 116.308594 + ], + [ + 1056.938702, + 0.960704, + 197.490234, + 116.308594 + ], + [ + 1056.943693, + 0.960704, + 197.490234, + 116.308594 + ], + [ + 1056.949152, + 0.960704, + 197.490234, + 116.308594 + ], + [ + 1056.953754, + 0.960704, + 199.853516, + 117.1875 + ], + [ + 1056.958753, + 0.960704, + 199.853516, + 117.1875 + ], + [ + 1056.96383, + 0.966862, + 199.853516, + 117.1875 + ], + [ + 1056.96879, + 0.966862, + 199.853516, + 117.1875 + ], + [ + 1056.973728, + 0.973021, + 202.255859, + 118.261719 + ], + [ + 1056.978684, + 0.973021, + 202.255859, + 118.261719 + ], + [ + 1056.983697, + 0.973021, + 202.255859, + 118.261719 + ], + [ + 1056.988753, + 0.973021, + 202.255859, + 118.261719 + ], + [ + 1056.993736, + 0.973021, + 204.736328, + 119.824219 + ], + [ + 1056.998683, + 0.973021, + 204.736328, + 119.824219 + ], + [ + 1057.003696, + 0.973021, + 204.736328, + 119.824219 + ], + [ + 1057.008726, + 0.973021, + 204.736328, + 119.824219 + ], + [ + 1057.013704, + 0.973021, + 207.216797, + 121.191406 + ], + [ + 1057.018702, + 0.973021, + 207.216797, + 121.191406 + ], + [ + 1057.023698, + 0.979179, + 207.216797, + 121.191406 + ], + [ + 1057.028728, + 0.979179, + 207.216797, + 121.191406 + ], + [ + 1057.033705, + 0.985337, + 209.667969, + 121.875 + ], + [ + 1057.038741, + 0.985337, + 209.667969, + 121.875 + ], + [ + 1057.043666, + 0.985337, + 209.667969, + 121.875 + ], + [ + 1057.048706, + 0.985337, + 209.667969, + 121.875 + ], + [ + 1057.053754, + 0.985337, + 212.158203, + 122.949219 + ], + [ + 1057.058687, + 0.985337, + 212.158203, + 122.949219 + ], + [ + 1057.063724, + 0.985337, + 212.158203, + 122.949219 + ], + [ + 1057.068774, + 0.985337, + 212.158203, + 122.949219 + ], + [ + 1057.073697, + 0.991496, + 214.658203, + 123.925781 + ], + [ + 1057.078841, + 0.991496, + 214.658203, + 123.925781 + ], + [ + 1057.083682, + 0.991496, + 214.658203, + 123.925781 + ], + [ + 1057.08895, + 0.991496, + 214.658203, + 123.925781 + ], + [ + 1057.093691, + 0.997654, + 217.158203, + 124.21875 + ], + [ + 1057.098686, + 0.997654, + 217.158203, + 124.21875 + ], + [ + 1057.103671, + 0.997654, + 217.158203, + 124.21875 + ], + [ + 1057.108714, + 0.997654, + 217.158203, + 124.21875 + ], + [ + 1057.113719, + 0.997654, + 219.6875, + 124.804688 + ], + [ + 1057.118742, + 0.997654, + 219.6875, + 124.804688 + ], + [ + 1057.123752, + 0.997654, + 219.6875, + 124.804688 + ], + [ + 1057.128661, + 0.997654, + 219.6875, + 124.804688 + ], + [ + 1057.133712, + 0.997654, + 222.216797, + 125.488281 + ], + [ + 1057.138732, + 0.997654, + 222.216797, + 125.488281 + ], + [ + 1057.14367, + 1.003812, + 222.216797, + 125.488281 + ], + [ + 1057.148663, + 1.003812, + 222.216797, + 125.488281 + ], + [ + 1057.153751, + 1.009971, + 224.775391, + 126.171875 + ], + [ + 1057.158731, + 1.009971, + 224.775391, + 126.171875 + ], + [ + 1057.163684, + 1.009971, + 224.775391, + 126.171875 + ], + [ + 1057.168675, + 1.009971, + 224.775391, + 126.171875 + ], + [ + 1057.173698, + 1.009971, + 227.363281, + 126.855469 + ], + [ + 1057.178669, + 1.011975, + 227.363281, + 126.855469 + ], + [ + 1057.183766, + 1.011975, + 227.363281, + 126.855469 + ], + [ + 1057.188702, + 1.011975, + 227.363281, + 126.855469 + ], + [ + 1057.193728, + 1.018157, + 229.941406, + 127.832031 + ], + [ + 1057.19868, + 1.018157, + 229.941406, + 127.832031 + ], + [ + 1057.203739, + 1.018157, + 229.941406, + 127.832031 + ], + [ + 1057.208916, + 1.018157, + 229.941406, + 127.832031 + ], + [ + 1057.21371, + 1.024316, + 232.548828, + 128.515625 + ], + [ + 1057.218686, + 1.024316, + 232.548828, + 128.515625 + ], + [ + 1057.223704, + 1.024316, + 232.548828, + 128.515625 + ], + [ + 1057.22872, + 1.024316, + 232.548828, + 128.515625 + ], + [ + 1057.233812, + 1.024316, + 235.214844, + 129.882812 + ], + [ + 1057.238676, + 1.024316, + 235.214844, + 129.882812 + ], + [ + 1057.243705, + 1.024316, + 235.214844, + 129.882812 + ], + [ + 1057.248703, + 1.024316, + 235.214844, + 129.882812 + ], + [ + 1057.253726, + 1.030499, + 237.841797, + 130.566406 + ], + [ + 1057.258817, + 1.030499, + 237.841797, + 130.566406 + ], + [ + 1057.263718, + 1.030499, + 237.841797, + 130.566406 + ], + [ + 1057.268713, + 1.030499, + 237.841797, + 130.566406 + ], + [ + 1057.273744, + 1.036657, + 240.458984, + 130.957031 + ], + [ + 1057.278693, + 1.036657, + 240.458984, + 130.957031 + ], + [ + 1057.283708, + 1.036657, + 240.458984, + 130.957031 + ], + [ + 1057.288675, + 1.036657, + 240.458984, + 130.957031 + ], + [ + 1057.293713, + 1.036657, + 243.066406, + 131.347656 + ], + [ + 1057.298699, + 1.036657, + 243.066406, + 131.347656 + ], + [ + 1057.303806, + 1.036657, + 243.066406, + 131.347656 + ], + [ + 1057.308694, + 1.036657, + 243.066406, + 131.347656 + ], + [ + 1057.313781, + 1.036657, + 245.771484, + 132.128906 + ], + [ + 1057.318693, + 1.036657, + 245.771484, + 132.128906 + ], + [ + 1057.323665, + 1.04284, + 245.771484, + 132.128906 + ], + [ + 1057.329076, + 1.04284, + 245.771484, + 132.128906 + ], + [ + 1057.33373, + 1.048998, + 248.4375, + 132.226562 + ], + [ + 1057.338686, + 1.048998, + 248.4375, + 132.226562 + ], + [ + 1057.343675, + 1.048998, + 248.4375, + 132.226562 + ], + [ + 1057.348672, + 1.048998, + 248.4375, + 132.226562 + ], + [ + 1057.353891, + 1.048998, + 251.171875, + 133.300781 + ], + [ + 1057.35878, + 1.048998, + 251.171875, + 133.300781 + ], + [ + 1057.363865, + 1.048998, + 251.171875, + 133.300781 + ], + [ + 1057.368693, + 1.055156, + 251.171875, + 133.300781 + ], + [ + 1057.373685, + 1.055156, + 251.171875, + 133.300781 + ], + [ + 1057.378701, + 1.055156, + 253.916016, + 134.667969 + ], + [ + 1057.383676, + 1.061339, + 253.916016, + 134.667969 + ], + [ + 1057.388682, + 1.061339, + 253.916016, + 134.667969 + ], + [ + 1057.393674, + 1.061339, + 253.916016, + 134.667969 + ], + [ + 1057.398703, + 1.061339, + 256.699219, + 136.132812 + ], + [ + 1057.403665, + 1.061339, + 256.699219, + 136.132812 + ], + [ + 1057.408782, + 1.061339, + 256.699219, + 136.132812 + ], + [ + 1057.413664, + 1.061339, + 256.699219, + 136.132812 + ], + [ + 1057.418689, + 1.061339, + 259.492188, + 137.207031 + ], + [ + 1057.423693, + 1.061339, + 259.492188, + 137.207031 + ], + [ + 1057.428714, + 1.067498, + 259.492188, + 137.207031 + ], + [ + 1057.433814, + 1.07368, + 259.492188, + 137.207031 + ], + [ + 1057.438701, + 1.07368, + 262.275391, + 138.28125 + ], + [ + 1057.44375, + 1.07368, + 262.275391, + 138.28125 + ], + [ + 1057.448875, + 1.07368, + 262.275391, + 138.28125 + ], + [ + 1057.453701, + 1.07368, + 262.275391, + 138.28125 + ], + [ + 1057.458744, + 1.07368, + 265.097656, + 139.257812 + ], + [ + 1057.46372, + 1.07368, + 265.097656, + 139.257812 + ], + [ + 1057.468729, + 1.07368, + 265.097656, + 139.257812 + ], + [ + 1057.473718, + 1.07368, + 265.097656, + 139.257812 + ], + [ + 1057.478705, + 1.079839, + 267.939453, + 140.136719 + ], + [ + 1057.48375, + 1.086022, + 267.939453, + 140.136719 + ], + [ + 1057.488739, + 1.086022, + 267.939453, + 140.136719 + ], + [ + 1057.493712, + 1.086022, + 267.939453, + 140.136719 + ], + [ + 1057.498698, + 1.086022, + 270.78125, + 140.722656 + ], + [ + 1057.503696, + 1.086022, + 270.78125, + 140.722656 + ], + [ + 1057.508724, + 1.086022, + 270.78125, + 140.722656 + ], + [ + 1057.513737, + 1.086022, + 270.78125, + 140.722656 + ], + [ + 1057.518712, + 1.086022, + 273.632812, + 141.503906 + ], + [ + 1057.523667, + 1.086022, + 273.632812, + 141.503906 + ], + [ + 1057.528735, + 1.086022, + 273.632812, + 141.503906 + ], + [ + 1057.533796, + 1.086022, + 273.632812, + 141.503906 + ], + [ + 1057.538776, + 1.09218, + 276.523438, + 142.578125 + ], + [ + 1057.543711, + 1.09218, + 276.523438, + 142.578125 + ], + [ + 1057.54868, + 1.086022, + 276.523438, + 142.578125 + ], + [ + 1057.554013, + 1.092204, + 276.523438, + 142.578125 + ], + [ + 1057.558778, + 1.098363, + 279.394531, + 142.871094 + ], + [ + 1057.563757, + 1.098363, + 279.394531, + 142.871094 + ], + [ + 1057.568689, + 1.098363, + 279.394531, + 142.871094 + ], + [ + 1057.573697, + 1.098363, + 279.394531, + 142.871094 + ], + [ + 1057.578719, + 1.098363, + 282.236328, + 142.96875 + ], + [ + 1057.583744, + 1.098363, + 282.236328, + 142.96875 + ], + [ + 1057.588687, + 1.098363, + 282.236328, + 142.96875 + ], + [ + 1057.593733, + 1.098363, + 282.236328, + 142.96875 + ], + [ + 1057.598746, + 1.104521, + 285.136719, + 143.652344 + ], + [ + 1057.603682, + 1.110704, + 285.136719, + 143.652344 + ], + [ + 1057.608696, + 1.110704, + 285.136719, + 143.652344 + ], + [ + 1057.613668, + 1.110704, + 285.136719, + 143.652344 + ], + [ + 1057.618824, + 1.110704, + 288.037109, + 143.945312 + ], + [ + 1057.623681, + 1.110704, + 288.037109, + 143.945312 + ], + [ + 1057.628684, + 1.110704, + 288.037109, + 143.945312 + ], + [ + 1057.633664, + 1.110704, + 288.037109, + 143.945312 + ], + [ + 1057.638818, + 1.110704, + 290.976562, + 144.335938 + ], + [ + 1057.643663, + 1.110704, + 290.976562, + 144.335938 + ], + [ + 1057.648682, + 1.110704, + 290.976562, + 144.335938 + ], + [ + 1057.653688, + 1.110704, + 290.976562, + 144.335938 + ], + [ + 1057.658683, + 1.116862, + 293.955078, + 145.507812 + ], + [ + 1057.665638, + 1.123045, + 293.955078, + 145.507812 + ], + [ + 1057.668723, + 1.123045, + 293.955078, + 145.507812 + ], + [ + 1057.673696, + 1.123045, + 293.955078, + 145.507812 + ], + [ + 1057.678699, + 1.123045, + 296.953125, + 147.167969 + ], + [ + 1057.683695, + 1.123045, + 296.953125, + 147.167969 + ], + [ + 1057.688845, + 1.123045, + 296.953125, + 147.167969 + ], + [ + 1057.693674, + 1.123045, + 296.953125, + 147.167969 + ], + [ + 1057.698812, + 1.123045, + 299.951172, + 148.144531 + ], + [ + 1057.703691, + 1.123045, + 299.951172, + 148.144531 + ], + [ + 1057.708737, + 1.123045, + 299.951172, + 148.144531 + ], + [ + 1057.713723, + 1.123045, + 299.951172, + 148.144531 + ], + [ + 1057.718715, + 1.129203, + 302.949219, + 149.121094 + ], + [ + 1057.723797, + 1.129203, + 302.949219, + 149.121094 + ], + [ + 1057.728713, + 1.135386, + 302.949219, + 149.121094 + ], + [ + 1057.733692, + 1.135386, + 302.949219, + 149.121094 + ], + [ + 1057.738771, + 1.135386, + 305.966797, + 149.804688 + ], + [ + 1057.743693, + 1.135386, + 305.966797, + 149.804688 + ], + [ + 1057.748817, + 1.135386, + 305.966797, + 149.804688 + ], + [ + 1057.753697, + 1.135386, + 305.966797, + 149.804688 + ], + [ + 1057.758866, + 1.141569, + 308.984375, + 150.292969 + ], + [ + 1057.763655, + 1.141569, + 308.984375, + 150.292969 + ], + [ + 1057.768922, + 1.135386, + 308.984375, + 150.292969 + ], + [ + 1057.773816, + 1.135386, + 308.984375, + 150.292969 + ], + [ + 1057.778707, + 1.135386, + 312.021484, + 150.585938 + ], + [ + 1057.783677, + 1.147727, + 312.021484, + 150.585938 + ], + [ + 1057.788715, + 1.147727, + 312.021484, + 150.585938 + ], + [ + 1057.793675, + 1.147727, + 312.021484, + 150.585938 + ], + [ + 1057.798848, + 1.147727, + 315.087891, + 151.269531 + ], + [ + 1057.803669, + 1.147727, + 315.087891, + 151.269531 + ], + [ + 1057.808685, + 1.147727, + 315.087891, + 151.269531 + ], + [ + 1057.813772, + 1.147727, + 315.087891, + 151.269531 + ], + [ + 1057.818712, + 1.147727, + 318.144531, + 151.953125 + ], + [ + 1057.823785, + 1.147727, + 318.144531, + 151.953125 + ], + [ + 1057.828857, + 1.147727, + 318.144531, + 151.953125 + ], + [ + 1057.833677, + 1.160068, + 318.144531, + 151.953125 + ], + [ + 1057.838702, + 1.160068, + 321.181641, + 152.246094 + ], + [ + 1057.843672, + 1.160068, + 321.181641, + 152.246094 + ], + [ + 1057.848783, + 1.160068, + 321.181641, + 152.246094 + ], + [ + 1057.853688, + 1.160068, + 321.181641, + 152.246094 + ], + [ + 1057.858745, + 1.160068, + 324.287109, + 153.027344 + ], + [ + 1057.863666, + 1.160068, + 324.287109, + 153.027344 + ], + [ + 1057.870827, + 1.160068, + 324.287109, + 153.027344 + ], + [ + 1057.873702, + 1.166227, + 324.287109, + 153.027344 + ], + [ + 1057.878706, + 1.166227, + 327.412109, + 153.90625 + ], + [ + 1057.884106, + 1.160068, + 327.412109, + 153.90625 + ], + [ + 1057.888664, + 1.160068, + 327.412109, + 153.90625 + ], + [ + 1057.893644, + 1.160068, + 327.412109, + 153.90625 + ], + [ + 1057.898823, + 1.17241, + 330.546875, + 154.492188 + ], + [ + 1057.903656, + 1.17241, + 330.546875, + 154.492188 + ], + [ + 1057.90873, + 1.17241, + 330.546875, + 154.492188 + ], + [ + 1057.913692, + 1.17241, + 330.546875, + 154.492188 + ], + [ + 1057.918702, + 1.17241, + 333.720703, + 155.566406 + ], + [ + 1057.923728, + 1.17241, + 333.720703, + 155.566406 + ], + [ + 1057.928913, + 1.17241, + 333.720703, + 155.566406 + ], + [ + 1057.9337, + 1.17241, + 333.720703, + 155.566406 + ], + [ + 1057.938775, + 1.17241, + 336.884766, + 157.03125 + ], + [ + 1057.943674, + 1.17241, + 336.884766, + 157.03125 + ], + [ + 1057.94872, + 1.17241, + 336.884766, + 157.03125 + ], + [ + 1057.9537, + 1.178568, + 336.884766, + 157.03125 + ], + [ + 1057.958888, + 1.184751, + 340.009766, + 157.226562 + ], + [ + 1057.963693, + 1.178592, + 340.009766, + 157.226562 + ], + [ + 1057.968776, + 1.178592, + 340.009766, + 157.226562 + ], + [ + 1057.973837, + 1.184751, + 340.009766, + 157.226562 + ], + [ + 1057.978713, + 1.184751, + 340.009766, + 157.226562 + ], + [ + 1057.984152, + 1.184751, + 346.376953, + 158.398438 + ], + [ + 1057.988873, + 1.184751, + 346.376953, + 158.398438 + ], + [ + 1057.993693, + 1.184751, + 346.376953, + 158.398438 + ], + [ + 1057.99881, + 1.184751, + 346.376953, + 158.398438 + ], + [ + 1058.003647, + 1.184751, + 346.376953, + 158.398438 + ], + [ + 1058.008859, + 1.190909, + 349.589844, + 158.691406 + ], + [ + 1058.013658, + 1.190909, + 349.589844, + 158.691406 + ], + [ + 1058.018712, + 1.197092, + 349.589844, + 158.691406 + ], + [ + 1058.02369, + 1.197092, + 349.589844, + 158.691406 + ], + [ + 1058.0287, + 1.197092, + 352.822266, + 159.277344 + ], + [ + 1058.033728, + 1.197092, + 352.822266, + 159.277344 + ], + [ + 1058.038759, + 1.197092, + 352.822266, + 159.277344 + ], + [ + 1058.043704, + 1.197092, + 352.822266, + 159.277344 + ], + [ + 1058.048671, + 1.197092, + 356.123047, + 161.035156 + ], + [ + 1058.053674, + 1.197092, + 356.123047, + 161.035156 + ], + [ + 1058.05872, + 1.197092, + 356.123047, + 161.035156 + ], + [ + 1058.063646, + 1.197092, + 356.123047, + 161.035156 + ], + [ + 1058.068761, + 1.20325, + 359.375, + 162.304688 + ], + [ + 1058.075635, + 1.20325, + 359.375, + 162.304688 + ], + [ + 1058.078719, + 1.203275, + 359.375, + 162.304688 + ], + [ + 1058.083757, + 1.203275, + 359.375, + 162.304688 + ], + [ + 1058.088719, + 1.209433, + 362.65625, + 162.597656 + ], + [ + 1058.093673, + 1.209433, + 362.65625, + 162.597656 + ], + [ + 1058.098718, + 1.209433, + 362.65625, + 162.597656 + ], + [ + 1058.103756, + 1.209433, + 362.65625, + 162.597656 + ], + [ + 1058.108708, + 1.209433, + 365.966797, + 163.867188 + ], + [ + 1058.113672, + 1.209433, + 365.966797, + 163.867188 + ], + [ + 1058.118693, + 1.209433, + 365.966797, + 163.867188 + ], + [ + 1058.123652, + 1.209433, + 365.966797, + 163.867188 + ], + [ + 1058.128953, + 1.221774, + 369.277344, + 164.550781 + ], + [ + 1058.133675, + 1.221774, + 369.277344, + 164.550781 + ], + [ + 1058.138742, + 1.221774, + 369.277344, + 164.550781 + ], + [ + 1058.143664, + 1.221774, + 369.277344, + 164.550781 + ], + [ + 1058.149086, + 1.221774, + 372.646484, + 165.234375 + ], + [ + 1058.153738, + 1.221774, + 372.646484, + 165.234375 + ], + [ + 1058.158674, + 1.221774, + 372.646484, + 165.234375 + ], + [ + 1058.163707, + 1.221774, + 372.646484, + 165.234375 + ], + [ + 1058.168665, + 1.221774, + 372.646484, + 165.234375 + ], + [ + 1058.173711, + 1.221774, + 376.005859, + 166.210938 + ], + [ + 1058.178747, + 1.221774, + 376.005859, + 166.210938 + ], + [ + 1058.183763, + 1.227933, + 376.005859, + 166.210938 + ], + [ + 1058.188722, + 1.227933, + 376.005859, + 166.210938 + ], + [ + 1058.193733, + 1.234115, + 379.345703, + 166.992188 + ], + [ + 1058.198698, + 1.234115, + 379.345703, + 166.992188 + ], + [ + 1058.203709, + 1.234115, + 379.345703, + 166.992188 + ], + [ + 1058.208673, + 1.234115, + 379.345703, + 166.992188 + ], + [ + 1058.213718, + 1.234115, + 382.695312, + 167.1875 + ], + [ + 1058.218691, + 1.234115, + 382.695312, + 167.1875 + ], + [ + 1058.223696, + 1.240298, + 382.695312, + 167.1875 + ], + [ + 1058.228706, + 1.240298, + 382.695312, + 167.1875 + ], + [ + 1058.233738, + 1.234115, + 386.103516, + 168.164062 + ], + [ + 1058.238754, + 1.234115, + 386.103516, + 168.164062 + ], + [ + 1058.243669, + 1.246457, + 386.103516, + 168.164062 + ], + [ + 1058.248748, + 1.246457, + 386.103516, + 168.164062 + ], + [ + 1058.253796, + 1.246457, + 389.501953, + 168.457031 + ], + [ + 1058.258703, + 1.246457, + 389.501953, + 168.457031 + ], + [ + 1058.263688, + 1.246457, + 389.501953, + 168.457031 + ], + [ + 1058.268683, + 1.246457, + 389.501953, + 168.457031 + ], + [ + 1058.273709, + 1.246457, + 392.929688, + 169.042969 + ], + [ + 1058.280277, + 1.246457, + 392.929688, + 169.042969 + ], + [ + 1058.283679, + 1.258773, + 392.929688, + 169.042969 + ], + [ + 1058.288678, + 1.258773, + 392.929688, + 169.042969 + ], + [ + 1058.293697, + 1.246457, + 396.386719, + 170.3125 + ], + [ + 1058.298776, + 1.246457, + 396.386719, + 170.3125 + ], + [ + 1058.303725, + 1.271139, + 396.386719, + 170.3125 + ], + [ + 1058.308673, + 1.271139, + 396.386719, + 170.3125 + ], + [ + 1058.313773, + 1.271139, + 399.785156, + 170.898438 + ], + [ + 1058.318651, + 1.271139, + 399.785156, + 170.898438 + ], + [ + 1058.323714, + 1.271139, + 399.785156, + 170.898438 + ], + [ + 1058.328713, + 1.271139, + 399.785156, + 170.898438 + ], + [ + 1058.333702, + 1.271139, + 403.271484, + 171.582031 + ], + [ + 1058.33868, + 1.271139, + 403.271484, + 171.582031 + ], + [ + 1058.343724, + 1.251002, + 403.271484, + 171.582031 + ], + [ + 1058.34866, + 1.251002, + 403.271484, + 171.582031 + ], + [ + 1058.353737, + 1.251002, + 406.777344, + 172.753906 + ], + [ + 1058.358646, + 1.251002, + 406.777344, + 172.753906 + ], + [ + 1058.363684, + 1.242815, + 406.777344, + 172.753906 + ], + [ + 1058.368665, + 1.242815, + 406.777344, + 172.753906 + ], + [ + 1058.373707, + 1.242815, + 410.263672, + 173.339844 + ], + [ + 1058.378702, + 1.242815, + 410.263672, + 173.339844 + ], + [ + 1058.383716, + 1.242815, + 410.263672, + 173.339844 + ], + [ + 1058.388672, + 1.242815, + 410.263672, + 173.339844 + ], + [ + 1058.393943, + 1.242815, + 413.789062, + 174.023438 + ], + [ + 1058.398688, + 1.242815, + 413.789062, + 174.023438 + ], + [ + 1058.403685, + 1.242815, + 413.789062, + 174.023438 + ], + [ + 1058.408731, + 1.242815, + 413.789062, + 174.023438 + ], + [ + 1058.413714, + 1.242815, + 413.789062, + 174.023438 + ], + [ + 1058.418729, + 1.248778, + 417.353516, + 175.488281 + ], + [ + 1058.423703, + 1.248778, + 417.353516, + 175.488281 + ], + [ + 1058.428901, + 1.254765, + 417.353516, + 175.488281 + ], + [ + 1058.433754, + 1.254765, + 417.353516, + 175.488281 + ], + [ + 1058.438705, + 1.254765, + 420.888672, + 176.269531 + ], + [ + 1058.443695, + 1.254765, + 420.888672, + 176.269531 + ], + [ + 1058.448704, + 1.254765, + 420.888672, + 176.269531 + ], + [ + 1058.453829, + 1.254765, + 420.888672, + 176.269531 + ], + [ + 1058.458717, + 1.254765, + 424.492188, + 177.050781 + ], + [ + 1058.463755, + 1.254765, + 424.492188, + 177.050781 + ], + [ + 1058.468737, + 1.260753, + 424.492188, + 177.050781 + ], + [ + 1058.47368, + 1.260753, + 424.492188, + 177.050781 + ], + [ + 1058.47882, + 1.254765, + 428.066406, + 178.125 + ], + [ + 1058.483749, + 1.260728, + 428.066406, + 178.125 + ], + [ + 1058.488696, + 1.266716, + 428.066406, + 178.125 + ], + [ + 1058.493692, + 1.266716, + 428.066406, + 178.125 + ], + [ + 1058.498694, + 1.266716, + 431.660156, + 178.710938 + ], + [ + 1058.503805, + 1.266716, + 431.660156, + 178.710938 + ], + [ + 1058.508724, + 1.266716, + 431.660156, + 178.710938 + ], + [ + 1058.5137, + 1.266716, + 431.660156, + 178.710938 + ], + [ + 1058.518686, + 1.266716, + 435.302734, + 179.589844 + ], + [ + 1058.523708, + 1.266716, + 435.302734, + 179.589844 + ], + [ + 1058.528786, + 1.266716, + 435.302734, + 179.589844 + ], + [ + 1058.533671, + 1.272678, + 435.302734, + 179.589844 + ], + [ + 1058.538713, + 1.278666, + 438.896484, + 180.078125 + ], + [ + 1058.543708, + 1.278666, + 438.896484, + 180.078125 + ], + [ + 1058.549025, + 1.278666, + 438.896484, + 180.078125 + ], + [ + 1058.553884, + 1.278666, + 438.896484, + 180.078125 + ], + [ + 1058.558681, + 1.278666, + 442.470703, + 179.785156 + ], + [ + 1058.563845, + 1.278666, + 442.470703, + 179.785156 + ], + [ + 1058.568742, + 1.278666, + 442.470703, + 179.785156 + ], + [ + 1058.57376, + 1.284653, + 442.470703, + 179.785156 + ], + [ + 1058.578699, + 1.284653, + 446.142578, + 180.566406 + ], + [ + 1058.583711, + 1.284653, + 446.142578, + 180.566406 + ], + [ + 1058.588702, + 1.290616, + 446.142578, + 180.566406 + ], + [ + 1058.59369, + 1.290616, + 446.142578, + 180.566406 + ], + [ + 1058.598683, + 1.290616, + 449.785156, + 181.25 + ], + [ + 1058.603716, + 1.290616, + 449.785156, + 181.25 + ], + [ + 1058.608682, + 1.290616, + 449.785156, + 181.25 + ], + [ + 1058.613824, + 1.290616, + 449.785156, + 181.25 + ], + [ + 1058.618693, + 1.290616, + 453.496094, + 181.738281 + ], + [ + 1058.623657, + 1.290616, + 453.496094, + 181.738281 + ], + [ + 1058.62868, + 1.290616, + 453.496094, + 181.738281 + ], + [ + 1058.633757, + 1.296603, + 453.496094, + 181.738281 + ], + [ + 1058.63871, + 1.296603, + 457.207031, + 183.105469 + ], + [ + 1058.64369, + 1.296603, + 457.207031, + 183.105469 + ], + [ + 1058.649054, + 1.302566, + 457.207031, + 183.105469 + ], + [ + 1058.653722, + 1.302566, + 457.207031, + 183.105469 + ], + [ + 1058.658771, + 1.302566, + 460.908203, + 184.375 + ], + [ + 1058.663717, + 1.302566, + 460.908203, + 184.375 + ], + [ + 1058.668722, + 1.302566, + 460.908203, + 184.375 + ], + [ + 1058.673728, + 1.302566, + 460.908203, + 184.375 + ], + [ + 1058.679336, + 1.302566, + 464.638672, + 184.960938 + ], + [ + 1058.68371, + 1.302566, + 464.638672, + 184.960938 + ], + [ + 1058.690096, + 1.302566, + 464.638672, + 184.960938 + ], + [ + 1058.693704, + 1.314516, + 464.638672, + 184.960938 + ], + [ + 1058.698682, + 1.314516, + 464.638672, + 184.960938 + ], + [ + 1058.703726, + 1.314516, + 472.148438, + 186.621094 + ], + [ + 1058.708909, + 1.314516, + 472.148438, + 186.621094 + ], + [ + 1058.713687, + 1.314516, + 472.148438, + 186.621094 + ], + [ + 1058.718843, + 1.314516, + 472.148438, + 186.621094 + ], + [ + 1058.723754, + 1.314516, + 475.966797, + 187.597656 + ], + [ + 1058.728674, + 1.314516, + 475.966797, + 187.597656 + ], + [ + 1058.733674, + 1.314516, + 475.966797, + 187.597656 + ], + [ + 1058.738655, + 1.314516, + 475.966797, + 187.597656 + ], + [ + 1058.743728, + 1.314516, + 479.765625, + 188.574219 + ], + [ + 1058.748692, + 1.314516, + 479.765625, + 188.574219 + ], + [ + 1058.753675, + 1.320503, + 479.765625, + 188.574219 + ], + [ + 1058.758758, + 1.320503, + 479.765625, + 188.574219 + ], + [ + 1058.763733, + 1.326466, + 483.535156, + 188.964844 + ], + [ + 1058.768674, + 1.326466, + 483.535156, + 188.964844 + ], + [ + 1058.773753, + 1.326466, + 483.535156, + 188.964844 + ], + [ + 1058.778646, + 1.326466, + 483.535156, + 188.964844 + ], + [ + 1058.783722, + 1.326466, + 487.373047, + 189.84375 + ], + [ + 1058.78867, + 1.326466, + 487.373047, + 189.84375 + ], + [ + 1058.793705, + 1.326466, + 487.373047, + 189.84375 + ], + [ + 1058.798671, + 1.326466, + 487.373047, + 189.84375 + ], + [ + 1058.803728, + 1.332454, + 491.191406, + 190.429688 + ], + [ + 1058.808671, + 1.332454, + 491.191406, + 190.429688 + ], + [ + 1058.813676, + 1.326466, + 491.191406, + 190.429688 + ], + [ + 1058.818791, + 1.326466, + 491.191406, + 190.429688 + ], + [ + 1058.823719, + 1.338416, + 495.029297, + 190.527344 + ], + [ + 1058.828671, + 1.338416, + 495.029297, + 190.527344 + ], + [ + 1058.833668, + 1.338416, + 495.029297, + 190.527344 + ], + [ + 1058.838657, + 1.338416, + 495.029297, + 190.527344 + ], + [ + 1058.843818, + 1.338416, + 498.857422, + 190.820312 + ], + [ + 1058.848814, + 1.338416, + 498.857422, + 190.820312 + ], + [ + 1058.853686, + 1.338416, + 498.857422, + 190.820312 + ], + [ + 1058.858658, + 1.338416, + 498.857422, + 190.820312 + ], + [ + 1058.863708, + 1.344404, + 502.666016, + 191.308594 + ], + [ + 1058.868671, + 1.344404, + 502.666016, + 191.308594 + ], + [ + 1058.873706, + 1.344404, + 502.666016, + 191.308594 + ], + [ + 1058.878749, + 1.344404, + 502.666016, + 191.308594 + ], + [ + 1058.883868, + 1.350367, + 506.5625, + 191.894531 + ], + [ + 1058.888708, + 1.350367, + 506.5625, + 191.894531 + ], + [ + 1058.894891, + 1.350367, + 506.5625, + 191.894531 + ], + [ + 1058.898717, + 1.350367, + 506.5625, + 191.894531 + ], + [ + 1058.903705, + 1.350367, + 506.5625, + 191.894531 + ], + [ + 1058.908807, + 1.350367, + 510.419922, + 192.1875 + ], + [ + 1058.913728, + 1.350367, + 510.419922, + 192.1875 + ], + [ + 1058.918955, + 1.356329, + 510.419922, + 192.1875 + ], + [ + 1058.923697, + 1.356329, + 510.419922, + 192.1875 + ], + [ + 1058.928732, + 1.356329, + 514.306641, + 192.675781 + ], + [ + 1058.933703, + 1.362317, + 514.306641, + 192.675781 + ], + [ + 1058.938731, + 1.362317, + 514.306641, + 192.675781 + ], + [ + 1058.943715, + 1.362317, + 514.306641, + 192.675781 + ], + [ + 1058.948692, + 1.362317, + 518.251953, + 193.945312 + ], + [ + 1058.953677, + 1.362317, + 518.251953, + 193.945312 + ], + [ + 1058.958657, + 1.362317, + 518.251953, + 193.945312 + ], + [ + 1058.963719, + 1.362317, + 518.251953, + 193.945312 + ], + [ + 1058.968769, + 1.362317, + 522.148438, + 194.824219 + ], + [ + 1058.973684, + 1.36828, + 522.148438, + 194.824219 + ], + [ + 1058.978744, + 1.36828, + 522.148438, + 194.824219 + ], + [ + 1058.983711, + 1.374267, + 522.148438, + 194.824219 + ], + [ + 1058.98876, + 1.374267, + 526.123047, + 195.507812 + ], + [ + 1058.993719, + 1.374267, + 526.123047, + 195.507812 + ], + [ + 1058.99872, + 1.374267, + 526.123047, + 195.507812 + ], + [ + 1059.003732, + 1.374267, + 526.123047, + 195.507812 + ], + [ + 1059.008699, + 1.374267, + 530.087891, + 196.679688 + ], + [ + 1059.01368, + 1.374267, + 530.087891, + 196.679688 + ], + [ + 1059.018784, + 1.374267, + 530.087891, + 196.679688 + ], + [ + 1059.023712, + 1.374267, + 530.087891, + 196.679688 + ], + [ + 1059.028763, + 1.374267, + 534.0625, + 197.65625 + ], + [ + 1059.033684, + 1.374267, + 534.0625, + 197.65625 + ], + [ + 1059.038648, + 1.374267, + 534.0625, + 197.65625 + ], + [ + 1059.043852, + 1.380254, + 534.0625, + 197.65625 + ], + [ + 1059.048809, + 1.380254, + 538.037109, + 197.851562 + ], + [ + 1059.053674, + 1.386217, + 538.037109, + 197.851562 + ], + [ + 1059.058641, + 1.386217, + 538.037109, + 197.851562 + ], + [ + 1059.063698, + 1.386217, + 538.037109, + 197.851562 + ], + [ + 1059.068655, + 1.386217, + 541.992188, + 198.339844 + ], + [ + 1059.0737, + 1.386217, + 541.992188, + 198.339844 + ], + [ + 1059.078652, + 1.386217, + 541.992188, + 198.339844 + ], + [ + 1059.083851, + 1.383382, + 541.992188, + 198.339844 + ], + [ + 1059.088705, + 1.383382, + 546.005859, + 198.828125 + ], + [ + 1059.093675, + 1.383382, + 546.005859, + 198.828125 + ], + [ + 1059.100922, + 1.383382, + 546.005859, + 198.828125 + ], + [ + 1059.103679, + 1.389345, + 546.005859, + 198.828125 + ], + [ + 1059.108693, + 1.389345, + 550.0, + 199.121094 + ], + [ + 1059.113772, + 1.395308, + 550.0, + 199.121094 + ], + [ + 1059.118685, + 1.395308, + 550.0, + 199.121094 + ], + [ + 1059.12381, + 1.395308, + 550.0, + 199.121094 + ], + [ + 1059.128719, + 1.395308, + 554.033203, + 199.609375 + ], + [ + 1059.133728, + 1.395308, + 554.033203, + 199.609375 + ], + [ + 1059.13883, + 1.395308, + 554.033203, + 199.609375 + ], + [ + 1059.14372, + 1.395308, + 554.033203, + 199.609375 + ], + [ + 1059.148882, + 1.395308, + 558.105469, + 200.585938 + ], + [ + 1059.153738, + 1.401271, + 558.105469, + 200.585938 + ], + [ + 1059.158707, + 1.401271, + 558.105469, + 200.585938 + ], + [ + 1059.163736, + 1.407234, + 558.105469, + 200.585938 + ], + [ + 1059.168706, + 1.407234, + 558.105469, + 200.585938 + ], + [ + 1059.173856, + 1.401271, + 562.128906, + 201.367188 + ], + [ + 1059.178681, + 1.401271, + 562.128906, + 201.367188 + ], + [ + 1059.183708, + 1.407234, + 562.128906, + 201.367188 + ], + [ + 1059.188677, + 1.407234, + 562.128906, + 201.367188 + ], + [ + 1059.193678, + 1.407234, + 562.128906, + 201.367188 + ], + [ + 1059.198819, + 1.407234, + 566.230469, + 202.148438 + ], + [ + 1059.203756, + 1.407234, + 566.230469, + 202.148438 + ], + [ + 1059.208678, + 1.407234, + 566.230469, + 202.148438 + ], + [ + 1059.213683, + 1.407234, + 566.230469, + 202.148438 + ], + [ + 1059.218673, + 1.407234, + 570.302734, + 202.929688 + ], + [ + 1059.223734, + 1.413196, + 570.302734, + 202.929688 + ], + [ + 1059.228672, + 1.413196, + 570.302734, + 202.929688 + ], + [ + 1059.233694, + 1.419159, + 570.302734, + 202.929688 + ], + [ + 1059.238674, + 1.419159, + 574.394531, + 203.515625 + ], + [ + 1059.243773, + 1.419159, + 574.394531, + 203.515625 + ], + [ + 1059.248723, + 1.419159, + 574.394531, + 203.515625 + ], + [ + 1059.25368, + 1.419159, + 574.394531, + 203.515625 + ], + [ + 1059.258675, + 1.419159, + 578.515625, + 204.199219 + ], + [ + 1059.263721, + 1.419159, + 578.515625, + 204.199219 + ], + [ + 1059.268672, + 1.419159, + 578.515625, + 204.199219 + ], + [ + 1059.273789, + 1.425122, + 578.515625, + 204.199219 + ], + [ + 1059.278674, + 1.425122, + 582.617188, + 204.882812 + ], + [ + 1059.283811, + 1.425122, + 582.617188, + 204.882812 + ], + [ + 1059.288676, + 1.425122, + 582.617188, + 204.882812 + ], + [ + 1059.293684, + 1.431085, + 582.617188, + 204.882812 + ], + [ + 1059.298719, + 1.431085, + 586.796875, + 205.664062 + ], + [ + 1059.303834, + 1.431085, + 586.796875, + 205.664062 + ], + [ + 1059.309006, + 1.431085, + 586.796875, + 205.664062 + ], + [ + 1059.313702, + 1.431085, + 586.796875, + 205.664062 + ], + [ + 1059.318807, + 1.431085, + 590.9375, + 206.347656 + ], + [ + 1059.323736, + 1.431085, + 590.9375, + 206.347656 + ], + [ + 1059.328684, + 1.431085, + 590.9375, + 206.347656 + ], + [ + 1059.333683, + 1.443011, + 590.9375, + 206.347656 + ], + [ + 1059.338724, + 1.443011, + 595.107422, + 207.128906 + ], + [ + 1059.343728, + 1.443011, + 595.107422, + 207.128906 + ], + [ + 1059.348684, + 1.443011, + 595.107422, + 207.128906 + ], + [ + 1059.354031, + 1.443011, + 595.107422, + 207.128906 + ], + [ + 1059.358707, + 1.443011, + 599.287109, + 207.617188 + ], + [ + 1059.36369, + 1.443011, + 599.287109, + 207.617188 + ], + [ + 1059.368715, + 1.443011, + 599.287109, + 207.617188 + ], + [ + 1059.373748, + 1.443011, + 599.287109, + 207.617188 + ], + [ + 1059.378714, + 1.448974, + 603.476562, + 208.398438 + ], + [ + 1059.383708, + 1.448974, + 603.476562, + 208.398438 + ], + [ + 1059.388741, + 1.448974, + 603.476562, + 208.398438 + ], + [ + 1059.393707, + 1.448974, + 603.476562, + 208.398438 + ], + [ + 1059.398801, + 1.454936, + 607.685547, + 208.886719 + ], + [ + 1059.403713, + 1.454936, + 607.685547, + 208.886719 + ], + [ + 1059.40889, + 1.454936, + 607.685547, + 208.886719 + ], + [ + 1059.413688, + 1.454936, + 607.685547, + 208.886719 + ], + [ + 1059.418694, + 1.454936, + 611.855469, + 209.179688 + ], + [ + 1059.423775, + 1.454936, + 611.855469, + 209.179688 + ], + [ + 1059.428727, + 1.454936, + 611.855469, + 209.179688 + ], + [ + 1059.433689, + 1.460899, + 611.855469, + 209.179688 + ], + [ + 1059.438677, + 1.460899, + 616.132812, + 210.15625 + ], + [ + 1059.443731, + 1.466862, + 616.132812, + 210.15625 + ], + [ + 1059.448679, + 1.466862, + 616.132812, + 210.15625 + ], + [ + 1059.453678, + 1.466862, + 616.132812, + 210.15625 + ], + [ + 1059.458679, + 1.466862, + 620.371094, + 210.839844 + ], + [ + 1059.463771, + 1.466862, + 620.371094, + 210.839844 + ], + [ + 1059.468695, + 1.466862, + 620.371094, + 210.839844 + ], + [ + 1059.473709, + 1.466862, + 620.371094, + 210.839844 + ], + [ + 1059.478729, + 1.466862, + 624.667969, + 212.011719 + ], + [ + 1059.483768, + 1.466862, + 624.667969, + 212.011719 + ], + [ + 1059.488681, + 1.466862, + 624.667969, + 212.011719 + ], + [ + 1059.493777, + 1.466862, + 624.667969, + 212.011719 + ], + [ + 1059.498774, + 1.466862, + 628.964844, + 212.695312 + ], + [ + 1059.503763, + 1.472825, + 628.964844, + 212.695312 + ], + [ + 1059.508742, + 1.472825, + 628.964844, + 212.695312 + ], + [ + 1059.513813, + 1.478788, + 628.964844, + 212.695312 + ], + [ + 1059.518682, + 1.478788, + 633.251953, + 213.964844 + ], + [ + 1059.523762, + 1.478788, + 633.251953, + 213.964844 + ], + [ + 1059.528668, + 1.478788, + 633.251953, + 213.964844 + ], + [ + 1059.533697, + 1.478788, + 633.251953, + 213.964844 + ], + [ + 1059.538682, + 1.478788, + 637.597656, + 214.648438 + ], + [ + 1059.543709, + 1.475758, + 637.597656, + 214.648438 + ], + [ + 1059.548691, + 1.475758, + 637.597656, + 214.648438 + ], + [ + 1059.553679, + 1.475758, + 637.597656, + 214.648438 + ], + [ + 1059.558683, + 1.475758, + 641.875, + 215.039062 + ], + [ + 1059.563805, + 1.48172, + 641.875, + 215.039062 + ], + [ + 1059.568671, + 1.48172, + 641.875, + 215.039062 + ], + [ + 1059.5737, + 1.48172, + 641.875, + 215.039062 + ], + [ + 1059.578687, + 1.48172, + 646.240234, + 215.625 + ], + [ + 1059.58367, + 1.487659, + 646.240234, + 215.625 + ], + [ + 1059.588765, + 1.487659, + 646.240234, + 215.625 + ], + [ + 1059.593709, + 1.487659, + 646.240234, + 215.625 + ], + [ + 1059.598764, + 1.487659, + 650.644531, + 216.796875 + ], + [ + 1059.603697, + 1.487659, + 650.644531, + 216.796875 + ], + [ + 1059.6087, + 1.487659, + 650.644531, + 216.796875 + ], + [ + 1059.613774, + 1.487659, + 650.644531, + 216.796875 + ], + [ + 1059.618744, + 1.487659, + 655.097656, + 218.359375 + ], + [ + 1059.623748, + 1.49956, + 655.097656, + 218.359375 + ], + [ + 1059.628718, + 1.49956, + 655.097656, + 218.359375 + ], + [ + 1059.633778, + 1.49956, + 655.097656, + 218.359375 + ], + [ + 1059.638745, + 1.49956, + 659.550781, + 219.433594 + ], + [ + 1059.643724, + 1.49956, + 659.550781, + 219.433594 + ], + [ + 1059.648706, + 1.49956, + 659.550781, + 219.433594 + ], + [ + 1059.653701, + 1.49956, + 659.550781, + 219.433594 + ], + [ + 1059.658697, + 1.49956, + 664.023438, + 221.289062 + ], + [ + 1059.663717, + 1.511486, + 664.023438, + 221.289062 + ], + [ + 1059.668668, + 1.511486, + 664.023438, + 221.289062 + ], + [ + 1059.673695, + 1.49956, + 664.023438, + 221.289062 + ], + [ + 1059.678805, + 1.49956, + 668.486328, + 222.460938 + ], + [ + 1059.683723, + 1.511486, + 668.486328, + 222.460938 + ], + [ + 1059.688697, + 1.511486, + 668.486328, + 222.460938 + ], + [ + 1059.693672, + 1.523363, + 668.486328, + 222.460938 + ], + [ + 1059.698723, + 1.523363, + 672.988281, + 223.339844 + ], + [ + 1059.703748, + 1.523363, + 672.988281, + 223.339844 + ], + [ + 1059.70869, + 1.523363, + 672.988281, + 223.339844 + ], + [ + 1059.715856, + 1.523363, + 672.988281, + 223.339844 + ], + [ + 1059.71869, + 1.523363, + 677.558594, + 224.609375 + ], + [ + 1059.723729, + 1.523363, + 677.558594, + 224.609375 + ], + [ + 1059.728734, + 1.535264, + 677.558594, + 224.609375 + ], + [ + 1059.73368, + 1.535264, + 677.558594, + 224.609375 + ], + [ + 1059.738699, + 1.529301, + 682.109375, + 225.585938 + ], + [ + 1059.743715, + 1.529301, + 682.109375, + 225.585938 + ], + [ + 1059.748703, + 1.535264, + 682.109375, + 225.585938 + ], + [ + 1059.753657, + 1.535264, + 682.109375, + 225.585938 + ], + [ + 1059.758696, + 1.535264, + 686.689453, + 226.660156 + ], + [ + 1059.76372, + 1.535264, + 686.689453, + 226.660156 + ], + [ + 1059.768696, + 1.535264, + 686.689453, + 226.660156 + ], + [ + 1059.773659, + 1.535264, + 686.689453, + 226.660156 + ], + [ + 1059.778684, + 1.535264, + 691.25, + 227.539062 + ], + [ + 1059.783704, + 1.535264, + 691.25, + 227.539062 + ], + [ + 1059.788687, + 1.541202, + 691.25, + 227.539062 + ], + [ + 1059.793657, + 1.541202, + 691.25, + 227.539062 + ], + [ + 1059.798677, + 1.547165, + 695.878906, + 228.808594 + ], + [ + 1059.80373, + 1.547165, + 695.878906, + 228.808594 + ], + [ + 1059.808695, + 1.547165, + 695.878906, + 228.808594 + ], + [ + 1059.813657, + 1.547165, + 695.878906, + 228.808594 + ], + [ + 1059.818802, + 1.547165, + 700.488281, + 229.296875 + ], + [ + 1059.823717, + 1.547165, + 700.488281, + 229.296875 + ], + [ + 1059.828683, + 1.547165, + 700.488281, + 229.296875 + ], + [ + 1059.833695, + 1.547165, + 700.488281, + 229.296875 + ], + [ + 1059.838696, + 1.547165, + 705.146484, + 230.371094 + ], + [ + 1059.843681, + 1.547165, + 705.146484, + 230.371094 + ], + [ + 1059.848699, + 1.553104, + 705.146484, + 230.371094 + ], + [ + 1059.853728, + 1.553104, + 705.146484, + 230.371094 + ], + [ + 1059.858774, + 1.559066, + 709.765625, + 230.859375 + ], + [ + 1059.863699, + 1.559066, + 709.765625, + 230.859375 + ], + [ + 1059.868731, + 1.559066, + 709.765625, + 230.859375 + ], + [ + 1059.873705, + 1.559066, + 709.765625, + 230.859375 + ], + [ + 1059.878714, + 1.559066, + 714.423828, + 231.738281 + ], + [ + 1059.883716, + 1.559066, + 714.423828, + 231.738281 + ], + [ + 1059.888715, + 1.559066, + 714.423828, + 231.738281 + ], + [ + 1059.893721, + 1.559066, + 714.423828, + 231.738281 + ], + [ + 1059.898735, + 1.559066, + 719.121094, + 232.519531 + ], + [ + 1059.903755, + 1.559066, + 719.121094, + 232.519531 + ], + [ + 1059.908785, + 1.565005, + 719.121094, + 232.519531 + ], + [ + 1059.913653, + 1.565005, + 719.121094, + 232.519531 + ], + [ + 1059.920716, + 1.570968, + 723.779297, + 232.8125 + ], + [ + 1059.923713, + 1.570968, + 723.779297, + 232.8125 + ], + [ + 1059.928686, + 1.570968, + 723.779297, + 232.8125 + ], + [ + 1059.93368, + 1.570968, + 723.779297, + 232.8125 + ], + [ + 1059.938664, + 1.570968, + 723.779297, + 232.8125 + ], + [ + 1059.943722, + 1.576931, + 733.203125, + 234.277344 + ], + [ + 1059.948721, + 1.576931, + 733.203125, + 234.277344 + ], + [ + 1059.953691, + 1.570968, + 733.203125, + 234.277344 + ], + [ + 1059.958649, + 1.570968, + 733.203125, + 234.277344 + ], + [ + 1059.963799, + 1.570968, + 737.958984, + 235.351562 + ], + [ + 1059.968676, + 1.570968, + 737.958984, + 235.351562 + ], + [ + 1059.973684, + 1.576931, + 737.958984, + 235.351562 + ], + [ + 1059.978649, + 1.576931, + 737.958984, + 235.351562 + ], + [ + 1059.983716, + 1.582869, + 742.626953, + 234.960938 + ], + [ + 1059.988671, + 1.582869, + 742.626953, + 234.960938 + ], + [ + 1059.993675, + 1.582869, + 742.626953, + 234.960938 + ], + [ + 1059.998643, + 1.582869, + 742.626953, + 234.960938 + ], + [ + 1060.003718, + 1.582869, + 747.392578, + 236.132812 + ], + [ + 1060.008737, + 1.582869, + 747.392578, + 236.132812 + ], + [ + 1060.013682, + 1.582869, + 747.392578, + 236.132812 + ], + [ + 1060.018638, + 1.582869, + 747.392578, + 236.132812 + ], + [ + 1060.023762, + 1.582869, + 752.158203, + 236.71875 + ], + [ + 1060.029235, + 1.582869, + 752.158203, + 236.71875 + ], + [ + 1060.033692, + 1.59477, + 752.158203, + 236.71875 + ], + [ + 1060.038638, + 1.59477, + 752.158203, + 236.71875 + ], + [ + 1060.043769, + 1.59477, + 757.001953, + 237.890625 + ], + [ + 1060.048676, + 1.59477, + 757.001953, + 237.890625 + ], + [ + 1060.053677, + 1.59477, + 757.001953, + 237.890625 + ], + [ + 1060.058684, + 1.59477, + 757.001953, + 237.890625 + ], + [ + 1060.063671, + 1.59477, + 761.806641, + 238.378906 + ], + [ + 1060.068672, + 1.59477, + 761.806641, + 238.378906 + ], + [ + 1060.073699, + 1.59477, + 761.806641, + 238.378906 + ], + [ + 1060.07867, + 1.59477, + 761.806641, + 238.378906 + ], + [ + 1060.083686, + 1.59477, + 766.630859, + 240.136719 + ], + [ + 1060.088707, + 1.59477, + 766.630859, + 240.136719 + ], + [ + 1060.093724, + 1.606672, + 766.630859, + 240.136719 + ], + [ + 1060.098683, + 1.606672, + 766.630859, + 240.136719 + ], + [ + 1060.103705, + 1.606672, + 771.455078, + 240.625 + ], + [ + 1060.10912, + 1.606672, + 771.455078, + 240.625 + ], + [ + 1060.113748, + 1.606672, + 771.455078, + 240.625 + ], + [ + 1060.118695, + 1.606672, + 771.455078, + 240.625 + ], + [ + 1060.123767, + 1.606672, + 776.347656, + 241.796875 + ], + [ + 1060.128718, + 1.606672, + 776.347656, + 241.796875 + ], + [ + 1060.13373, + 1.612634, + 776.347656, + 241.796875 + ], + [ + 1060.138755, + 1.612634, + 776.347656, + 241.796875 + ], + [ + 1060.143824, + 1.618573, + 781.201172, + 241.992188 + ], + [ + 1060.148671, + 1.618573, + 781.201172, + 241.992188 + ], + [ + 1060.153689, + 1.618573, + 781.201172, + 241.992188 + ], + [ + 1060.158706, + 1.618573, + 781.201172, + 241.992188 + ], + [ + 1060.163714, + 1.618573, + 786.113281, + 242.96875 + ], + [ + 1060.168684, + 1.618573, + 786.113281, + 242.96875 + ], + [ + 1060.173687, + 1.618573, + 786.113281, + 242.96875 + ], + [ + 1060.17865, + 1.618573, + 786.113281, + 242.96875 + ], + [ + 1060.183762, + 1.618573, + 790.996094, + 243.554688 + ], + [ + 1060.188664, + 1.618573, + 790.996094, + 243.554688 + ], + [ + 1060.193821, + 1.630474, + 790.996094, + 243.554688 + ], + [ + 1060.198637, + 1.630474, + 790.996094, + 243.554688 + ], + [ + 1060.203803, + 1.630474, + 795.9375, + 244.726562 + ], + [ + 1060.208668, + 1.630474, + 795.9375, + 244.726562 + ], + [ + 1060.213678, + 1.630474, + 795.9375, + 244.726562 + ], + [ + 1060.218715, + 1.630474, + 795.9375, + 244.726562 + ], + [ + 1060.223711, + 1.630474, + 800.859375, + 245.214844 + ], + [ + 1060.228808, + 1.630474, + 800.859375, + 245.214844 + ], + [ + 1060.233701, + 1.630474, + 800.859375, + 245.214844 + ], + [ + 1060.238644, + 1.630474, + 800.859375, + 245.214844 + ], + [ + 1060.243767, + 1.630474, + 805.78125, + 245.800781 + ], + [ + 1060.248669, + 1.630474, + 805.78125, + 245.800781 + ], + [ + 1060.253685, + 1.630474, + 805.78125, + 245.800781 + ], + [ + 1060.258643, + 1.630474, + 805.78125, + 245.800781 + ], + [ + 1060.263712, + 1.642375, + 810.683594, + 245.703125 + ], + [ + 1060.268674, + 1.642375, + 810.683594, + 245.703125 + ], + [ + 1060.273689, + 1.642375, + 810.683594, + 245.703125 + ], + [ + 1060.278657, + 1.642375, + 810.683594, + 245.703125 + ], + [ + 1060.283697, + 1.642375, + 815.615234, + 246.191406 + ], + [ + 1060.288684, + 1.642375, + 815.615234, + 246.191406 + ], + [ + 1060.293685, + 1.642375, + 815.615234, + 246.191406 + ], + [ + 1060.298651, + 1.642375, + 815.615234, + 246.191406 + ], + [ + 1060.303678, + 1.648338, + 820.517578, + 245.898438 + ], + [ + 1060.308672, + 1.648338, + 820.517578, + 245.898438 + ], + [ + 1060.313706, + 1.654277, + 820.517578, + 245.898438 + ], + [ + 1060.318716, + 1.654277, + 820.517578, + 245.898438 + ], + [ + 1060.323696, + 1.654277, + 825.527344, + 246.582031 + ], + [ + 1060.328746, + 1.654277, + 825.527344, + 246.582031 + ], + [ + 1060.333756, + 1.654277, + 825.527344, + 246.582031 + ], + [ + 1060.338704, + 1.654277, + 825.527344, + 246.582031 + ], + [ + 1060.343812, + 1.654277, + 830.507812, + 247.167969 + ], + [ + 1060.348728, + 1.654277, + 830.507812, + 247.167969 + ], + [ + 1060.35374, + 1.654277, + 830.507812, + 247.167969 + ], + [ + 1060.358948, + 1.654277, + 830.507812, + 247.167969 + ], + [ + 1060.363713, + 1.654277, + 835.537109, + 248.632812 + ], + [ + 1060.368723, + 1.654277, + 835.537109, + 248.632812 + ], + [ + 1060.37417, + 1.660215, + 835.537109, + 248.632812 + ], + [ + 1060.378685, + 1.660215, + 835.537109, + 248.632812 + ], + [ + 1060.383701, + 1.660215, + 840.527344, + 249.023438 + ], + [ + 1060.388686, + 1.666178, + 840.527344, + 249.023438 + ], + [ + 1060.393674, + 1.666178, + 840.527344, + 249.023438 + ], + [ + 1060.398724, + 1.666178, + 840.527344, + 249.023438 + ], + [ + 1060.40372, + 1.666178, + 845.546875, + 250.097656 + ], + [ + 1060.40869, + 1.666178, + 845.546875, + 250.097656 + ], + [ + 1060.413752, + 1.666178, + 845.546875, + 250.097656 + ], + [ + 1060.418685, + 1.666178, + 845.546875, + 250.097656 + ], + [ + 1060.423849, + 1.666178, + 850.566406, + 250.292969 + ], + [ + 1060.42869, + 1.672116, + 850.566406, + 250.292969 + ], + [ + 1060.433688, + 1.672116, + 850.566406, + 250.292969 + ], + [ + 1060.43869, + 1.678079, + 850.566406, + 250.292969 + ], + [ + 1060.443722, + 1.678079, + 850.566406, + 250.292969 + ], + [ + 1060.448682, + 1.678079, + 855.625, + 251.171875 + ], + [ + 1060.453679, + 1.678079, + 855.625, + 251.171875 + ], + [ + 1060.458806, + 1.678079, + 855.625, + 251.171875 + ], + [ + 1060.463702, + 1.678079, + 855.625, + 251.171875 + ], + [ + 1060.468706, + 1.678079, + 860.673828, + 251.367188 + ], + [ + 1060.473663, + 1.678079, + 860.673828, + 251.367188 + ], + [ + 1060.478675, + 1.684042, + 860.673828, + 251.367188 + ], + [ + 1060.483692, + 1.684042, + 860.673828, + 251.367188 + ], + [ + 1060.488795, + 1.68998, + 865.751953, + 252.148438 + ], + [ + 1060.493651, + 1.68998, + 865.751953, + 252.148438 + ], + [ + 1060.498672, + 1.68998, + 865.751953, + 252.148438 + ], + [ + 1060.503698, + 1.68998, + 865.751953, + 252.148438 + ], + [ + 1060.508711, + 1.68998, + 870.810547, + 252.636719 + ], + [ + 1060.513664, + 1.68998, + 870.810547, + 252.636719 + ], + [ + 1060.518828, + 1.68998, + 870.810547, + 252.636719 + ], + [ + 1060.523678, + 1.68998, + 870.810547, + 252.636719 + ], + [ + 1060.528706, + 1.68998, + 875.917969, + 253.417969 + ], + [ + 1060.533701, + 1.68998, + 875.917969, + 253.417969 + ], + [ + 1060.538685, + 1.68998, + 875.917969, + 253.417969 + ], + [ + 1060.543661, + 1.68998, + 875.917969, + 253.417969 + ], + [ + 1060.548713, + 1.701882, + 881.005859, + 253.808594 + ], + [ + 1060.553689, + 1.701882, + 881.005859, + 253.808594 + ], + [ + 1060.558717, + 1.701882, + 881.005859, + 253.808594 + ], + [ + 1060.563686, + 1.701882, + 881.005859, + 253.808594 + ], + [ + 1060.568747, + 1.701882, + 886.132812, + 254.589844 + ], + [ + 1060.573713, + 1.701882, + 886.132812, + 254.589844 + ], + [ + 1060.57873, + 1.701882, + 886.132812, + 254.589844 + ], + [ + 1060.583764, + 1.701882, + 886.132812, + 254.589844 + ], + [ + 1060.588948, + 1.70782, + 891.25, + 255.175781 + ], + [ + 1060.593717, + 1.70782, + 891.25, + 255.175781 + ], + [ + 1060.598693, + 1.70782, + 891.25, + 255.175781 + ], + [ + 1060.603713, + 1.713783, + 891.25, + 255.175781 + ], + [ + 1060.608764, + 1.713783, + 891.25, + 255.175781 + ], + [ + 1060.61371, + 1.713783, + 896.425781, + 256.054688 + ], + [ + 1060.618695, + 1.713783, + 896.425781, + 256.054688 + ], + [ + 1060.623713, + 1.713783, + 896.425781, + 256.054688 + ], + [ + 1060.628683, + 1.713783, + 896.425781, + 256.054688 + ], + [ + 1060.633698, + 1.713783, + 901.552734, + 256.445312 + ], + [ + 1060.638699, + 1.713783, + 901.552734, + 256.445312 + ], + [ + 1060.643828, + 1.713783, + 901.552734, + 256.445312 + ], + [ + 1060.648675, + 1.713783, + 901.552734, + 256.445312 + ], + [ + 1060.653689, + 1.725684, + 906.699219, + 256.933594 + ], + [ + 1060.659106, + 1.725684, + 906.699219, + 256.933594 + ], + [ + 1060.663725, + 1.725684, + 906.699219, + 256.933594 + ], + [ + 1060.668672, + 1.725684, + 906.699219, + 256.933594 + ], + [ + 1060.673689, + 1.725684, + 911.806641, + 256.738281 + ], + [ + 1060.678638, + 1.725684, + 911.806641, + 256.738281 + ], + [ + 1060.683709, + 1.725684, + 911.806641, + 256.738281 + ], + [ + 1060.688689, + 1.725684, + 911.806641, + 256.738281 + ], + [ + 1060.6937, + 1.725684, + 917.011719, + 257.519531 + ], + [ + 1060.698642, + 1.725684, + 917.011719, + 257.519531 + ], + [ + 1060.70376, + 1.731647, + 917.011719, + 257.519531 + ], + [ + 1060.708668, + 1.731647, + 917.011719, + 257.519531 + ], + [ + 1060.713708, + 1.731647, + 922.158203, + 257.324219 + ], + [ + 1060.718708, + 1.731647, + 922.158203, + 257.324219 + ], + [ + 1060.723711, + 1.737586, + 922.158203, + 257.324219 + ], + [ + 1060.728686, + 1.737586, + 922.158203, + 257.324219 + ], + [ + 1060.733691, + 1.737586, + 927.412109, + 258.496094 + ], + [ + 1060.739469, + 1.737586, + 927.412109, + 258.496094 + ], + [ + 1060.743731, + 1.737586, + 927.412109, + 258.496094 + ], + [ + 1060.748699, + 1.737586, + 927.412109, + 258.496094 + ], + [ + 1060.753701, + 1.737586, + 932.617188, + 259.277344 + ], + [ + 1060.758785, + 1.737586, + 932.617188, + 259.277344 + ], + [ + 1060.763688, + 1.739956, + 932.617188, + 259.277344 + ], + [ + 1060.768667, + 1.739956, + 932.617188, + 259.277344 + ], + [ + 1060.77369, + 1.745894, + 937.871094, + 260.449219 + ], + [ + 1060.778645, + 1.745894, + 937.871094, + 260.449219 + ], + [ + 1060.783678, + 1.745894, + 937.871094, + 260.449219 + ], + [ + 1060.78868, + 1.745894, + 937.871094, + 260.449219 + ], + [ + 1060.793751, + 1.751833, + 943.085938, + 260.546875 + ], + [ + 1060.798747, + 1.751833, + 943.085938, + 260.546875 + ], + [ + 1060.803795, + 1.745894, + 943.085938, + 260.546875 + ], + [ + 1060.8087, + 1.745894, + 943.085938, + 260.546875 + ], + [ + 1060.813722, + 1.745894, + 948.388672, + 262.207031 + ], + [ + 1060.818697, + 1.745894, + 948.388672, + 262.207031 + ], + [ + 1060.823713, + 1.757771, + 948.388672, + 262.207031 + ], + [ + 1060.828744, + 1.757771, + 948.388672, + 262.207031 + ], + [ + 1060.833725, + 1.757771, + 953.681641, + 262.597656 + ], + [ + 1060.838809, + 1.757771, + 953.681641, + 262.597656 + ], + [ + 1060.843741, + 1.757771, + 953.681641, + 262.597656 + ], + [ + 1060.848715, + 1.757771, + 953.681641, + 262.597656 + ], + [ + 1060.853718, + 1.757771, + 959.013672, + 263.867188 + ], + [ + 1060.858792, + 1.757771, + 959.013672, + 263.867188 + ], + [ + 1060.863722, + 1.757771, + 959.013672, + 263.867188 + ], + [ + 1060.868853, + 1.757771, + 959.013672, + 263.867188 + ], + [ + 1060.873701, + 1.7637100000000001, + 964.316406, + 264.453125 + ], + [ + 1060.878893, + 1.7637100000000001, + 964.316406, + 264.453125 + ], + [ + 1060.883713, + 1.769648, + 964.316406, + 264.453125 + ], + [ + 1060.888853, + 1.769648, + 964.316406, + 264.453125 + ], + [ + 1060.893696, + 1.769648, + 969.619141, + 265.332031 + ], + [ + 1060.898645, + 1.769648, + 969.619141, + 265.332031 + ], + [ + 1060.903734, + 1.769648, + 969.619141, + 265.332031 + ], + [ + 1060.908739, + 1.769648, + 969.619141, + 265.332031 + ], + [ + 1060.913838, + 1.769648, + 974.941406, + 265.722656 + ], + [ + 1060.918644, + 1.769648, + 974.941406, + 265.722656 + ], + [ + 1060.923885, + 1.769648, + 974.941406, + 265.722656 + ], + [ + 1060.928643, + 1.769648, + 974.941406, + 265.722656 + ], + [ + 1060.93368, + 1.769648, + 974.941406, + 265.722656 + ], + [ + 1060.938763, + 1.781525, + 980.263672, + 265.917969 + ], + [ + 1060.944512, + 1.781525, + 980.263672, + 265.917969 + ], + [ + 1060.948772, + 1.781525, + 980.263672, + 265.917969 + ], + [ + 1060.953669, + 1.781525, + 980.263672, + 265.917969 + ], + [ + 1060.95882, + 1.781525, + 985.605469, + 265.820312 + ], + [ + 1060.963785, + 1.781525, + 985.605469, + 265.820312 + ], + [ + 1060.968724, + 1.781525, + 985.605469, + 265.820312 + ], + [ + 1060.973665, + 1.781525, + 985.605469, + 265.820312 + ], + [ + 1060.978678, + 1.787463, + 990.957031, + 266.40625 + ], + [ + 1060.983649, + 1.787463, + 990.957031, + 266.40625 + ], + [ + 1060.988773, + 1.793402, + 990.957031, + 266.40625 + ], + [ + 1060.993742, + 1.793402, + 990.957031, + 266.40625 + ], + [ + 1060.998682, + 1.787463, + 996.328125, + 267.1875 + ], + [ + 1061.003708, + 1.787463, + 996.328125, + 267.1875 + ], + [ + 1061.008706, + 1.793402, + 996.328125, + 267.1875 + ], + [ + 1061.013666, + 1.793402, + 996.328125, + 267.1875 + ], + [ + 1061.018714, + 1.793402, + 1001.708984, + 267.480469 + ], + [ + 1061.02368, + 1.793402, + 1001.708984, + 267.480469 + ], + [ + 1061.028737, + 1.793402, + 1001.708984, + 267.480469 + ], + [ + 1061.033699, + 1.793402, + 1001.708984, + 267.480469 + ], + [ + 1061.038702, + 1.793402, + 1007.109375, + 268.457031 + ], + [ + 1061.043671, + 1.793402, + 1007.109375, + 268.457031 + ], + [ + 1061.048727, + 1.805279, + 1007.109375, + 268.457031 + ], + [ + 1061.053702, + 1.805279, + 1007.109375, + 268.457031 + ], + [ + 1061.058709, + 1.805279, + 1012.470703, + 268.75 + ], + [ + 1061.063805, + 1.805279, + 1012.470703, + 268.75 + ], + [ + 1061.068728, + 1.805279, + 1012.470703, + 268.75 + ], + [ + 1061.073696, + 1.805279, + 1012.470703, + 268.75 + ], + [ + 1061.078689, + 1.805279, + 1017.919922, + 269.628906 + ], + [ + 1061.083679, + 1.805279, + 1017.919922, + 269.628906 + ], + [ + 1061.088749, + 1.829032, + 1017.919922, + 269.628906 + ], + [ + 1061.0937, + 1.829032, + 1017.919922, + 269.628906 + ], + [ + 1061.098742, + 1.805279, + 1023.339844, + 270.019531 + ], + [ + 1061.103668, + 1.805279, + 1023.339844, + 270.019531 + ], + [ + 1061.108735, + 1.817155, + 1023.339844, + 270.019531 + ], + [ + 1061.113681, + 1.817155, + 1023.339844, + 270.019531 + ], + [ + 1061.118676, + 1.829032, + 1028.808594, + 271.09375 + ], + [ + 1061.123658, + 1.829032, + 1028.808594, + 271.09375 + ], + [ + 1061.128893, + 1.829032, + 1028.808594, + 271.09375 + ], + [ + 1061.133669, + 1.829032, + 1028.808594, + 271.09375 + ], + [ + 1061.13867, + 1.829032, + 1034.335938, + 272.265625 + ], + [ + 1061.143664, + 1.834971, + 1034.335938, + 272.265625 + ], + [ + 1061.14882, + 1.834971, + 1034.335938, + 272.265625 + ], + [ + 1061.153744, + 1.834971, + 1034.335938, + 272.265625 + ], + [ + 1061.15867, + 1.834971, + 1039.863281, + 273.730469 + ], + [ + 1061.163669, + 1.840909, + 1039.863281, + 273.730469 + ], + [ + 1061.168706, + 1.840909, + 1039.863281, + 273.730469 + ], + [ + 1061.17372, + 1.840909, + 1039.863281, + 273.730469 + ], + [ + 1061.178739, + 1.840909, + 1045.400391, + 274.609375 + ], + [ + 1061.183684, + 1.840909, + 1045.400391, + 274.609375 + ], + [ + 1061.188705, + 1.840909, + 1045.400391, + 274.609375 + ], + [ + 1061.19372, + 1.840909, + 1045.400391, + 274.609375 + ], + [ + 1061.19867, + 1.840909, + 1050.957031, + 276.171875 + ], + [ + 1061.2039, + 1.840909, + 1050.957031, + 276.171875 + ], + [ + 1061.20883, + 1.840909, + 1050.957031, + 276.171875 + ], + [ + 1061.213723, + 1.837121, + 1050.957031, + 276.171875 + ], + [ + 1061.218674, + 1.848974, + 1056.621094, + 277.832031 + ], + [ + 1061.223667, + 1.848974, + 1056.621094, + 277.832031 + ], + [ + 1061.228718, + 1.848974, + 1056.621094, + 277.832031 + ], + [ + 1061.233665, + 1.848974, + 1056.621094, + 277.832031 + ], + [ + 1061.238674, + 1.848974, + 1062.246094, + 278.808594 + ], + [ + 1061.243644, + 1.848974, + 1062.246094, + 278.808594 + ], + [ + 1061.24879, + 1.848974, + 1062.246094, + 278.808594 + ], + [ + 1061.253755, + 1.848974, + 1062.246094, + 278.808594 + ], + [ + 1061.258682, + 1.848974, + 1067.900391, + 280.273438 + ], + [ + 1061.26369, + 1.848974, + 1067.900391, + 280.273438 + ], + [ + 1061.269238, + 1.860826, + 1067.900391, + 280.273438 + ], + [ + 1061.273763, + 1.860826, + 1067.900391, + 280.273438 + ], + [ + 1061.278755, + 1.860826, + 1073.535156, + 281.445312 + ], + [ + 1061.283765, + 1.854912, + 1073.535156, + 281.445312 + ], + [ + 1061.288699, + 1.854912, + 1073.535156, + 281.445312 + ], + [ + 1061.293711, + 1.854912, + 1073.535156, + 281.445312 + ], + [ + 1061.29873, + 1.854912, + 1079.248047, + 282.8125 + ], + [ + 1061.303744, + 1.860826, + 1079.248047, + 282.8125 + ], + [ + 1061.309047, + 1.860826, + 1079.248047, + 282.8125 + ], + [ + 1061.313881, + 1.860826, + 1079.248047, + 282.8125 + ], + [ + 1061.318701, + 1.860826, + 1084.941406, + 283.300781 + ], + [ + 1061.323717, + 1.860826, + 1084.941406, + 283.300781 + ], + [ + 1061.328731, + 1.860826, + 1084.941406, + 283.300781 + ], + [ + 1061.333784, + 1.860826, + 1084.941406, + 283.300781 + ], + [ + 1061.338745, + 1.872678, + 1090.576172, + 283.496094 + ], + [ + 1061.343779, + 1.872678, + 1090.576172, + 283.496094 + ], + [ + 1061.348871, + 1.872678, + 1090.576172, + 283.496094 + ], + [ + 1061.353956, + 1.872678, + 1090.576172, + 283.496094 + ], + [ + 1061.358724, + 1.872678, + 1096.298828, + 283.886719 + ], + [ + 1061.363769, + 1.872678, + 1096.298828, + 283.886719 + ], + [ + 1061.36872, + 1.884531, + 1096.298828, + 283.886719 + ], + [ + 1061.373685, + 1.884531, + 1096.298828, + 283.886719 + ], + [ + 1061.378735, + 1.878592, + 1101.982422, + 284.375 + ], + [ + 1061.383655, + 1.878592, + 1101.982422, + 284.375 + ], + [ + 1061.388725, + 1.878592, + 1101.982422, + 284.375 + ], + [ + 1061.393664, + 1.878592, + 1101.982422, + 284.375 + ], + [ + 1061.398712, + 1.884531, + 1107.724609, + 284.863281 + ], + [ + 1061.403711, + 1.884531, + 1107.724609, + 284.863281 + ], + [ + 1061.408713, + 1.884531, + 1107.724609, + 284.863281 + ], + [ + 1061.413677, + 1.884531, + 1107.724609, + 284.863281 + ], + [ + 1061.418729, + 1.884531, + 1113.476562, + 285.351562 + ], + [ + 1061.423653, + 1.884531, + 1113.476562, + 285.351562 + ], + [ + 1061.428727, + 1.890445, + 1113.476562, + 285.351562 + ], + [ + 1061.433664, + 1.890445, + 1113.476562, + 285.351562 + ], + [ + 1061.438768, + 1.896383, + 1119.267578, + 286.816406 + ], + [ + 1061.443659, + 1.896383, + 1119.267578, + 286.816406 + ], + [ + 1061.448737, + 1.890445, + 1119.267578, + 286.816406 + ], + [ + 1061.453671, + 1.890445, + 1119.267578, + 286.816406 + ], + [ + 1061.45873, + 1.896383, + 1125.078125, + 287.792969 + ], + [ + 1061.46382, + 1.896383, + 1125.078125, + 287.792969 + ], + [ + 1061.468727, + 1.896383, + 1125.078125, + 287.792969 + ], + [ + 1061.473664, + 1.896383, + 1125.078125, + 287.792969 + ], + [ + 1061.478691, + 1.896383, + 1130.888672, + 288.867188 + ], + [ + 1061.483752, + 1.896383, + 1130.888672, + 288.867188 + ], + [ + 1061.48874, + 1.896383, + 1130.888672, + 288.867188 + ], + [ + 1061.493658, + 1.896383, + 1130.888672, + 288.867188 + ], + [ + 1061.498687, + 1.908236, + 1136.738281, + 290.039062 + ], + [ + 1061.503658, + 1.908236, + 1136.738281, + 290.039062 + ], + [ + 1061.50873, + 1.902297, + 1136.738281, + 290.039062 + ], + [ + 1061.513707, + 1.902297, + 1136.738281, + 290.039062 + ], + [ + 1061.51873, + 1.908236, + 1142.519531, + 290.332031 + ], + [ + 1061.523718, + 1.908236, + 1142.519531, + 290.332031 + ], + [ + 1061.528774, + 1.908236, + 1142.519531, + 290.332031 + ], + [ + 1061.533696, + 1.908236, + 1142.519531, + 290.332031 + ], + [ + 1061.538881, + 1.908236, + 1148.359375, + 291.015625 + ], + [ + 1061.543701, + 1.908236, + 1148.359375, + 291.015625 + ], + [ + 1061.548719, + 1.908236, + 1148.359375, + 291.015625 + ], + [ + 1061.553734, + 1.914174, + 1148.359375, + 291.015625 + ], + [ + 1061.559257, + 1.914174, + 1154.238281, + 291.503906 + ], + [ + 1061.563722, + 1.91415, + 1154.238281, + 291.503906 + ], + [ + 1061.568713, + 1.91415, + 1154.238281, + 291.503906 + ], + [ + 1061.573705, + 1.920088, + 1154.238281, + 291.503906 + ], + [ + 1061.578689, + 1.920088, + 1154.238281, + 291.503906 + ], + [ + 1061.583764, + 1.926026, + 1166.005859, + 292.578125 + ], + [ + 1061.588786, + 1.926026, + 1166.005859, + 292.578125 + ], + [ + 1061.593745, + 1.920088, + 1166.005859, + 292.578125 + ], + [ + 1061.598652, + 1.920088, + 1166.005859, + 292.578125 + ], + [ + 1061.603715, + 1.920088, + 1171.933594, + 294.042969 + ], + [ + 1061.608731, + 1.920088, + 1171.933594, + 294.042969 + ], + [ + 1061.613716, + 1.926026, + 1171.933594, + 294.042969 + ], + [ + 1061.618654, + 1.926026, + 1171.933594, + 294.042969 + ], + [ + 1061.623703, + 1.926002, + 1177.851562, + 294.824219 + ], + [ + 1061.628703, + 1.926002, + 1177.851562, + 294.824219 + ], + [ + 1061.63375, + 1.93194, + 1177.851562, + 294.824219 + ], + [ + 1061.638695, + 1.93194, + 1177.851562, + 294.824219 + ], + [ + 1061.643714, + 1.93194, + 1183.759766, + 295.214844 + ], + [ + 1061.649276, + 1.93194, + 1183.759766, + 295.214844 + ], + [ + 1061.65368, + 1.93194, + 1183.759766, + 295.214844 + ], + [ + 1061.658663, + 1.93194, + 1183.759766, + 295.214844 + ], + [ + 1061.663744, + 1.943793, + 1189.697266, + 295.703125 + ], + [ + 1061.668668, + 1.943793, + 1189.697266, + 295.703125 + ], + [ + 1061.673712, + 1.937879, + 1189.697266, + 295.703125 + ], + [ + 1061.678652, + 1.937879, + 1189.697266, + 295.703125 + ], + [ + 1061.683721, + 1.943793, + 1195.664062, + 296.484375 + ], + [ + 1061.688762, + 1.943793, + 1195.664062, + 296.484375 + ], + [ + 1061.693748, + 1.943793, + 1195.664062, + 296.484375 + ], + [ + 1061.698655, + 1.943793, + 1195.664062, + 296.484375 + ], + [ + 1061.703681, + 1.939785, + 1201.601562, + 296.777344 + ], + [ + 1061.70873, + 1.939785, + 1201.601562, + 296.777344 + ], + [ + 1061.713725, + 1.945723, + 1201.601562, + 296.777344 + ], + [ + 1061.718725, + 1.945723, + 1201.601562, + 296.777344 + ], + [ + 1061.723692, + 1.951613, + 1207.587891, + 297.070312 + ], + [ + 1061.728691, + 1.951613, + 1207.587891, + 297.070312 + ], + [ + 1061.733698, + 1.941691, + 1207.587891, + 297.070312 + ], + [ + 1061.738654, + 1.941691, + 1207.587891, + 297.070312 + ] + ], + "sysid": true, + "test": "Elevator", + "units": "Meters", + "unitsPerRotation": 1.0 +} \ No newline at end of file From 8a91ec9b5cd4987f1e0e5ca67c9d95383a0bb586 Mon Sep 17 00:00:00 2001 From: Renato Dell'Osso <54045197+renatodellosso@users.noreply.github.com> Date: Wed, 18 Oct 2023 20:49:39 -0400 Subject: [PATCH 02/15] Got elevator working --- src/main/java/frc/robot/Constants.java | 8 +- src/main/java/frc/robot/RobotContainer.java | 412 ++++++++---------- src/main/java/frc/robot/SwerveModule.java | 5 +- .../robot/subsystems/ElevatorSubsystem.java | 89 ++-- 4 files changed, 251 insertions(+), 263 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 84f0465..a677dda 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -162,7 +162,7 @@ public static final class Mod0 public static final int driveMotorID = SwervePorts.MOD0_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD0_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD0_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(337.6); + public static final Rotation2d angleOffset = Rotation2d.fromDegrees(329.7); public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } @@ -173,7 +173,7 @@ public static final class Mod1 public static final int driveMotorID = SwervePorts.MOD1_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD1_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD1_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(259.8); + public static final Rotation2d angleOffset = Rotation2d.fromDegrees(260.1); public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } @@ -184,7 +184,7 @@ public static final class Mod2 public static final int driveMotorID = SwervePorts.MOD2_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD2_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD2_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(266.7); + public static final Rotation2d angleOffset = Rotation2d.fromDegrees(247.5); public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } @@ -195,7 +195,7 @@ public static final class Mod3 public static final int driveMotorID = SwervePorts.MOD3_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD3_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD3_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(69.7); + public static final Rotation2d angleOffset = Rotation2d.fromDegrees(70.3); public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 47fad13..146f3df 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -31,23 +31,20 @@ import edu.wpi.first.wpilibj2.command.button.POVButton; /** - * This class is where the bulk of the robot should be declared. Since - * Command-based is a - * "declarative" paradigm, very little robot logic should actually be handled in - * the {@link Robot} - * periodic methods (other than the scheduler calls). Instead, the structure of - * the robot (including + * This class is where the bulk of the robot should be declared. Since Command-based is a + * "declarative" paradigm, very little robot logic should actually be handled in the {@link Robot} + * periodic methods (other than the scheduler calls). Instead, the structure of the robot (including * subsystems, commands, and button mappings) should be declared here. */ -public class RobotContainer { +public class RobotContainer +{ public static RobotContainer instance; public SwerveDriveSubsystem swerveDrive = new SwerveDriveSubsystem(); - // TODO: uncomment Robot.java code when swerve is done - // public ClawIntakeSubsystem clawIntake = new ClawIntakeSubsystem(); - // public ElevatorSubsystem elevator = new ElevatorSubsystem(clawIntake);; - // public VisionSubsystem vision = new VisionSubsystem(); + public ClawIntakeSubsystem clawIntake = new ClawIntakeSubsystem(); + public ElevatorSubsystem elevator = new ElevatorSubsystem(clawIntake);; + public VisionSubsystem vision = new VisionSubsystem(); public Joystick primaryController; public Joystick secondaryController; @@ -59,33 +56,51 @@ public class RobotContainer { private final ExampleCommand m_autoCommand = new ExampleCommand(m_exampleSubsystem); + SendableChooser autoChooser; + /** * The container for the robot. Contains subsystems, OI devices, and commands. */ - public RobotContainer() { + public RobotContainer() + { // shuffleboard = Shuffleboard.getTab("SmartDashboard"); shuffleboard.addDouble("Gyro", () -> swerveDrive.gyro.getAngle()); + autoChooser = new SendableChooser<>(); + + autoChooser.setDefaultOption("High Balance", highBalance); + autoChooser.addOption("Open, then Drive Back", openThenDriveAuto); + autoChooser.addOption("Normal", normalAuto); + autoChooser.addOption("Charge Station", chargeStationAuto); + autoChooser.addOption("Drive Back", driveBackAuto); + autoChooser.addOption("Over, then Balance", overThenBalanceAuto); + autoChooser.addOption("High Back Out", highBack); + autoChooser.addOption("Mid Balance", midBalance); + autoChooser.addOption("Mid Back Out", midBack); + autoChooser.addOption("Low Balance", lowBalance); + autoChooser.addOption("Low Back Out", lowBack); + + shuffleboard.add(autoChooser); + secondaryController = new Joystick(2); // We need this for testing in elevator // Configure the button bindings configurePrimaryBindings(); - // configureSecondaryBindings(); + configureSecondaryBindings(); instance = this; } /** - * Use this method to define your button->command mappings. Buttons can be - * created by + * Use this method to define your button->command mappings. Buttons can be created by * instantiating a {@link GenericHID} or one of its subclasses - * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then - * passing it to a + * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it to a * {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. */ - private void configurePrimaryBindings() { - primaryController = new Joystick(1); + private void configurePrimaryBindings() + { + primaryController = new Joystick(0); // JoystickButton a = new // JoystickButton(primaryController,LogitechControllerButtons.a); @@ -120,213 +135,166 @@ private void configurePrimaryBindings() { )); x.onTrue(new InstantCommand(() -> swerveDrive.zeroGyro())); - y.onTrue(new InstantCommand(() -> { + y.onTrue(new InstantCommand(() -> + { for (SwerveModule mod : swerveDrive.mSwerveMods) mod.resetToAbsolute(); })); } - // private void configureSecondaryBindings() { - // // secondaryController = new Joystick(2); - - // elevator.setDefaultCommand(new MoveElevatorCommand(() -> - // -secondaryController.getY(), - // elevator)); - - // JoystickButton a = new - // JoystickButton(secondaryController,LogitechControllerButtons.a); - // JoystickButton b = new - // JoystickButton(secondaryController,LogitechControllerButtons.b); - // JoystickButton x = new - // JoystickButton(secondaryController,LogitechControllerButtons.x); - // JoystickButton y = new - // JoystickButton(secondaryController,LogitechControllerButtons.y); - // JoystickButton bumperLeft = new - // JoystickButton(secondaryController,LogitechControllerButtons.bumperLeft); - // JoystickButton bumperRight = new - // JoystickButton(secondaryController,LogitechControllerButtons.bumperRight); - // JoystickButton triggerLeft = new - // JoystickButton(secondaryController,LogitechControllerButtons.triggerLeft); - // JoystickButton triggerRight = new - // JoystickButton(secondaryController,LogitechControllerButtons.triggerRight); - // POVButton up = new - // POVButton(secondaryController,LogitechControllerButtons.up); - // POVButton down = new - // POVButton(secondaryController,LogitechControllerButtons.down); - // POVButton left = new - // POVButton(secondaryController,LogitechControllerButtons.left);; - // POVButton right = new - // POVButton(secondaryController,LogitechControllerButtons.right); - // JoystickButton start = new JoystickButton(secondaryController, - // LogitechControllerButtons.start); - - // a.whileTrue(new ClawGrabberCommand(Value.kForward, clawIntake, true)); - // b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); - // // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); - - // up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, - // elevator)); - // left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, - // elevator)); - // right.onTrue(new - // SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); - // down.onTrue(new - // SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); - // bumperLeft.onTrue(new - // SetElevatorTargetCommand(Constants.substationPickupElevatorTargetPosition, - // elevator)); - - // bumperRight.onTrue(new SetClawThresholdOverrideCommand(true, elevator)); - // bumperRight.onFalse(new SetClawThresholdOverrideCommand(false, elevator)); - - // triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); - // triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); - - // start.onTrue(new - // SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); - - // shuffleboard.addBoolean("Test", () -> Robot.isTest); - // if(Robot.isTest) { - // x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, - // true, elevator) - // .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - // elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, - // true, elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - // elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, - // true, elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - // elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, - // true, elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - // elevator)) - // .andThen(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, - // true, - // elevator))); - // } - // } - - // enum PossibleAutos { - // NORMAL_AUTO, - // CHARGE_STATION_AUTO, - // } - - // private final Command normalAuto = new SetElevatorTargetCommand( - // Constants.middleElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand( Value.kForward,clawIntake,true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command chargeStationAuto = new SetElevatorTargetCommand( - // Constants.topElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand( Value.kForward,clawIntake, true)) - // .andThen(new SetElevatorTargetCommand( Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command driveBackAuto = new - // DriveDistanceAuto(Constants.BALANCE_DISTANCE, - // swerveDrive); - - // private final Command openThenDriveAuto = new - // ClawGrabberCommand(Value.kForward, clawIntake, - // true) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command openClaw = new ClawGrabberCommand(Value.kReverse, - // clawIntake, true); - - // private final Command overThenBalanceAuto = new - // DriveDistanceAuto(Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) - // .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, - // swerveDrive)); - - // private final Command highBalance = - // new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, true, - // elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command midBalance = - // new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, - // elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command backOut = new DriveDistanceAuto(50000 * - // Constants.normalAutoDriveBackDistance, swerveDrive); - - // private final Command lowBalance = - // new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, true, - // elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command highBack = - // new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, true, - // elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, - // swerveDrive)); - - // private final Command midBack = - // new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, - // elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, - // swerveDrive)); - - // private final Command lowBack = - // new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, true, - // elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, - // true, elevator)) - // .andThen(new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, - // swerveDrive)); - - // SendableChooser autoChooser = new SendableChooser<>(); - - // autoChooser.setDefaultOption("High Balance", highBalance); - // autoChooser.addOption("Open, then Drive Back", openThenDriveAuto); - // autoChooser.addOption("Normal", normalAuto); - // autoChooser.addOption("Charge Station", chargeStationAuto); - // autoChooser.addOption("Drive Back", driveBackAuto); - // autoChooser.addOption("Over, then Balance", overThenBalanceAuto); - // autoChooser.addOption("High Back Out", highBack); - // autoChooser.addOption("Mid Balance", midBalance); - // autoChooser.addOption("Mid Back Out", midBack); - // autoChooser.addOption("Low Balance", lowBalance); - // autoChooser.addOption("Low Back Out", lowBack); - - // shuffleboard.add(autoChooser); - // } - - // /** - // * Use this to pass the autonomous command to the main {@link Robot} class. - // * - // * @return the command to run in autonomous - // */ - // public Command getAutonomousCommand() { - // // An ExampleCommand will run in autonomous - // Command choice = autoChooser.getSelected(); - // // choice.schedule(); - // return choice; - - // } + private void configureSecondaryBindings() + { + secondaryController = new Joystick(1); + + elevator + .setDefaultCommand(new MoveElevatorCommand(() -> -secondaryController.getY(), elevator)); + + JoystickButton a = new JoystickButton(secondaryController, LogitechControllerButtons.a); + JoystickButton b = new JoystickButton(secondaryController, LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(secondaryController, LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(secondaryController, LogitechControllerButtons.y); + JoystickButton bumperLeft = new JoystickButton(secondaryController, + LogitechControllerButtons.bumperLeft); + JoystickButton bumperRight = new JoystickButton(secondaryController, + LogitechControllerButtons.bumperRight); + JoystickButton triggerLeft = new JoystickButton(secondaryController, + LogitechControllerButtons.triggerLeft); + JoystickButton triggerRight = new JoystickButton(secondaryController, + LogitechControllerButtons.triggerRight); + POVButton up = new POVButton(secondaryController, LogitechControllerButtons.up); + POVButton down = new POVButton(secondaryController, LogitechControllerButtons.down); + POVButton left = new POVButton(secondaryController, LogitechControllerButtons.left); + ; + POVButton right = new POVButton(secondaryController, LogitechControllerButtons.right); + JoystickButton start = new JoystickButton(secondaryController, LogitechControllerButtons.start); + + a.whileTrue(new ClawGrabberCommand(Value.kForward, clawIntake, true)); + b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); + // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); + + up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, elevator)); + left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, elevator)); + right.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); + down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); + bumperLeft.onTrue( + new SetElevatorTargetCommand(Constants.substationPickupElevatorTargetPosition, elevator)); + + bumperRight.onTrue(new SetClawThresholdOverrideCommand(true, elevator)); + bumperRight.onFalse(new SetClawThresholdOverrideCommand(false, elevator)); + + triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); + triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); + + start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); + + shuffleboard.addBoolean("Test", () -> Robot.isTest); + if (Robot.isTest) + { + x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) + .andThen( + new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) + .andThen( + new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) + .andThen( + new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, + elevator))); + } + } + + enum PossibleAutos + { + NORMAL_AUTO, CHARGE_STATION_AUTO, + } + + private final Command normalAuto = new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + private final Command chargeStationAuto = new SetElevatorTargetCommand( + Constants.topElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + private final Command driveBackAuto = new DriveDistanceAuto(Constants.BALANCE_DISTANCE, + swerveDrive); + + private final Command openThenDriveAuto = new ClawGrabberCommand(Value.kForward, clawIntake, true) + .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + private final Command openClaw = new ClawGrabberCommand(Value.kReverse, clawIntake, true); + + private final Command overThenBalanceAuto = new DriveDistanceAuto( + Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) + .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, swerveDrive)); + + private final Command highBalance = new SetElevatorTargetCommand( + Constants.topElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + private final Command midBalance = new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + private final Command backOut = new DriveDistanceAuto( + 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); + + private final Command lowBalance = new SetElevatorTargetCommand( + Constants.bottomElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + private final Command highBack = new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, + true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); + + private final Command midBack = new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); + + private final Command lowBack = new SetElevatorTargetCommand( + Constants.bottomElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen( + new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + .andThen( + new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, swerveDrive)); + + /** + * Use this to pass the autonomous command to the main {@link Robot} class. + * + * @return the command to run in autonomous + */ + public Command getAutonomousCommand() + { + // An ExampleCommand will run in autonomous + Command choice = autoChooser.getSelected(); + // choice.schedule(); + return choice; + + } } \ No newline at end of file diff --git a/src/main/java/frc/robot/SwerveModule.java b/src/main/java/frc/robot/SwerveModule.java index e052157..e5b1bce 100644 --- a/src/main/java/frc/robot/SwerveModule.java +++ b/src/main/java/frc/robot/SwerveModule.java @@ -120,7 +120,7 @@ public void resetToAbsolute() private void configAngleEncoder() { angleEncoder.configFactoryDefault(); - CANCoderUtil.setCANCoderBusUsage(angleEncoder, CCUsage.kMinimal); + CANCoderUtil.setCANCoderBusUsage(angleEncoder, CCUsage.kAll); angleEncoder.configAllSettings(Robot.ctreConfigs.swerveCanCoderConfig); } @@ -137,7 +137,8 @@ private void configAngleMotor() angleController.setD(Constants.Swerve.angleKD); angleController.setFF(Constants.Swerve.angleKF); mAngleMotor.enableVoltageCompensation(Constants.Swerve.voltageComp); - mAngleMotor.burnFlash(); // writes configurations to flash memory so they save if a PDP breaker trips + mAngleMotor.burnFlash(); // writes configurations to flash memory so they save if a PDP + // breaker trips resetToAbsolute(); } diff --git a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java index e2745b4..908a8c3 100644 --- a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java @@ -17,12 +17,13 @@ import frc.robot.commands.MoveElevatorCommand; import edu.wpi.first.math.controller.PIDController; -public class ElevatorSubsystem extends SubsystemBase { - +public class ElevatorSubsystem extends SubsystemBase +{ + public ITeamTalon elevatorMotorMain, elevatorMotorSub; public double targetPosition = Constants.restElevatorTargetPosition; public final double DEADBAND_VALUE = Constants.ELEVATOR_DEADBAND_VALUE; - + public AnalogPotentiometer potentiometer; public ClawIntakeSubsystem intake; @@ -36,24 +37,26 @@ public class ElevatorSubsystem extends SubsystemBase { public DigitalInput elevatorLimitSwitch; - private static final double kP = 1.32; //1.2392; + private static final double kP = 1.32; // 1.2392; private static final double kI = 0; - private static final double kD = .0185; //0.019259; + private static final double kD = .0185; // 0.019259; PIDController pid = new PIDController(kP, kI, kD); public ElevatorSubsystem(ClawIntakeSubsystem intake) { - elevatorMotorMain = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorMain", Ports.ELEVATOR_MOTOR_MAIN); - elevatorMotorSub = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorSub", Ports.ELEVATOR_MOTOR_SUB); + elevatorMotorMain = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorMain", + Ports.ELEVATOR_MOTOR_MAIN); + elevatorMotorSub = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorSub", + Ports.ELEVATOR_MOTOR_SUB); elevatorMotorMain.resetEncoder(); - elevatorMotorMain.enableVoltageCompensation(true); + elevatorMotorMain.enableVoltageCompensation(true); elevatorMotorMain.setInverted(false); elevatorMotorMain.setNeutralMode(NeutralMode.Brake); elevatorMotorSub.resetEncoder(); - elevatorMotorSub.enableVoltageCompensation(true); + elevatorMotorSub.enableVoltageCompensation(true); elevatorMotorSub.setInverted(true); elevatorMotorSub.setNeutralMode(NeutralMode.Brake); // elevatorMotorSub.follow(elevatorMotorMain); @@ -63,28 +66,35 @@ public ElevatorSubsystem(ClawIntakeSubsystem intake) potentiometer = new AnalogPotentiometer(Ports.ELEVATOR_POTENTIOMETER, 100); RobotContainer.shuffleboard.addDouble("Elevator", () -> potentiometer.get()); RobotContainer.shuffleboard.addDouble("Elevator Target", () -> targetPosition); - RobotContainer.shuffleboard.addDouble("Main Elevator Encoder", () -> elevatorMotorMain.getCurrentEncoderValue()); - RobotContainer.shuffleboard.addDouble("Sub Elevator Encoder", () -> elevatorMotorSub.getCurrentEncoderValue()); + RobotContainer.shuffleboard.addDouble("Main Elevator Encoder", + () -> elevatorMotorMain.getCurrentEncoderValue()); + RobotContainer.shuffleboard.addDouble("Sub Elevator Encoder", + () -> elevatorMotorSub.getCurrentEncoderValue()); RobotContainer.shuffleboard.addDouble("Main Elevator Power", () -> elevatorMotorMain.get()); RobotContainer.shuffleboard.addDouble("Sub Elevator Power", () -> elevatorMotorSub.get()); RobotContainer.shuffleboard.addBoolean("Elevator Override", () -> targetOverridden); - RobotContainer.shuffleboard.addBoolean("Claw Threshold Override", () -> clawThresholdOverridden); + RobotContainer.shuffleboard.addBoolean("Claw Threshold Override", + () -> clawThresholdOverridden); RobotContainer.shuffleboard.addBoolean("Elevator in Target", () -> isInTarget()); - RobotContainer.shuffleboard.addBoolean("Elevator Limit Switch", () -> elevatorLimitSwitch.get()); + RobotContainer.shuffleboard.addBoolean("Elevator Limit Switch", + () -> elevatorLimitSwitch.get()); this.intake = intake; } - public void setTargetPosition(double newTargetPosition, String reason) { + public void setTargetPosition(double newTargetPosition, String reason) + { targetPosition = newTargetPosition; } private double getCappedPower(double desired) { - return Math.min(Constants.maxElevatorMotorSpeed, Math.max(desired, -Constants.maxElevatorMotorSpeed)); + return Math.min(Constants.maxElevatorMotorSpeed, + Math.max(desired, -Constants.maxElevatorMotorSpeed)); } - public void setSpeed(double newSpeed) { + public void setSpeed(double newSpeed) + { double sign = Math.signum(newSpeed); // System.out.println("Passed Speed: " + newSpeed); this.speed = newSpeed; @@ -96,27 +106,31 @@ public void setSpeed(double newSpeed) { speed = getCappedPower(speed); double currentPower = elevatorMotorMain.get(); - + if ((speed < currentPower)) { newPower = Math.max(speed, currentPower - Constants.ELEVATOR_MAX_POWER_CHANGE); - } + } // /jack morton lawrence torrance jack morton lawrence torrance jack morton lawrence + // torrance else if ((speed > currentPower)) { newPower = Math.min(speed, currentPower + Constants.ELEVATOR_MAX_POWER_CHANGE); - } - else + } + else { newPower = speed; } - if((potentiometer.get() > Constants.topElevatorTargetPosition && speed > 0) || - (potentiometer.get() < Constants.MINIMUM_ELEVATOR_POSITION && speed < 0)) { + if ((potentiometer.get() > Constants.topElevatorTargetPosition && speed > 0) + || (potentiometer.get() < Constants.MINIMUM_ELEVATOR_POSITION && speed < 0)) + { newPower = 0; } - if (elevatorLimitSwitch.get()) { - if (newPower < 0) { + if (elevatorLimitSwitch.get()) + { + if (newPower < 0) + { newPower = 0; } } @@ -128,35 +142,40 @@ else if ((speed > currentPower)) elevatorMotorSub.set(newPower, "Joystick said so"); } - public void periodic() { + public void periodic() + { // System.out.println("Elevator Power: " + elevatorMotorMain.get()); // System.out.println("Current Potentiometer Value: " + potentiometer.get()); - - if(!targetOverridden) { - if (!isInTarget()) { + + if (!targetOverridden) + { + if (!isInTarget()) + { // setSpeed(Math.signum(targetPosition - potentiometer.get())); setSpeed(pid.calculate(potentiometer.get(), targetPosition)); } - else { + else + { setSpeed(0); } } - if(potentiometer.get() < Constants.clawCloseThreshold && !clawThresholdOverridden - && intake.clawGrabberLeft.get() != Value.kReverse && Robot.isEnabled) + if (potentiometer.get() < Constants.clawCloseThreshold && !clawThresholdOverridden + && intake.clawGrabberLeft.get() != Value.kReverse && Robot.isEnabled) intake.setSolenoid(Value.kReverse); - + } - public boolean isInTarget() { + public boolean isInTarget() + { double delta = targetPosition - potentiometer.get(); return Math.abs(delta) < DEADBAND_VALUE; } - public void resetTarget() { + public void resetTarget() + { targetPosition = potentiometer.get(); } } - From 86aeec990ddf91763d68a96e32c4673069e13441 Mon Sep 17 00:00:00 2001 From: Owen Beck <73498409+Beckoe@users.noreply.github.com> Date: Wed, 18 Oct 2023 21:55:08 -0400 Subject: [PATCH 03/15] Autobalance is ready for testing, still need to add the wheel lock thing. --- src/main/java/frc/robot/Constants.java | 7 +- src/main/java/frc/robot/RobotContainer.java | 154 +++++++++--------- .../java/frc/robot/autos/AutoBalanceAuto.java | 62 +++++++ 3 files changed, 139 insertions(+), 84 deletions(-) create mode 100644 src/main/java/frc/robot/autos/AutoBalanceAuto.java diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index a677dda..79dfd92 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -27,11 +27,8 @@ public final class Constants { // auto distances, need to adjust for swerve and get rid of unused ones - public static final double normalAutoDriveBackDistance = -3.78; - public static final double backOfGridToFrontOfGridForAutosButNotUsed = 1.42; - public static final double BALANCE_DISTANCE = -50000.0 * 1.5; - public static final double OVER_CHARGESTATION_DISTANCE = -50000.0 * 1; - public static final double RETURN_TO_CHARGESTATION_DISTANCE = 50000 * 1; + public static final double EXIT_COMMUNITY_DISTANCE = 1; + public static final double EXIT_COMMUNITY_CHARGE_STATION_DISTANCE = 1; public static final double ELEVATOR_MAX_POWER_CHANGE = 0.275; diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 146f3df..e34426d 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -14,6 +14,7 @@ import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; import frc.robot.commands.SetElevatorTargetCommand; import frc.robot.commands.SetElevatorTargetOverrideCommand; +import frc.robot.autos.AutoBalanceAuto; import frc.robot.autos.DriveDistanceAuto; import frc.robot.commands.ClawGrabberCommand; import frc.robot.commands.ExampleCommand; @@ -69,17 +70,8 @@ public RobotContainer() autoChooser = new SendableChooser<>(); - autoChooser.setDefaultOption("High Balance", highBalance); - autoChooser.addOption("Open, then Drive Back", openThenDriveAuto); - autoChooser.addOption("Normal", normalAuto); - autoChooser.addOption("Charge Station", chargeStationAuto); - autoChooser.addOption("Drive Back", driveBackAuto); - autoChooser.addOption("Over, then Balance", overThenBalanceAuto); - autoChooser.addOption("High Back Out", highBack); - autoChooser.addOption("Mid Balance", midBalance); - autoChooser.addOption("Mid Back Out", midBack); - autoChooser.addOption("Low Balance", lowBalance); - autoChooser.addOption("Low Back Out", lowBack); + autoChooser.setDefaultOption("Charge Station", chargeStationAuto); + autoChooser.addOption("Exit Community", exitCommunityAuto); shuffleboard.add(autoChooser); @@ -207,82 +199,86 @@ private void configureSecondaryBindings() } } - enum PossibleAutos - { - NORMAL_AUTO, CHARGE_STATION_AUTO, - } +// enum PossibleAutos +// { +// NORMAL_AUTO, +// CHARGE_STATION_AUTO +// } - private final Command normalAuto = new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - private final Command chargeStationAuto = new SetElevatorTargetCommand( + private final Command exitCommunityAuto = new SetElevatorTargetCommand( Constants.topElevatorTargetPosition, true, elevator) .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - private final Command driveBackAuto = new DriveDistanceAuto(Constants.BALANCE_DISTANCE, - swerveDrive); + new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, swerveDrive)); - private final Command openThenDriveAuto = new ClawGrabberCommand(Value.kForward, clawIntake, true) - .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - private final Command openClaw = new ClawGrabberCommand(Value.kReverse, clawIntake, true); - - private final Command overThenBalanceAuto = new DriveDistanceAuto( - Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) - .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, swerveDrive)); - - private final Command highBalance = new SetElevatorTargetCommand( + private final Command chargeStationAuto = new SetElevatorTargetCommand( Constants.topElevatorTargetPosition, true, elevator) .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - private final Command midBalance = new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - private final Command backOut = new DriveDistanceAuto( - 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); - - private final Command lowBalance = new SetElevatorTargetCommand( - Constants.bottomElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - private final Command highBack = new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, - true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); - - private final Command midBack = new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); - - private final Command lowBack = new SetElevatorTargetCommand( - Constants.bottomElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - .andThen( - new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, swerveDrive)); + new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) + .andThen(new DriveDistanceAuto(Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, swerveDrive)) + .andThen(new AutoBalanceAuto(swerveDrive)); + +// // Old autos below + +// private final Command driveBackAuto = new DriveDistanceAuto(Constants.BALANCE_DISTANCE, +// swerveDrive); + +// private final Command openThenDriveAuto = new ClawGrabberCommand(Value.kForward, clawIntake, true) +// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + +// private final Command openClaw = new ClawGrabberCommand(Value.kReverse, clawIntake, true); + +// private final Command overThenBalanceAuto = new DriveDistanceAuto( +// Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) +// .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, swerveDrive)); + +// private final Command highBalance = new SetElevatorTargetCommand( +// Constants.topElevatorTargetPosition, true, elevator) +// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) +// .andThen( +// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) +// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + +// private final Command midBalance = new SetElevatorTargetCommand( +// Constants.middleElevatorTargetPosition, true, elevator) +// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) +// .andThen( +// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) +// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + +// private final Command backOut = new DriveDistanceAuto( +// 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); + +// private final Command lowBalance = new SetElevatorTargetCommand( +// Constants.bottomElevatorTargetPosition, true, elevator) +// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) +// .andThen( +// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) +// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + +// private final Command highBack = new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, +// true, elevator) +// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) +// .andThen( +// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) +// .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); + +// private final Command midBack = new SetElevatorTargetCommand( +// Constants.middleElevatorTargetPosition, true, elevator) +// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) +// .andThen( +// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) +// .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); + +// private final Command lowBack = new SetElevatorTargetCommand( +// Constants.bottomElevatorTargetPosition, true, elevator) +// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) +// .andThen( +// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) +// .andThen( +// new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, swerveDrive)); /** * Use this to pass the autonomous command to the main {@link Robot} class. diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java new file mode 100644 index 0000000..55b2bdd --- /dev/null +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -0,0 +1,62 @@ +package frc.robot.autos; + +import com.kauailabs.navx.frc.AHRS; + +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.wpilibj.I2C.Port; +import edu.wpi.first.wpilibj2.command.CommandBase; +import frc.robot.Constants; +import frc.robot.subsystems.SwerveDriveSubsystem; + +public class AutoBalanceAuto extends CommandBase +{ + SwerveDriveSubsystem s_Swerve; + + private double balancingSpeed; + private int balancingDirection; + + private double tiltDeadband; + + private AHRS gyro; + + public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) + { + this.s_Swerve = s_Swerve; + balancingSpeed = 0.5; + balancingDirection = 1; + tiltDeadband = 10; + + gyro = new AHRS(Port.kMXP); + + addRequirements(s_Swerve); + } + + @Override + public void execute() + { + if (gyro.getRoll() < tiltDeadband && gyro.getRoll() > -tiltDeadband) + { + balancingDirection = 0; + } + else if (gyro.getRoll() > 0 && balancingDirection == 1) + { + balancingSpeed /= 2; + balancingDirection = -1; + } + else if (gyro.getRoll() < 0 && balancingDirection == -1) + { + balancingSpeed /= 2; + balancingDirection = 1; + } + + if (balancingSpeed < 0.1) balancingSpeed = 0.1; + + s_Swerve.drive(new Translation2d(balancingSpeed * balancingDirection, 0).times( + Constants.Swerve.maxSpeed), 0 * Constants.Swerve.maxAngularVelocity, + /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on + true); + } + + + +} From 9019036c6f454ae43728f3ac44114722ee508644 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Thu, 19 Oct 2023 16:32:18 -0400 Subject: [PATCH 04/15] Wheel locking is ready to test. --- src/main/java/frc/robot/Constants.java | 5 +- src/main/java/frc/robot/RobotContainer.java | 1 + .../java/frc/robot/autos/AutoBalanceAuto.java | 42 +++++--- vendordeps/Phoenix.json | 102 +++++++++--------- vendordeps/REVLib.json | 14 +-- 5 files changed, 92 insertions(+), 72 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 79dfd92..8756322 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -27,8 +27,9 @@ public final class Constants { // auto distances, need to adjust for swerve and get rid of unused ones - public static final double EXIT_COMMUNITY_DISTANCE = 1; - public static final double EXIT_COMMUNITY_CHARGE_STATION_DISTANCE = 1; + public static final double EXIT_COMMUNITY_DISTANCE = -1; + public static final double EXIT_COMMUNITY_CHARGE_STATION_DISTANCE = -1; + public static final double RETURN_TO_CHARGE_STATION_DISTANCE = 1; public static final double ELEVATOR_MAX_POWER_CHANGE = 0.275; diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index e34426d..8311da2 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -218,6 +218,7 @@ private void configureSecondaryBindings() .andThen( new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) .andThen(new DriveDistanceAuto(Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, swerveDrive)) + .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGE_STATION_DISTANCE, swerveDrive)) .andThen(new AutoBalanceAuto(swerveDrive)); // // Old autos below diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index 55b2bdd..ebf1477 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -8,7 +8,7 @@ import frc.robot.Constants; import frc.robot.subsystems.SwerveDriveSubsystem; -public class AutoBalanceAuto extends CommandBase +public class AutoBalanceAuto extends CommandBase { SwerveDriveSubsystem s_Swerve; @@ -17,14 +17,21 @@ public class AutoBalanceAuto extends CommandBase private double tiltDeadband; + private double wheelLockSpeed; + + private boolean wheelsLocked; + private AHRS gyro; - public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) + public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) { this.s_Swerve = s_Swerve; balancingSpeed = 0.5; balancingDirection = 1; tiltDeadband = 10; + wheelLockSpeed = 0; + + wheelsLocked = false; gyro = new AHRS(Port.kMXP); @@ -32,31 +39,42 @@ public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) } @Override - public void execute() + public void execute() { - if (gyro.getRoll() < tiltDeadband && gyro.getRoll() > -tiltDeadband) + if (gyro.getRoll() < tiltDeadband && gyro.getRoll() > -tiltDeadband) { balancingDirection = 0; + + if (!wheelsLocked) + { + wheelLockSpeed = 0.01; + wheelsLocked = true; + } } - else if (gyro.getRoll() > 0 && balancingDirection == 1) + else if (gyro.getRoll() > 0 && balancingDirection == 1) { balancingSpeed /= 2; balancingDirection = -1; + wheelLockSpeed = 0; + wheelsLocked = false; } - else if (gyro.getRoll() < 0 && balancingDirection == -1) + else if (gyro.getRoll() < 0 && balancingDirection == -1) { balancingSpeed /= 2; balancingDirection = 1; + wheelLockSpeed = 0; + wheelsLocked = false; } - if (balancingSpeed < 0.1) balancingSpeed = 0.1; + if (balancingSpeed < 0.1) + balancingSpeed = 0.1; s_Swerve.drive(new Translation2d(balancingSpeed * balancingDirection, 0).times( - Constants.Swerve.maxSpeed), 0 * Constants.Swerve.maxAngularVelocity, - /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on - true); - } + Constants.Swerve.maxSpeed), wheelLockSpeed * Constants.Swerve.maxAngularVelocity, + /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on + true); + wheelLockSpeed = 0; + } - } diff --git a/vendordeps/Phoenix.json b/vendordeps/Phoenix.json index 282d536..614dc3a 100644 --- a/vendordeps/Phoenix.json +++ b/vendordeps/Phoenix.json @@ -1,7 +1,7 @@ { "fileName": "Phoenix.json", "name": "CTRE-Phoenix (v5)", - "version": "5.30.4+23.0.12", + "version": "5.31.0+23.2.2", "frcYear": 2023, "uuid": "ab676553-b602-441f-a38d-f1296eff6537", "mavenUrls": [ @@ -12,19 +12,19 @@ { "groupId": "com.ctre.phoenix", "artifactId": "api-java", - "version": "5.30.4" + "version": "5.31.0" }, { "groupId": "com.ctre.phoenix", "artifactId": "wpiapi-java", - "version": "5.30.4" + "version": "5.31.0" } ], "jniDependencies": [ { "groupId": "com.ctre.phoenix", "artifactId": "cci", - "version": "5.30.4", + "version": "5.31.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -37,7 +37,7 @@ { "groupId": "com.ctre.phoenix.sim", "artifactId": "cci-sim", - "version": "5.30.4", + "version": "5.31.0", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -48,9 +48,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro", + "groupId": "com.ctre.phoenix6", "artifactId": "tools", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -61,9 +61,9 @@ "simMode": "hwsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "tools-sim", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -74,9 +74,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonSRX", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -87,9 +87,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonFX", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -100,9 +100,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simVictorSPX", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -113,9 +113,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simPigeonIMU", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -126,9 +126,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simCANCoder", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -139,9 +139,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProTalonFX", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -152,9 +152,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProCANcoder", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -165,9 +165,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProPigeon2", - "version": "23.0.12", + "version": "23.2.2", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -182,7 +182,7 @@ { "groupId": "com.ctre.phoenix", "artifactId": "wpiapi-cpp", - "version": "5.30.4", + "version": "5.31.0", "libName": "CTRE_Phoenix_WPI", "headerClassifier": "headers", "sharedLibrary": true, @@ -197,7 +197,7 @@ { "groupId": "com.ctre.phoenix", "artifactId": "api-cpp", - "version": "5.30.4", + "version": "5.31.0", "libName": "CTRE_Phoenix", "headerClassifier": "headers", "sharedLibrary": true, @@ -212,7 +212,7 @@ { "groupId": "com.ctre.phoenix", "artifactId": "cci", - "version": "5.30.4", + "version": "5.31.0", "libName": "CTRE_PhoenixCCI", "headerClassifier": "headers", "sharedLibrary": true, @@ -225,9 +225,9 @@ "simMode": "hwsim" }, { - "groupId": "com.ctre.phoenixpro", + "groupId": "com.ctre.phoenix6", "artifactId": "tools", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_PhoenixTools", "headerClassifier": "headers", "sharedLibrary": true, @@ -242,7 +242,7 @@ { "groupId": "com.ctre.phoenix.sim", "artifactId": "wpiapi-cpp-sim", - "version": "5.30.4", + "version": "5.31.0", "libName": "CTRE_Phoenix_WPISim", "headerClassifier": "headers", "sharedLibrary": true, @@ -257,7 +257,7 @@ { "groupId": "com.ctre.phoenix.sim", "artifactId": "api-cpp-sim", - "version": "5.30.4", + "version": "5.31.0", "libName": "CTRE_PhoenixSim", "headerClassifier": "headers", "sharedLibrary": true, @@ -272,7 +272,7 @@ { "groupId": "com.ctre.phoenix.sim", "artifactId": "cci-sim", - "version": "5.30.4", + "version": "5.31.0", "libName": "CTRE_PhoenixCCISim", "headerClassifier": "headers", "sharedLibrary": true, @@ -285,9 +285,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "tools-sim", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_PhoenixTools_Sim", "headerClassifier": "headers", "sharedLibrary": true, @@ -300,9 +300,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonSRX", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimTalonSRX", "headerClassifier": "headers", "sharedLibrary": true, @@ -315,9 +315,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonFX", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimTalonFX", "headerClassifier": "headers", "sharedLibrary": true, @@ -330,9 +330,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simVictorSPX", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimVictorSPX", "headerClassifier": "headers", "sharedLibrary": true, @@ -345,9 +345,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simPigeonIMU", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimPigeonIMU", "headerClassifier": "headers", "sharedLibrary": true, @@ -360,9 +360,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simCANCoder", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimCANCoder", "headerClassifier": "headers", "sharedLibrary": true, @@ -375,9 +375,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProTalonFX", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimProTalonFX", "headerClassifier": "headers", "sharedLibrary": true, @@ -390,9 +390,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProCANcoder", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimProCANcoder", "headerClassifier": "headers", "sharedLibrary": true, @@ -405,9 +405,9 @@ "simMode": "swsim" }, { - "groupId": "com.ctre.phoenixpro.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProPigeon2", - "version": "23.0.12", + "version": "23.2.2", "libName": "CTRE_SimProPigeon2", "headerClassifier": "headers", "sharedLibrary": true, diff --git a/vendordeps/REVLib.json b/vendordeps/REVLib.json index 18f6c4d..f2d0b7d 100644 --- a/vendordeps/REVLib.json +++ b/vendordeps/REVLib.json @@ -1,24 +1,24 @@ { "fileName": "REVLib.json", "name": "REVLib", - "version": "2023.1.1", + "version": "2023.1.3", "uuid": "3f48eb8c-50fe-43a6-9cb7-44c86353c4cb", "mavenUrls": [ "https://maven.revrobotics.com/" ], - "jsonUrl": "https://software-metadata.revrobotics.com/REVLib.json", + "jsonUrl": "https://software-metadata.revrobotics.com/REVLib-2023.json", "javaDependencies": [ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-java", - "version": "2023.1.1" + "version": "2023.1.3" } ], "jniDependencies": [ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-driver", - "version": "2023.1.1", + "version": "2023.1.3", "skipInvalidPlatforms": true, "isJar": false, "validPlatforms": [ @@ -36,7 +36,7 @@ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-cpp", - "version": "2023.1.1", + "version": "2023.1.3", "libName": "REVLib", "headerClassifier": "headers", "sharedLibrary": false, @@ -54,7 +54,7 @@ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-driver", - "version": "2023.1.1", + "version": "2023.1.3", "libName": "REVLibDriver", "headerClassifier": "headers", "sharedLibrary": false, @@ -70,4 +70,4 @@ ] } ] -} +} \ No newline at end of file From 05be45cc50724b8a5f42b8b50bc7f50944900806 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Thu, 19 Oct 2023 16:37:31 -0400 Subject: [PATCH 05/15] Fixed a mistake with autobalance. --- src/main/java/frc/robot/autos/AutoBalanceAuto.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index ebf1477..dfc91c6 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -69,8 +69,10 @@ else if (gyro.getRoll() < 0 && balancingDirection == -1) if (balancingSpeed < 0.1) balancingSpeed = 0.1; - s_Swerve.drive(new Translation2d(balancingSpeed * balancingDirection, 0).times( - Constants.Swerve.maxSpeed), wheelLockSpeed * Constants.Swerve.maxAngularVelocity, + s_Swerve.drive( + new Translation2d(balancingSpeed * balancingDirection, wheelLockSpeed) + .times(Constants.Swerve.maxSpeed), + 0 * Constants.Swerve.maxAngularVelocity, /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on true); From 0e0f7a0b1d42c4df3a90b65bd945206c08d1a2cb Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Thu, 19 Oct 2023 21:38:32 -0400 Subject: [PATCH 06/15] Started fixing auto. --- src/main/java/frc/robot/Robot.java | 66 ++- src/main/java/frc/robot/RobotContainer.java | 519 +++++++++--------- .../java/frc/robot/autos/AutoBalanceAuto.java | 2 +- .../robot/autos/GoodDriveDistanceAuto.java | 56 ++ 4 files changed, 365 insertions(+), 278 deletions(-) create mode 100644 src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 816c107..769f293 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -17,7 +17,8 @@ * the package after creating this project, you must also update the build.gradle file in the * project. */ -public class Robot extends TimedRobot { +public class Robot extends TimedRobot +{ private Command m_autonomousCommand; private RobotContainer m_robotContainer; @@ -32,8 +33,9 @@ public class Robot extends TimedRobot { * initialization code. */ @Override - public void robotInit() { - // Instantiate our RobotContainer. This will perform all our button bindings, and put our + public void robotInit() + { + // Instantiate our RobotContainer. This will perform all our button bindings, and put our // autonomous chooser on the dashboard. ctreConfigs = new CTREConfigs(); m_robotContainer = new RobotContainer(); @@ -43,61 +45,68 @@ public void robotInit() { /** * This function is called every 20 ms, no matter the mode. Use this for items like diagnostics * that you want ran during disabled, autonomous, teleoperated and test. - * - *

This runs after the mode specific periodic functions, but before LiveWindow and - * SmartDashboard integrated updating. + *

+ * This runs after the mode specific periodic functions, but before LiveWindow and SmartDashboard + * integrated updating. */ @Override - public void robotPeriodic() { - // Runs the Scheduler. This is responsible for polling buttons, adding newly-scheduled + public void robotPeriodic() + { + // Runs the Scheduler. This is responsible for polling buttons, adding newly-scheduled // commands, running already-scheduled commands, removing finished or interrupted commands, - // and running subsystem periodic() methods. This must be called from the robot's periodic + // and running subsystem periodic() methods. This must be called from the robot's periodic // block in order for anything in the Command-based framework to work. CommandScheduler.getInstance().run(); } /** This function is called once each time the robot enters Disabled mode. */ @Override - public void disabledInit() { - if(RobotContainer.instance != null) + public void disabledInit() + { + if (RobotContainer.instance != null) // RobotContainer.instance.drivetrain.driveStraight = false; - + isEnabled = false; - isTest = false; + isTest = false; } @Override - public void disabledPeriodic() {} + public void disabledPeriodic() + {} /** This autonomous runs the autonomous command selected by your {@link RobotContainer} class. */ @Override - public void autonomousInit() { - // m_autonomousCommand = m_robotContainer.getAutonomousCommand(); + public void autonomousInit() + { + m_autonomousCommand = m_robotContainer.getAutonomousCommand(); System.out.println("Auto Command: " + m_autonomousCommand); // if(m_autonomousCommand == null) m_autonomousCommand = new NormalAutoCommand(); // new ClawGrabberCommand(Value.kForward, RobotContainer.instance.clawIntake, true); // isEnabled = true; // RobotContainer.instance.elevator.resetTarget(); TODO: uncomment with working swerve - + // schedule the autonomous command (example) - if (m_autonomousCommand != null) { + if (m_autonomousCommand != null) + { m_autonomousCommand.schedule(); } } /** This function is called periodically during autonomous. */ @Override - public void autonomousPeriodic() {} + public void autonomousPeriodic() + {} @Override - public void teleopInit() { + public void teleopInit() + { // This makes sure that the autonomous stops running when // teleop starts running. If you want the autonomous to // continue until interrupted by another command, remove // this line or comment it out. // if (m_autonomousCommand != null) { - // m_autonomousCommand.cancel(); + // m_autonomousCommand.cancel(); // } CommandScheduler.getInstance().cancelAll(); @@ -110,10 +119,12 @@ public void teleopInit() { /** This function is called periodically during operator control. */ @Override - public void teleopPeriodic() {} + public void teleopPeriodic() + {} @Override - public void testInit() { + public void testInit() + { // Cancels all running commands at the start of test mode. CommandScheduler.getInstance().cancelAll(); @@ -123,13 +134,16 @@ public void testInit() { /** This function is called periodically during test mode. */ @Override - public void testPeriodic() {} + public void testPeriodic() + {} /** This function is called once when the robot is first started up. */ @Override - public void simulationInit() {} + public void simulationInit() + {} /** This function is called periodically whilst in simulation. */ @Override - public void simulationPeriodic() {} + public void simulationPeriodic() + {} } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 8311da2..9a5da29 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -16,6 +16,7 @@ import frc.robot.commands.SetElevatorTargetOverrideCommand; import frc.robot.autos.AutoBalanceAuto; import frc.robot.autos.DriveDistanceAuto; +import frc.robot.autos.GoodDriveDistanceAuto; import frc.robot.commands.ClawGrabberCommand; import frc.robot.commands.ExampleCommand; import frc.robot.commands.SetClawThresholdOverrideCommand; @@ -40,258 +41,274 @@ public class RobotContainer { - public static RobotContainer instance; - - public SwerveDriveSubsystem swerveDrive = new SwerveDriveSubsystem(); - public ClawIntakeSubsystem clawIntake = new ClawIntakeSubsystem(); - public ElevatorSubsystem elevator = new ElevatorSubsystem(clawIntake);; - public VisionSubsystem vision = new VisionSubsystem(); - - public Joystick primaryController; - public Joystick secondaryController; - - public static ShuffleboardTab shuffleboard = Shuffleboard.getTab("SmartDashboard"); - - // The robot's subsystems and commands are defined here... - private final ExampleSubsystem m_exampleSubsystem = new ExampleSubsystem(); - - private final ExampleCommand m_autoCommand = new ExampleCommand(m_exampleSubsystem); - - SendableChooser autoChooser; - - /** - * The container for the robot. Contains subsystems, OI devices, and commands. - */ - public RobotContainer() - { - // shuffleboard = Shuffleboard.getTab("SmartDashboard"); - - shuffleboard.addDouble("Gyro", () -> swerveDrive.gyro.getAngle()); - - autoChooser = new SendableChooser<>(); - - autoChooser.setDefaultOption("Charge Station", chargeStationAuto); - autoChooser.addOption("Exit Community", exitCommunityAuto); - - shuffleboard.add(autoChooser); - - secondaryController = new Joystick(2); // We need this for testing in elevator - - // Configure the button bindings - configurePrimaryBindings(); - configureSecondaryBindings(); - - instance = this; - } - - /** - * Use this method to define your button->command mappings. Buttons can be created by - * instantiating a {@link GenericHID} or one of its subclasses - * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it to a - * {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. - */ - private void configurePrimaryBindings() - { - primaryController = new Joystick(0); - - // JoystickButton a = new - // JoystickButton(primaryController,LogitechControllerButtons.a); - // JoystickButton b = new - // JoystickButton(primaryController,LogitechControllerButtons.b); - JoystickButton x = new JoystickButton(primaryController, LogitechControllerButtons.x); - JoystickButton y = new JoystickButton(primaryController, LogitechControllerButtons.y); - JoystickButton bumperLeft = new JoystickButton(primaryController, - LogitechControllerButtons.bumperLeft); - JoystickButton bumperRight = new JoystickButton(primaryController, - LogitechControllerButtons.bumperRight); - JoystickButton triggerLeft = new JoystickButton(primaryController, - LogitechControllerButtons.triggerLeft); - JoystickButton triggerRight = new JoystickButton(primaryController, - LogitechControllerButtons.triggerRight); - // JoystickButton up = new - // JoystickButton(primaryController,LogitechControllerButtons.up); - // JoystickButton down = new - // JoystickButton(primaryController,LogitechControllerButtons.down); - // JoystickButton left = new - // JoystickButton(primaryController,LogitechControllerButtons.left); - // JoystickButton right = new - // JoystickButton(primaryController,LogitechControllerButtons.right); - - swerveDrive - // vertical axis of left joystick -> translation - .setDefaultCommand(new TeleopSwerveCommand(swerveDrive, () -> -primaryController.getY(), - () -> -primaryController.getX(), // horizontal axis of left joystick-> strafe - // we want horizontal of right stick, if not twist, then change - () -> -primaryController.getTwist() - /* ()->y.getAsBoolean() owen doesn't want a button to turn field-relative off */ - )); - - x.onTrue(new InstantCommand(() -> swerveDrive.zeroGyro())); - y.onTrue(new InstantCommand(() -> + public static RobotContainer instance; + + public SwerveDriveSubsystem swerveDrive = new SwerveDriveSubsystem(); + public ClawIntakeSubsystem clawIntake = new ClawIntakeSubsystem(); + public ElevatorSubsystem elevator = new ElevatorSubsystem(clawIntake);; + public VisionSubsystem vision = new VisionSubsystem(); + + public Joystick primaryController; + public Joystick secondaryController; + + public static ShuffleboardTab shuffleboard = Shuffleboard.getTab("SmartDashboard"); + + // The robot's subsystems and commands are defined here... + private final ExampleSubsystem m_exampleSubsystem = new ExampleSubsystem(); + + private final ExampleCommand m_autoCommand = new ExampleCommand(m_exampleSubsystem); + + SendableChooser autoChooser; + + /** + * The container for the robot. Contains subsystems, OI devices, and commands. + */ + public RobotContainer() + { + // shuffleboard = Shuffleboard.getTab("SmartDashboard"); + + shuffleboard.addDouble("Gyro", () -> swerveDrive.gyro.getAngle()); + + autoChooser = new SendableChooser<>(); + + autoChooser.setDefaultOption("Charge Station", chargeStationAuto); + autoChooser.addOption("Exit Community", exitCommunityAuto); + + shuffleboard.add(autoChooser); + + secondaryController = new Joystick(2); // We need this for testing in elevator + + // Configure the button bindings + configurePrimaryBindings(); + configureSecondaryBindings(); + + instance = this; + } + + /** + * Use this method to define your button->command mappings. Buttons can be created by + * instantiating a {@link GenericHID} or one of its subclasses + * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it to a + * {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. + */ + private void configurePrimaryBindings() + { + primaryController = new Joystick(0); + + // JoystickButton a = new + // JoystickButton(primaryController,LogitechControllerButtons.a); + // JoystickButton b = new + // JoystickButton(primaryController,LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(primaryController, LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(primaryController, LogitechControllerButtons.y); + JoystickButton bumperLeft = new JoystickButton(primaryController, + LogitechControllerButtons.bumperLeft); + JoystickButton bumperRight = new JoystickButton(primaryController, + LogitechControllerButtons.bumperRight); + JoystickButton triggerLeft = new JoystickButton(primaryController, + LogitechControllerButtons.triggerLeft); + JoystickButton triggerRight = new JoystickButton(primaryController, + LogitechControllerButtons.triggerRight); + // JoystickButton up = new + // JoystickButton(primaryController,LogitechControllerButtons.up); + // JoystickButton down = new + // JoystickButton(primaryController,LogitechControllerButtons.down); + // JoystickButton left = new + // JoystickButton(primaryController,LogitechControllerButtons.left); + // JoystickButton right = new + // JoystickButton(primaryController,LogitechControllerButtons.right); + + swerveDrive + // vertical axis of left joystick -> translation + .setDefaultCommand(new TeleopSwerveCommand(swerveDrive, + () -> -primaryController.getY(), () -> -primaryController.getX(), // horizontal + // axis of + // left + // joystick-> + // strafe + // we want horizontal of right stick, if not twist, then change + () -> -primaryController.getTwist() + /* ()->y.getAsBoolean() owen doesn't want a button to turn field-relative off */ + )); + + x.onTrue(new InstantCommand(() -> swerveDrive.zeroGyro())); + y.onTrue(new InstantCommand(() -> + { + for (SwerveModule mod : swerveDrive.mSwerveMods) + mod.resetToAbsolute(); + })); + + } + + private void configureSecondaryBindings() { - for (SwerveModule mod : swerveDrive.mSwerveMods) - mod.resetToAbsolute(); - })); - - } - - private void configureSecondaryBindings() - { - secondaryController = new Joystick(1); - - elevator - .setDefaultCommand(new MoveElevatorCommand(() -> -secondaryController.getY(), elevator)); - - JoystickButton a = new JoystickButton(secondaryController, LogitechControllerButtons.a); - JoystickButton b = new JoystickButton(secondaryController, LogitechControllerButtons.b); - JoystickButton x = new JoystickButton(secondaryController, LogitechControllerButtons.x); - JoystickButton y = new JoystickButton(secondaryController, LogitechControllerButtons.y); - JoystickButton bumperLeft = new JoystickButton(secondaryController, - LogitechControllerButtons.bumperLeft); - JoystickButton bumperRight = new JoystickButton(secondaryController, - LogitechControllerButtons.bumperRight); - JoystickButton triggerLeft = new JoystickButton(secondaryController, - LogitechControllerButtons.triggerLeft); - JoystickButton triggerRight = new JoystickButton(secondaryController, - LogitechControllerButtons.triggerRight); - POVButton up = new POVButton(secondaryController, LogitechControllerButtons.up); - POVButton down = new POVButton(secondaryController, LogitechControllerButtons.down); - POVButton left = new POVButton(secondaryController, LogitechControllerButtons.left); - ; - POVButton right = new POVButton(secondaryController, LogitechControllerButtons.right); - JoystickButton start = new JoystickButton(secondaryController, LogitechControllerButtons.start); - - a.whileTrue(new ClawGrabberCommand(Value.kForward, clawIntake, true)); - b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); - // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); - - up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, elevator)); - left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, elevator)); - right.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); - down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); - bumperLeft.onTrue( - new SetElevatorTargetCommand(Constants.substationPickupElevatorTargetPosition, elevator)); - - bumperRight.onTrue(new SetClawThresholdOverrideCommand(true, elevator)); - bumperRight.onFalse(new SetClawThresholdOverrideCommand(false, elevator)); - - triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); - triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); - - start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); - - shuffleboard.addBoolean("Test", () -> Robot.isTest); - if (Robot.isTest) + secondaryController = new Joystick(1); + + elevator.setDefaultCommand( + new MoveElevatorCommand(() -> -secondaryController.getY(), elevator)); + + JoystickButton a = new JoystickButton(secondaryController, LogitechControllerButtons.a); + JoystickButton b = new JoystickButton(secondaryController, LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(secondaryController, LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(secondaryController, LogitechControllerButtons.y); + JoystickButton bumperLeft = new JoystickButton(secondaryController, + LogitechControllerButtons.bumperLeft); + JoystickButton bumperRight = new JoystickButton(secondaryController, + LogitechControllerButtons.bumperRight); + JoystickButton triggerLeft = new JoystickButton(secondaryController, + LogitechControllerButtons.triggerLeft); + JoystickButton triggerRight = new JoystickButton(secondaryController, + LogitechControllerButtons.triggerRight); + POVButton up = new POVButton(secondaryController, LogitechControllerButtons.up); + POVButton down = new POVButton(secondaryController, LogitechControllerButtons.down); + POVButton left = new POVButton(secondaryController, LogitechControllerButtons.left); + ; + POVButton right = new POVButton(secondaryController, LogitechControllerButtons.right); + JoystickButton start = new JoystickButton(secondaryController, + LogitechControllerButtons.start); + + a.whileTrue(new ClawGrabberCommand(Value.kForward, clawIntake, true)); + b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); + // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); + + up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, elevator)); + left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, elevator)); + right.onTrue( + new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); + down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); + bumperLeft.onTrue(new SetElevatorTargetCommand( + Constants.substationPickupElevatorTargetPosition, elevator)); + + bumperRight.onTrue(new SetClawThresholdOverrideCommand(true, elevator)); + bumperRight.onFalse(new SetClawThresholdOverrideCommand(false, elevator)); + + triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); + triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); + + start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); + + shuffleboard.addBoolean("Test", () -> Robot.isTest); + if (Robot.isTest) + { + x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, + elevator) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator))); + } + } + + // enum PossibleAutos + // { + // NORMAL_AUTO, + // CHARGE_STATION_AUTO + // } + + private final Command exitCommunityAuto = new SetElevatorTargetCommand( + Constants.topElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new GoodDriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, -0.5, + swerveDrive)); + + private final Command chargeStationAuto = new SetElevatorTargetCommand( + Constants.topElevatorTargetPosition, true, elevator) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new GoodDriveDistanceAuto( + Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, -0.5, swerveDrive)) + .andThen(new GoodDriveDistanceAuto(Constants.RETURN_TO_CHARGE_STATION_DISTANCE, + 0.5, swerveDrive)) + .andThen(new AutoBalanceAuto(swerveDrive)); + + // // Old autos below + + // private final Command driveBackAuto = new DriveDistanceAuto(Constants.BALANCE_DISTANCE, + // swerveDrive); + + // private final Command openThenDriveAuto = new ClawGrabberCommand(Value.kForward, clawIntake, + // true) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command openClaw = new ClawGrabberCommand(Value.kReverse, clawIntake, true); + + // private final Command overThenBalanceAuto = new DriveDistanceAuto( + // Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) + // .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, swerveDrive)); + + // private final Command highBalance = new SetElevatorTargetCommand( + // Constants.topElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command midBalance = new SetElevatorTargetCommand( + // Constants.middleElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command backOut = new DriveDistanceAuto( + // 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); + + // private final Command lowBalance = new SetElevatorTargetCommand( + // Constants.bottomElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command highBack = new + // SetElevatorTargetCommand(Constants.topElevatorTargetPosition, + // true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); + + // private final Command midBack = new SetElevatorTargetCommand( + // Constants.middleElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); + + // private final Command lowBack = new SetElevatorTargetCommand( + // Constants.bottomElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) + // .andThen( + // new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, swerveDrive)); + + /** + * Use this to pass the autonomous command to the main {@link Robot} class. + * + * @return the command to run in autonomous + */ + public Command getAutonomousCommand() { - x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) - .andThen( - new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) - .andThen( - new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) - .andThen( - new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, - elevator))); + // An ExampleCommand will run in autonomous + Command choice = autoChooser.getSelected(); + // choice.schedule(); + return choice; + } - } - -// enum PossibleAutos -// { -// NORMAL_AUTO, -// CHARGE_STATION_AUTO -// } - - private final Command exitCommunityAuto = new SetElevatorTargetCommand( - Constants.topElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, swerveDrive)); - - private final Command chargeStationAuto = new SetElevatorTargetCommand( - Constants.topElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen( - new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) - .andThen(new DriveDistanceAuto(Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, swerveDrive)) - .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGE_STATION_DISTANCE, swerveDrive)) - .andThen(new AutoBalanceAuto(swerveDrive)); - -// // Old autos below - -// private final Command driveBackAuto = new DriveDistanceAuto(Constants.BALANCE_DISTANCE, -// swerveDrive); - -// private final Command openThenDriveAuto = new ClawGrabberCommand(Value.kForward, clawIntake, true) -// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - -// private final Command openClaw = new ClawGrabberCommand(Value.kReverse, clawIntake, true); - -// private final Command overThenBalanceAuto = new DriveDistanceAuto( -// Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) -// .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, swerveDrive)); - -// private final Command highBalance = new SetElevatorTargetCommand( -// Constants.topElevatorTargetPosition, true, elevator) -// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) -// .andThen( -// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) -// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - -// private final Command midBalance = new SetElevatorTargetCommand( -// Constants.middleElevatorTargetPosition, true, elevator) -// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) -// .andThen( -// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) -// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - -// private final Command backOut = new DriveDistanceAuto( -// 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); - -// private final Command lowBalance = new SetElevatorTargetCommand( -// Constants.bottomElevatorTargetPosition, true, elevator) -// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) -// .andThen( -// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) -// .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - -// private final Command highBack = new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, -// true, elevator) -// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) -// .andThen( -// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) -// .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); - -// private final Command midBack = new SetElevatorTargetCommand( -// Constants.middleElevatorTargetPosition, true, elevator) -// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) -// .andThen( -// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) -// .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); - -// private final Command lowBack = new SetElevatorTargetCommand( -// Constants.bottomElevatorTargetPosition, true, elevator) -// .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) -// .andThen( -// new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) -// .andThen( -// new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, swerveDrive)); - - /** - * Use this to pass the autonomous command to the main {@link Robot} class. - * - * @return the command to run in autonomous - */ - public Command getAutonomousCommand() - { - // An ExampleCommand will run in autonomous - Command choice = autoChooser.getSelected(); - // choice.schedule(); - return choice; - - } } \ No newline at end of file diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index dfc91c6..e38a72d 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -71,7 +71,7 @@ else if (gyro.getRoll() < 0 && balancingDirection == -1) s_Swerve.drive( new Translation2d(balancingSpeed * balancingDirection, wheelLockSpeed) - .times(Constants.Swerve.maxSpeed), + .times( Constants.Swerve.maxSpeed), 0 * Constants.Swerve.maxAngularVelocity, /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on true); diff --git a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java new file mode 100644 index 0000000..fa24f3b --- /dev/null +++ b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java @@ -0,0 +1,56 @@ +package frc.robot.autos; + +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.math.kinematics.SwerveModulePosition; +import edu.wpi.first.wpilibj2.command.CommandBase; +import frc.robot.Constants; +import frc.robot.subsystems.SwerveDriveSubsystem; + +public class GoodDriveDistanceAuto extends CommandBase +{ + private double distance; + + SwerveDriveSubsystem s_Swerve; + + private double speed; + + private double targetPosition; + + public GoodDriveDistanceAuto(double distance, double speed, SwerveDriveSubsystem s_Swerve) + { + this.distance = distance; + this.speed = speed; + this.s_Swerve = s_Swerve; + + targetPosition = s_Swerve.getPose().getX(); + + addRequirements(s_Swerve); + } + + @Override + public void execute() + { + s_Swerve.drive(new Translation2d(speed, 0).times(Constants.Swerve.maxSpeed), 0, /* + * !robotCentricSup + * . + * getAsBoolean + * (), + */ true, // field + // relative + // is + // always + // on + true); + } + + private boolean isInTarget() + { + return true; + } + + @Override + public boolean isFinished() + { + return isInTarget(); + } +} From 010abd57d422b1eeaa681b8b5ac12b70c091cf29 Mon Sep 17 00:00:00 2001 From: Owen Beck <73498409+Beckoe@users.noreply.github.com> Date: Thu, 19 Oct 2023 21:48:02 -0400 Subject: [PATCH 07/15] Auto fixes are ready for testing. --- src/main/java/frc/robot/autos/AutoBalanceAuto.java | 4 ++-- src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index e38a72d..2005e81 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -26,7 +26,7 @@ public class AutoBalanceAuto extends CommandBase public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) { this.s_Swerve = s_Swerve; - balancingSpeed = 0.5; + balancingSpeed = 0.25; balancingDirection = 1; tiltDeadband = 10; wheelLockSpeed = 0; @@ -67,7 +67,7 @@ else if (gyro.getRoll() < 0 && balancingDirection == -1) } if (balancingSpeed < 0.1) - balancingSpeed = 0.1; + balancingSpeed = 0.05; s_Swerve.drive( new Translation2d(balancingSpeed * balancingDirection, wheelLockSpeed) diff --git a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java index fa24f3b..c8b3806 100644 --- a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java +++ b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java @@ -45,7 +45,8 @@ public void execute() private boolean isInTarget() { - return true; + if (distance > 0) return (s_Swerve.getPose().getX() > targetPosition); + else return (s_Swerve.getPose().getX() < targetPosition); } @Override From 224ab7a8ba2e8c358534e427945300f5049b08d0 Mon Sep 17 00:00:00 2001 From: Owen Beck <73498409+Beckoe@users.noreply.github.com> Date: Thu, 19 Oct 2023 21:50:31 -0400 Subject: [PATCH 08/15] Corrected a value in auto balance --- src/main/java/frc/robot/autos/AutoBalanceAuto.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index 2005e81..2511bff 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -66,7 +66,7 @@ else if (gyro.getRoll() < 0 && balancingDirection == -1) wheelsLocked = false; } - if (balancingSpeed < 0.1) + if (balancingSpeed < 0.05) balancingSpeed = 0.05; s_Swerve.drive( From b50394baefede7c6ba16f95670254dabebab2004 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Sun, 22 Oct 2023 12:02:18 -0400 Subject: [PATCH 09/15] All the changes at Walton. -Analog gyro. -Get offset button. -More gyro resets. -Auto distances. -Auto resets pose. -Elevator positions. --- src/main/java/frc/robot/Constants.java | 389 +++++------ src/main/java/frc/robot/Ports.java | 2 + src/main/java/frc/robot/Robot.java | 111 ++-- src/main/java/frc/robot/RobotContainer.java | 604 ++++++++++-------- .../java/frc/robot/autos/AutoBalanceAuto.java | 30 +- .../robot/autos/GoodDriveDistanceAuto.java | 53 +- .../robot/commands/TeleopSwerveCommand.java | 91 +-- .../robot/subsystems/ElevatorSubsystem.java | 58 +- .../subsystems/SwerveDriveSubsystem.java | 118 ++-- 9 files changed, 775 insertions(+), 681 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 8756322..d4863ba 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -16,204 +16,215 @@ import frc.robot.Ports.SwervePorts; /** - * The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean - * constants. This class should not be used for any other purpose. All constants should be declared + * The Constants class provides a convenient place for teams to hold robot-wide + * numerical or boolean + * constants. This class should not be used for any other purpose. All constants + * should be declared * globally (i.e. public static). Do not put anything functional in this class. *

- * It is advised to statically import this class (or one of its inner classes) wherever the + * It is advised to statically import this class (or one of its inner classes) + * wherever the * constants are needed, to reduce verbosity. */ -public final class Constants -{ - - // auto distances, need to adjust for swerve and get rid of unused ones - public static final double EXIT_COMMUNITY_DISTANCE = -1; - public static final double EXIT_COMMUNITY_CHARGE_STATION_DISTANCE = -1; - public static final double RETURN_TO_CHARGE_STATION_DISTANCE = 1; - - public static final double ELEVATOR_MAX_POWER_CHANGE = 0.275; - - public static final double ELEVATOR_DEADBAND_VALUE = .6; - public static final double maxElevatorMotorSpeed = 0.3; // Normally .2 - - // elevator positions - probably need to update for new chassis/GRITS - public static final double MINIMUM_ELEVATOR_POSITION = 2.2; - public static final double restElevatorTargetPosition = 10.6; - public static final double carryElevatorPos = 7.05; - public static final double bottomElevatorTargetPosition = 17.08; - public static final double middleElevatorTargetPosition = 32.61; - public static final double topElevatorTargetPosition = 45.5; // 48.3; - public static final double substationPickupElevatorTargetPosition = 31.05; - - public static final double clawCloseThreshold = 11.6; - - public static final double ELEVATOR_POWER_EXPONENT = 3; - - public static final double SLOW_SPEED = 2.0; // CHANGE AFTER ROBOT WEIGHT IS CHANGED!!! - public static final double NORMAL_SPEED = 3.8; // CHANGE AFTER ROBOT WEIGHT IS CHANGED!!! - public static final double FAST_SPEED = 4.5; // CHANGE AFTER ROBOT WEIGHT IS CHANGED!!! - - public static final double JOYSTICK_DEADBAND = 0.1; - - public static final class CANSparkMaxPeriodicRates - { - // In ms - public static final int LOW_INTERVAL = 30; // Originally 20 - public static final int MID_INTERVAL = 100; // Originally 50 - public static final int HIGH_INTERVAL = 1000; // Originally 500 - } - - public static final class Swerve - { - public static final boolean invertGyro = true; // Always ensure Gyro is CCW+ CW- - - /* Drivetrain Constants */ - public static final double trackWidth = Units.inchesToMeters(21.708); // will test when - // testing PID - public static final double wheelBase = Units.inchesToMeters(27.1); // will test when testing - // PID - public static final double wheelDiameter = Units.inchesToMeters(4.0); - public static final double wheelCircumference = wheelDiameter * Math.PI; - - /* - * Swerve Kinematics No need to ever change this unless you are not doing a traditional - * rectangular/square 4 module swerve - */ - public static final SwerveDriveKinematics swerveKinematics = new SwerveDriveKinematics( - new Translation2d(wheelBase / 2.0, trackWidth / 2.0), - new Translation2d(wheelBase / 2.0, -trackWidth / 2.0), - new Translation2d(-wheelBase / 2.0, trackWidth / 2.0), - new Translation2d(-wheelBase / 2.0, -trackWidth / 2.0)); - - /* Swerve Voltage Compensation */ - public static final double voltageComp = 12.0; // need to confirm this - - /* Module Gear Ratios */ - public static final double driveGearRatio = 6.75; - public static final double angleGearRatio = 150.0 / 7.0; - - /* Motor Inverts */ - public static final boolean angleMotorInvert = true; // check when testing - public static final boolean driveMotorInvert = false; - - /* Angle Encoder Invert */ - public static final boolean canCoderInvert = false; - - /* Swerve Current Limiting */ - public static final int angleContinuousCurrentLimit = 25; - public static final int anglePeakCurrentLimit = 40; - public static final double anglePeakCurrentDuration = 0.1; - public static final boolean angleEnableCurrentLimit = true; - - public static final int driveContinuousCurrentLimit = 35; - public static final int drivePeakCurrentLimit = 60; - public static final double drivePeakCurrentDuration = 0.1; - public static final boolean driveEnableCurrentLimit = true; - - /* - * These values are used by the drive falcon to ramp in open loop and closed loop driving. - * We found a small open loop ramp (0.25) helps with tread wear, tipping, etc - */ - public static final double openLoopRamp = 0.25; - public static final double closedLoopRamp = 0.0; - - /* Angle Motor PID Values */ - public static final double angleKP = 0.025; // must find/double check all of these in sysid - public static final double angleKI = 0.0; - public static final double angleKD = 0.0; - public static final double angleKF = 0.0; - - /* Drive Motor PID Values */ - public static final double driveKP = 0.05; // TODO: This must be tuned to specific robot - public static final double driveKI = 0.0; - public static final double driveKD = 0.0; - public static final double driveKF = 0.0; - - /* - * Drive Motor Characterization Values Divide SYSID values by 12 to convert from volts to - * percent output for CTRE - */ - public static final double driveKS = (0.32 / 12); // TODO: This must be tuned to specific - // robot - public static final double driveKV = (1.51 / 12); - public static final double driveKA = (0.27 / 12); - - /* Angle Motor Conversion Factors */ - public static final double angleConversionFactor = 360.0 / angleGearRatio; - - /* Swerve Profiling Values */ - /** Meters per Second */ - public static final double maxSpeed = 0.5; // 4.5; //TODO: This must be tuned to specific - // robot - /** Radians per Second */ - public static final double maxAngularVelocity = 1.5; // 10.0; //TODO: This must be tuned to - // specific robot - - /* Neutral Modes */ - public static final IdleMode angleNeutralMode = IdleMode.kCoast; - public static final NeutralMode driveNeutralMode = NeutralMode.Brake; - - /* Module Specific Constants */ - /* Front Left Module - Module 0 */ - public static final class Mod0 - { // TODO: This must be tuned to specific robot - public static final int driveMotorID = SwervePorts.MOD0_DRIVEMOTOR; - public static final int angleMotorID = SwervePorts.MOD0_ANGLEMOTOR; - public static final int canCoderID = SwervePorts.MOD0_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(329.7); - public static final SwerveModuleConstants constants = new SwerveModuleConstants( - driveMotorID, angleMotorID, canCoderID, angleOffset); - } +public final class Constants { + + // auto distances, need to adjust for swerve and get rid of unused ones + public static final double EXIT_COMMUNITY_DISTANCE = 5; + public static final double EXIT_COMMUNITY_CHARGE_STATION_DISTANCE = 5; + public static final double RETURN_TO_CHARGE_STATION_DISTANCE = -0.5; + + public static final double ELEVATOR_MAX_POWER_CHANGE = 0.275; + + public static final double ELEVATOR_DEADBAND_VALUE = .6; + public static final double maxElevatorMotorSpeed = 0.3; // Normally .2 + + // elevator positions + public static final double MINIMUM_ELEVATOR_POSITION = 2.2; + public static final double carryElevatorPos = 4.87; + public static final double bottomElevatorTargetPosition = 21.30; + public static final double middleElevatorTargetPosition = 31.91; + public static final double topElevatorTargetPosition = 45.48; + public static final double substationPickupElevatorTargetPosition = 30; - /* Front Right Module - Module 1 */ - public static final class Mod1 - { // TODO: This must be tuned to specific robot - public static final int driveMotorID = SwervePorts.MOD1_DRIVEMOTOR; - public static final int angleMotorID = SwervePorts.MOD1_ANGLEMOTOR; - public static final int canCoderID = SwervePorts.MOD1_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(260.1); - public static final SwerveModuleConstants constants = new SwerveModuleConstants( - driveMotorID, angleMotorID, canCoderID, angleOffset); + public static final double clawCloseThreshold = 11.6; + + public static final double ELEVATOR_POWER_EXPONENT = 3; + + public static final double JOYSTICK_DEADBAND = 0.1; + + public static final class CANSparkMaxPeriodicRates { + // In ms + public static final int LOW_INTERVAL = 30; // Originally 20 + public static final int MID_INTERVAL = 100; // Originally 50 + public static final int HIGH_INTERVAL = 1000; // Originally 500 } - /* Back Left Module - Module 2 */ - public static final class Mod2 - { // TODO: This must be tuned to specific robot - public static final int driveMotorID = SwervePorts.MOD2_DRIVEMOTOR; - public static final int angleMotorID = SwervePorts.MOD2_ANGLEMOTOR; - public static final int canCoderID = SwervePorts.MOD2_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(247.5); - public static final SwerveModuleConstants constants = new SwerveModuleConstants( - driveMotorID, angleMotorID, canCoderID, angleOffset); + public static final class Swerve { + public static final boolean invertGyro = true; // Always ensure Gyro is CCW+ CW- + + /* Drivetrain Constants */ + public static final double trackWidth = Units.inchesToMeters(21.708); // will test when + // testing PID + public static final double wheelBase = Units.inchesToMeters(27.1); // will test when testing + // PID + public static final double wheelDiameter = Units.inchesToMeters(4.0); + public static final double wheelCircumference = wheelDiameter * Math.PI; + + /* + * Swerve Kinematics No need to ever change this unless you are not doing a + * traditional + * rectangular/square 4 module swerve + */ + public static final SwerveDriveKinematics swerveKinematics = new SwerveDriveKinematics( + new Translation2d(wheelBase / 2.0, trackWidth / 2.0), + new Translation2d(wheelBase / 2.0, -trackWidth / 2.0), + new Translation2d(-wheelBase / 2.0, trackWidth / 2.0), + new Translation2d(-wheelBase / 2.0, -trackWidth / 2.0)); + + /* Swerve Voltage Compensation */ + public static final double voltageComp = 12.0; // need to confirm this + + /* Module Gear Ratios */ + public static final double driveGearRatio = 6.75; + public static final double angleGearRatio = 150.0 / 7.0; + + /* Motor Inverts */ + public static final boolean angleMotorInvert = true; // check when testing + public static final boolean driveMotorInvert = false; + + /* Angle Encoder Invert */ + public static final boolean canCoderInvert = false; + + /* Swerve Current Limiting */ + public static final int angleContinuousCurrentLimit = 25; + public static final int anglePeakCurrentLimit = 40; + public static final double anglePeakCurrentDuration = 0.1; + public static final boolean angleEnableCurrentLimit = true; + + public static final int driveContinuousCurrentLimit = 35; + public static final int drivePeakCurrentLimit = 60; + public static final double drivePeakCurrentDuration = 0.1; + public static final boolean driveEnableCurrentLimit = true; + + /* + * These values are used by the drive falcon to ramp in open loop and closed + * loop driving. + * We found a small open loop ramp (0.25) helps with tread wear, tipping, etc + */ + public static final double openLoopRamp = 0.25; + public static final double closedLoopRamp = 0.0; + + /* Angle Motor PID Values */ + public static final double angleKP = 0.025; // must find/double check all of these in sysid + public static final double angleKI = 0.0; + public static final double angleKD = 0.0; + public static final double angleKF = 0.0; + + /* Drive Motor PID Values */ + public static final double driveKP = 0.05; // TODO: This must be tuned to specific robot + public static final double driveKI = 0.0; + public static final double driveKD = 0.0; + public static final double driveKF = 0.0; + + /* + * Drive Motor Characterization Values Divide SYSID values by 12 to convert from + * volts to + * percent output for CTRE + */ + public static final double driveKS = (0.32 / 12); // TODO: This must be tuned to specific + // robot + public static final double driveKV = (1.51 / 12); + public static final double driveKA = (0.27 / 12); + + /* Angle Motor Conversion Factors */ + public static final double angleConversionFactor = 360.0 / angleGearRatio; + + /* Swerve Profiling Values */ + /** Meters per Second */ + public static final double BASE_DRIVE_SPEED = 0.5, BASE_TURN_SPEED = 1.5; + public static final double SLOW_SPEED = 0.5; + public static final double AUTO_SPEED = 0.85; + public static final double NORMAL_SPEED = 1; + public static final double FAST_SPEED = 1.5; + public static final double maxSpeed = 0.7; // 4.5; //TODO: This must be tuned to specific + // robot + /** Radians per Second */ + public static final double maxAngularVelocity = 2.25; // 10.0; //TODO: This must be tuned to + // specific robot + + /* Neutral Modes */ + public static final IdleMode angleNeutralMode = IdleMode.kCoast; + public static final NeutralMode driveNeutralMode = NeutralMode.Brake; + + public static final boolean DEFAULT_ANGLE_INVERT = false; + + public static final double[] ANGLE_OFFSETS = new double[] { + 109.92, // FL + 80.86, // FR + 53.26, // RL + 250.22 // RR + }; + + /* Module Specific Constants */ + /* Front Left Module - Module 0 */ + public static final class Mod0 { // TODO: This must be tuned to specific robot + public static final int driveMotorID = SwervePorts.MOD0_DRIVEMOTOR; + public static final int angleMotorID = SwervePorts.MOD0_ANGLEMOTOR; + public static final int canCoderID = SwervePorts.MOD0_CANCODER; + public static Rotation2d angleOffset = Rotation2d + .fromDegrees(ANGLE_OFFSETS[0] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static final SwerveModuleConstants constants = new SwerveModuleConstants( + driveMotorID, angleMotorID, canCoderID, angleOffset); + } + + /* Front Right Module - Module 1 */ + public static final class Mod1 { // TODO: This must be tuned to specific robot + public static final int driveMotorID = SwervePorts.MOD1_DRIVEMOTOR; + public static final int angleMotorID = SwervePorts.MOD1_ANGLEMOTOR; + public static final int canCoderID = SwervePorts.MOD1_CANCODER; + public static Rotation2d angleOffset = Rotation2d + .fromDegrees(ANGLE_OFFSETS[1] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static final SwerveModuleConstants constants = new SwerveModuleConstants( + driveMotorID, angleMotorID, canCoderID, angleOffset); + } + + /* Back Left Module - Module 2 */ + public static final class Mod2 { // TODO: This must be tuned to specific robot + public static final int driveMotorID = SwervePorts.MOD2_DRIVEMOTOR; + public static final int angleMotorID = SwervePorts.MOD2_ANGLEMOTOR; + public static final int canCoderID = SwervePorts.MOD2_CANCODER; + public static Rotation2d angleOffset = Rotation2d + .fromDegrees(ANGLE_OFFSETS[2] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static final SwerveModuleConstants constants = new SwerveModuleConstants( + driveMotorID, angleMotorID, canCoderID, angleOffset); + } + + /* Back Right Module - Module 3 */ + public static final class Mod3 { // TODO: This must be tuned to specific robot + public static final int driveMotorID = SwervePorts.MOD3_DRIVEMOTOR; + public static final int angleMotorID = SwervePorts.MOD3_ANGLEMOTOR; + public static final int canCoderID = SwervePorts.MOD3_CANCODER; + public static Rotation2d angleOffset = Rotation2d + .fromDegrees(ANGLE_OFFSETS[3] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static final SwerveModuleConstants constants = new SwerveModuleConstants( + driveMotorID, angleMotorID, canCoderID, angleOffset); + } } - /* Back Right Module - Module 3 */ - public static final class Mod3 - { // TODO: This must be tuned to specific robot - public static final int driveMotorID = SwervePorts.MOD3_DRIVEMOTOR; - public static final int angleMotorID = SwervePorts.MOD3_ANGLEMOTOR; - public static final int canCoderID = SwervePorts.MOD3_CANCODER; - public static final Rotation2d angleOffset = Rotation2d.fromDegrees(70.3); - public static final SwerveModuleConstants constants = new SwerveModuleConstants( - driveMotorID, angleMotorID, canCoderID, angleOffset); + public static final class AutoConstants { // TODO: The below constants are used in the example auto, and must be + // tuned to specific robot + public static final double kMaxSpeedMetersPerSecond = 3; + public static final double kMaxAccelerationMetersPerSecondSquared = 3; + public static final double kMaxAngularSpeedRadiansPerSecond = Math.PI; + public static final double kMaxAngularSpeedRadiansPerSecondSquared = Math.PI; + + public static final double kPXController = 1; + public static final double kPYController = 1; + public static final double kPThetaController = 1; + + /* Constraint for the motion profilied robot angle controller */ + public static final TrapezoidProfile.Constraints kThetaControllerConstraints = new TrapezoidProfile.Constraints( + kMaxAngularSpeedRadiansPerSecond, kMaxAngularSpeedRadiansPerSecondSquared); } - } - - public static final class AutoConstants - { // TODO: The below constants are used in the example auto, and must be - // tuned to specific robot - public static final double kMaxSpeedMetersPerSecond = 3; - public static final double kMaxAccelerationMetersPerSecondSquared = 3; - public static final double kMaxAngularSpeedRadiansPerSecond = Math.PI; - public static final double kMaxAngularSpeedRadiansPerSecondSquared = Math.PI; - - public static final double kPXController = 1; - public static final double kPYController = 1; - public static final double kPThetaController = 1; - - /* Constraint for the motion profilied robot angle controller */ - public static final TrapezoidProfile.Constraints kThetaControllerConstraints = new TrapezoidProfile.Constraints( - kMaxAngularSpeedRadiansPerSecond, kMaxAngularSpeedRadiansPerSecondSquared); - } } diff --git a/src/main/java/frc/robot/Ports.java b/src/main/java/frc/robot/Ports.java index 1d67808..d3cecd1 100644 --- a/src/main/java/frc/robot/Ports.java +++ b/src/main/java/frc/robot/Ports.java @@ -14,6 +14,8 @@ public class Ports { public final static int ELEVATOR_POTENTIOMETER = 2; public final static int ELEVATOR_LIMIT_SWITCH = 9; public final static Port NAV_X = Port.kMXP; // Need to check this + public final static int YAW_GYRO = 0; // Horizontal + public final static int PITCH_GYRO = 1; // Vertical public class SwervePorts { // TODO: Assign port values for each module diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 769f293..e68b9e8 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -7,18 +7,21 @@ import edu.wpi.first.cameraserver.CameraServer; import edu.wpi.first.wpilibj.TimedRobot; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; import frc.robot.commands.ClawGrabberCommand; /** - * The VM is configured to automatically run this class, and to call the functions corresponding to - * each mode, as described in the TimedRobot documentation. If you change the name of this class or - * the package after creating this project, you must also update the build.gradle file in the + * The VM is configured to automatically run this class, and to call the + * functions corresponding to + * each mode, as described in the TimedRobot documentation. If you change the + * name of this class or + * the package after creating this project, you must also update the + * build.gradle file in the * project. */ -public class Robot extends TimedRobot -{ +public class Robot extends TimedRobot { private Command m_autonomousCommand; private RobotContainer m_robotContainer; @@ -29,13 +32,14 @@ public class Robot extends TimedRobot public static CTREConfigs ctreConfigs; /** - * This function is run when the robot is first started up and should be used for any + * This function is run when the robot is first started up and should be used + * for any * initialization code. */ @Override - public void robotInit() - { - // Instantiate our RobotContainer. This will perform all our button bindings, and put our + public void robotInit() { + // Instantiate our RobotContainer. This will perform all our button bindings, + // and put our // autonomous chooser on the dashboard. ctreConfigs = new CTREConfigs(); m_robotContainer = new RobotContainer(); @@ -43,26 +47,29 @@ public void robotInit() } /** - * This function is called every 20 ms, no matter the mode. Use this for items like diagnostics + * This function is called every 20 ms, no matter the mode. Use this for items + * like diagnostics * that you want ran during disabled, autonomous, teleoperated and test. *

- * This runs after the mode specific periodic functions, but before LiveWindow and SmartDashboard + * This runs after the mode specific periodic functions, but before LiveWindow + * and SmartDashboard * integrated updating. */ @Override - public void robotPeriodic() - { - // Runs the Scheduler. This is responsible for polling buttons, adding newly-scheduled - // commands, running already-scheduled commands, removing finished or interrupted commands, - // and running subsystem periodic() methods. This must be called from the robot's periodic + public void robotPeriodic() { + // Runs the Scheduler. This is responsible for polling buttons, adding + // newly-scheduled + // commands, running already-scheduled commands, removing finished or + // interrupted commands, + // and running subsystem periodic() methods. This must be called from the + // robot's periodic // block in order for anything in the Command-based framework to work. CommandScheduler.getInstance().run(); } /** This function is called once each time the robot enters Disabled mode. */ @Override - public void disabledInit() - { + public void disabledInit() { if (RobotContainer.instance != null) // RobotContainer.instance.drivetrain.driveStraight = false; @@ -71,36 +78,45 @@ public void disabledInit() } @Override - public void disabledPeriodic() - {} + public void disabledPeriodic() { + } - /** This autonomous runs the autonomous command selected by your {@link RobotContainer} class. */ + /** + * This autonomous runs the autonomous command selected by your + * {@link RobotContainer} class. + */ @Override - public void autonomousInit() - { + + public void autonomousInit() { + m_robotContainer.swerveDrive.setAngleOffsets( + SmartDashboard.getBoolean("Invert Swerve", false)); + + m_robotContainer.swerveDrive.zeroGyro(); + m_autonomousCommand = m_robotContainer.getAutonomousCommand(); System.out.println("Auto Command: " + m_autonomousCommand); - // if(m_autonomousCommand == null) m_autonomousCommand = new NormalAutoCommand(); + // if(m_autonomousCommand == null) m_autonomousCommand = new + // NormalAutoCommand(); - // new ClawGrabberCommand(Value.kForward, RobotContainer.instance.clawIntake, true); + // new ClawGrabberCommand(Value.kForward, RobotContainer.instance.clawIntake, + // true); // isEnabled = true; - // RobotContainer.instance.elevator.resetTarget(); TODO: uncomment with working swerve + // RobotContainer.instance.elevator.resetTarget(); TODO: uncomment with working + // swerve // schedule the autonomous command (example) - if (m_autonomousCommand != null) - { + if (m_autonomousCommand != null) { m_autonomousCommand.schedule(); } } /** This function is called periodically during autonomous. */ @Override - public void autonomousPeriodic() - {} + public void autonomousPeriodic() { + } @Override - public void teleopInit() - { + public void teleopInit() { // This makes sure that the autonomous stops running when // teleop starts running. If you want the autonomous to // continue until interrupted by another command, remove @@ -110,40 +126,47 @@ public void teleopInit() // } CommandScheduler.getInstance().cancelAll(); - // RobotContainer.instance.elevator.setSpeed(0); TODO: uncomment with working swerve + m_robotContainer.swerveDrive.setAngleOffsets( + SmartDashboard.getBoolean("Invert Swerve", false)); + + // RobotContainer.instance.elevator.setSpeed(0); TODO: uncomment with working + // swerve // RobotContainer.instance.elevator.resetTarget(); - // new ClawGrabberCommand(Value.kForward, RobotContainer.instance.clawIntake, true); + // new ClawGrabberCommand(Value.kForward, RobotContainer.instance.clawIntake, + // true); isEnabled = true; } /** This function is called periodically during operator control. */ @Override - public void teleopPeriodic() - {} + public void teleopPeriodic() { + } @Override - public void testInit() - { + public void testInit() { // Cancels all running commands at the start of test mode. CommandScheduler.getInstance().cancelAll(); + m_robotContainer.swerveDrive.setAngleOffsets( + SmartDashboard.getBoolean("Invert Swerve", false)); + isEnabled = true; isTest = true; } /** This function is called periodically during test mode. */ @Override - public void testPeriodic() - {} + public void testPeriodic() { + } /** This function is called once when the robot is first started up. */ @Override - public void simulationInit() - {} + public void simulationInit() { + } /** This function is called periodically whilst in simulation. */ @Override - public void simulationPeriodic() - {} + public void simulationPeriodic() { + } } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 9a5da29..137cf52 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -12,6 +12,7 @@ import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import frc.robot.commands.SetElevatorTargetCommand; import frc.robot.commands.SetElevatorTargetOverrideCommand; import frc.robot.autos.AutoBalanceAuto; @@ -33,282 +34,335 @@ import edu.wpi.first.wpilibj2.command.button.POVButton; /** - * This class is where the bulk of the robot should be declared. Since Command-based is a - * "declarative" paradigm, very little robot logic should actually be handled in the {@link Robot} - * periodic methods (other than the scheduler calls). Instead, the structure of the robot (including + * This class is where the bulk of the robot should be declared. Since + * Command-based is a + * "declarative" paradigm, very little robot logic should actually be handled in + * the {@link Robot} + * periodic methods (other than the scheduler calls). Instead, the structure of + * the robot (including * subsystems, commands, and button mappings) should be declared here. */ -public class RobotContainer -{ - - public static RobotContainer instance; - - public SwerveDriveSubsystem swerveDrive = new SwerveDriveSubsystem(); - public ClawIntakeSubsystem clawIntake = new ClawIntakeSubsystem(); - public ElevatorSubsystem elevator = new ElevatorSubsystem(clawIntake);; - public VisionSubsystem vision = new VisionSubsystem(); - - public Joystick primaryController; - public Joystick secondaryController; - - public static ShuffleboardTab shuffleboard = Shuffleboard.getTab("SmartDashboard"); - - // The robot's subsystems and commands are defined here... - private final ExampleSubsystem m_exampleSubsystem = new ExampleSubsystem(); - - private final ExampleCommand m_autoCommand = new ExampleCommand(m_exampleSubsystem); - - SendableChooser autoChooser; - - /** - * The container for the robot. Contains subsystems, OI devices, and commands. - */ - public RobotContainer() - { - // shuffleboard = Shuffleboard.getTab("SmartDashboard"); - - shuffleboard.addDouble("Gyro", () -> swerveDrive.gyro.getAngle()); - - autoChooser = new SendableChooser<>(); - - autoChooser.setDefaultOption("Charge Station", chargeStationAuto); - autoChooser.addOption("Exit Community", exitCommunityAuto); - - shuffleboard.add(autoChooser); - - secondaryController = new Joystick(2); // We need this for testing in elevator - - // Configure the button bindings - configurePrimaryBindings(); - configureSecondaryBindings(); - - instance = this; - } - - /** - * Use this method to define your button->command mappings. Buttons can be created by - * instantiating a {@link GenericHID} or one of its subclasses - * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it to a - * {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. - */ - private void configurePrimaryBindings() - { - primaryController = new Joystick(0); - - // JoystickButton a = new - // JoystickButton(primaryController,LogitechControllerButtons.a); - // JoystickButton b = new - // JoystickButton(primaryController,LogitechControllerButtons.b); - JoystickButton x = new JoystickButton(primaryController, LogitechControllerButtons.x); - JoystickButton y = new JoystickButton(primaryController, LogitechControllerButtons.y); - JoystickButton bumperLeft = new JoystickButton(primaryController, - LogitechControllerButtons.bumperLeft); - JoystickButton bumperRight = new JoystickButton(primaryController, - LogitechControllerButtons.bumperRight); - JoystickButton triggerLeft = new JoystickButton(primaryController, - LogitechControllerButtons.triggerLeft); - JoystickButton triggerRight = new JoystickButton(primaryController, - LogitechControllerButtons.triggerRight); - // JoystickButton up = new - // JoystickButton(primaryController,LogitechControllerButtons.up); - // JoystickButton down = new - // JoystickButton(primaryController,LogitechControllerButtons.down); - // JoystickButton left = new - // JoystickButton(primaryController,LogitechControllerButtons.left); - // JoystickButton right = new - // JoystickButton(primaryController,LogitechControllerButtons.right); - - swerveDrive - // vertical axis of left joystick -> translation - .setDefaultCommand(new TeleopSwerveCommand(swerveDrive, - () -> -primaryController.getY(), () -> -primaryController.getX(), // horizontal - // axis of - // left - // joystick-> - // strafe - // we want horizontal of right stick, if not twist, then change - () -> -primaryController.getTwist() - /* ()->y.getAsBoolean() owen doesn't want a button to turn field-relative off */ - )); - - x.onTrue(new InstantCommand(() -> swerveDrive.zeroGyro())); - y.onTrue(new InstantCommand(() -> - { - for (SwerveModule mod : swerveDrive.mSwerveMods) - mod.resetToAbsolute(); - })); - - } - - private void configureSecondaryBindings() - { - secondaryController = new Joystick(1); - - elevator.setDefaultCommand( - new MoveElevatorCommand(() -> -secondaryController.getY(), elevator)); - - JoystickButton a = new JoystickButton(secondaryController, LogitechControllerButtons.a); - JoystickButton b = new JoystickButton(secondaryController, LogitechControllerButtons.b); - JoystickButton x = new JoystickButton(secondaryController, LogitechControllerButtons.x); - JoystickButton y = new JoystickButton(secondaryController, LogitechControllerButtons.y); - JoystickButton bumperLeft = new JoystickButton(secondaryController, - LogitechControllerButtons.bumperLeft); - JoystickButton bumperRight = new JoystickButton(secondaryController, - LogitechControllerButtons.bumperRight); - JoystickButton triggerLeft = new JoystickButton(secondaryController, - LogitechControllerButtons.triggerLeft); - JoystickButton triggerRight = new JoystickButton(secondaryController, - LogitechControllerButtons.triggerRight); - POVButton up = new POVButton(secondaryController, LogitechControllerButtons.up); - POVButton down = new POVButton(secondaryController, LogitechControllerButtons.down); - POVButton left = new POVButton(secondaryController, LogitechControllerButtons.left); - ; - POVButton right = new POVButton(secondaryController, LogitechControllerButtons.right); - JoystickButton start = new JoystickButton(secondaryController, - LogitechControllerButtons.start); - - a.whileTrue(new ClawGrabberCommand(Value.kForward, clawIntake, true)); - b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); - // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); - - up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, elevator)); - left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, elevator)); - right.onTrue( - new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); - down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); - bumperLeft.onTrue(new SetElevatorTargetCommand( - Constants.substationPickupElevatorTargetPosition, elevator)); - - bumperRight.onTrue(new SetClawThresholdOverrideCommand(true, elevator)); - bumperRight.onFalse(new SetClawThresholdOverrideCommand(false, elevator)); - - triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); - triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); - - start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); - - shuffleboard.addBoolean("Test", () -> Robot.isTest); - if (Robot.isTest) - { - x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, - elevator) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator))); +public class RobotContainer { + + public static RobotContainer instance; + + public SwerveDriveSubsystem swerveDrive = new SwerveDriveSubsystem(); + public ClawIntakeSubsystem clawIntake = new ClawIntakeSubsystem(); + public ElevatorSubsystem elevator = new ElevatorSubsystem(clawIntake);; + public VisionSubsystem vision = new VisionSubsystem(); + + public Joystick primaryController; + public Joystick secondaryController; + + public static ShuffleboardTab shuffleboard = Shuffleboard.getTab("SmartDashboard"); + + // The robot's subsystems and commands are defined here... + private final ExampleSubsystem m_exampleSubsystem = new ExampleSubsystem(); + + private final ExampleCommand m_autoCommand = new ExampleCommand(m_exampleSubsystem); + + SendableChooser autoChooser; + + /** + * The container for the robot. Contains subsystems, OI devices, and commands. + */ + public RobotContainer() { + // shuffleboard = Shuffleboard.getTab("SmartDashboard"); + + SmartDashboard.putBoolean("Invert Swerve", false); + + swerveDrive.setAngleOffsets( + SmartDashboard.getBoolean("Invert Swerve", Constants.Swerve.DEFAULT_ANGLE_INVERT)); + + shuffleboard.addDouble("Gyro", () -> swerveDrive.yawGyro.getAngle()); + + autoChooser = new SendableChooser<>(); + + autoChooser.setDefaultOption("Charge Station", chargeStationAuto); + autoChooser.addOption("Exit Community", exitCommunityAuto); + + shuffleboard.addDouble("Yaw Gyro", () -> swerveDrive.yawGyro.getAngle()); + shuffleboard.addDouble("Pitch Gyro", () -> swerveDrive.pitchGyro.getAngle()); + + shuffleboard.addDouble("Gyro Offset", () -> swerveDrive.gyroOffset); + + shuffleboard.add(autoChooser); + + shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> { + System.out.println("Getting angle offsets..."); + + for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) { + double degrees = swerveDrive.mSwerveMods[i].getCanCoder() + .getDegrees(); + System.out.println("Setting mod " + i + " to " + degrees + "..."); + Constants.Swerve.ANGLE_OFFSETS[i] = degrees; + } + + swerveDrive.setAngleOffsets(false); + })); + + secondaryController = new Joystick(2); // We need this for testing in elevator + + // Configure the button bindings + configurePrimaryBindings(); + configureSecondaryBindings(); + + instance = this; + + // shuffleboard.addBoolean("NavX Calibrate", () -> + // swerveDrive.yawGyro.isCalibrating()); + // shuffleboard.addBoolean("NavX Connected", () -> + // swerveDrive.yawGyro.isConnected()); + } + + /** + * Use this method to define your button->command mappings. Buttons can be + * created by + * instantiating a {@link GenericHID} or one of its subclasses + * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then + * passing it to a + * {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. + */ + private void configurePrimaryBindings() { + primaryController = new Joystick(0); + + JoystickButton a = new JoystickButton(primaryController, LogitechControllerButtons.a); + JoystickButton b = new JoystickButton(primaryController, LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(primaryController, LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(primaryController, LogitechControllerButtons.y); + JoystickButton bumperLeft = new JoystickButton(primaryController, + LogitechControllerButtons.bumperLeft); + JoystickButton bumperRight = new JoystickButton(primaryController, + LogitechControllerButtons.bumperRight); + JoystickButton triggerLeft = new JoystickButton(primaryController, + LogitechControllerButtons.triggerLeft); + JoystickButton triggerRight = new JoystickButton(primaryController, + LogitechControllerButtons.triggerRight); + // JoystickButton up = new + // JoystickButton(primaryController,LogitechControllerButtons.up); + // JoystickButton down = new + // JoystickButton(primaryController,LogitechControllerButtons.down); + // JoystickButton left = new + // JoystickButton(primaryController,LogitechControllerButtons.left); + // JoystickButton right = new + // JoystickButton(primaryController,LogitechControllerButtons.right); + + swerveDrive + // vertical axis of left joystick -> translation + .setDefaultCommand(new TeleopSwerveCommand(swerveDrive, + () -> -primaryController.getY(), () -> -primaryController.getX(), // horizontal + // axis + // of + // left + // joystick-> + // strafe + // we want horizontal of right stick, if not twist, then change + () -> primaryController.getTwist(), + () -> triggerLeft.getAsBoolean(), + () -> triggerRight.getAsBoolean() + /* ()->y.getAsBoolean() owen doesn't want a button to turn field-relative off */ + )); + + x.onTrue(new InstantCommand(() -> { + swerveDrive.zeroGyro(); + swerveDrive.gyroOffset = 0; + })); + y.onTrue(new InstantCommand(() -> { + for (SwerveModule mod : swerveDrive.mSwerveMods) + mod.resetToAbsolute(); + })); + + a.onTrue(new InstantCommand(() -> { + boolean invert = SmartDashboard.getBoolean("Invert Serve", false); + invert = !invert; + swerveDrive.setAngleOffsets(invert); + SmartDashboard.putBoolean("Invert Swerve", invert); + })); + b.onTrue(new InstantCommand(() -> { + swerveDrive.setGyro(180); + })); + } + + private void configureSecondaryBindings() { + secondaryController = new Joystick(1); + + elevator.setDefaultCommand( + new MoveElevatorCommand(() -> -secondaryController.getY(), elevator)); + + JoystickButton a = new JoystickButton(secondaryController, LogitechControllerButtons.a); + JoystickButton b = new JoystickButton(secondaryController, LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(secondaryController, LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(secondaryController, LogitechControllerButtons.y); + JoystickButton bumperLeft = new JoystickButton(secondaryController, + LogitechControllerButtons.bumperLeft); + JoystickButton bumperRight = new JoystickButton(secondaryController, + LogitechControllerButtons.bumperRight); + JoystickButton triggerLeft = new JoystickButton(secondaryController, + LogitechControllerButtons.triggerLeft); + JoystickButton triggerRight = new JoystickButton(secondaryController, + LogitechControllerButtons.triggerRight); + POVButton up = new POVButton(secondaryController, LogitechControllerButtons.up); + POVButton down = new POVButton(secondaryController, LogitechControllerButtons.down); + POVButton left = new POVButton(secondaryController, LogitechControllerButtons.left); + ; + POVButton right = new POVButton(secondaryController, LogitechControllerButtons.right); + JoystickButton start = new JoystickButton(secondaryController, + LogitechControllerButtons.start); + + a.whileTrue(new ClawGrabberCommand(Value.kForward, clawIntake, true)); + b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); + // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); + + up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, elevator)); + left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, elevator)); + right.onTrue( + new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); + down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); + bumperLeft.onTrue(new SetElevatorTargetCommand( + Constants.substationPickupElevatorTargetPosition, elevator)); + + bumperRight.onTrue(new SetClawThresholdOverrideCommand(true, elevator)); + bumperRight.onFalse(new SetClawThresholdOverrideCommand(false, elevator)); + + triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); + triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); + + start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); + + shuffleboard.addBoolean("Test", () -> Robot.isTest); + if (Robot.isTest) { + x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, + elevator) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator))); + } + } + + // enum PossibleAutos + // { + // NORMAL_AUTO, + // CHARGE_STATION_AUTO + // } + + private final Command exitCommunityAuto = new ClawGrabberCommand(Value.kReverse, clawIntake, false) + .andThen(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, true, elevator)) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new GoodDriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, -0.4, + swerveDrive)); + + private final Command chargeStationAuto = new ClawGrabberCommand(Value.kReverse, clawIntake, false) + .andThen(new SetElevatorTargetCommand( + Constants.topElevatorTargetPosition, true, elevator)) + .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, + elevator)) + .andThen(new GoodDriveDistanceAuto( + Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, -0.4, swerveDrive)) + .andThen(new GoodDriveDistanceAuto(Constants.RETURN_TO_CHARGE_STATION_DISTANCE, + 0.4, swerveDrive)); + // .andThen(new AutoBalanceAuto(swerveDrive)); + + // // Old autos below + + // private final Command driveBackAuto = new + // DriveDistanceAuto(Constants.BALANCE_DISTANCE, + // swerveDrive); + + // private final Command openThenDriveAuto = new + // ClawGrabberCommand(Value.kForward, clawIntake, + // true) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command openClaw = new ClawGrabberCommand(Value.kReverse, + // clawIntake, true); + + // private final Command overThenBalanceAuto = new DriveDistanceAuto( + // Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) + // .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, + // swerveDrive)); + + // private final Command highBalance = new SetElevatorTargetCommand( + // Constants.topElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, + // elevator)) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command midBalance = new SetElevatorTargetCommand( + // Constants.middleElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, + // elevator)) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command backOut = new DriveDistanceAuto( + // 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); + + // private final Command lowBalance = new SetElevatorTargetCommand( + // Constants.bottomElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, + // elevator)) + // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); + + // private final Command highBack = new + // SetElevatorTargetCommand(Constants.topElevatorTargetPosition, + // true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, + // elevator)) + // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, + // swerveDrive)); + + // private final Command midBack = new SetElevatorTargetCommand( + // Constants.middleElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, + // elevator)) + // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, + // swerveDrive)); + + // private final Command lowBack = new SetElevatorTargetCommand( + // Constants.bottomElevatorTargetPosition, true, elevator) + // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) + // .andThen( + // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, + // elevator)) + // .andThen( + // new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, + // swerveDrive)); + + /** + * Use this to pass the autonomous command to the main {@link Robot} class. + * + * @return the command to run in autonomous + */ + public Command getAutonomousCommand() { + // An ExampleCommand will run in autonomous + Command choice = autoChooser.getSelected(); + // choice.schedule(); + return choice; + } - } - - // enum PossibleAutos - // { - // NORMAL_AUTO, - // CHARGE_STATION_AUTO - // } - - private final Command exitCommunityAuto = new SetElevatorTargetCommand( - Constants.topElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new GoodDriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, -0.5, - swerveDrive)); - - private final Command chargeStationAuto = new SetElevatorTargetCommand( - Constants.topElevatorTargetPosition, true, elevator) - .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new GoodDriveDistanceAuto( - Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, -0.5, swerveDrive)) - .andThen(new GoodDriveDistanceAuto(Constants.RETURN_TO_CHARGE_STATION_DISTANCE, - 0.5, swerveDrive)) - .andThen(new AutoBalanceAuto(swerveDrive)); - - // // Old autos below - - // private final Command driveBackAuto = new DriveDistanceAuto(Constants.BALANCE_DISTANCE, - // swerveDrive); - - // private final Command openThenDriveAuto = new ClawGrabberCommand(Value.kForward, clawIntake, - // true) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command openClaw = new ClawGrabberCommand(Value.kReverse, clawIntake, true); - - // private final Command overThenBalanceAuto = new DriveDistanceAuto( - // Constants.OVER_CHARGESTATION_DISTANCE, swerveDrive) - // .andThen(new DriveDistanceAuto(Constants.RETURN_TO_CHARGESTATION_DISTANCE, swerveDrive)); - - // private final Command highBalance = new SetElevatorTargetCommand( - // Constants.topElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen( - // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command midBalance = new SetElevatorTargetCommand( - // Constants.middleElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen( - // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command backOut = new DriveDistanceAuto( - // 50000 * Constants.normalAutoDriveBackDistance, swerveDrive); - - // private final Command lowBalance = new SetElevatorTargetCommand( - // Constants.bottomElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen( - // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.BALANCE_DISTANCE, swerveDrive)); - - // private final Command highBack = new - // SetElevatorTargetCommand(Constants.topElevatorTargetPosition, - // true, elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen( - // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); - - // private final Command midBack = new SetElevatorTargetCommand( - // Constants.middleElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen( - // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - // .andThen(new DriveDistanceAuto(Constants.normalAutoDriveBackDistance, swerveDrive)); - - // private final Command lowBack = new SetElevatorTargetCommand( - // Constants.bottomElevatorTargetPosition, true, elevator) - // .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) - // .andThen( - // new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, true, elevator)) - // .andThen( - // new DriveDistanceAuto(50000 * Constants.normalAutoDriveBackDistance, swerveDrive)); - - /** - * Use this to pass the autonomous command to the main {@link Robot} class. - * - * @return the command to run in autonomous - */ - public Command getAutonomousCommand() - { - // An ExampleCommand will run in autonomous - Command choice = autoChooser.getSelected(); - // choice.schedule(); - return choice; - - } } \ No newline at end of file diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index 2511bff..34d28f1 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -3,13 +3,13 @@ import com.kauailabs.navx.frc.AHRS; import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.I2C.Port; import edu.wpi.first.wpilibj2.command.CommandBase; import frc.robot.Constants; import frc.robot.subsystems.SwerveDriveSubsystem; -public class AutoBalanceAuto extends CommandBase -{ +public class AutoBalanceAuto extends CommandBase { SwerveDriveSubsystem s_Swerve; private double balancingSpeed; @@ -21,10 +21,9 @@ public class AutoBalanceAuto extends CommandBase private boolean wheelsLocked; - private AHRS gyro; + private AnalogGyro gyro; - public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) - { + public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) { this.s_Swerve = s_Swerve; balancingSpeed = 0.25; balancingDirection = 1; @@ -33,33 +32,26 @@ public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) wheelsLocked = false; - gyro = new AHRS(Port.kMXP); + gyro = s_Swerve.pitchGyro; addRequirements(s_Swerve); } @Override - public void execute() - { - if (gyro.getRoll() < tiltDeadband && gyro.getRoll() > -tiltDeadband) - { + public void execute() { + if (gyro.getAngle() < tiltDeadband && gyro.getAngle() > -tiltDeadband) { balancingDirection = 0; - if (!wheelsLocked) - { + if (!wheelsLocked) { wheelLockSpeed = 0.01; wheelsLocked = true; } - } - else if (gyro.getRoll() > 0 && balancingDirection == 1) - { + } else if (gyro.getAngle() > 0 && balancingDirection == 1) { balancingSpeed /= 2; balancingDirection = -1; wheelLockSpeed = 0; wheelsLocked = false; - } - else if (gyro.getRoll() < 0 && balancingDirection == -1) - { + } else if (gyro.getAngle() < 0 && balancingDirection == -1) { balancingSpeed /= 2; balancingDirection = 1; wheelLockSpeed = 0; @@ -71,7 +63,7 @@ else if (gyro.getRoll() < 0 && balancingDirection == -1) s_Swerve.drive( new Translation2d(balancingSpeed * balancingDirection, wheelLockSpeed) - .times( Constants.Swerve.maxSpeed), + .times(Constants.Swerve.maxSpeed), 0 * Constants.Swerve.maxAngularVelocity, /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on true); diff --git a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java index c8b3806..58060b0 100644 --- a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java +++ b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java @@ -1,13 +1,15 @@ package frc.robot.autos; +import javax.swing.text.StyleContext.SmallAttributeSet; + import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.math.kinematics.SwerveModulePosition; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.CommandBase; import frc.robot.Constants; import frc.robot.subsystems.SwerveDriveSubsystem; -public class GoodDriveDistanceAuto extends CommandBase -{ +public class GoodDriveDistanceAuto extends CommandBase { private double distance; SwerveDriveSubsystem s_Swerve; @@ -16,42 +18,41 @@ public class GoodDriveDistanceAuto extends CommandBase private double targetPosition; - public GoodDriveDistanceAuto(double distance, double speed, SwerveDriveSubsystem s_Swerve) - { + public GoodDriveDistanceAuto(double distance, double speed, SwerveDriveSubsystem s_Swerve) { this.distance = distance; this.speed = speed; this.s_Swerve = s_Swerve; - targetPosition = s_Swerve.getPose().getX(); + targetPosition = s_Swerve.getPose().getX() + distance; + + s_Swerve.resetEncoders(); addRequirements(s_Swerve); } @Override - public void execute() - { - s_Swerve.drive(new Translation2d(speed, 0).times(Constants.Swerve.maxSpeed), 0, /* - * !robotCentricSup - * . - * getAsBoolean - * (), - */ true, // field - // relative - // is - // always - // on + public void execute() { + SmartDashboard.putNumber("Auto Drive Target X", targetPosition); + SmartDashboard.putNumber("Swerve Pose X", s_Swerve.getPose().getX()); + + s_Swerve.drive(new Translation2d(-speed, 0).times(Constants.Swerve.AUTO_SPEED), 0, /* + * !robotCentricSup + * . + * getAsBoolean + * (), + */ true, // field + // relative + // is + // always + // on true); } - private boolean isInTarget() - { - if (distance > 0) return (s_Swerve.getPose().getX() > targetPosition); - else return (s_Swerve.getPose().getX() < targetPosition); - } - @Override - public boolean isFinished() - { - return isInTarget(); + public boolean isFinished() { + if (distance > 0) + return (s_Swerve.getPose().getX() > targetPosition); + else + return (s_Swerve.getPose().getX() < targetPosition); } } diff --git a/src/main/java/frc/robot/commands/TeleopSwerveCommand.java b/src/main/java/frc/robot/commands/TeleopSwerveCommand.java index eadbce4..f6fe3a7 100644 --- a/src/main/java/frc/robot/commands/TeleopSwerveCommand.java +++ b/src/main/java/frc/robot/commands/TeleopSwerveCommand.java @@ -8,44 +8,59 @@ import edu.wpi.first.math.MathUtil; import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.CommandBase; -public class TeleopSwerveCommand extends CommandBase -{ - private SwerveDriveSubsystem s_Swerve; - private DoubleSupplier translationSup; - private DoubleSupplier strafeSup; - private DoubleSupplier rotationSup; - private BooleanSupplier robotCentricSup; // used for field relative - - public TeleopSwerveCommand(SwerveDriveSubsystem s_Swerve, DoubleSupplier translationSup, - DoubleSupplier strafeSup, - DoubleSupplier rotationSup /* BooleanSupplier robotCentricSup */) - { - this.s_Swerve = s_Swerve; - addRequirements(s_Swerve); - - this.translationSup = translationSup; - this.strafeSup = strafeSup; - this.rotationSup = rotationSup; - // this.robotCentricSup = robotCentricSup; - } - - @Override - public void execute() - { - /* Get Values, Deadband */ - double translationVal = MathUtil.applyDeadband(translationSup.getAsDouble(), - Constants.JOYSTICK_DEADBAND); - double strafeVal = MathUtil.applyDeadband(strafeSup.getAsDouble(), - Constants.JOYSTICK_DEADBAND); - double rotationVal = MathUtil.applyDeadband(rotationSup.getAsDouble(), - Constants.JOYSTICK_DEADBAND); - - /* Drive */ - s_Swerve.drive(new Translation2d(translationVal, strafeVal).times( - Constants.Swerve.maxSpeed), rotationVal * Constants.Swerve.maxAngularVelocity, - /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on - true); - } +public class TeleopSwerveCommand extends CommandBase { + private SwerveDriveSubsystem s_Swerve; + private DoubleSupplier translationSup; + private DoubleSupplier strafeSup; + private DoubleSupplier rotationSup; + private BooleanSupplier robotCentricSup, slowSpeedSupplier, fastSpeedSupplier; // used for field relative + + public TeleopSwerveCommand(SwerveDriveSubsystem s_Swerve, DoubleSupplier translationSup, + DoubleSupplier strafeSup, + DoubleSupplier rotationSup, + BooleanSupplier slowSpeedSupplier, + BooleanSupplier fastSpeedSupplier /* BooleanSupplier robotCentricSup */) { + this.s_Swerve = s_Swerve; + addRequirements(s_Swerve); + + this.translationSup = translationSup; + this.strafeSup = strafeSup; + this.rotationSup = rotationSup; + // this.robotCentricSup = robotCentricSup; + + this.slowSpeedSupplier = slowSpeedSupplier; + this.fastSpeedSupplier = fastSpeedSupplier; + } + + private double getSpeed() { + if (slowSpeedSupplier.getAsBoolean()) + return Constants.Swerve.SLOW_SPEED; + if (fastSpeedSupplier.getAsBoolean()) + return Constants.Swerve.FAST_SPEED; + return Constants.Swerve.NORMAL_SPEED; + } + + @Override + public void execute() { + /* Get Values, Deadband */ + double translationVal = MathUtil.applyDeadband(translationSup.getAsDouble(), + Constants.JOYSTICK_DEADBAND); + double strafeVal = MathUtil.applyDeadband(strafeSup.getAsDouble(), + Constants.JOYSTICK_DEADBAND); + double rotationVal = MathUtil.applyDeadband(rotationSup.getAsDouble(), + Constants.JOYSTICK_DEADBAND); + + double speed = getSpeed(); + SmartDashboard.putNumber("Swerve Speed", speed); + + /* Drive */ + s_Swerve.drive(new Translation2d(translationVal, strafeVal).times( + speed * Constants.Swerve.BASE_DRIVE_SPEED), + rotationVal * speed * Constants.Swerve.BASE_TURN_SPEED, + /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on + true); + } } \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java index 908a8c3..0975b27 100644 --- a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java @@ -17,11 +17,10 @@ import frc.robot.commands.MoveElevatorCommand; import edu.wpi.first.math.controller.PIDController; -public class ElevatorSubsystem extends SubsystemBase -{ +public class ElevatorSubsystem extends SubsystemBase { public ITeamTalon elevatorMotorMain, elevatorMotorSub; - public double targetPosition = Constants.restElevatorTargetPosition; + public double targetPosition = Constants.MINIMUM_ELEVATOR_POSITION; public final double DEADBAND_VALUE = Constants.ELEVATOR_DEADBAND_VALUE; public AnalogPotentiometer potentiometer; @@ -43,8 +42,7 @@ public class ElevatorSubsystem extends SubsystemBase PIDController pid = new PIDController(kP, kI, kD); - public ElevatorSubsystem(ClawIntakeSubsystem intake) - { + public ElevatorSubsystem(ClawIntakeSubsystem intake) { elevatorMotorMain = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorMain", Ports.ELEVATOR_MOTOR_MAIN); elevatorMotorSub = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorSub", @@ -82,19 +80,16 @@ public ElevatorSubsystem(ClawIntakeSubsystem intake) this.intake = intake; } - public void setTargetPosition(double newTargetPosition, String reason) - { + public void setTargetPosition(double newTargetPosition, String reason) { targetPosition = newTargetPosition; } - private double getCappedPower(double desired) - { + private double getCappedPower(double desired) { return Math.min(Constants.maxElevatorMotorSpeed, Math.max(desired, -Constants.maxElevatorMotorSpeed)); } - public void setSpeed(double newSpeed) - { + public void setSpeed(double newSpeed) { double sign = Math.signum(newSpeed); // System.out.println("Passed Speed: " + newSpeed); this.speed = newSpeed; @@ -107,30 +102,24 @@ public void setSpeed(double newSpeed) double currentPower = elevatorMotorMain.get(); - if ((speed < currentPower)) - { + if ((speed < currentPower)) { newPower = Math.max(speed, currentPower - Constants.ELEVATOR_MAX_POWER_CHANGE); - } // /jack morton lawrence torrance jack morton lawrence torrance jack morton lawrence + } // /jack morton lawrence torrance jack morton lawrence torrance jack morton + // lawrence // torrance - else if ((speed > currentPower)) - { + else if ((speed > currentPower)) { newPower = Math.min(speed, currentPower + Constants.ELEVATOR_MAX_POWER_CHANGE); - } - else - { + } else { newPower = speed; } if ((potentiometer.get() > Constants.topElevatorTargetPosition && speed > 0) - || (potentiometer.get() < Constants.MINIMUM_ELEVATOR_POSITION && speed < 0)) - { + || (potentiometer.get() < Constants.MINIMUM_ELEVATOR_POSITION && speed < 0)) { newPower = 0; } - if (elevatorLimitSwitch.get()) - { - if (newPower < 0) - { + if (elevatorLimitSwitch.get()) { + if (newPower < 0) { newPower = 0; } } @@ -142,21 +131,16 @@ else if ((speed > currentPower)) elevatorMotorSub.set(newPower, "Joystick said so"); } - public void periodic() - { + public void periodic() { // System.out.println("Elevator Power: " + elevatorMotorMain.get()); // System.out.println("Current Potentiometer Value: " + potentiometer.get()); - if (!targetOverridden) - { - if (!isInTarget()) - { + if (!targetOverridden) { + if (!isInTarget()) { // setSpeed(Math.signum(targetPosition - potentiometer.get())); setSpeed(pid.calculate(potentiometer.get(), targetPosition)); - } - else - { + } else { setSpeed(0); } } @@ -167,14 +151,12 @@ public void periodic() } - public boolean isInTarget() - { + public boolean isInTarget() { double delta = targetPosition - potentiometer.get(); return Math.abs(delta) < DEADBAND_VALUE; } - public void resetTarget() - { + public void resetTarget() { targetPosition = potentiometer.get(); } diff --git a/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java b/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java index 033ff66..d9bf64e 100644 --- a/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java +++ b/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java @@ -2,6 +2,7 @@ import frc.robot.SwerveModule; import frc.robot.Constants; +import frc.robot.Ports; import edu.wpi.first.math.kinematics.ChassisSpeeds; import edu.wpi.first.math.kinematics.SwerveDriveKinematics; import edu.wpi.first.math.kinematics.SwerveDriveOdometry; @@ -13,27 +14,36 @@ import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.math.kinematics.SwerveModuleState; +import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj.I2C.Port; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.SubsystemBase; -public class SwerveDriveSubsystem extends SubsystemBase -{ +public class SwerveDriveSubsystem extends SubsystemBase { public SwerveDriveOdometry swerveOdometry; public SwerveModule[] mSwerveMods; - public AHRS gyro; // AHRS is the NavX class + // public AHRS gyro; // AHRS is the NavX class + public AnalogGyro yawGyro, pitchGyro; public double maxModuleSpeed = Constants.Swerve.maxSpeed; - public SwerveDriveSubsystem() - { - gyro = new AHRS(Port.kMXP); // need to check this. port for gyro - // pls check ahrs gyro setup EDIT: gyro should automatically calibrate once powered on + public double gyroOffset = 0; + + public SwerveDriveSubsystem() { + // gyro = new AHRS(Port.kMXP); // need to check this. port for gyro + yawGyro = new AnalogGyro(Ports.YAW_GYRO); + pitchGyro = new AnalogGyro(Ports.PITCH_GYRO); + // pls check ahrs gyro setup EDIT: gyro should automatically calibrate once + // powered on + yawGyro.calibrate(); + pitchGyro.calibrate(); + zeroGyro(); + setAngleOffsets(false); + // swerve module construction - mSwerveMods = new SwerveModule[] - { + mSwerveMods = new SwerveModule[] { new SwerveModule(0, Constants.Swerve.Mod0.constants), new SwerveModule(1, Constants.Swerve.Mod1.constants), new SwerveModule(2, Constants.Swerve.Mod2.constants), @@ -41,8 +51,10 @@ public SwerveDriveSubsystem() }; /* - * By pausing init for a second before setting module offsets, we avoid a bug with inverting - * motors. See https://github.com/Team364/BaseFalconSwerve/issues/8 for more info. + * By pausing init for a second before setting module offsets, we avoid a bug + * with inverting + * motors. See https://github.com/Team364/BaseFalconSwerve/issues/8 for more + * info. */ Timer.delay(1.0); resetModulesToAbsolute(); @@ -52,10 +64,20 @@ public SwerveDriveSubsystem() getModulePositions()); } + public void setAngleOffsets(boolean invert) { + System.out.println("Setting angle offsets..."); + + double[] offsets = Constants.Swerve.ANGLE_OFFSETS; + + Constants.Swerve.Mod0.angleOffset = Rotation2d.fromDegrees(offsets[0] - (invert ? 180 : 0)); + Constants.Swerve.Mod1.angleOffset = Rotation2d.fromDegrees(offsets[1] - (invert ? 180 : 0)); + Constants.Swerve.Mod2.angleOffset = Rotation2d.fromDegrees(offsets[2] - (invert ? 180 : 0)); + Constants.Swerve.Mod3.angleOffset = Rotation2d.fromDegrees(offsets[3] - (invert ? 180 : 0)); + } + // main driving method. translation is change in every direction public void drive(Translation2d translation, double rotation, boolean fieldRelative, - boolean isOpenLoop) - { + boolean isOpenLoop) { SwerveModuleState[] swerveModuleStates = Constants.Swerve.swerveKinematics .toSwerveModuleStates(fieldRelative ? ChassisSpeeds.fromFieldRelativeSpeeds(translation.getX(), @@ -63,8 +85,7 @@ public void drive(Translation2d translation, double rotation, boolean fieldRelat : new ChassisSpeeds(translation.getX(), translation.getY(), rotation)); // Log module state - for (int i = 0; i < swerveModuleStates.length; i++) - { + for (int i = 0; i < swerveModuleStates.length; i++) { SwerveModuleState mod = swerveModuleStates[i]; SmartDashboard.putNumber("Mod " + i + " Target Angle", mod.angle.getDegrees()); SmartDashboard.putNumber("Mod " + i + " Target - CANCoder", @@ -76,84 +97,77 @@ public void drive(Translation2d translation, double rotation, boolean fieldRelat SwerveDriveKinematics.desaturateWheelSpeeds(swerveModuleStates, maxModuleSpeed); // sets modules to desired state (angle, speed) - for (SwerveModule mod : mSwerveMods) - { + for (SwerveModule mod : mSwerveMods) { mod.setDesiredState(swerveModuleStates[mod.moduleNumber], isOpenLoop); } } /* Used by SwerveControllerCommand in Auto */ - public void setModuleStates(SwerveModuleState[] desiredStates) - { + public void setModuleStates(SwerveModuleState[] desiredStates) { SwerveDriveKinematics.desaturateWheelSpeeds(desiredStates, maxModuleSpeed); - for (SwerveModule mod : mSwerveMods) - { + for (SwerveModule mod : mSwerveMods) { mod.setDesiredState(desiredStates[mod.moduleNumber], false); } } // gets position of robot on the field (odometry) - public Pose2d getPose() - { + public Pose2d getPose() { return swerveOdometry.getPoseMeters(); } // resets odometry (position on field) - public void resetOdometry(Pose2d pose) - { + public void resetOdometry(Pose2d pose) { swerveOdometry.resetPosition(getYaw(), getModulePositions(), pose); } // returns array of a modules' states (angle, speed) for each one - public SwerveModuleState[] getModuleStates() - { + public SwerveModuleState[] getModuleStates() { SwerveModuleState[] states = new SwerveModuleState[4]; - for (SwerveModule mod : mSwerveMods) - { + for (SwerveModule mod : mSwerveMods) { states[mod.moduleNumber] = mod.getState(); } return states; } // returns module positions(for each individual module) - public SwerveModulePosition[] getModulePositions() - { + public SwerveModulePosition[] getModulePositions() { SwerveModulePosition[] positions = new SwerveModulePosition[4]; - for (SwerveModule mod : mSwerveMods) - { + for (SwerveModule mod : mSwerveMods) { positions[mod.moduleNumber] = mod.getPosition(); } return positions; } - public void zeroGyro() - { - gyro.reset(); // Used to setYaw(0); + public void setGyro(double degrees) { + System.out.println("Setting gyro to " + degrees + "..."); + gyroOffset = degrees - yawGyro.getAngle(); + zeroGyro(); + } + + public void zeroGyro() { + System.out.println("Zeroing gyro"); + + yawGyro.reset(); // Used to setYaw(0); } - public Rotation2d getYaw() - { - return (Constants.Swerve.invertGyro) ? Rotation2d.fromDegrees(360 - gyro.getAngle()) - : Rotation2d.fromDegrees(gyro.getAngle()); + public Rotation2d getYaw() { + return (Constants.Swerve.invertGyro) ? Rotation2d.fromDegrees(360 - yawGyro.getAngle() + gyroOffset) + : Rotation2d.fromDegrees(yawGyro.getAngle() + gyroOffset); } - public void resetModulesToAbsolute() - { - for (SwerveModule mod : mSwerveMods) - { + public void resetModulesToAbsolute() { + for (SwerveModule mod : mSwerveMods) { mod.resetToAbsolute(); } } @Override - public void periodic() - { + public void periodic() { swerveOdometry.update(getYaw(), getModulePositions()); // smartdashboard logging per module - for (SwerveModule mod : mSwerveMods) - { + for (SwerveModule mod : mSwerveMods) { SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Cancoder", mod.getCanCoder().getDegrees()); SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Integrated", @@ -161,12 +175,12 @@ public void periodic() SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Velocity", mod.getState().speedMetersPerSecond); } + + SmartDashboard.putNumber("Gyro Angle", getYaw().getDegrees()); } - public void resetEncoders() - { - for (SwerveModule mod : mSwerveMods) - { + public void resetEncoders() { + for (SwerveModule mod : mSwerveMods) { mod.resetToAbsolute(); } } From 819a2a7589b754c8866e5195800008906e950f44 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Mon, 23 Oct 2023 17:58:33 -0400 Subject: [PATCH 10/15] Exit community auto is good. Auto balance auto works in theory. --- src/main/java/frc/robot/Constants.java | 100 +++++---- src/main/java/frc/robot/RobotContainer.java | 198 +++++++++++------- .../java/frc/robot/autos/AutoBalanceAuto.java | 41 ++-- .../robot/autos/GoodDriveDistanceAuto.java | 24 ++- 4 files changed, 222 insertions(+), 141 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index d4863ba..e0f04e0 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -16,22 +16,20 @@ import frc.robot.Ports.SwervePorts; /** - * The Constants class provides a convenient place for teams to hold robot-wide - * numerical or boolean - * constants. This class should not be used for any other purpose. All constants - * should be declared + * The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean + * constants. This class should not be used for any other purpose. All constants should be declared * globally (i.e. public static). Do not put anything functional in this class. *

- * It is advised to statically import this class (or one of its inner classes) - * wherever the + * It is advised to statically import this class (or one of its inner classes) wherever the * constants are needed, to reduce verbosity. */ -public final class Constants { +public final class Constants +{ // auto distances, need to adjust for swerve and get rid of unused ones public static final double EXIT_COMMUNITY_DISTANCE = 5; public static final double EXIT_COMMUNITY_CHARGE_STATION_DISTANCE = 5; - public static final double RETURN_TO_CHARGE_STATION_DISTANCE = -0.5; + public static final double RETURN_TO_CHARGE_STATION_DISTANCE = -1.5; public static final double ELEVATOR_MAX_POWER_CHANGE = 0.275; @@ -52,28 +50,31 @@ public final class Constants { public static final double JOYSTICK_DEADBAND = 0.1; - public static final class CANSparkMaxPeriodicRates { + public static final class CANSparkMaxPeriodicRates + { // In ms public static final int LOW_INTERVAL = 30; // Originally 20 public static final int MID_INTERVAL = 100; // Originally 50 public static final int HIGH_INTERVAL = 1000; // Originally 500 } - public static final class Swerve { + public static final class Swerve + { public static final boolean invertGyro = true; // Always ensure Gyro is CCW+ CW- /* Drivetrain Constants */ - public static final double trackWidth = Units.inchesToMeters(21.708); // will test when + public static final double trackWidth = Units.inchesToMeters(21.708); // will test + // when // testing PID - public static final double wheelBase = Units.inchesToMeters(27.1); // will test when testing + public static final double wheelBase = Units.inchesToMeters(27.1); // will test when + // testing // PID public static final double wheelDiameter = Units.inchesToMeters(4.0); public static final double wheelCircumference = wheelDiameter * Math.PI; /* * Swerve Kinematics No need to ever change this unless you are not doing a - * traditional - * rectangular/square 4 module swerve + * traditional rectangular/square 4 module swerve */ public static final SwerveDriveKinematics swerveKinematics = new SwerveDriveKinematics( new Translation2d(wheelBase / 2.0, trackWidth / 2.0), @@ -107,31 +108,33 @@ public static final class Swerve { public static final boolean driveEnableCurrentLimit = true; /* - * These values are used by the drive falcon to ramp in open loop and closed - * loop driving. - * We found a small open loop ramp (0.25) helps with tread wear, tipping, etc + * These values are used by the drive falcon to ramp in open loop and closed loop + * driving. We found a small open loop ramp (0.25) helps with tread wear, tipping, + * etc */ public static final double openLoopRamp = 0.25; public static final double closedLoopRamp = 0.0; /* Angle Motor PID Values */ - public static final double angleKP = 0.025; // must find/double check all of these in sysid + public static final double angleKP = 0.025; // must find/double check all of these + // in sysid public static final double angleKI = 0.0; public static final double angleKD = 0.0; public static final double angleKF = 0.0; /* Drive Motor PID Values */ - public static final double driveKP = 0.05; // TODO: This must be tuned to specific robot + public static final double driveKP = 0.05; // TODO: This must be tuned to specific + // robot public static final double driveKI = 0.0; public static final double driveKD = 0.0; public static final double driveKF = 0.0; /* * Drive Motor Characterization Values Divide SYSID values by 12 to convert from - * volts to - * percent output for CTRE + * volts to percent output for CTRE */ - public static final double driveKS = (0.32 / 12); // TODO: This must be tuned to specific + public static final double driveKS = (0.32 / 12); // TODO: This must be tuned to + // specific // robot public static final double driveKV = (1.51 / 12); public static final double driveKA = (0.27 / 12); @@ -146,10 +149,12 @@ public static final class Swerve { public static final double AUTO_SPEED = 0.85; public static final double NORMAL_SPEED = 1; public static final double FAST_SPEED = 1.5; - public static final double maxSpeed = 0.7; // 4.5; //TODO: This must be tuned to specific + public static final double maxSpeed = 0.7; // 4.5; //TODO: This must be tuned to + // specific // robot /** Radians per Second */ - public static final double maxAngularVelocity = 2.25; // 10.0; //TODO: This must be tuned to + public static final double maxAngularVelocity = 2.25; // 10.0; //TODO: This must be + // tuned to // specific robot /* Neutral Modes */ @@ -158,61 +163,67 @@ public static final class Swerve { public static final boolean DEFAULT_ANGLE_INVERT = false; - public static final double[] ANGLE_OFFSETS = new double[] { - 109.92, // FL - 80.86, // FR - 53.26, // RL - 250.22 // RR + public static final double[] ANGLE_OFFSETS = new double[] + { + 94.92, // FL + 81.29, // FR + 73.82, // RL + 250.49 // RR }; /* Module Specific Constants */ /* Front Left Module - Module 0 */ - public static final class Mod0 { // TODO: This must be tuned to specific robot + public static final class Mod0 + { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD0_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD0_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD0_CANCODER; - public static Rotation2d angleOffset = Rotation2d - .fromDegrees(ANGLE_OFFSETS[0] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static Rotation2d angleOffset = Rotation2d.fromDegrees( + ANGLE_OFFSETS[0] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } /* Front Right Module - Module 1 */ - public static final class Mod1 { // TODO: This must be tuned to specific robot + public static final class Mod1 + { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD1_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD1_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD1_CANCODER; - public static Rotation2d angleOffset = Rotation2d - .fromDegrees(ANGLE_OFFSETS[1] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static Rotation2d angleOffset = Rotation2d.fromDegrees( + ANGLE_OFFSETS[1] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } /* Back Left Module - Module 2 */ - public static final class Mod2 { // TODO: This must be tuned to specific robot + public static final class Mod2 + { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD2_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD2_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD2_CANCODER; - public static Rotation2d angleOffset = Rotation2d - .fromDegrees(ANGLE_OFFSETS[2] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static Rotation2d angleOffset = Rotation2d.fromDegrees( + ANGLE_OFFSETS[2] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } /* Back Right Module - Module 3 */ - public static final class Mod3 { // TODO: This must be tuned to specific robot + public static final class Mod3 + { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD3_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD3_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD3_CANCODER; - public static Rotation2d angleOffset = Rotation2d - .fromDegrees(ANGLE_OFFSETS[3] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; + public static Rotation2d angleOffset = Rotation2d.fromDegrees( + ANGLE_OFFSETS[3] - (DEFAULT_ANGLE_INVERT ? 180 : 0));; public static final SwerveModuleConstants constants = new SwerveModuleConstants( driveMotorID, angleMotorID, canCoderID, angleOffset); } } - public static final class AutoConstants { // TODO: The below constants are used in the example auto, and must be - // tuned to specific robot + public static final class AutoConstants + { // TODO: The below constants are used in the example auto, and must be + // tuned to specific robot public static final double kMaxSpeedMetersPerSecond = 3; public static final double kMaxAccelerationMetersPerSecondSquared = 3; public static final double kMaxAngularSpeedRadiansPerSecond = Math.PI; @@ -224,7 +235,8 @@ public static final class AutoConstants { // TODO: The below constants are used /* Constraint for the motion profilied robot angle controller */ public static final TrapezoidProfile.Constraints kThetaControllerConstraints = new TrapezoidProfile.Constraints( - kMaxAngularSpeedRadiansPerSecond, kMaxAngularSpeedRadiansPerSecondSquared); + kMaxAngularSpeedRadiansPerSecond, + kMaxAngularSpeedRadiansPerSecondSquared); } } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 137cf52..5d88f5d 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -4,6 +4,9 @@ package frc.robot; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.GenericHID; import edu.wpi.first.wpilibj.Joystick; @@ -34,15 +37,13 @@ import edu.wpi.first.wpilibj2.command.button.POVButton; /** - * This class is where the bulk of the robot should be declared. Since - * Command-based is a - * "declarative" paradigm, very little robot logic should actually be handled in - * the {@link Robot} - * periodic methods (other than the scheduler calls). Instead, the structure of - * the robot (including + * This class is where the bulk of the robot should be declared. Since Command-based is a + * "declarative" paradigm, very little robot logic should actually be handled in the {@link Robot} + * periodic methods (other than the scheduler calls). Instead, the structure of the robot (including * subsystems, commands, and button mappings) should be declared here. */ -public class RobotContainer { +public class RobotContainer +{ public static RobotContainer instance; @@ -66,13 +67,14 @@ public class RobotContainer { /** * The container for the robot. Contains subsystems, OI devices, and commands. */ - public RobotContainer() { + public RobotContainer() + { // shuffleboard = Shuffleboard.getTab("SmartDashboard"); SmartDashboard.putBoolean("Invert Swerve", false); - swerveDrive.setAngleOffsets( - SmartDashboard.getBoolean("Invert Swerve", Constants.Swerve.DEFAULT_ANGLE_INVERT)); + swerveDrive.setAngleOffsets(SmartDashboard.getBoolean("Invert Swerve", + Constants.Swerve.DEFAULT_ANGLE_INVERT)); shuffleboard.addDouble("Gyro", () -> swerveDrive.yawGyro.getAngle()); @@ -88,10 +90,12 @@ public RobotContainer() { shuffleboard.add(autoChooser); - shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> { + shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> + { System.out.println("Getting angle offsets..."); - for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) { + for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) + { double degrees = swerveDrive.mSwerveMods[i].getCanCoder() .getDegrees(); System.out.println("Setting mod " + i + " to " + degrees + "..."); @@ -116,20 +120,23 @@ public RobotContainer() { } /** - * Use this method to define your button->command mappings. Buttons can be - * created by + * Use this method to define your button->command mappings. Buttons can be created by * instantiating a {@link GenericHID} or one of its subclasses - * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then - * passing it to a - * {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. + * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it + * to a {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. */ - private void configurePrimaryBindings() { + private void configurePrimaryBindings() + { primaryController = new Joystick(0); - JoystickButton a = new JoystickButton(primaryController, LogitechControllerButtons.a); - JoystickButton b = new JoystickButton(primaryController, LogitechControllerButtons.b); - JoystickButton x = new JoystickButton(primaryController, LogitechControllerButtons.x); - JoystickButton y = new JoystickButton(primaryController, LogitechControllerButtons.y); + JoystickButton a = new JoystickButton(primaryController, + LogitechControllerButtons.a); + JoystickButton b = new JoystickButton(primaryController, + LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(primaryController, + LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(primaryController, + LogitechControllerButtons.y); JoystickButton bumperLeft = new JoystickButton(primaryController, LogitechControllerButtons.bumperLeft); JoystickButton bumperRight = new JoystickButton(primaryController, @@ -150,49 +157,65 @@ private void configurePrimaryBindings() { swerveDrive // vertical axis of left joystick -> translation .setDefaultCommand(new TeleopSwerveCommand(swerveDrive, - () -> -primaryController.getY(), () -> -primaryController.getX(), // horizontal - // axis - // of - // left - // joystick-> - // strafe - // we want horizontal of right stick, if not twist, then change + () -> -primaryController.getY(), + () -> -primaryController.getX(), // horizontal + // axis + // of + // left + // joystick-> + // strafe + // we want horizontal of right stick, if not twist, + // then change () -> primaryController.getTwist(), () -> triggerLeft.getAsBoolean(), () -> triggerRight.getAsBoolean() - /* ()->y.getAsBoolean() owen doesn't want a button to turn field-relative off */ + /* + * ()->y.getAsBoolean() owen doesn't want a button to turn + * field-relative off + */ )); - x.onTrue(new InstantCommand(() -> { + x.onTrue(new InstantCommand(() -> + { swerveDrive.zeroGyro(); swerveDrive.gyroOffset = 0; })); - y.onTrue(new InstantCommand(() -> { + y.onTrue(new InstantCommand(() -> + { for (SwerveModule mod : swerveDrive.mSwerveMods) mod.resetToAbsolute(); })); - a.onTrue(new InstantCommand(() -> { + a.onTrue(new InstantCommand(() -> + { boolean invert = SmartDashboard.getBoolean("Invert Serve", false); invert = !invert; swerveDrive.setAngleOffsets(invert); SmartDashboard.putBoolean("Invert Swerve", invert); })); - b.onTrue(new InstantCommand(() -> { + b.onTrue(new InstantCommand(() -> + { swerveDrive.setGyro(180); })); + + bumperLeft.onTrue(new AutoBalanceAuto(swerveDrive)); } - private void configureSecondaryBindings() { + private void configureSecondaryBindings() + { secondaryController = new Joystick(1); - elevator.setDefaultCommand( - new MoveElevatorCommand(() -> -secondaryController.getY(), elevator)); - - JoystickButton a = new JoystickButton(secondaryController, LogitechControllerButtons.a); - JoystickButton b = new JoystickButton(secondaryController, LogitechControllerButtons.b); - JoystickButton x = new JoystickButton(secondaryController, LogitechControllerButtons.x); - JoystickButton y = new JoystickButton(secondaryController, LogitechControllerButtons.y); + elevator.setDefaultCommand(new MoveElevatorCommand( + () -> -secondaryController.getY(), elevator)); + + JoystickButton a = new JoystickButton(secondaryController, + LogitechControllerButtons.a); + JoystickButton b = new JoystickButton(secondaryController, + LogitechControllerButtons.b); + JoystickButton x = new JoystickButton(secondaryController, + LogitechControllerButtons.x); + JoystickButton y = new JoystickButton(secondaryController, + LogitechControllerButtons.y); JoystickButton bumperLeft = new JoystickButton(secondaryController, LogitechControllerButtons.bumperLeft); JoystickButton bumperRight = new JoystickButton(secondaryController, @@ -205,7 +228,8 @@ private void configureSecondaryBindings() { POVButton down = new POVButton(secondaryController, LogitechControllerButtons.down); POVButton left = new POVButton(secondaryController, LogitechControllerButtons.left); ; - POVButton right = new POVButton(secondaryController, LogitechControllerButtons.right); + POVButton right = new POVButton(secondaryController, + LogitechControllerButtons.right); JoystickButton start = new JoystickButton(secondaryController, LogitechControllerButtons.start); @@ -213,11 +237,13 @@ private void configureSecondaryBindings() { b.whileTrue(new ClawGrabberCommand(Value.kReverse, clawIntake, false)); // new IntakeMotorCommand( () -> bumperRight.getAsBoolean(),clawIntake); - up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, elevator)); + up.onTrue(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, + elevator)); left.onTrue(new SetElevatorTargetCommand(Constants.carryElevatorPos, elevator)); - right.onTrue( - new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, elevator)); - down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, elevator)); + right.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, + elevator)); + down.onTrue(new SetElevatorTargetCommand(Constants.bottomElevatorTargetPosition, + elevator)); bumperLeft.onTrue(new SetElevatorTargetCommand( Constants.substationPickupElevatorTargetPosition, elevator)); @@ -227,28 +253,38 @@ private void configureSecondaryBindings() { triggerLeft.onTrue(new SetElevatorTargetOverrideCommand(true, elevator)); triggerLeft.onFalse(new SetElevatorTargetOverrideCommand(false, elevator)); - start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, elevator)); + start.onTrue(new SetElevatorTargetCommand(Constants.MINIMUM_ELEVATOR_POSITION, + elevator)); shuffleboard.addBoolean("Test", () -> Robot.isTest); - if (Robot.isTest) { - x.onTrue(new SetElevatorTargetCommand(Constants.middleElevatorTargetPosition, true, - elevator) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator)) - .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, - elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, true, elevator))); + if (Robot.isTest) + { + x.onTrue(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, true, elevator) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator))); } } @@ -258,24 +294,33 @@ private void configureSecondaryBindings() { // CHARGE_STATION_AUTO // } - private final Command exitCommunityAuto = new ClawGrabberCommand(Value.kReverse, clawIntake, false) - .andThen(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, true, elevator)) + private final Command exitCommunityAuto = new InstantCommand(() -> + { + swerveDrive.resetOdometry(new Pose2d(new Translation2d(0, 0), new Rotation2d(0))); + }).andThen(new ClawGrabberCommand(Value.kReverse, clawIntake, false)) + .andThen(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, + true, elevator)) .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) .andThen(new GoodDriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, -0.4, swerveDrive)); - private final Command chargeStationAuto = new ClawGrabberCommand(Value.kReverse, clawIntake, false) - .andThen(new SetElevatorTargetCommand( - Constants.topElevatorTargetPosition, true, elevator)) + private final Command chargeStationAuto = new InstantCommand(() -> + { + swerveDrive.resetOdometry(new Pose2d(new Translation2d(0, 0), new Rotation2d(0))); + }).andThen(new ClawGrabberCommand(Value.kReverse, clawIntake, false)) + .andThen(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, + true, elevator)) .andThen(new ClawGrabberCommand(Value.kForward, clawIntake, true)) .andThen(new SetElevatorTargetCommand(Constants.carryElevatorPos, true, elevator)) .andThen(new GoodDriveDistanceAuto( - Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, -0.4, swerveDrive)) - .andThen(new GoodDriveDistanceAuto(Constants.RETURN_TO_CHARGE_STATION_DISTANCE, - 0.4, swerveDrive)); + Constants.EXIT_COMMUNITY_CHARGE_STATION_DISTANCE, -0.4, + swerveDrive)) + .andThen(new GoodDriveDistanceAuto( + Constants.RETURN_TO_CHARGE_STATION_DISTANCE, 0.4, + swerveDrive)); // .andThen(new AutoBalanceAuto(swerveDrive)); // // Old autos below @@ -358,7 +403,8 @@ private void configureSecondaryBindings() { * * @return the command to run in autonomous */ - public Command getAutonomousCommand() { + public Command getAutonomousCommand() + { // An ExampleCommand will run in autonomous Command choice = autoChooser.getSelected(); // choice.schedule(); diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index 34d28f1..8b50524 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -9,7 +9,8 @@ import frc.robot.Constants; import frc.robot.subsystems.SwerveDriveSubsystem; -public class AutoBalanceAuto extends CommandBase { +public class AutoBalanceAuto extends CommandBase +{ SwerveDriveSubsystem s_Swerve; private double balancingSpeed; @@ -23,47 +24,61 @@ public class AutoBalanceAuto extends CommandBase { private AnalogGyro gyro; - public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) { + private double testAngle; + + public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) + { this.s_Swerve = s_Swerve; balancingSpeed = 0.25; balancingDirection = 1; - tiltDeadband = 10; + tiltDeadband = 12; wheelLockSpeed = 0; wheelsLocked = false; gyro = s_Swerve.pitchGyro; + testAngle = -20; + addRequirements(s_Swerve); } @Override - public void execute() { - if (gyro.getAngle() < tiltDeadband && gyro.getAngle() > -tiltDeadband) { + public void execute() + { + System.out.println("Autobalancing"); + if (/* gyro.getAngle() */ testAngle < tiltDeadband + && /* gyro.getAngle() */ testAngle > -tiltDeadband) + { balancingDirection = 0; - if (!wheelsLocked) { + if (!wheelsLocked) + { wheelLockSpeed = 0.01; wheelsLocked = true; } - } else if (gyro.getAngle() > 0 && balancingDirection == 1) { + } + else if (/* gyro.getAngle() */ testAngle > 0 && balancingDirection == 1) + { balancingSpeed /= 2; balancingDirection = -1; wheelLockSpeed = 0; wheelsLocked = false; - } else if (gyro.getAngle() < 0 && balancingDirection == -1) { + } + else if (/* gyro.getAngle() */ testAngle < 0 && balancingDirection == -1) + { balancingSpeed /= 2; balancingDirection = 1; wheelLockSpeed = 0; wheelsLocked = false; } - if (balancingSpeed < 0.05) - balancingSpeed = 0.05; + if (balancingSpeed < 0.15) + { + balancingSpeed = 0.15; + } - s_Swerve.drive( - new Translation2d(balancingSpeed * balancingDirection, wheelLockSpeed) - .times(Constants.Swerve.maxSpeed), + s_Swerve.drive(new Translation2d(balancingSpeed * balancingDirection, wheelLockSpeed), 0 * Constants.Swerve.maxAngularVelocity, /* !robotCentricSup.getAsBoolean(), */ true, // field relative is always on true); diff --git a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java index 58060b0..9a22f9e 100644 --- a/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java +++ b/src/main/java/frc/robot/autos/GoodDriveDistanceAuto.java @@ -2,6 +2,8 @@ import javax.swing.text.StyleContext.SmallAttributeSet; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.math.kinematics.SwerveModulePosition; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; @@ -9,7 +11,8 @@ import frc.robot.Constants; import frc.robot.subsystems.SwerveDriveSubsystem; -public class GoodDriveDistanceAuto extends CommandBase { +public class GoodDriveDistanceAuto extends CommandBase +{ private double distance; SwerveDriveSubsystem s_Swerve; @@ -18,20 +21,24 @@ public class GoodDriveDistanceAuto extends CommandBase { private double targetPosition; - public GoodDriveDistanceAuto(double distance, double speed, SwerveDriveSubsystem s_Swerve) { + public GoodDriveDistanceAuto(double distance, double speed, SwerveDriveSubsystem s_Swerve) + { this.distance = distance; this.speed = speed; this.s_Swerve = s_Swerve; - targetPosition = s_Swerve.getPose().getX() + distance; - - s_Swerve.resetEncoders(); - addRequirements(s_Swerve); } @Override - public void execute() { + public void initialize() + { + targetPosition = s_Swerve.getPose().getX() + distance; + } + + @Override + public void execute() + { SmartDashboard.putNumber("Auto Drive Target X", targetPosition); SmartDashboard.putNumber("Swerve Pose X", s_Swerve.getPose().getX()); @@ -49,7 +56,8 @@ public void execute() { } @Override - public boolean isFinished() { + public boolean isFinished() + { if (distance > 0) return (s_Swerve.getPose().getX() > targetPosition); else From 5b357ec42d6f33a21d20d4a330786261dad851c9 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Tue, 24 Oct 2023 16:57:08 -0400 Subject: [PATCH 11/15] Pigeon should be set up. --- src/main/java/frc/robot/Ports.java | 3 +- src/main/java/frc/robot/RobotContainer.java | 6 +- .../java/frc/robot/autos/AutoBalanceAuto.java | 16 ++- .../subsystems/SwerveDriveSubsystem.java | 97 +++++++++++-------- 4 files changed, 69 insertions(+), 53 deletions(-) diff --git a/src/main/java/frc/robot/Ports.java b/src/main/java/frc/robot/Ports.java index d3cecd1..7cf1b9d 100644 --- a/src/main/java/frc/robot/Ports.java +++ b/src/main/java/frc/robot/Ports.java @@ -14,8 +14,7 @@ public class Ports { public final static int ELEVATOR_POTENTIOMETER = 2; public final static int ELEVATOR_LIMIT_SWITCH = 9; public final static Port NAV_X = Port.kMXP; // Need to check this - public final static int YAW_GYRO = 0; // Horizontal - public final static int PITCH_GYRO = 1; // Vertical + public final static int GYRO = 0; // CHECK THIS!!! public class SwervePorts { // TODO: Assign port values for each module diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 5d88f5d..83f41a9 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -76,15 +76,15 @@ public RobotContainer() swerveDrive.setAngleOffsets(SmartDashboard.getBoolean("Invert Swerve", Constants.Swerve.DEFAULT_ANGLE_INVERT)); - shuffleboard.addDouble("Gyro", () -> swerveDrive.yawGyro.getAngle()); + shuffleboard.addDouble("Gyro", () -> swerveDrive.gyro.getYaw()); autoChooser = new SendableChooser<>(); autoChooser.setDefaultOption("Charge Station", chargeStationAuto); autoChooser.addOption("Exit Community", exitCommunityAuto); - shuffleboard.addDouble("Yaw Gyro", () -> swerveDrive.yawGyro.getAngle()); - shuffleboard.addDouble("Pitch Gyro", () -> swerveDrive.pitchGyro.getAngle()); + shuffleboard.addDouble("Yaw Gyro", () -> swerveDrive.gyro.getYaw()); + shuffleboard.addDouble("Pitch Gyro", () -> swerveDrive.gyro.getPitch()); shuffleboard.addDouble("Gyro Offset", () -> swerveDrive.gyroOffset); diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index 8b50524..7c9d9c0 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -1,5 +1,6 @@ package frc.robot.autos; +import com.ctre.phoenix.sensors.Pigeon2; import com.kauailabs.navx.frc.AHRS; import edu.wpi.first.math.geometry.Translation2d; @@ -22,9 +23,7 @@ public class AutoBalanceAuto extends CommandBase private boolean wheelsLocked; - private AnalogGyro gyro; - - private double testAngle; + private Pigeon2 gyro; public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) { @@ -36,9 +35,7 @@ public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) wheelsLocked = false; - gyro = s_Swerve.pitchGyro; - - testAngle = -20; + gyro = s_Swerve.gyro; addRequirements(s_Swerve); } @@ -47,8 +44,7 @@ public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) public void execute() { System.out.println("Autobalancing"); - if (/* gyro.getAngle() */ testAngle < tiltDeadband - && /* gyro.getAngle() */ testAngle > -tiltDeadband) + if (gyro.getPitch() < tiltDeadband && gyro.getPitch() > -tiltDeadband) { balancingDirection = 0; @@ -58,14 +54,14 @@ public void execute() wheelsLocked = true; } } - else if (/* gyro.getAngle() */ testAngle > 0 && balancingDirection == 1) + else if (gyro.getPitch() > 0 && balancingDirection == 1) { balancingSpeed /= 2; balancingDirection = -1; wheelLockSpeed = 0; wheelsLocked = false; } - else if (/* gyro.getAngle() */ testAngle < 0 && balancingDirection == -1) + else if (gyro.getPitch() < 0 && balancingDirection == -1) { balancingSpeed /= 2; balancingDirection = 1; diff --git a/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java b/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java index d9bf64e..e6d2bc4 100644 --- a/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java +++ b/src/main/java/frc/robot/subsystems/SwerveDriveSubsystem.java @@ -8,6 +8,7 @@ import edu.wpi.first.math.kinematics.SwerveDriveOdometry; import edu.wpi.first.math.kinematics.SwerveModulePosition; +import com.ctre.phoenix.sensors.Pigeon2; import com.kauailabs.navx.frc.AHRS; import edu.wpi.first.math.geometry.Pose2d; @@ -20,30 +21,30 @@ import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.SubsystemBase; -public class SwerveDriveSubsystem extends SubsystemBase { +public class SwerveDriveSubsystem extends SubsystemBase +{ public SwerveDriveOdometry swerveOdometry; public SwerveModule[] mSwerveMods; // public AHRS gyro; // AHRS is the NavX class - public AnalogGyro yawGyro, pitchGyro; + public Pigeon2 gyro; public double maxModuleSpeed = Constants.Swerve.maxSpeed; public double gyroOffset = 0; - public SwerveDriveSubsystem() { + public SwerveDriveSubsystem() + { // gyro = new AHRS(Port.kMXP); // need to check this. port for gyro - yawGyro = new AnalogGyro(Ports.YAW_GYRO); - pitchGyro = new AnalogGyro(Ports.PITCH_GYRO); + gyro = new Pigeon2(Ports.GYRO); // pls check ahrs gyro setup EDIT: gyro should automatically calibrate once // powered on - yawGyro.calibrate(); - pitchGyro.calibrate(); - + gyro.configFactoryDefault(); zeroGyro(); setAngleOffsets(false); // swerve module construction - mSwerveMods = new SwerveModule[] { + mSwerveMods = new SwerveModule[] + { new SwerveModule(0, Constants.Swerve.Mod0.constants), new SwerveModule(1, Constants.Swerve.Mod1.constants), new SwerveModule(2, Constants.Swerve.Mod2.constants), @@ -51,10 +52,8 @@ public SwerveDriveSubsystem() { }; /* - * By pausing init for a second before setting module offsets, we avoid a bug - * with inverting - * motors. See https://github.com/Team364/BaseFalconSwerve/issues/8 for more - * info. + * By pausing init for a second before setting module offsets, we avoid a bug with inverting + * motors. See https://github.com/Team364/BaseFalconSwerve/issues/8 for more info. */ Timer.delay(1.0); resetModulesToAbsolute(); @@ -64,7 +63,8 @@ public SwerveDriveSubsystem() { getModulePositions()); } - public void setAngleOffsets(boolean invert) { + public void setAngleOffsets(boolean invert) + { System.out.println("Setting angle offsets..."); double[] offsets = Constants.Swerve.ANGLE_OFFSETS; @@ -77,7 +77,8 @@ public void setAngleOffsets(boolean invert) { // main driving method. translation is change in every direction public void drive(Translation2d translation, double rotation, boolean fieldRelative, - boolean isOpenLoop) { + boolean isOpenLoop) + { SwerveModuleState[] swerveModuleStates = Constants.Swerve.swerveKinematics .toSwerveModuleStates(fieldRelative ? ChassisSpeeds.fromFieldRelativeSpeeds(translation.getX(), @@ -85,7 +86,8 @@ public void drive(Translation2d translation, double rotation, boolean fieldRelat : new ChassisSpeeds(translation.getX(), translation.getY(), rotation)); // Log module state - for (int i = 0; i < swerveModuleStates.length; i++) { + for (int i = 0; i < swerveModuleStates.length; i++) + { SwerveModuleState mod = swerveModuleStates[i]; SmartDashboard.putNumber("Mod " + i + " Target Angle", mod.angle.getDegrees()); SmartDashboard.putNumber("Mod " + i + " Target - CANCoder", @@ -97,77 +99,94 @@ public void drive(Translation2d translation, double rotation, boolean fieldRelat SwerveDriveKinematics.desaturateWheelSpeeds(swerveModuleStates, maxModuleSpeed); // sets modules to desired state (angle, speed) - for (SwerveModule mod : mSwerveMods) { + for (SwerveModule mod : mSwerveMods) + { mod.setDesiredState(swerveModuleStates[mod.moduleNumber], isOpenLoop); } } /* Used by SwerveControllerCommand in Auto */ - public void setModuleStates(SwerveModuleState[] desiredStates) { + public void setModuleStates(SwerveModuleState[] desiredStates) + { SwerveDriveKinematics.desaturateWheelSpeeds(desiredStates, maxModuleSpeed); - for (SwerveModule mod : mSwerveMods) { + for (SwerveModule mod : mSwerveMods) + { mod.setDesiredState(desiredStates[mod.moduleNumber], false); } } // gets position of robot on the field (odometry) - public Pose2d getPose() { + public Pose2d getPose() + { return swerveOdometry.getPoseMeters(); } // resets odometry (position on field) - public void resetOdometry(Pose2d pose) { + public void resetOdometry(Pose2d pose) + { swerveOdometry.resetPosition(getYaw(), getModulePositions(), pose); } // returns array of a modules' states (angle, speed) for each one - public SwerveModuleState[] getModuleStates() { + public SwerveModuleState[] getModuleStates() + { SwerveModuleState[] states = new SwerveModuleState[4]; - for (SwerveModule mod : mSwerveMods) { + for (SwerveModule mod : mSwerveMods) + { states[mod.moduleNumber] = mod.getState(); } return states; } // returns module positions(for each individual module) - public SwerveModulePosition[] getModulePositions() { + public SwerveModulePosition[] getModulePositions() + { SwerveModulePosition[] positions = new SwerveModulePosition[4]; - for (SwerveModule mod : mSwerveMods) { + for (SwerveModule mod : mSwerveMods) + { positions[mod.moduleNumber] = mod.getPosition(); } return positions; } - public void setGyro(double degrees) { + public void setGyro(double degrees) + { System.out.println("Setting gyro to " + degrees + "..."); - gyroOffset = degrees - yawGyro.getAngle(); + gyroOffset = degrees - gyro.getYaw(); zeroGyro(); } - public void zeroGyro() { + public void zeroGyro() + { System.out.println("Zeroing gyro"); - yawGyro.reset(); // Used to setYaw(0); + gyro.setYaw(0); // Used to setYaw(0); } - public Rotation2d getYaw() { - return (Constants.Swerve.invertGyro) ? Rotation2d.fromDegrees(360 - yawGyro.getAngle() + gyroOffset) - : Rotation2d.fromDegrees(yawGyro.getAngle() + gyroOffset); + public Rotation2d getYaw() + { + return (Constants.Swerve.invertGyro) + ? Rotation2d.fromDegrees(360 - gyro.getYaw() + gyroOffset) + : Rotation2d.fromDegrees(gyro.getYaw() + gyroOffset); } - public void resetModulesToAbsolute() { - for (SwerveModule mod : mSwerveMods) { + public void resetModulesToAbsolute() + { + for (SwerveModule mod : mSwerveMods) + { mod.resetToAbsolute(); } } @Override - public void periodic() { + public void periodic() + { swerveOdometry.update(getYaw(), getModulePositions()); // smartdashboard logging per module - for (SwerveModule mod : mSwerveMods) { + for (SwerveModule mod : mSwerveMods) + { SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Cancoder", mod.getCanCoder().getDegrees()); SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Integrated", @@ -179,8 +198,10 @@ public void periodic() { SmartDashboard.putNumber("Gyro Angle", getYaw().getDegrees()); } - public void resetEncoders() { - for (SwerveModule mod : mSwerveMods) { + public void resetEncoders() + { + for (SwerveModule mod : mSwerveMods) + { mod.resetToAbsolute(); } } From afee86148f9e10fdc5f579ce7593b8707ad5039e Mon Sep 17 00:00:00 2001 From: Renato Dell'Osso <54045197+renatodellosso@users.noreply.github.com> Date: Thu, 26 Oct 2023 17:23:16 -0400 Subject: [PATCH 12/15] Revert "Merge pull request #10 from Decatur-High-GlobalDynamics/testing" This reverts commit 8ecbc13ed652994f80dcaddfb6e9292fb35a18ad, reversing changes made to eac02256afd45c5a4d1df862a354a565fa91cc0a. --- .../frc/robot/subsystems/ElevatorSubsystem.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java index e2745b4..5029d5d 100644 --- a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java @@ -15,7 +15,6 @@ import frc.robot.RobotContainer; import frc.robot.TeamTalonFX; import frc.robot.commands.MoveElevatorCommand; -import edu.wpi.first.math.controller.PIDController; public class ElevatorSubsystem extends SubsystemBase { @@ -36,12 +35,6 @@ public class ElevatorSubsystem extends SubsystemBase { public DigitalInput elevatorLimitSwitch; - private static final double kP = 1.32; //1.2392; - private static final double kI = 0; - private static final double kD = .0185; //0.019259; - - PIDController pid = new PIDController(kP, kI, kD); - public ElevatorSubsystem(ClawIntakeSubsystem intake) { elevatorMotorMain = new TeamTalonFX("Subsystem.Elevator.ElevatorMotorMain", Ports.ELEVATOR_MOTOR_MAIN); @@ -134,10 +127,8 @@ public void periodic() { if(!targetOverridden) { if (!isInTarget()) { - // setSpeed(Math.signum(targetPosition - potentiometer.get())); - - setSpeed(pid.calculate(potentiometer.get(), targetPosition)); - } + setSpeed(Math.signum(targetPosition - potentiometer.get())); + } else { setSpeed(0); } From 737c28bea5648918ff1ec5815b01912be4a54102 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Thu, 26 Oct 2023 17:47:03 -0400 Subject: [PATCH 13/15] Balance uses correct gyro angle. --- src/main/java/frc/robot/RobotContainer.java | 2 +- src/main/java/frc/robot/autos/AutoBalanceAuto.java | 10 +++++----- .../java/frc/robot/subsystems/ElevatorSubsystem.java | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 83f41a9..ed49757 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -84,7 +84,7 @@ public RobotContainer() autoChooser.addOption("Exit Community", exitCommunityAuto); shuffleboard.addDouble("Yaw Gyro", () -> swerveDrive.gyro.getYaw()); - shuffleboard.addDouble("Pitch Gyro", () -> swerveDrive.gyro.getPitch()); + shuffleboard.addDouble("Pitch Gyro", () -> swerveDrive.gyro.getRoll()); shuffleboard.addDouble("Gyro Offset", () -> swerveDrive.gyroOffset); diff --git a/src/main/java/frc/robot/autos/AutoBalanceAuto.java b/src/main/java/frc/robot/autos/AutoBalanceAuto.java index 7c9d9c0..c578cad 100644 --- a/src/main/java/frc/robot/autos/AutoBalanceAuto.java +++ b/src/main/java/frc/robot/autos/AutoBalanceAuto.java @@ -44,7 +44,7 @@ public AutoBalanceAuto(SwerveDriveSubsystem s_Swerve) public void execute() { System.out.println("Autobalancing"); - if (gyro.getPitch() < tiltDeadband && gyro.getPitch() > -tiltDeadband) + if (gyro.getRoll() < tiltDeadband && gyro.getRoll() > -tiltDeadband) { balancingDirection = 0; @@ -54,17 +54,17 @@ public void execute() wheelsLocked = true; } } - else if (gyro.getPitch() > 0 && balancingDirection == 1) + else if (gyro.getRoll() > 0 && balancingDirection == 1) { balancingSpeed /= 2; - balancingDirection = -1; + balancingDirection = 1; wheelLockSpeed = 0; wheelsLocked = false; } - else if (gyro.getPitch() < 0 && balancingDirection == -1) + else if (gyro.getRoll() < 0 && balancingDirection == -1) { balancingSpeed /= 2; - balancingDirection = 1; + balancingDirection = -1; wheelLockSpeed = 0; wheelsLocked = false; } diff --git a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java index bde1caf..18191c9 100644 --- a/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ElevatorSubsystem.java @@ -2,6 +2,7 @@ import com.ctre.phoenix.motorcontrol.NeutralMode; +import edu.wpi.first.math.controller.PIDController; import edu.wpi.first.wpilibj.AnalogPotentiometer; import edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj.Joystick; From b4e20fd8fb3d2e99f5cf1ed3195a76e3dfbab287 Mon Sep 17 00:00:00 2001 From: Owen Beck Date: Fri, 27 Oct 2023 15:02:33 -0400 Subject: [PATCH 14/15] Removed autobalance testing. --- src/main/java/frc/robot/RobotContainer.java | 107 +++++++++----------- 1 file changed, 48 insertions(+), 59 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index ed49757..5924ee2 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -37,13 +37,15 @@ import edu.wpi.first.wpilibj2.command.button.POVButton; /** - * This class is where the bulk of the robot should be declared. Since Command-based is a - * "declarative" paradigm, very little robot logic should actually be handled in the {@link Robot} - * periodic methods (other than the scheduler calls). Instead, the structure of the robot (including + * This class is where the bulk of the robot should be declared. Since + * Command-based is a + * "declarative" paradigm, very little robot logic should actually be handled in + * the {@link Robot} + * periodic methods (other than the scheduler calls). Instead, the structure of + * the robot (including * subsystems, commands, and button mappings) should be declared here. */ -public class RobotContainer -{ +public class RobotContainer { public static RobotContainer instance; @@ -67,8 +69,7 @@ public class RobotContainer /** * The container for the robot. Contains subsystems, OI devices, and commands. */ - public RobotContainer() - { + public RobotContainer() { // shuffleboard = Shuffleboard.getTab("SmartDashboard"); SmartDashboard.putBoolean("Invert Swerve", false); @@ -90,12 +91,10 @@ public RobotContainer() shuffleboard.add(autoChooser); - shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> - { + shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> { System.out.println("Getting angle offsets..."); - for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) - { + for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) { double degrees = swerveDrive.mSwerveMods[i].getCanCoder() .getDegrees(); System.out.println("Setting mod " + i + " to " + degrees + "..."); @@ -120,13 +119,14 @@ public RobotContainer() } /** - * Use this method to define your button->command mappings. Buttons can be created by + * Use this method to define your button->command mappings. Buttons can be + * created by * instantiating a {@link GenericHID} or one of its subclasses - * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it + * ({@link edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then + * passing it * to a {@link edu.wpi.first.wpilibj2.command.button.JoystickButton}. */ - private void configurePrimaryBindings() - { + private void configurePrimaryBindings() { primaryController = new Joystick(0); JoystickButton a = new JoystickButton(primaryController, @@ -175,34 +175,27 @@ private void configurePrimaryBindings() */ )); - x.onTrue(new InstantCommand(() -> - { + x.onTrue(new InstantCommand(() -> { swerveDrive.zeroGyro(); swerveDrive.gyroOffset = 0; })); - y.onTrue(new InstantCommand(() -> - { + y.onTrue(new InstantCommand(() -> { for (SwerveModule mod : swerveDrive.mSwerveMods) mod.resetToAbsolute(); })); - a.onTrue(new InstantCommand(() -> - { + a.onTrue(new InstantCommand(() -> { boolean invert = SmartDashboard.getBoolean("Invert Serve", false); invert = !invert; swerveDrive.setAngleOffsets(invert); SmartDashboard.putBoolean("Invert Swerve", invert); })); - b.onTrue(new InstantCommand(() -> - { + b.onTrue(new InstantCommand(() -> { swerveDrive.setGyro(180); })); - - bumperLeft.onTrue(new AutoBalanceAuto(swerveDrive)); } - private void configureSecondaryBindings() - { + private void configureSecondaryBindings() { secondaryController = new Joystick(1); elevator.setDefaultCommand(new MoveElevatorCommand( @@ -257,34 +250,33 @@ private void configureSecondaryBindings() elevator)); shuffleboard.addBoolean("Test", () -> Robot.isTest); - if (Robot.isTest) - { + if (Robot.isTest) { x.onTrue(new SetElevatorTargetCommand( Constants.middleElevatorTargetPosition, true, elevator) - .andThen(new SetElevatorTargetCommand( - Constants.carryElevatorPos, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.carryElevatorPos, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.carryElevatorPos, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.carryElevatorPos, - true, elevator)) - .andThen(new SetElevatorTargetCommand( - Constants.middleElevatorTargetPosition, - true, elevator))); + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.carryElevatorPos, + true, elevator)) + .andThen(new SetElevatorTargetCommand( + Constants.middleElevatorTargetPosition, + true, elevator))); } } @@ -294,8 +286,7 @@ private void configureSecondaryBindings() // CHARGE_STATION_AUTO // } - private final Command exitCommunityAuto = new InstantCommand(() -> - { + private final Command exitCommunityAuto = new InstantCommand(() -> { swerveDrive.resetOdometry(new Pose2d(new Translation2d(0, 0), new Rotation2d(0))); }).andThen(new ClawGrabberCommand(Value.kReverse, clawIntake, false)) .andThen(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, @@ -306,8 +297,7 @@ private void configureSecondaryBindings() .andThen(new GoodDriveDistanceAuto(Constants.EXIT_COMMUNITY_DISTANCE, -0.4, swerveDrive)); - private final Command chargeStationAuto = new InstantCommand(() -> - { + private final Command chargeStationAuto = new InstantCommand(() -> { swerveDrive.resetOdometry(new Pose2d(new Translation2d(0, 0), new Rotation2d(0))); }).andThen(new ClawGrabberCommand(Value.kReverse, clawIntake, false)) .andThen(new SetElevatorTargetCommand(Constants.topElevatorTargetPosition, @@ -403,8 +393,7 @@ private void configureSecondaryBindings() * * @return the command to run in autonomous */ - public Command getAutonomousCommand() - { + public Command getAutonomousCommand() { // An ExampleCommand will run in autonomous Command choice = autoChooser.getSelected(); // choice.schedule(); From 5adf6a3f7467dff852a4e40fa0db292ebeb3bddc Mon Sep 17 00:00:00 2001 From: Renato Dell'Osso <54045197+renatodellosso@users.noreply.github.com> Date: Thu, 2 Nov 2023 17:07:53 -0400 Subject: [PATCH 15/15] GRITS --- src/main/java/frc/robot/Constants.java | 54 ++++++++++----------- src/main/java/frc/robot/RobotContainer.java | 24 ++++----- 2 files changed, 37 insertions(+), 41 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index e0f04e0..ca61050 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -16,15 +16,17 @@ import frc.robot.Ports.SwervePorts; /** - * The Constants class provides a convenient place for teams to hold robot-wide numerical or boolean - * constants. This class should not be used for any other purpose. All constants should be declared + * The Constants class provides a convenient place for teams to hold robot-wide + * numerical or boolean + * constants. This class should not be used for any other purpose. All constants + * should be declared * globally (i.e. public static). Do not put anything functional in this class. *

- * It is advised to statically import this class (or one of its inner classes) wherever the + * It is advised to statically import this class (or one of its inner classes) + * wherever the * constants are needed, to reduce verbosity. */ -public final class Constants -{ +public final class Constants { // auto distances, need to adjust for swerve and get rid of unused ones public static final double EXIT_COMMUNITY_DISTANCE = 5; @@ -50,17 +52,15 @@ public final class Constants public static final double JOYSTICK_DEADBAND = 0.1; - public static final class CANSparkMaxPeriodicRates - { + public static final class CANSparkMaxPeriodicRates { // In ms public static final int LOW_INTERVAL = 30; // Originally 20 public static final int MID_INTERVAL = 100; // Originally 50 public static final int HIGH_INTERVAL = 1000; // Originally 500 } - public static final class Swerve - { - public static final boolean invertGyro = true; // Always ensure Gyro is CCW+ CW- + public static final class Swerve { + public static final boolean invertGyro = false; // Always ensure Gyro is CCW+ CW- /* Drivetrain Constants */ public static final double trackWidth = Units.inchesToMeters(21.708); // will test @@ -108,8 +108,10 @@ public static final class Swerve public static final boolean driveEnableCurrentLimit = true; /* - * These values are used by the drive falcon to ramp in open loop and closed loop - * driving. We found a small open loop ramp (0.25) helps with tread wear, tipping, + * These values are used by the drive falcon to ramp in open loop and closed + * loop + * driving. We found a small open loop ramp (0.25) helps with tread wear, + * tipping, * etc */ public static final double openLoopRamp = 0.25; @@ -163,18 +165,16 @@ public static final class Swerve public static final boolean DEFAULT_ANGLE_INVERT = false; - public static final double[] ANGLE_OFFSETS = new double[] - { - 94.92, // FL - 81.29, // FR - 73.82, // RL - 250.49 // RR + public static final double[] ANGLE_OFFSETS = new double[] { + 114.3, // FL + 80.2, // FR + 61.4, // RL + 313.4 // RR }; /* Module Specific Constants */ /* Front Left Module - Module 0 */ - public static final class Mod0 - { // TODO: This must be tuned to specific robot + public static final class Mod0 { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD0_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD0_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD0_CANCODER; @@ -185,8 +185,7 @@ public static final class Mod0 } /* Front Right Module - Module 1 */ - public static final class Mod1 - { // TODO: This must be tuned to specific robot + public static final class Mod1 { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD1_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD1_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD1_CANCODER; @@ -197,8 +196,7 @@ public static final class Mod1 } /* Back Left Module - Module 2 */ - public static final class Mod2 - { // TODO: This must be tuned to specific robot + public static final class Mod2 { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD2_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD2_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD2_CANCODER; @@ -209,8 +207,7 @@ public static final class Mod2 } /* Back Right Module - Module 3 */ - public static final class Mod3 - { // TODO: This must be tuned to specific robot + public static final class Mod3 { // TODO: This must be tuned to specific robot public static final int driveMotorID = SwervePorts.MOD3_DRIVEMOTOR; public static final int angleMotorID = SwervePorts.MOD3_ANGLEMOTOR; public static final int canCoderID = SwervePorts.MOD3_CANCODER; @@ -221,9 +218,8 @@ public static final class Mod3 } } - public static final class AutoConstants - { // TODO: The below constants are used in the example auto, and must be - // tuned to specific robot + public static final class AutoConstants { // TODO: The below constants are used in the example auto, and must be + // tuned to specific robot public static final double kMaxSpeedMetersPerSecond = 3; public static final double kMaxAccelerationMetersPerSecondSquared = 3; public static final double kMaxAngularSpeedRadiansPerSecond = Math.PI; diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 5924ee2..f5d300a 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -91,18 +91,18 @@ public RobotContainer() { shuffleboard.add(autoChooser); - shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> { - System.out.println("Getting angle offsets..."); - - for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) { - double degrees = swerveDrive.mSwerveMods[i].getCanCoder() - .getDegrees(); - System.out.println("Setting mod " + i + " to " + degrees + "..."); - Constants.Swerve.ANGLE_OFFSETS[i] = degrees; - } - - swerveDrive.setAngleOffsets(false); - })); + // shuffleboard.add("Get Angle Offsets", new InstantCommand(() -> { + // System.out.println("Getting angle offsets..."); + + // for (int i = 0; i < swerveDrive.mSwerveMods.length; i++) { + // double degrees = swerveDrive.mSwerveMods[i].getCanCoder() + // .getDegrees(); + // System.out.println("Setting mod " + i + " to " + degrees + "..."); + // Constants.Swerve.ANGLE_OFFSETS[i] = degrees; + // } + + // swerveDrive.setAngleOffsets(false); + // })); secondaryController = new Joystick(2); // We need this for testing in elevator