summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/accel_cal.c38
-rw-r--r--test/accel_cal.tasklist2
-rw-r--r--test/aes.c446
-rw-r--r--test/aes.tasklist2
-rw-r--r--test/base32.c17
-rw-r--r--test/base32.tasklist2
-rw-r--r--test/battery_get_params_smart.c12
-rw-r--r--test/battery_get_params_smart.tasklist2
-rw-r--r--test/bklight_lid.c4
-rw-r--r--test/bklight_lid.tasklist2
-rw-r--r--test/bklight_passthru.c4
-rw-r--r--test/bklight_passthru.tasklist2
-rw-r--r--test/body_detection.c5
-rw-r--r--test/body_detection.tasklist2
-rw-r--r--test/body_detection_data_literals.c12382
-rw-r--r--test/body_detection_test_data.h2
-rw-r--r--test/build.mk22
-rw-r--r--test/button.c6
-rw-r--r--test/button.tasklist2
-rw-r--r--test/cbi.c58
-rw-r--r--test/cbi.tasklist2
-rw-r--r--test/cbi_wp.c5
-rw-r--r--test/cbi_wp.tasklist2
-rw-r--r--test/cec.c15
-rw-r--r--test/cec.tasklist2
-rw-r--r--test/charge_manager.c30
-rw-r--r--test/charge_manager.tasklist2
-rw-r--r--test/charge_manager_drp_charging.tasklist2
-rw-r--r--test/charge_ramp.c27
-rw-r--r--test/charge_ramp.tasklist2
-rw-r--r--test/chipset.c32
-rw-r--r--test/chipset.tasklist10
-rw-r--r--test/compile_time_macros.c27
-rw-r--r--test/compile_time_macros.tasklist2
-rw-r--r--test/console_edit.c82
-rw-r--r--test/console_edit.tasklist2
-rw-r--r--test/cortexm_fpu.c10
-rw-r--r--test/cortexm_fpu.tasklist2
-rw-r--r--test/crc.c6
-rw-r--r--test/crc.tasklist2
-rw-r--r--test/debug.c47
-rw-r--r--test/debug.tasklist9
-rw-r--r--test/entropy.c10
-rw-r--r--test/entropy.tasklist2
-rw-r--r--test/extpwr_gpio.c4
-rw-r--r--test/extpwr_gpio.tasklist2
-rw-r--r--test/fake_battery.c2
-rw-r--r--test/fake_usbc.c82
-rw-r--r--test/fan.c14
-rw-r--r--test/fan.tasklist2
-rw-r--r--test/flash.c111
-rw-r--r--test/flash.tasklist2
-rw-r--r--test/flash_physical.c5
-rw-r--r--test/flash_physical.tasklist2
-rw-r--r--test/flash_write_protect.c5
-rw-r--r--test/flash_write_protect.tasklist2
-rw-r--r--test/float.tasklist2
-rw-r--r--test/fp.c129
-rw-r--r--test/fp.tasklist2
-rw-r--r--test/fpsensor.c4
-rw-r--r--test/fpsensor.mocklist3
-rw-r--r--test/fpsensor.tasklist2
-rw-r--r--test/fpsensor_crypto.c377
-rw-r--r--test/fpsensor_hw.c5
-rw-r--r--test/fpsensor_hw.tasklist2
-rw-r--r--test/fpsensor_state.c202
-rw-r--r--test/genvif/Makefile2
-rwxr-xr-xtest/genvif/genvif.sh2
-rw-r--r--test/genvif/src/atomic.h2
-rw-r--r--test/genvif/src/board.h10
-rw-r--r--test/genvif/src/config_chip.h2
-rw-r--r--test/genvif/src/fuzz_config.h2
-rw-r--r--test/genvif/src/gpio.inc2
-rw-r--r--test/genvif/src/helper.c6
-rw-r--r--test/genvif/src/test_config.h2
-rw-r--r--test/genvif/src/timer.h2
-rw-r--r--test/gyro_cal.c4
-rw-r--r--test/gyro_cal.tasklist2
-rw-r--r--test/gyro_cal_init_for_test.c2
-rw-r--r--test/gyro_cal_init_for_test.h2
-rw-r--r--test/hooks.c13
-rw-r--r--test/hooks.tasklist2
-rw-r--r--test/host_command.c30
-rw-r--r--test/host_command.tasklist2
-rw-r--r--test/i2c_bitbang.c108
-rw-r--r--test/i2c_bitbang.tasklist2
-rw-r--r--test/inductive_charging.c8
-rw-r--r--test/inductive_charging.tasklist2
-rw-r--r--test/interrupt.c4
-rw-r--r--test/interrupt.tasklist2
-rw-r--r--test/irq_locking.c4
-rw-r--r--test/irq_locking.tasklist2
-rw-r--r--test/is_enabled.c8
-rw-r--r--test/is_enabled.tasklist2
-rw-r--r--test/is_enabled_error.c6
-rw-r--r--test/is_enabled_error.sh2
-rw-r--r--test/is_enabled_error.tasklist2
-rw-r--r--test/kasa.c4
-rw-r--r--test/kasa.tasklist2
-rw-r--r--test/kb_8042.c804
-rw-r--r--test/kb_8042.tasklist2
-rw-r--r--test/kb_mkbp.c12
-rw-r--r--test/kb_mkbp.tasklist2
-rw-r--r--test/kb_scan.c39
-rw-r--r--test/kb_scan.tasklist2
-rw-r--r--test/legacy_nvmem_dump.h90
-rw-r--r--test/lid_sw.c4
-rw-r--r--test/lid_sw.tasklist2
-rw-r--r--test/lightbar.c25
-rw-r--r--test/lightbar.tasklist2
-rw-r--r--test/mag_cal.c34
-rw-r--r--test/mag_cal.tasklist2
-rw-r--r--test/math_util.c22
-rw-r--r--test/math_util.tasklist2
-rw-r--r--test/motion_angle.c39
-rw-r--r--test/motion_angle.tasklist2
-rw-r--r--test/motion_angle_data_literals.c1972
-rw-r--r--test/motion_angle_data_literals_tablet.c2040
-rw-r--r--test/motion_angle_tablet.c44
-rw-r--r--test/motion_angle_tablet.tasklist2
-rw-r--r--test/motion_common.c13
-rw-r--r--test/motion_common.h9
-rw-r--r--test/motion_lid.c29
-rw-r--r--test/motion_lid.tasklist2
-rw-r--r--test/motion_sense_fifo.c79
-rw-r--r--test/motion_sense_fifo.tasklist2
-rw-r--r--test/mpu.c22
-rw-r--r--test/mpu.tasklist2
-rw-r--r--test/mutex.c8
-rw-r--r--test/mutex.tasklist2
-rw-r--r--test/newton_fit.c4
-rw-r--r--test/newton_fit.tasklist2
-rw-r--r--test/nvidia_gpu.c215
-rw-r--r--test/nvidia_gpu.tasklist10
-rw-r--r--test/online_calibration.c62
-rw-r--r--test/online_calibration.tasklist2
-rw-r--r--test/online_calibration_spoof.c4
-rw-r--r--test/online_calibration_spoof.tasklist2
-rw-r--r--test/panic_data.c6
-rw-r--r--test/panic_data.tasklist2
-rw-r--r--test/pingpong.c4
-rw-r--r--test/pingpong.tasklist2
-rw-r--r--test/power_button.c4
-rw-r--r--test/power_button.tasklist2
-rw-r--r--test/powerdemo.c24
-rw-r--r--test/powerdemo.h4
-rw-r--r--test/powerdemo.tasklist2
-rw-r--r--test/printf.c706
-rw-r--r--test/printf.tasklist2
-rw-r--r--test/queue.c35
-rw-r--r--test/queue.tasklist2
-rw-r--r--test/rgb_keyboard.c58
-rw-r--r--test/rgb_keyboard.tasklist2
-rw-r--r--test/rollback.c6
-rw-r--r--test/rollback.tasklist2
-rw-r--r--test/rollback_entropy.c50
-rw-r--r--test/rollback_entropy.tasklist2
-rw-r--r--test/rsa.c8
-rw-r--r--test/rsa.tasklist2
-rw-r--r--test/rsa2048-3.h22
-rw-r--r--test/rsa2048-F4.h20
-rw-r--r--test/rsa3072-3.h2
-rw-r--r--test/rtc.c13
-rw-r--r--test/rtc.tasklist2
-rwxr-xr-xtest/run_device_tests.py801
-rw-r--r--test/sbs_charging_v2.c123
-rw-r--r--test/sbs_charging_v2.tasklist2
-rw-r--r--test/scratchpad.c4
-rw-r--r--test/scratchpad.tasklist2
-rw-r--r--test/sha256.c73
-rw-r--r--test/sha256.tasklist2
-rw-r--r--test/shmalloc.c42
-rw-r--r--test/shmalloc.tasklist2
-rw-r--r--test/static_if.c4
-rw-r--r--test/static_if.tasklist2
-rw-r--r--test/static_if_error.c4
-rw-r--r--test/static_if_error.sh2
-rw-r--r--test/static_if_error.tasklist2
-rw-r--r--test/stdlib.c520
-rw-r--r--test/stdlib.tasklist9
-rw-r--r--test/stillness_detector.c38
-rw-r--r--test/stillness_detector.tasklist2
-rw-r--r--test/stm32f_rtc.c6
-rw-r--r--test/stm32f_rtc.tasklist2
-rw-r--r--test/stress.c46
-rw-r--r--test/stress.tasklist2
-rw-r--r--test/system.c8
-rw-r--r--test/system.tasklist2
-rw-r--r--test/system_is_locked.c6
-rw-r--r--test/system_is_locked.tasklist2
-rw-r--r--test/test_config.h98
-rw-r--r--test/thermal.c73
-rw-r--r--test/thermal.tasklist2
-rw-r--r--test/timer_calib.c6
-rw-r--r--test/timer_calib.py82
-rw-r--r--test/timer_calib.tasklist2
-rw-r--r--test/timer_dos.c4
-rw-r--r--test/timer_dos.tasklist2
-rw-r--r--test/timer_jump.py39
-rw-r--r--test/timer_jump.tasklist2
-rw-r--r--test/uptime.c4
-rw-r--r--test/uptime.tasklist2
-rw-r--r--test/usb_common.tasklist2
-rw-r--r--test/usb_common_test.c4
-rw-r--r--test/usb_pd.c209
-rw-r--r--test/usb_pd.tasklist2
-rw-r--r--test/usb_pd_console.c110
-rw-r--r--test/usb_pd_console.tasklist2
-rw-r--r--test/usb_pd_int.c99
-rw-r--r--test/usb_pd_int.mocklist2
-rw-r--r--test/usb_pd_int.tasklist2
-rw-r--r--test/usb_pd_pdo_fixed.tasklist2
-rw-r--r--test/usb_pd_pdo_fixed_test.c4
-rw-r--r--test/usb_pd_test_util.h4
-rw-r--r--test/usb_pd_timer.c9
-rw-r--r--test/usb_pd_timer.tasklist2
-rw-r--r--test/usb_pe.h2
-rw-r--r--test/usb_pe_drp.c124
-rw-r--r--test/usb_pe_drp.mocklist2
-rw-r--r--test/usb_pe_drp.tasklist2
-rw-r--r--test/usb_pe_drp_noextended.c15
-rw-r--r--test/usb_pe_drp_noextended.tasklist2
-rw-r--r--test/usb_pe_drp_old.c48
-rw-r--r--test/usb_pe_drp_old.mocklist2
-rw-r--r--test/usb_pe_drp_old.tasklist2
-rw-r--r--test/usb_pe_drp_old_noextended.c42
-rw-r--r--test/usb_pe_drp_old_noextended.mocklist2
-rw-r--r--test/usb_pe_drp_old_noextended.tasklist2
-rw-r--r--test/usb_ppc.c13
-rw-r--r--test/usb_ppc.tasklist2
-rw-r--r--test/usb_prl.c39
-rw-r--r--test/usb_prl.mocklist2
-rw-r--r--test/usb_prl.tasklist2
-rw-r--r--[l---------]test/usb_prl_noextended.c1348
-rw-r--r--test/usb_prl_old.c312
-rw-r--r--test/usb_prl_old.tasklist2
-rw-r--r--test/usb_sm_checks.c4
-rw-r--r--test/usb_sm_checks.h4
-rw-r--r--test/usb_sm_framework_h3.c614
-rw-r--r--test/usb_sm_framework_h3.tasklist2
-rw-r--r--test/usb_tcpmv2_compliance.c4
-rw-r--r--test/usb_tcpmv2_compliance.h29
-rw-r--r--test/usb_tcpmv2_compliance.mocklist2
-rw-r--r--test/usb_tcpmv2_compliance.tasklist2
-rw-r--r--test/usb_tcpmv2_compliance_common.c158
-rw-r--r--test/usb_tcpmv2_td_pd_ll_e3.c12
-rw-r--r--test/usb_tcpmv2_td_pd_ll_e4.c18
-rw-r--r--test/usb_tcpmv2_td_pd_ll_e5.c6
-rw-r--r--test/usb_tcpmv2_td_pd_other.c4
-rw-r--r--test/usb_tcpmv2_td_pd_snk3_e12.c6
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e1.c27
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e26.c6
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e32.c45
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e7.c27
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e8.c79
-rw-r--r--test/usb_tcpmv2_td_pd_src3_e9.c51
-rw-r--r--test/usb_tcpmv2_td_pd_src_e1.c5
-rw-r--r--test/usb_tcpmv2_td_pd_src_e2.c19
-rw-r--r--test/usb_tcpmv2_td_pd_src_e5.c8
-rw-r--r--test/usb_tcpmv2_td_pd_vndi3_e3.c15
-rw-r--r--test/usb_test/Makefile2
-rw-r--r--test/usb_test/device_configuration.c61
-rw-r--r--test/usb_typec_ctvpd.c164
-rw-r--r--test/usb_typec_ctvpd.tasklist2
-rw-r--r--test/usb_typec_drp_acc_trysrc.c19
-rw-r--r--test/usb_typec_drp_acc_trysrc.mocklist2
-rw-r--r--test/usb_typec_drp_acc_trysrc.tasklist2
-rw-r--r--test/utils.c269
-rw-r--r--test/utils.tasklist2
-rw-r--r--test/utils_str.c200
-rw-r--r--test/utils_str.tasklist2
-rw-r--r--test/vboot.c4
-rw-r--r--test/vboot.tasklist2
-rw-r--r--test/version.c4
-rw-r--r--test/version.tasklist2
-rw-r--r--test/vpd_api.c10
-rw-r--r--test/vpd_api.h33
-rw-r--r--test/x25519.tasklist2
278 files changed, 15444 insertions, 12075 deletions
diff --git a/test/accel_cal.c b/test/accel_cal.c
index 34fd5678c2..840bed00c6 100644
--- a/test/accel_cal.c
+++ b/test/accel_cal.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -29,12 +29,12 @@ struct accel_cal cal = {
static bool accumulate(float x, float y, float z, float temperature)
{
- return accel_cal_accumulate(&cal, 0, x, y, z, temperature)
- || accel_cal_accumulate(&cal, 200 * MSEC, x, y, z, temperature)
- || accel_cal_accumulate(&cal, 400 * MSEC, x, y, z, temperature)
- || accel_cal_accumulate(&cal, 600 * MSEC, x, y, z, temperature)
- || accel_cal_accumulate(&cal, 800 * MSEC, x, y, z, temperature)
- || accel_cal_accumulate(&cal, 1000 * MSEC, x, y, z, temperature);
+ return accel_cal_accumulate(&cal, 0, x, y, z, temperature) ||
+ accel_cal_accumulate(&cal, 200 * MSEC, x, y, z, temperature) ||
+ accel_cal_accumulate(&cal, 400 * MSEC, x, y, z, temperature) ||
+ accel_cal_accumulate(&cal, 600 * MSEC, x, y, z, temperature) ||
+ accel_cal_accumulate(&cal, 800 * MSEC, x, y, z, temperature) ||
+ accel_cal_accumulate(&cal, 1000 * MSEC, x, y, z, temperature);
}
DECLARE_EC_TEST(test_calibrated_correctly_with_kasa)
@@ -66,20 +66,16 @@ DECLARE_EC_TEST(test_calibrated_correctly_with_newton)
float kasa_radius;
int i;
float data[] = {
- 1.00290f, 0.09170f, 0.09649f,
- 0.95183f, 0.23626f, 0.25853f,
- 0.95023f, 0.15387f, 0.31865f,
- 0.97374f, 0.01639f, 0.27675f,
- 0.88521f, 0.30212f, 0.39558f,
- 0.92787f, 0.35157f, 0.21209f,
- 0.95162f, 0.33173f, 0.10924f,
- 0.98397f, 0.22644f, 0.07737f,
+ 1.00290f, 0.09170f, 0.09649f, 0.95183f, 0.23626f, 0.25853f,
+ 0.95023f, 0.15387f, 0.31865f, 0.97374f, 0.01639f, 0.27675f,
+ 0.88521f, 0.30212f, 0.39558f, 0.92787f, 0.35157f, 0.21209f,
+ 0.95162f, 0.33173f, 0.10924f, 0.98397f, 0.22644f, 0.07737f,
};
kasa_reset(&kasa);
for (i = 0; i < ARRAY_SIZE(data); i += 3) {
zassert_false(has_bias, NULL);
- kasa_accumulate(&kasa, data[i], data[i + 1], data[i + 2]);
+ kasa_accumulate(&kasa, data[i], data[i + 1], data[i + 2]);
has_bias = accumulate(data[i], data[i + 1], data[i + 2], 21.0f);
}
@@ -93,9 +89,9 @@ DECLARE_EC_TEST(test_calibrated_correctly_with_newton)
zassert_true(sqrtf(powf(cal.bias[X] - 0.01f, 2.0f) +
powf(cal.bias[Y] - 0.01f, 2.0f) +
powf(cal.bias[Z] - 0.01f, 2.0f)) <
- sqrtf(powf(kasa_bias[X] - 0.01f, 2.0f) +
- powf(kasa_bias[Y] - 0.01f, 2.0f) +
- powf(kasa_bias[Z] - 0.01f, 2.0f)),
+ sqrtf(powf(kasa_bias[X] - 0.01f, 2.0f) +
+ powf(kasa_bias[Y] - 0.01f, 2.0f) +
+ powf(kasa_bias[Z] - 0.01f, 2.0f)),
NULL);
return EC_SUCCESS;
@@ -125,7 +121,9 @@ void before_test(void)
accel_cal_reset(&cal);
}
-void after_test(void) {}
+void after_test(void)
+{
+}
TEST_MAIN()
{
diff --git a/test/accel_cal.tasklist b/test/accel_cal.tasklist
index 0e3696c3f0..d3fcf83121 100644
--- a/test/accel_cal.tasklist
+++ b/test/accel_cal.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/aes.c b/test/aes.c
index 1c71e2874e..0fc220d997 100644
--- a/test/aes.c
+++ b/test/aes.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -16,6 +16,7 @@
#include "aes.h"
#include "aes-gcm.h"
+#include "builtin/assert.h"
#include "console.h"
#include "common.h"
#include "test_util.h"
@@ -29,23 +30,18 @@ static uint8_t tmp[512];
/*
* Do encryption, put result in |result|, and compare with |ciphertext|.
*/
-static int test_aes_gcm_encrypt(uint8_t *result,
- const uint8_t *key,
- int key_size,
- const uint8_t *plaintext,
- const uint8_t *ciphertext,
- int plaintext_size,
- const uint8_t *nonce,
- int nonce_size,
- const uint8_t *tag,
- int tag_size)
+static int test_aes_gcm_encrypt(uint8_t *result, const uint8_t *key,
+ int key_size, const uint8_t *plaintext,
+ const uint8_t *ciphertext, int plaintext_size,
+ const uint8_t *nonce, int nonce_size,
+ const uint8_t *tag, int tag_size)
{
static AES_KEY aes_key;
static GCM128_CONTEXT ctx;
TEST_ASSERT(AES_set_encrypt_key(key, 8 * key_size, &aes_key) == 0);
- CRYPTO_gcm128_init(&ctx, &aes_key, (block128_f) AES_encrypt, 0);
+ CRYPTO_gcm128_init(&ctx, &aes_key, (block128_f)AES_encrypt, 0);
CRYPTO_gcm128_setiv(&ctx, &aes_key, nonce, nonce_size);
TEST_ASSERT(CRYPTO_gcm128_encrypt(&ctx, &aes_key, plaintext, result,
plaintext_size));
@@ -58,23 +54,18 @@ static int test_aes_gcm_encrypt(uint8_t *result,
/*
* Do decryption, put result in |result|, and compare with |plaintext|.
*/
-static int test_aes_gcm_decrypt(uint8_t *result,
- const uint8_t *key,
- int key_size,
- const uint8_t *plaintext,
- const uint8_t *ciphertext,
- int plaintext_size,
- const uint8_t *nonce,
- int nonce_size,
- const uint8_t *tag,
- int tag_size)
+static int test_aes_gcm_decrypt(uint8_t *result, const uint8_t *key,
+ int key_size, const uint8_t *plaintext,
+ const uint8_t *ciphertext, int plaintext_size,
+ const uint8_t *nonce, int nonce_size,
+ const uint8_t *tag, int tag_size)
{
static AES_KEY aes_key;
static GCM128_CONTEXT ctx;
TEST_ASSERT(AES_set_encrypt_key(key, 8 * key_size, &aes_key) == 0);
- CRYPTO_gcm128_init(&ctx, &aes_key, (block128_f) AES_encrypt, 0);
+ CRYPTO_gcm128_init(&ctx, &aes_key, (block128_f)AES_encrypt, 0);
CRYPTO_gcm128_setiv(&ctx, &aes_key, nonce, nonce_size);
TEST_ASSERT(CRYPTO_gcm128_decrypt(&ctx, &aes_key, ciphertext, result,
plaintext_size));
@@ -84,17 +75,13 @@ static int test_aes_gcm_decrypt(uint8_t *result,
return EC_SUCCESS;
}
-static int test_aes_gcm_raw_inplace(const uint8_t *key,
- int key_size,
+static int test_aes_gcm_raw_inplace(const uint8_t *key, int key_size,
const uint8_t *plaintext,
const uint8_t *ciphertext,
- int plaintext_size,
- const uint8_t *nonce,
- int nonce_size,
- const uint8_t *tag,
+ int plaintext_size, const uint8_t *nonce,
+ int nonce_size, const uint8_t *tag,
int tag_size)
{
-
/*
* Make copies that will be clobbered during in-place encryption or
* decryption.
@@ -105,95 +92,53 @@ static int test_aes_gcm_raw_inplace(const uint8_t *key,
memcpy(plaintext_copy, plaintext, plaintext_size);
memcpy(ciphertext_copy, ciphertext, plaintext_size);
- TEST_ASSERT(test_aes_gcm_encrypt(plaintext_copy,
- key,
- key_size,
- plaintext_copy,
- ciphertext,
- plaintext_size,
- nonce,
- nonce_size,
- tag,
+ TEST_ASSERT(test_aes_gcm_encrypt(plaintext_copy, key, key_size,
+ plaintext_copy, ciphertext,
+ plaintext_size, nonce, nonce_size, tag,
tag_size) == EC_SUCCESS);
- TEST_ASSERT(test_aes_gcm_decrypt(ciphertext_copy,
- key,
- key_size,
- plaintext,
- ciphertext_copy,
- plaintext_size,
- nonce,
- nonce_size,
- tag,
+ TEST_ASSERT(test_aes_gcm_decrypt(ciphertext_copy, key, key_size,
+ plaintext, ciphertext_copy,
+ plaintext_size, nonce, nonce_size, tag,
tag_size) == EC_SUCCESS);
return EC_SUCCESS;
}
-static int test_aes_gcm_raw_non_inplace(const uint8_t *key,
- int key_size,
+static int test_aes_gcm_raw_non_inplace(const uint8_t *key, int key_size,
const uint8_t *plaintext,
const uint8_t *ciphertext,
int plaintext_size,
- const uint8_t *nonce,
- int nonce_size,
- const uint8_t *tag,
- int tag_size)
+ const uint8_t *nonce, int nonce_size,
+ const uint8_t *tag, int tag_size)
{
- TEST_ASSERT(test_aes_gcm_encrypt(tmp,
- key,
- key_size,
- plaintext,
- ciphertext,
- plaintext_size,
- nonce,
- nonce_size,
- tag,
+ TEST_ASSERT(test_aes_gcm_encrypt(tmp, key, key_size, plaintext,
+ ciphertext, plaintext_size, nonce,
+ nonce_size, tag,
tag_size) == EC_SUCCESS);
- TEST_ASSERT(test_aes_gcm_decrypt(tmp,
- key,
- key_size,
- plaintext,
- ciphertext,
- plaintext_size,
- nonce,
- nonce_size,
- tag,
+ TEST_ASSERT(test_aes_gcm_decrypt(tmp, key, key_size, plaintext,
+ ciphertext, plaintext_size, nonce,
+ nonce_size, tag,
tag_size) == EC_SUCCESS);
return EC_SUCCESS;
}
-static int test_aes_gcm_raw(const uint8_t *key,
- int key_size,
- const uint8_t *plaintext,
- const uint8_t *ciphertext,
- int plaintext_size,
- const uint8_t *nonce,
- int nonce_size,
- const uint8_t *tag,
- int tag_size)
+static int test_aes_gcm_raw(const uint8_t *key, int key_size,
+ const uint8_t *plaintext, const uint8_t *ciphertext,
+ int plaintext_size, const uint8_t *nonce,
+ int nonce_size, const uint8_t *tag, int tag_size)
{
TEST_ASSERT(plaintext_size <= sizeof(tmp));
- TEST_ASSERT(test_aes_gcm_raw_non_inplace(key,
- key_size,
- plaintext,
- ciphertext,
- plaintext_size,
- nonce,
- nonce_size,
- tag,
+ TEST_ASSERT(test_aes_gcm_raw_non_inplace(key, key_size, plaintext,
+ ciphertext, plaintext_size,
+ nonce, nonce_size, tag,
tag_size) == EC_SUCCESS);
- TEST_ASSERT(test_aes_gcm_raw_inplace(key,
- key_size,
- plaintext,
- ciphertext,
- plaintext_size,
- nonce,
- nonce_size,
- tag,
+ TEST_ASSERT(test_aes_gcm_raw_inplace(key, key_size, plaintext,
+ ciphertext, plaintext_size, nonce,
+ nonce_size, tag,
tag_size) == EC_SUCCESS);
return EC_SUCCESS;
@@ -214,8 +159,8 @@ static int test_aes_gcm(void)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t nonce1[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t cipher1[] = {
0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92,
@@ -231,28 +176,26 @@ static int test_aes_gcm(void)
0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
};
static const uint8_t plain2[] = {
- 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
- 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
- 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
- 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
- 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
- 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
- 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
- 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59,
+ 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53,
+ 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31,
+ 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a,
+ 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39,
+ 0x1a, 0xaf, 0xd2, 0x55,
};
static const uint8_t nonce2[] = {
- 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
- 0xde, 0xca, 0xf8, 0x88,
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce,
+ 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88,
};
static const uint8_t cipher2[] = {
- 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24,
- 0x4b, 0x72, 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c,
- 0xe3, 0xaa, 0x21, 0x2f, 0x2c, 0x02, 0xa4, 0xe0,
- 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac, 0xa1, 0x2e,
- 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
- 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05,
- 0x1b, 0xa3, 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97,
- 0x3d, 0x58, 0xe0, 0x91, 0x47, 0x3f, 0x59, 0x85,
+ 0x42, 0x83, 0x1e, 0xc2, 0x21, 0x77, 0x74, 0x24, 0x4b, 0x72,
+ 0x21, 0xb7, 0x84, 0xd0, 0xd4, 0x9c, 0xe3, 0xaa, 0x21, 0x2f,
+ 0x2c, 0x02, 0xa4, 0xe0, 0x35, 0xc1, 0x7e, 0x23, 0x29, 0xac,
+ 0xa1, 0x2e, 0x21, 0xd5, 0x14, 0xb2, 0x54, 0x66, 0x93, 0x1c,
+ 0x7d, 0x8f, 0x6a, 0x5a, 0xac, 0x84, 0xaa, 0x05, 0x1b, 0xa3,
+ 0x0b, 0x39, 0x6a, 0x0a, 0xac, 0x97, 0x3d, 0x58, 0xe0, 0x91,
+ 0x47, 0x3f, 0x59, 0x85,
};
static const uint8_t tag2[] = {
0x4d, 0x5c, 0x2a, 0xf3, 0x27, 0xcd, 0x64, 0xa6,
@@ -269,8 +212,8 @@ static int test_aes_gcm(void)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t nonce3[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t cipher3[] = {
0x98, 0xe7, 0x24, 0x7c, 0x07, 0xf0, 0xfe, 0x41,
@@ -287,28 +230,26 @@ static int test_aes_gcm(void)
0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
};
static const uint8_t plain4[] = {
- 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
- 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
- 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
- 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
- 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
- 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
- 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
- 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59,
+ 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53,
+ 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31,
+ 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a,
+ 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39,
+ 0x1a, 0xaf, 0xd2, 0x55,
};
static const uint8_t nonce4[] = {
- 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
- 0xde, 0xca, 0xf8, 0x88,
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce,
+ 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88,
};
static const uint8_t cipher4[] = {
- 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41,
- 0xeb, 0x06, 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57,
- 0x85, 0x9e, 0x1c, 0xea, 0xa6, 0xef, 0xd9, 0x84,
- 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1, 0xe1, 0x9c,
- 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
- 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47,
- 0x18, 0xe2, 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9,
- 0xcc, 0xda, 0x27, 0x10, 0xac, 0xad, 0xe2, 0x56,
+ 0x39, 0x80, 0xca, 0x0b, 0x3c, 0x00, 0xe8, 0x41, 0xeb, 0x06,
+ 0xfa, 0xc4, 0x87, 0x2a, 0x27, 0x57, 0x85, 0x9e, 0x1c, 0xea,
+ 0xa6, 0xef, 0xd9, 0x84, 0x62, 0x85, 0x93, 0xb4, 0x0c, 0xa1,
+ 0xe1, 0x9c, 0x7d, 0x77, 0x3d, 0x00, 0xc1, 0x44, 0xc5, 0x25,
+ 0xac, 0x61, 0x9d, 0x18, 0xc8, 0x4a, 0x3f, 0x47, 0x18, 0xe2,
+ 0x44, 0x8b, 0x2f, 0xe3, 0x24, 0xd9, 0xcc, 0xda, 0x27, 0x10,
+ 0xac, 0xad, 0xe2, 0x56,
};
static const uint8_t tag4[] = {
0x99, 0x24, 0xa7, 0xc8, 0x58, 0x73, 0x36, 0xbf,
@@ -326,8 +267,8 @@ static int test_aes_gcm(void)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t nonce5[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t cipher5[] = {
0xce, 0xa7, 0x40, 0x3d, 0x4d, 0x60, 0x6b, 0x6e,
@@ -345,28 +286,26 @@ static int test_aes_gcm(void)
0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
};
static const uint8_t plain6[] = {
- 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
- 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
- 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
- 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
- 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
- 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
- 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
- 0xba, 0x63, 0x7b, 0x39, 0x1a, 0xaf, 0xd2, 0x55,
+ 0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59,
+ 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53,
+ 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31,
+ 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+ 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a,
+ 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39,
+ 0x1a, 0xaf, 0xd2, 0x55,
};
static const uint8_t nonce6[] = {
- 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
- 0xde, 0xca, 0xf8, 0x88,
+ 0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce,
+ 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88,
};
static const uint8_t cipher6[] = {
- 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
- 0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
- 0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
- 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
- 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
- 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
- 0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
- 0xbc, 0xc9, 0xf6, 0x62, 0x89, 0x80, 0x15, 0xad,
+ 0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07, 0xf4, 0x7f,
+ 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d, 0x64, 0x3a, 0x8c, 0xdc,
+ 0xbf, 0xe5, 0xc0, 0xc9, 0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55,
+ 0xd1, 0xaa, 0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
+ 0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38, 0xc5, 0xf6,
+ 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a, 0xbc, 0xc9, 0xf6, 0x62,
+ 0x89, 0x80, 0x15, 0xad,
};
static const uint8_t tag6[] = {
0xb0, 0x94, 0xda, 0xc5, 0xd9, 0x34, 0x71, 0xbd,
@@ -378,90 +317,75 @@ static int test_aes_gcm(void)
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t plain7[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* This nonce results in 0xfff in counter LSB. */
static const uint8_t nonce7[] = {
- 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
};
static const uint8_t cipher7[] = {
- 0x56, 0xb3, 0x37, 0x3c, 0xa9, 0xef, 0x6e, 0x4a,
- 0x2b, 0x64, 0xfe, 0x1e, 0x9a, 0x17, 0xb6, 0x14,
- 0x25, 0xf1, 0x0d, 0x47, 0xa7, 0x5a, 0x5f, 0xce,
- 0x13, 0xef, 0xc6, 0xbc, 0x78, 0x4a, 0xf2, 0x4f,
- 0x41, 0x41, 0xbd, 0xd4, 0x8c, 0xf7, 0xc7, 0x70,
- 0x88, 0x7a, 0xfd, 0x57, 0x3c, 0xca, 0x54, 0x18,
- 0xa9, 0xae, 0xff, 0xcd, 0x7c, 0x5c, 0xed, 0xdf,
- 0xc6, 0xa7, 0x83, 0x97, 0xb9, 0xa8, 0x5b, 0x49,
- 0x9d, 0xa5, 0x58, 0x25, 0x72, 0x67, 0xca, 0xab,
- 0x2a, 0xd0, 0xb2, 0x3c, 0xa4, 0x76, 0xa5, 0x3c,
- 0xb1, 0x7f, 0xb4, 0x1c, 0x4b, 0x8b, 0x47, 0x5c,
- 0xb4, 0xf3, 0xf7, 0x16, 0x50, 0x94, 0xc2, 0x29,
- 0xc9, 0xe8, 0xc4, 0xdc, 0x0a, 0x2a, 0x5f, 0xf1,
- 0x90, 0x3e, 0x50, 0x15, 0x11, 0x22, 0x13, 0x76,
- 0xa1, 0xcd, 0xb8, 0x36, 0x4c, 0x50, 0x61, 0xa2,
- 0x0c, 0xae, 0x74, 0xbc, 0x4a, 0xcd, 0x76, 0xce,
- 0xb0, 0xab, 0xc9, 0xfd, 0x32, 0x17, 0xef, 0x9f,
- 0x8c, 0x90, 0xbe, 0x40, 0x2d, 0xdf, 0x6d, 0x86,
- 0x97, 0xf4, 0xf8, 0x80, 0xdf, 0xf1, 0x5b, 0xfb,
- 0x7a, 0x6b, 0x28, 0x24, 0x1e, 0xc8, 0xfe, 0x18,
- 0x3c, 0x2d, 0x59, 0xe3, 0xf9, 0xdf, 0xff, 0x65,
- 0x3c, 0x71, 0x26, 0xf0, 0xac, 0xb9, 0xe6, 0x42,
- 0x11, 0xf4, 0x2b, 0xae, 0x12, 0xaf, 0x46, 0x2b,
- 0x10, 0x70, 0xbe, 0xf1, 0xab, 0x5e, 0x36, 0x06,
- 0x87, 0x2c, 0xa1, 0x0d, 0xee, 0x15, 0xb3, 0x24,
- 0x9b, 0x1a, 0x1b, 0x95, 0x8f, 0x23, 0x13, 0x4c,
- 0x4b, 0xcc, 0xb7, 0xd0, 0x32, 0x00, 0xbc, 0xe4,
- 0x20, 0xa2, 0xf8, 0xeb, 0x66, 0xdc, 0xf3, 0x64,
- 0x4d, 0x14, 0x23, 0xc1, 0xb5, 0x69, 0x90, 0x03,
- 0xc1, 0x3e, 0xce, 0xf4, 0xbf, 0x38, 0xa3, 0xb6,
- 0x0e, 0xed, 0xc3, 0x40, 0x33, 0xba, 0xc1, 0x90,
- 0x27, 0x83, 0xdc, 0x6d, 0x89, 0xe2, 0xe7, 0x74,
- 0x18, 0x8a, 0x43, 0x9c, 0x7e, 0xbc, 0xc0, 0x67,
- 0x2d, 0xbd, 0xa4, 0xdd, 0xcf, 0xb2, 0x79, 0x46,
- 0x13, 0xb0, 0xbe, 0x41, 0x31, 0x5e, 0xf7, 0x78,
+ 0x56, 0xb3, 0x37, 0x3c, 0xa9, 0xef, 0x6e, 0x4a, 0x2b, 0x64,
+ 0xfe, 0x1e, 0x9a, 0x17, 0xb6, 0x14, 0x25, 0xf1, 0x0d, 0x47,
+ 0xa7, 0x5a, 0x5f, 0xce, 0x13, 0xef, 0xc6, 0xbc, 0x78, 0x4a,
+ 0xf2, 0x4f, 0x41, 0x41, 0xbd, 0xd4, 0x8c, 0xf7, 0xc7, 0x70,
+ 0x88, 0x7a, 0xfd, 0x57, 0x3c, 0xca, 0x54, 0x18, 0xa9, 0xae,
+ 0xff, 0xcd, 0x7c, 0x5c, 0xed, 0xdf, 0xc6, 0xa7, 0x83, 0x97,
+ 0xb9, 0xa8, 0x5b, 0x49, 0x9d, 0xa5, 0x58, 0x25, 0x72, 0x67,
+ 0xca, 0xab, 0x2a, 0xd0, 0xb2, 0x3c, 0xa4, 0x76, 0xa5, 0x3c,
+ 0xb1, 0x7f, 0xb4, 0x1c, 0x4b, 0x8b, 0x47, 0x5c, 0xb4, 0xf3,
+ 0xf7, 0x16, 0x50, 0x94, 0xc2, 0x29, 0xc9, 0xe8, 0xc4, 0xdc,
+ 0x0a, 0x2a, 0x5f, 0xf1, 0x90, 0x3e, 0x50, 0x15, 0x11, 0x22,
+ 0x13, 0x76, 0xa1, 0xcd, 0xb8, 0x36, 0x4c, 0x50, 0x61, 0xa2,
+ 0x0c, 0xae, 0x74, 0xbc, 0x4a, 0xcd, 0x76, 0xce, 0xb0, 0xab,
+ 0xc9, 0xfd, 0x32, 0x17, 0xef, 0x9f, 0x8c, 0x90, 0xbe, 0x40,
+ 0x2d, 0xdf, 0x6d, 0x86, 0x97, 0xf4, 0xf8, 0x80, 0xdf, 0xf1,
+ 0x5b, 0xfb, 0x7a, 0x6b, 0x28, 0x24, 0x1e, 0xc8, 0xfe, 0x18,
+ 0x3c, 0x2d, 0x59, 0xe3, 0xf9, 0xdf, 0xff, 0x65, 0x3c, 0x71,
+ 0x26, 0xf0, 0xac, 0xb9, 0xe6, 0x42, 0x11, 0xf4, 0x2b, 0xae,
+ 0x12, 0xaf, 0x46, 0x2b, 0x10, 0x70, 0xbe, 0xf1, 0xab, 0x5e,
+ 0x36, 0x06, 0x87, 0x2c, 0xa1, 0x0d, 0xee, 0x15, 0xb3, 0x24,
+ 0x9b, 0x1a, 0x1b, 0x95, 0x8f, 0x23, 0x13, 0x4c, 0x4b, 0xcc,
+ 0xb7, 0xd0, 0x32, 0x00, 0xbc, 0xe4, 0x20, 0xa2, 0xf8, 0xeb,
+ 0x66, 0xdc, 0xf3, 0x64, 0x4d, 0x14, 0x23, 0xc1, 0xb5, 0x69,
+ 0x90, 0x03, 0xc1, 0x3e, 0xce, 0xf4, 0xbf, 0x38, 0xa3, 0xb6,
+ 0x0e, 0xed, 0xc3, 0x40, 0x33, 0xba, 0xc1, 0x90, 0x27, 0x83,
+ 0xdc, 0x6d, 0x89, 0xe2, 0xe7, 0x74, 0x18, 0x8a, 0x43, 0x9c,
+ 0x7e, 0xbc, 0xc0, 0x67, 0x2d, 0xbd, 0xa4, 0xdd, 0xcf, 0xb2,
+ 0x79, 0x46, 0x13, 0xb0, 0xbe, 0x41, 0x31, 0x5e, 0xf7, 0x78,
0x70, 0x8a, 0x70, 0xee, 0x7d, 0x75, 0x16, 0x5c,
};
static const uint8_t tag7[] = {
@@ -469,27 +393,27 @@ static int test_aes_gcm(void)
0xb0, 0x26, 0xa9, 0xed, 0x3f, 0xe1, 0xe8, 0x5f,
};
- TEST_ASSERT(!test_aes_gcm_raw(key1, sizeof(key1),
- plain1, cipher1, sizeof(plain1),
- nonce1, sizeof(nonce1), tag1, sizeof(tag1)));
- TEST_ASSERT(!test_aes_gcm_raw(key2, sizeof(key2),
- plain2, cipher2, sizeof(plain2),
- nonce2, sizeof(nonce2), tag2, sizeof(tag2)));
- TEST_ASSERT(!test_aes_gcm_raw(key3, sizeof(key3),
- plain3, cipher3, sizeof(plain3),
- nonce3, sizeof(nonce3), tag3, sizeof(tag3)));
- TEST_ASSERT(!test_aes_gcm_raw(key4, sizeof(key4),
- plain4, cipher4, sizeof(plain4),
- nonce4, sizeof(nonce4), tag4, sizeof(tag4)));
- TEST_ASSERT(!test_aes_gcm_raw(key5, sizeof(key5),
- plain5, cipher5, sizeof(plain5),
- nonce5, sizeof(nonce5), tag5, sizeof(tag5)));
- TEST_ASSERT(!test_aes_gcm_raw(key6, sizeof(key6),
- plain6, cipher6, sizeof(plain6),
- nonce6, sizeof(nonce6), tag6, sizeof(tag6)));
- TEST_ASSERT(!test_aes_gcm_raw(key7, sizeof(key7),
- plain7, cipher7, sizeof(plain7),
- nonce7, sizeof(nonce7), tag7, sizeof(tag7)));
+ TEST_ASSERT(!test_aes_gcm_raw(key1, sizeof(key1), plain1, cipher1,
+ sizeof(plain1), nonce1, sizeof(nonce1),
+ tag1, sizeof(tag1)));
+ TEST_ASSERT(!test_aes_gcm_raw(key2, sizeof(key2), plain2, cipher2,
+ sizeof(plain2), nonce2, sizeof(nonce2),
+ tag2, sizeof(tag2)));
+ TEST_ASSERT(!test_aes_gcm_raw(key3, sizeof(key3), plain3, cipher3,
+ sizeof(plain3), nonce3, sizeof(nonce3),
+ tag3, sizeof(tag3)));
+ TEST_ASSERT(!test_aes_gcm_raw(key4, sizeof(key4), plain4, cipher4,
+ sizeof(plain4), nonce4, sizeof(nonce4),
+ tag4, sizeof(tag4)));
+ TEST_ASSERT(!test_aes_gcm_raw(key5, sizeof(key5), plain5, cipher5,
+ sizeof(plain5), nonce5, sizeof(nonce5),
+ tag5, sizeof(tag5)));
+ TEST_ASSERT(!test_aes_gcm_raw(key6, sizeof(key6), plain6, cipher6,
+ sizeof(plain6), nonce6, sizeof(nonce6),
+ tag6, sizeof(tag6)));
+ TEST_ASSERT(!test_aes_gcm_raw(key7, sizeof(key7), plain7, cipher7,
+ sizeof(plain7), nonce7, sizeof(nonce7),
+ tag7, sizeof(tag7)));
return EC_SUCCESS;
}
@@ -505,11 +429,11 @@ static void test_aes_gcm_speed(void)
static const uint8_t plaintext[512] = { 0 };
const int plaintext_size = sizeof(plaintext);
static const uint8_t nonce[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const int nonce_size = sizeof(nonce);
- uint8_t tag[16] = {0};
+ uint8_t tag[16] = { 0 };
const int tag_size = sizeof(tag);
uint8_t *out = tmp;
@@ -525,7 +449,7 @@ static void test_aes_gcm_speed(void)
CRYPTO_gcm128_init(&ctx, &aes_key, (block128_f)AES_encrypt, 0);
CRYPTO_gcm128_setiv(&ctx, &aes_key, nonce, nonce_size);
CRYPTO_gcm128_encrypt(&ctx, &aes_key, plaintext, out,
- plaintext_size);
+ plaintext_size);
CRYPTO_gcm128_tag(&ctx, tag, tag_size);
}
t1 = get_time();
@@ -644,7 +568,7 @@ static void test_aes_speed(void)
ccprintf("AES duration %lld us\n", (long long)(t1.val - t0.val));
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
watchdog_reload();
diff --git a/test/aes.tasklist b/test/aes.tasklist
index 24870f2abb..86bc8aa2d5 100644
--- a/test/aes.tasklist
+++ b/test/aes.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/base32.c b/test/base32.c
index faaefc266f..3559d0dc84 100644
--- a/test/base32.c
+++ b/test/base32.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -54,8 +54,7 @@ DECLARE_EC_TEST(test_crc5)
return EC_SUCCESS;
}
-static int enctest(const void *src, int srcbits, int crc_every,
- const char *enc)
+static int enctest(const void *src, int srcbits, int crc_every, const char *enc)
{
char dest[32];
@@ -73,7 +72,7 @@ static int enctest(const void *src, int srcbits, int crc_every,
DECLARE_EC_TEST(test_encode)
{
- const uint8_t src1[5] = {0xff, 0x00, 0xff, 0x00, 0xff};
+ const uint8_t src1[5] = { 0xff, 0x00, 0xff, 0x00, 0xff };
char enc[32];
/* Test for enough space; error produces null string */
@@ -104,10 +103,9 @@ DECLARE_EC_TEST(test_encode)
/* CRC requires exact multiple of symbol count */
ENCTEST("\xff\x00\xff\x00\xff", 40, 4, "96ARU8AH9D");
ENCTEST("\xff\x00\xff\x00\xff", 40, 8, "96AR8AH9L");
- zassert_equal(
- base32_encode(enc, 16, (uint8_t *)"\xff\x00\xff\x00\xff",
- 40, 6),
- EC_ERROR_INVAL, NULL);
+ zassert_equal(base32_encode(enc, 16, (uint8_t *)"\xff\x00\xff\x00\xff",
+ 40, 6),
+ EC_ERROR_INVAL, NULL);
/* But what matters is symbol count, not bit count */
ENCTEST("\xff\x00\xff\x00\xfe", 39, 4, "96ARU8AH8P");
@@ -201,8 +199,7 @@ DECLARE_EC_TEST(test_decode)
TEST_MAIN()
{
- ztest_test_suite(test_base32_lib,
- ztest_unit_test(test_crc5),
+ ztest_test_suite(test_base32_lib, ztest_unit_test(test_crc5),
ztest_unit_test(test_encode),
ztest_unit_test(test_decode));
ztest_run_test_suite(test_base32_lib);
diff --git a/test/base32.tasklist b/test/base32.tasklist
index 7150f17cbd..6373a70ab1 100644
--- a/test/base32.tasklist
+++ b/test/base32.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/battery_get_params_smart.c b/test/battery_get_params_smart.c
index 3163fb587e..42582df363 100644
--- a/test/battery_get_params_smart.c
+++ b/test/battery_get_params_smart.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -19,7 +19,6 @@ static int fail_on_first, fail_on_last;
static int read_count, write_count;
struct batt_params batt;
-
void battery_compensate_params(struct batt_params *batt)
{
}
@@ -44,17 +43,14 @@ int sb_read(int cmd, int *param)
if (read_count >= fail_on_first && read_count <= fail_on_last)
return EC_ERROR_UNKNOWN;
- return i2c_read16(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- cmd, param);
+ return i2c_read16(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS, cmd, param);
}
int sb_write(int cmd, int param)
{
write_count++;
- return i2c_write16(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS,
- cmd, param);
+ return i2c_write16(I2C_PORT_BATTERY, BATTERY_ADDR_FLAGS, cmd, param);
}
-
/* Tests */
static int test_param_failures(void)
{
@@ -90,7 +86,7 @@ static int test_param_failures(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_param_failures);
diff --git a/test/battery_get_params_smart.tasklist b/test/battery_get_params_smart.tasklist
index c2eb8159a9..efcc6883a5 100644
--- a/test/battery_get_params_smart.tasklist
+++ b/test/battery_get_params_smart.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/bklight_lid.c b/test/bklight_lid.c
index 99167a71a6..52fc91f677 100644
--- a/test/bklight_lid.c
+++ b/test/bklight_lid.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -95,7 +95,7 @@ static int test_hostcommand(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/bklight_lid.tasklist b/test/bklight_lid.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/bklight_lid.tasklist
+++ b/test/bklight_lid.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/bklight_passthru.c b/test/bklight_passthru.c
index 170cc734cd..2bba2fe713 100644
--- a/test/bklight_passthru.c
+++ b/test/bklight_passthru.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -129,7 +129,7 @@ static int test_hostcommand(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/bklight_passthru.tasklist b/test/bklight_passthru.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/bklight_passthru.tasklist
+++ b/test/bklight_passthru.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/body_detection.c b/test/body_detection.c
index aa131f0a31..dac2202eac 100644
--- a/test/body_detection.c
+++ b/test/body_detection.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -105,8 +105,7 @@ static int test_body_detect(void)
return EC_SUCCESS;
}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/body_detection.tasklist b/test/body_detection.tasklist
index 95a30e9973..7926640d53 100644
--- a/test/body_detection.tasklist
+++ b/test/body_detection.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/body_detection_data_literals.c b/test/body_detection_data_literals.c
index 96a0cc2f8f..cafe1d6ade 100644
--- a/test/body_detection_data_literals.c
+++ b/test/body_detection_data_literals.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -6,6208 +6,6208 @@
const struct body_detect_test_data kBodyDetectOnBodyTestData[] = {
/* x, y, z, action*/
- {3.233367f, 1.968032f, 8.875299f, 0},
- {3.190272f, 2.127247f, 9.054865f, 0},
- {3.361457f, 2.057815f, 9.054865f, 0},
- {3.377019f, 1.917754f, 9.093172f, 0},
- {3.460816f, 1.817198f, 9.058456f, 0},
- {3.500320f, 1.726218f, 8.900438f, 0},
- {3.715799f, 1.363497f, 8.836992f, 0},
- {3.883393f, 0.884657f, 8.832204f, 0},
- {3.948036f, 0.577002f, 9.016558f, 0},
- {3.600877f, 0.717063f, 9.200911f, 0},
- {3.318361f, 0.854729f, 9.166195f, 0},
- {3.272871f, 0.731428f, 9.149436f, 0},
- {3.452436f, 0.250194f, 9.297876f, 0},
- {3.817552f, -0.353144f, 9.424768f, 0},
- {3.828326f, -0.495599f, 9.284708f, 0},
- {3.312376f, -0.040701f, 9.204502f, 0},
- {3.049014f, 0.515950f, 9.223656f, 0},
- {3.099292f, 0.980425f, 8.882483f, 0},
- {3.153162f, 1.443703f, 8.154645f, 0},
- {3.501518f, 1.487995f, 8.054089f, 0},
- {4.235340f, 1.292868f, 8.480257f, 0},
- {4.284421f, 1.511937f, 8.848964f, 0},
- {3.988737f, 1.928528f, 9.149436f, 0},
- {3.825932f, 2.076969f, 9.576800f, 0},
- {3.903743f, 1.991974f, 10.133451f, 0},
- {3.841494f, 2.000354f, 10.165773f, 0},
- {3.706222f, 1.930922f, 9.649823f, 0},
- {3.949233f, 1.614888f, 9.054865f, 0},
- {4.237734f, 1.272517f, 8.625106f, 0},
- {4.188653f, 1.134851f, 8.268370f, 0},
- {4.242523f, 0.991199f, 8.091199f, 0},
- {4.157528f, 0.970848f, 8.135491f, 0},
- {3.951627f, 0.967257f, 8.353364f, 0},
- {4.073731f, 0.994790f, 8.854949f, 0},
- {3.840297f, 1.124077f, 9.249992f, 0},
- {3.736149f, 1.142033f, 9.491806f, 0},
- {3.809172f, 1.126471f, 9.651020f, 0},
- {3.987540f, 1.173158f, 9.633064f, 0},
- {4.237734f, 1.005564f, 9.467864f, 0},
- {4.308363f, 0.939724f, 9.190137f, 0},
- {4.367021f, 0.986410f, 9.021346f, 0},
- {4.406525f, 1.033097f, 9.074018f, 0},
- {4.185062f, 1.276109f, 9.235627f, 0},
- {3.971978f, 1.363497f, 9.525325f, 0},
- {4.031833f, 1.318007f, 10.833755f, 0},
- {4.214989f, 1.144428f, 10.241191f, 0},
- {4.808751f, 0.590170f, 9.690525f, 0},
- {4.697421f, 0.372298f, 10.245979f, 0},
- {4.490322f, 0.207098f, 9.682145f, 0},
- {4.353853f, 0.494402f, 8.651442f, 0},
- {3.981555f, 1.094149f, 8.230062f, 0},
- {3.933671f, 1.310825f, 8.426387f, 0},
- {4.107250f, 1.189917f, 9.068033f, 0},
- {4.529827f, 0.888248f, 9.501383f, 0},
- {4.699815f, 0.720654f, 9.765942f, 0},
- {4.661508f, 0.647631f, 9.916777f, 0},
- {4.627989f, 0.587776f, 9.925157f, 0},
- {4.413708f, 0.587776f, 9.791081f, 0},
- {4.369415f, 0.466869f, 9.840162f, 0},
- {4.412511f, 0.335188f, 9.932339f, 0},
- {4.234143f, 0.452504f, 9.502580f, 0},
- {3.817552f, 1.055842f, 8.638274f, 0},
- {3.130417f, 1.842337f, 7.748828f, 0},
- {2.511516f, 2.430113f, 7.059299f, 0},
- {2.267308f, 2.840718f, 6.742067f, 0},
- {2.082954f, 3.129220f, 6.706154f, 0},
- {1.653195f, 3.483561f, 6.813893f, 0},
- {1.053448f, 3.797201f, 7.132322f, 0},
- {0.333991f, 4.125207f, 7.364560f, 0},
- {-0.039504f, 4.228158f, 8.018176f, 0},
- {0.403423f, 3.726573f, 8.789108f, 0},
- {1.179144f, 3.120840f, 9.289496f, 0},
- {1.683123f, 2.905362f, 9.911988f, 0},
- {1.442506f, 3.038240f, 10.551240f, 0},
- {1.403001f, 2.936486f, 12.229574f, 0},
- {1.601720f, 2.541443f, 14.815310f, 0},
- {2.233789f, 2.037464f, 14.715951f, 0},
- {2.664745f, 1.736992f, 12.216406f, 0},
- {3.331529f, 1.385045f, 10.475822f, 0},
- {3.337515f, 1.235407f, 9.133873f, 0},
- {3.173512f, 1.292868f, 8.406036f, 0},
- {3.201046f, 1.462856f, 8.306677f, 0},
- {3.157950f, 1.595734f, 9.011769f, 0},
- {2.759315f, 1.777694f, 10.049655f, 0},
- {2.315192f, 2.105699f, 10.682920f, 0},
- {2.063801f, 2.375046f, 10.832559f, 0},
- {2.310403f, 2.485180f, 10.688907f, 0},
- {2.553414f, 2.606087f, 10.153803f, 0},
- {2.475603f, 2.731782f, 9.356534f, 0},
- {2.710234f, 2.529472f, 9.297876f, 0},
- {2.777272f, 2.193087f, 9.394841f, 0},
- {2.938881f, 1.920148f, 9.531310f, 0},
- {3.108869f, 1.635239f, 10.534480f, 0},
- {3.187877f, 1.425746f, 10.899596f, 0},
- {3.448845f, 1.331175f, 10.508144f, 0},
- {3.606862f, 1.470039f, 9.440331f, 0},
- {3.700236f, 1.162384f, 8.781926f, 0},
- {3.713404f, 0.864306f, 8.845372f, 0},
- {3.575738f, 0.404620f, 9.610319f, 0},
- {3.495532f, -0.130484f, 9.526522f, 0},
- {3.403355f, -0.411802f, 8.833401f, 0},
- {3.203440f, -0.380678f, 8.850161f, 0},
- {2.822762f, -0.191536f, 9.560040f, 0},
- {2.488771f, -0.459686f, 9.883258f, 0},
- {3.065773f, -0.764947f, 10.110707f, 0},
- {1.993172f, 1.004367f, 9.798264f, 0},
- {2.426522f, 1.732204f, 10.036487f, 0},
- {3.213017f, 1.238999f, 10.182533f, 0},
- {2.779666f, 2.394200f, 9.916777f, 0},
- {3.187877f, 2.622846f, 9.593559f, 0},
- {4.195836f, 1.867476f, 9.876076f, 0},
- {3.720587f, 2.114079f, 9.998179f, 0},
- {2.948457f, 2.766498f, 9.500186f, 0},
- {3.869027f, 2.822762f, 9.572012f, 0},
- {4.205412f, 2.656365f, 9.753971f, 0},
- {4.151543f, 2.828747f, 9.751576f, 0},
- {4.046198f, 2.905362f, 9.131479f, 0},
- {3.915714f, 3.032254f, 8.237246f, 0},
- {3.864239f, 3.126825f, 8.008599f, 0},
- {3.466802f, 2.999933f, 8.634683f, 0},
- {2.876631f, 2.902968f, 9.473849f, 0},
- {2.329557f, 2.899376f, 10.187322f, 0},
- {2.197876f, 3.608059f, 10.637431f, 0},
- {2.357090f, 4.205412f, 10.235206f, 0},
- {2.716220f, 4.076126f, 9.261963f, 0},
- {3.520671f, 3.847480f, 8.461103f, 0},
- {4.180274f, 3.879801f, 7.758405f, 0},
- {4.691435f, 4.034227f, 7.019794f, 0},
- {4.918884f, 3.915714f, 6.659468f, 0},
- {4.722559f, 4.205412f, 6.113590f, 0},
- {5.349840f, 4.169499f, 5.413286f, 0},
- {6.423639f, 3.742135f, 5.009864f, 0},
- {6.799528f, 3.581723f, 4.843467f, 0},
- {6.915647f, 3.337515f, 4.921278f, 0},
- {7.358574f, 3.173512f, 5.214568f, 0},
- {7.584826f, 2.861069f, 5.182246f, 0},
- {7.077255f, 2.771286f, 5.073310f, 0},
- {7.192177f, 2.306812f, 5.501872f, 0},
- {7.241258f, 2.145203f, 5.888535f, 0},
- {7.599191f, 1.898601f, 6.099225f, 0},
- {7.576446f, 2.138021f, 6.144714f, 0},
- {7.465116f, 1.962047f, 6.021413f, 0},
- {7.677002f, 1.740583f, 5.643129f, 0},
- {7.966701f, 1.648407f, 4.964374f, 0},
- {8.038527f, 1.636436f, 4.419693f, 0},
- {8.176193f, 1.582566f, 4.183865f, 0},
- {8.489834f, 1.460462f, 4.319137f, 0},
- {8.804670f, 1.314416f, 4.444832f, 0},
- {8.803473f, 1.308430f, 4.492716f, 0},
- {8.580813f, 1.392227f, 4.501096f, 0},
- {8.056483f, 1.595734f, 4.428073f, 0},
- {8.418008f, 1.316810f, 4.600455f, 0},
- {8.826219f, 1.170764f, 4.411314f, 0},
- {8.652639f, 1.201888f, 3.910926f, 0},
- {8.285130f, 0.927753f, 3.752909f, 0},
- {8.475469f, 1.027112f, 3.569752f, 0},
- {9.009375f, 0.708683f, 3.605665f, 0},
- {8.797488f, 0.600944f, 3.107672f, 0},
- {8.864526f, 0.620098f, 2.863463f, 0},
- {8.833401f, 0.214281f, 2.640803f, 0},
- {9.212882f, 0.150835f, 2.487574f, 0},
- {9.308650f, 0.226252f, 2.375046f, 0},
- {8.869314f, 0.094571f, 2.142809f, 0},
- {9.208094f, 0.002394f, 2.132035f, 0},
- {9.100354f, 0.015562f, 2.367864f, 0},
- {8.973462f, -0.011971f, 2.602495f, 0},
- {8.872906f, 0.000000f, 2.564188f, 0},
- {8.883679f, 0.092177f, 2.452858f, 0},
- {8.857343f, 0.241814f, 2.480391f, 0},
- {8.919592f, 0.371101f, 2.612072f, 0},
- {9.002192f, 0.483628f, 2.536655f, 0},
- {9.056062f, 0.521936f, 2.335542f, 0},
- {9.023740f, 0.572214f, 2.012325f, 0},
- {9.085989f, 0.592565f, 1.854308f, 0},
- {9.127888f, 0.505176f, 1.783679f, 0},
- {8.968674f, 0.653617f, 1.787270f, 0},
- {8.872906f, 0.650025f, 1.867476f, 0},
- {8.798685f, 0.628478f, 2.148795f, 0},
- {8.841781f, 0.530315f, 2.687490f, 0},
- {8.541308f, 0.642843f, 2.780863f, 0},
- {8.499411f, 0.402226f, 2.566582f, 0},
- {8.734042f, -0.217872f, 2.597707f, 0},
- {8.689749f, -0.295684f, 3.051408f, 0},
- {8.298298f, -0.123301f, 3.968387f, 0},
- {7.545321f, -0.111330f, 4.738122f, 0},
- {6.827062f, -0.112527f, 5.501872f, 0},
- {6.604401f, 0.435744f, 6.827062f, 0},
- {6.572079f, 0.610521f, 7.642287f, 0},
- {6.546940f, 0.383072f, 7.778756f, 0},
- {6.274001f, 0.530315f, 7.600388f, 0},
- {5.847834f, 1.544259f, 7.811078f, 0},
- {5.374979f, 1.781285f, 7.654258f, 0},
- {5.163093f, 1.493981f, 7.372939f, 0},
- {5.104434f, 1.314416f, 7.807487f, 0},
- {5.424060f, 0.847547f, 8.513776f, 0},
- {5.471944f, 0.817619f, 8.461103f, 0},
- {4.618412f, 1.319204f, 8.107959f, 0},
- {4.265267f, 1.634042f, 7.587220f, 0},
- {5.191823f, 1.347935f, 7.196965f, 0},
- {4.748896f, 1.868673f, 7.097606f, 0},
- {4.595667f, 1.187523f, 7.428006f, 0},
- {3.948036f, 1.272517f, 8.262384f, 0},
- {2.280476f, 1.892615f, 8.998601f, 0},
- {2.828747f, 1.725021f, 8.937549f, 0},
- {3.256112f, 1.863885f, 9.101552f, 0},
- {3.264492f, 1.679531f, 8.540112f, 0},
- {3.616439f, 1.237801f, 8.178588f, 0},
- {3.713404f, 1.492784f, 9.411600f, 0},
- {3.654746f, 1.428140f, 10.740381f, 0},
- {3.139993f, 1.246181f, 10.362098f, 0},
- {2.381032f, 1.161187f, 9.357731f, 0},
- {2.602495f, 1.027112f, 11.311399f, 0},
- {2.964020f, 1.120486f, 12.570747f, 0},
- {2.501939f, 1.344343f, 10.244782f, 0},
- {2.152386f, 1.455674f, 9.786293f, 0},
- {1.878250f, 1.450885f, 10.216052f, 0},
- {1.844731f, 1.434126f, 12.245136f, 0},
- {2.011128f, 1.198297f, 13.654123f, 0},
- {1.562216f, 1.192312f, 10.202884f, 0},
- {1.046265f, 1.596931f, 8.796291f, 0},
- {1.344343f, 1.769314f, 9.710876f, 0},
- {1.857899f, 1.845928f, 10.510538f, 0},
- {2.217029f, 1.814804f, 11.314989f, 0},
- {2.341528f, 1.612494f, 11.218024f, 0},
- {2.144006f, 1.527500f, 10.122678f, 0},
- {2.220621f, 1.271320f, 10.222037f, 0},
- {2.487574f, 0.978031f, 10.830164f, 0},
- {2.782060f, 0.950497f, 11.261120f, 0},
- {3.031057f, 0.894234f, 10.802630f, 0},
- {2.880223f, 0.992396f, 9.764745f, 0},
- {2.115276f, 1.447294f, 8.930367f, 0},
- {1.849520f, 1.715444f, 8.956702f, 0},
- {2.313994f, 1.569398f, 9.429557f, 0},
- {2.365470f, 1.504755f, 9.142253f, 0},
- {2.184708f, 1.528697f, 8.570039f, 0},
- {2.346316f, 1.491587f, 8.657428f, 0},
- {2.662350f, 1.338358f, 8.938745f, 0},
- {2.619255f, 1.200691f, 8.894453f, 0},
- {2.372652f, 1.073799f, 8.850161f, 0},
- {2.363075f, 1.012747f, 9.173378f, 0},
- {2.529472f, 1.101332f, 9.485821f, 0},
- {2.730585f, 1.132457f, 9.469061f, 0},
- {2.913742f, 1.120486f, 9.311044f, 0},
- {3.093307f, 1.151610f, 9.610319f, 0},
- {3.087321f, 1.296459f, 10.226826f, 0},
- {2.811988f, 1.377862f, 10.601518f, 0},
- {2.683898f, 1.231816f, 10.516523f, 0},
- {2.584539f, 1.250970f, 10.043670f, 0},
- {2.732979f, 1.283291f, 9.721649f, 0},
- {2.949655f, 1.004367f, 9.597151f, 0},
- {2.908953f, 0.938526f, 9.525325f, 0},
- {2.630029f, 1.124077f, 9.534902f, 0},
- {2.710234f, 0.859518f, 9.769533f, 0},
- {2.574962f, 0.883460f, 9.832980f, 0},
- {2.279279f, 1.092952f, 9.628276f, 0},
- {2.272096f, 1.016338f, 9.598348f, 0},
- {2.448070f, 0.889445f, 9.724044f, 0},
- {2.395397f, 0.984016f, 9.685737f, 0},
- {2.266110f, 1.094149f, 9.788687f, 0},
- {2.366667f, 1.074996f, 9.836571f, 0},
- {2.486377f, 1.023521f, 9.856922f, 0},
- {2.391806f, 1.103726f, 9.935930f, 0},
- {2.179919f, 1.174355f, 9.900018f, 0},
- {2.024296f, 1.203086f, 9.925157f, 0},
- {2.039858f, 1.156399f, 9.900018f, 0},
- {2.087743f, 1.066616f, 9.976632f, 0},
- {2.084151f, 0.975637f, 9.853331f, 0},
- {2.179919f, 0.985213f, 9.618699f, 0},
- {2.300826f, 1.031900f, 9.533705f, 0},
- {2.246957f, 1.083376f, 9.599545f, 0},
- {2.124853f, 0.970848f, 9.703692f, 0},
- {2.005142f, 1.036689f, 9.664188f, 0},
- {2.142809f, 1.047463f, 9.641443f, 0},
- {2.340331f, 0.885854f, 9.666583f, 0},
- {2.238577f, 0.888248f, 9.624684f, 0},
- {2.110487f, 0.960074f, 9.634261f, 0},
- {2.123656f, 1.030703f, 9.668977f, 0},
- {2.196679f, 1.061828f, 9.731226f, 0},
- {2.325965f, 0.931344f, 9.607924f, 0},
- {2.492362f, 0.841561f, 9.391250f, 0},
- {2.663548f, 0.991199f, 9.607924f, 0},
- {2.663548f, 0.933738f, 9.994588f, 0},
- {2.318783f, 0.817619f, 9.791081f, 0},
- {1.841140f, 0.946906f, 9.582786f, 0},
- {1.580172f, 1.162384f, 9.424768f, 0},
- {1.405395f, 1.210268f, 9.209291f, 0},
- {1.625662f, 1.034294f, 9.338577f, 0},
- {1.824380f, 1.120486f, 9.599545f, 0},
- {1.843534f, 1.120486f, 10.004165f, 0},
- {2.057815f, 0.648828f, 10.226826f, 0},
- {2.493559f, 0.673967f, 9.695313f, 0},
- {2.706643f, 0.766144f, 9.198517f, 0},
- {2.315192f, 0.678756f, 8.605952f, 0},
- {1.771708f, 0.752976f, 8.489834f, 0},
- {1.243787f, 0.969651f, 9.085989f, 0},
- {1.102529f, 0.957680f, 9.589969f, 0},
- {0.967257f, 0.730231f, 9.928748f, 0},
- {0.428562f, 0.812831f, 10.267527f, 0},
- {0.254982f, 1.097741f, 10.530889f, 0},
- {0.830787f, 1.238999f, 10.898398f, 0},
- {1.181538f, 1.061828f, 11.079161f, 0},
- {1.320401f, 1.142033f, 11.312595f, 0},
- {1.430535f, 0.967257f, 11.358085f, 0},
- {1.130062f, 0.909796f, 11.218024f, 0},
- {0.805648f, 0.810437f, 11.358085f, 0},
- {0.553060f, 0.751779f, 11.392801f, 0},
- {0.617704f, 0.609324f, 11.170140f, 0},
- {0.879869f, 0.511162f, 11.275485f, 0},
- {0.829590f, 0.587776f, 11.293442f, 0},
- {0.312443f, 0.672770f, 11.064795f, 0},
- {0.293290f, 0.867898f, 10.777492f, 0},
- {0.509965f, 0.920570f, 10.351324f, 0},
- {0.536301f, 1.023521f, 10.133451f, 0},
- {0.774524f, 1.107318f, 10.016136f, 0},
- {1.381453f, 0.903811f, 9.916777f, 0},
- {1.589749f, 0.810437f, 9.695313f, 0},
- {1.593340f, 0.811634f, 9.537296f, 0},
- {1.824380f, 0.887051f, 9.521733f, 0},
- {1.902192f, 0.964863f, 9.576800f, 0},
- {1.674743f, 1.398213f, 9.964661f, 0},
- {1.234210f, 1.440111f, 9.610319f, 0},
- {1.334767f, 1.115697f, 9.568420f, 0},
- {1.393424f, 1.659181f, 9.431952f, 0},
- {1.001973f, 2.656365f, 9.647429f, 0},
- {0.780509f, 3.013101f, 9.451105f, 0},
- {1.270123f, 3.008312f, 9.417586f, 0},
- {1.909375f, 3.031057f, 9.946704f, 0},
- {1.747766f, 3.309982f, 9.271540f, 0},
- {1.356314f, 3.300405f, 8.287523f, 0},
- {0.751779f, 3.156753f, 7.970292f, 0},
- {0.063446f, 3.359063f, 8.893256f, 0},
- {0.136469f, 3.002327f, 8.529338f, 0},
- {0.253785f, 3.015495f, 8.072045f, 0},
- {-0.045490f, 3.882195f, 8.609544f, 0},
- {0.149638f, 4.250902f, 9.435542f, 0},
- {1.071405f, 3.465605f, 9.838965f, 0},
- {1.856702f, 3.051408f, 11.276682f, 0},
- {2.770089f, 2.961626f, 10.789463f, 0},
- {3.514686f, 2.636014f, 7.386107f, 0},
- {3.545810f, 2.828747f, 7.304704f, 0},
- {3.815158f, 3.108869f, 6.725308f, 0},
- {3.323150f, 3.184286f, 4.733334f, 0},
- {2.572568f, 3.155556f, 6.907267f, 0},
- {3.299208f, 2.012325f, 9.501383f, 0},
- {3.531445f, 2.621649f, 8.761575f, 0},
- {4.510673f, 3.228579f, 12.022475f, 0},
- {6.127955f, 1.776496f, 13.516457f, 0},
- {5.631158f, 1.547850f, 11.772282f, 0},
- {5.889732f, -0.058658f, 7.119154f, 0},
- {4.481943f, 1.406592f, 6.591233f, 0},
- {4.230552f, 1.640027f, 9.447514f, 0},
- {4.007891f, 0.654814f, 11.417940f, 0},
- {4.525038f, 0.415394f, 11.757916f, 0},
- {4.125207f, 0.555454f, 10.915158f, 0},
- {3.624819f, 0.526724f, 9.951492f, 0},
- {3.210622f, 0.480037f, 10.086765f, 0},
- {3.298011f, 1.221042f, 9.670174f, 0},
- {3.142388f, 1.479616f, 9.212882f, 0},
- {2.955640f, 1.448491f, 8.816642f, 0},
- {3.101686f, 2.088940f, 9.536098f, 0},
- {3.215411f, 2.460041f, 9.319424f, 0},
- {3.247732f, 2.573765f, 8.180982f, 0},
- {3.251324f, 2.348710f, 8.084017f, 0},
- {3.372231f, 2.255337f, 9.076412f, 0},
- {3.545810f, 2.310403f, 9.700102f, 0},
- {3.739741f, 2.173934f, 9.156618f, 0},
- {3.809172f, 1.825577f, 9.087187f, 0},
- {3.727770f, 1.434126f, 9.709679f, 0},
- {3.596088f, 1.175552f, 10.115496f, 0},
- {3.452436f, 1.128865f, 9.888046f, 0},
- {3.217805f, 1.009155f, 9.366111f, 0},
- {3.197454f, 1.152807f, 9.042893f, 0},
- {3.360260f, 1.312022f, 8.710100f, 0},
- {3.630804f, 1.417366f, 8.561660f, 0},
- {3.858253f, 1.345540f, 8.723268f, 0},
- {4.018665f, 1.070207f, 9.018951f, 0},
- {4.181470f, 0.847547f, 9.135071f, 0},
- {4.359838f, 0.720654f, 9.123099f, 0},
- {4.487928f, 0.720654f, 9.082398f, 0},
- {4.380189f, 0.676362f, 9.085989f, 0},
- {4.357444f, 0.766144f, 9.149436f, 0},
- {4.260479f, 0.820014f, 8.944732f, 0},
- {4.271253f, 0.809240f, 9.156618f, 0},
- {4.315546f, 0.563834f, 9.089581f, 0},
- {4.484337f, 0.366313f, 8.816642f, 1},
- {4.460395f, 0.489614f, 8.925578f, 0},
- {4.448424f, 0.270545f, 9.436740f, 0},
- {4.559754f, 0.149638f, 9.291890f, 0},
- {4.551374f, 0.318429f, 8.737633f, 0},
- {4.523841f, 0.301669f, 8.877694f, 0},
- {4.411314f, 0.075417f, 9.094369f, 0},
- {4.203018f, -0.062249f, 9.162603f, 0},
- {4.171894f, -0.029928f, 8.957899f, 0},
- {4.235340f, -0.195127f, 9.186545f, 0},
- {4.386175f, -0.499191f, 9.753971f, 0},
- {4.505885f, -0.679953f, 10.381251f, 0},
- {4.586090f, -0.547075f, 10.471034f, 0},
- {4.892548f, -0.622492f, 9.931142f, 0},
- {5.498281f, -0.993593f, 9.714467f, 0},
- {5.907689f, -1.383848f, 9.782701f, 0},
- {6.193796f, -1.279700f, 9.963464f, 0},
- {6.526589f, -1.408987f, 8.862131f, 0},
- {6.619963f, -2.099714f, 7.775165f, 0},
- {6.324279f, -2.311600f, 7.964306f, 0},
- {5.984303f, -2.063801f, 9.196122f, 0},
- {5.639538f, -1.571792f, 8.735239f, 0},
- {5.276817f, -1.029506f, 7.680594f, 0},
- {5.011061f, -0.629675f, 7.769179f, 0},
- {4.618412f, -0.131681f, 8.444344f, 0},
- {4.189850f, 0.440533f, 8.780728f, 0},
- {4.214989f, 1.012747f, 8.608346f, 0},
- {4.211398f, 1.684320f, 8.520958f, 0},
- {4.193441f, 2.132035f, 9.264358f, 0},
- {4.256888f, 2.742556f, 9.690525f, 0},
- {4.542994f, 3.782836f, 9.542085f, 0},
- {5.335475f, 4.732136f, 8.649048f, 0},
- {5.679042f, 5.600034f, 7.328646f, 0},
- {5.938813f, 6.015428f, 5.878958f, 0},
- {5.702984f, 5.841848f, 3.946839f, 0},
- {5.978318f, 4.942826f, 2.680307f, 0},
- {6.204569f, 4.444832f, 3.429692f, 0},
- {6.102816f, 4.230552f, 4.288013f, 0},
- {6.244074f, 4.173091f, 4.954797f, 0},
- {6.355404f, 3.830720f, 5.212173f, 0},
- {7.004232f, 3.655943f, 4.850649f, 0},
- {7.965504f, 2.867055f, 4.497505f, 0},
- {8.603558f, 3.070562f, 4.267662f, 0},
- {9.105143f, 4.338291f, 4.809948f, 0},
- {8.657428f, 4.848255f, 3.834311f, 0},
- {7.819458f, 5.075704f, 0.330400f, 0},
- {7.815866f, 5.650312f, -3.190272f, 0},
- {7.144293f, 6.502647f, -10.860091f, 0},
- {7.374136f, 4.941629f, -7.758405f, 0},
- {8.832204f, 3.672703f, 0.448913f, 0},
- {9.153027f, 3.536233f, 0.270545f, 0},
- {8.880088f, 4.343079f, 0.025139f, 0},
- {8.923183f, 4.811145f, -0.472855f, 0},
- {9.080004f, 4.722559f, -0.604536f, 0},
- {9.029726f, 4.490322f, -0.079009f, 0},
- {9.149436f, 4.181470f, -0.168791f, 0},
- {9.192532f, 4.162317f, -0.488417f, 0},
- {9.105143f, 4.446030f, -0.647631f, 0},
- {9.289496f, 4.550177f, -0.691924f, 0},
- {9.198517f, 4.359838f, -0.305261f, 0},
- {8.995009f, 4.213792f, 0.192733f, 0},
- {8.955505f, 4.545389f, -0.177171f, 0},
- {8.451527f, 5.149924f, -1.136048f, 0},
- {7.418429f, 5.443214f, 0.033519f, 0},
- {6.846215f, 5.254072f, 2.087743f, 0},
- {7.192177f, 4.586090f, 3.452436f, 0},
- {7.727281f, 3.658338f, 3.614045f, 0},
- {8.420402f, 3.105278f, 2.424128f, 0},
- {9.446317f, 2.968808f, 1.719036f, 0},
- {9.706087f, 2.862266f, 2.051830f, 0},
- {9.520536f, 2.778469f, 2.466026f, 0},
- {9.439134f, 2.862266f, 3.065773f, 0},
- {8.769955f, 3.287237f, 3.415326f, 0},
- {8.048103f, 3.784033f, 2.977188f, 0},
- {7.817063f, 3.926488f, 1.849520f, 0},
- {8.365335f, 3.857056f, 0.901416f, 0},
- {8.749604f, 3.778048f, 0.855927f, 0},
- {7.741646f, 4.425679f, 1.212662f, 0},
- {6.775586f, 5.135559f, 1.638830f, 0},
- {7.811078f, 4.550177f, 3.052605f, 0},
- {8.285130f, 4.247311f, 3.077744f, 0},
- {8.590390f, 4.511870f, 2.555809f, 0},
- {8.787911f, 4.813539f, 2.319980f, 0},
- {8.252808f, 4.928461f, 1.952470f, 0},
- {7.679397f, 4.880577f, 1.568201f, 0},
- {7.946350f, 4.525038f, 1.531091f, 0},
- {8.236049f, 4.353853f, 1.537076f, 0},
- {8.593981f, 4.235340f, 1.843534f, 0},
- {8.511381f, 4.062957f, 1.691502f, 0},
- {8.268370f, 4.389766f, 1.649604f, 0},
- {8.129506f, 5.080492f, 1.691502f, 0},
- {8.280341f, 5.632356f, 1.444900f, 0},
- {8.936352f, 5.948390f, 1.972821f, 0},
- {10.184927f, 5.974726f, 3.705025f, 0},
- {11.186900f, 5.440820f, 3.477576f, 0},
- {11.239573f, 4.985922f, 1.543062f, 0},
- {11.077964f, 4.748896f, 1.107318f, 0},
- {10.912764f, 4.514264f, 1.528697f, 0},
- {10.890019f, 3.810369f, 1.624465f, 0},
- {9.329000f, 2.948457f, 1.057039f, 0},
- {7.509408f, 2.424128f, 1.201888f, 0},
- {7.207739f, 1.965638f, 1.035492f, 0},
- {7.030569f, 1.936908f, 0.076614f, 0},
- {6.907267f, 2.347513f, -0.646434f, 0},
- {7.483072f, 2.871843f, -0.088585f, 0},
- {8.190558f, 3.590103f, 1.675940f, 0},
- {8.498213f, 3.961204f, 1.974018f, 0},
- {8.552083f, 3.774457f, 1.284488f, 0},
- {8.402445f, 3.895364f, 2.099714f, 0},
- {8.273158f, 4.100068f, 2.432507f, 0},
- {8.030147f, 4.141966f, 1.668757f, 0},
- {7.900860f, 4.010285f, 1.027112f, 0},
- {7.912831f, 3.936065f, 0.803254f, 0},
- {7.878115f, 4.007891f, 0.687135f, 0},
- {7.789530f, 4.050986f, 0.326808f, 0},
- {8.213304f, 3.869027f, 0.050278f, 0},
- {8.558068f, 3.667914f, 0.016759f, 0},
- {8.617923f, 3.523065f, 0.405817f, 0},
- {8.524549f, 3.506306f, 0.683544f, 0},
- {8.438358f, 3.640381f, 0.433350f, 0},
- {8.262384f, 3.952824f, 0.190339f, 0},
- {8.115141f, 4.276042f, 0.306458f, 0},
- {8.386883f, 4.367021f, 0.554257f, 0},
- {8.827415f, 4.244917f, 0.985213f, 0},
- {9.200911f, 4.337093f, 0.806845f, 0},
- {10.524903f, 4.668690f, -0.792480f, 0},
- {11.640601f, 4.612426f, -1.328781f, 0},
- {11.060007f, 4.495111f, -0.488417f, 0},
- {9.582786f, 5.093661f, 0.833182f, 0},
- {9.582786f, 5.696999f, 1.917754f, 0},
- {10.176547f, 5.428849f, 1.911769f, 0},
- {10.186124f, 5.148727f, 2.031479f, 0},
- {9.921565f, 4.803962f, 2.525881f, 0},
- {9.082398f, 3.547007f, 2.503136f, 0},
- {8.127112f, 2.201467f, 3.013101f, 0},
- {8.121126f, 2.080560f, 3.895364f, 0},
- {7.538139f, 3.345895f, 3.219002f, 0},
- {7.010218f, 3.763683f, 2.015916f, 0},
- {7.691368f, 3.278857f, 1.988383f, 0},
- {9.029726f, 2.555809f, 2.470814f, 0},
- {9.815023f, 2.255337f, 1.878250f, 0},
- {9.594757f, 2.603693f, 0.724246f, 0},
- {8.785517f, 3.135205f, 0.660799f, 0},
- {8.186967f, 3.447648f, 1.098938f, 0},
- {7.940364f, 3.257309f, 1.605311f, 0},
- {7.721295f, 2.911347f, 1.705868f, 0},
- {7.763194f, 2.804805f, 1.307233f, 0},
- {8.137886f, 2.965217f, 1.130062f, 0},
- {8.329422f, 3.266886f, 1.200691f, 0},
- {8.224077f, 3.472787f, 1.547850f, 0},
- {7.841005f, 3.687068f, 1.614888f, 0},
- {7.527365f, 4.015073f, 1.435323f, 0},
- {7.979869f, 4.304772f, 1.449688f, 0},
- {6.466734f, 4.948812f, 0.798466f, 0},
- {5.912477f, 5.204991f, 0.487220f, 0},
- {8.413219f, 5.108026f, 3.270477f, 0},
- {9.945507f, 5.396527f, 3.342303f, 0},
- {10.691300f, 5.128376f, 2.308009f, 0},
- {10.842135f, 4.801568f, 1.601720f, 0},
- {9.938325f, 4.821919f, 1.177946f, 0},
- {8.507790f, 4.671084f, 1.237801f, 0},
- {8.838189f, 4.602849f, 2.097319f, 0},
- {10.510538f, 4.817131f, 2.170342f, 0},
- {12.216406f, 4.753684f, 1.561018f, 0},
- {12.654545f, 3.897758f, 0.378284f, 0},
- {11.204856f, 1.860294f, -0.105345f, 0},
- {8.844175f, 0.367510f, 1.064222f, 0},
- {7.511803f, 0.355539f, 1.830366f, 0},
- {7.447159f, 0.761356f, 1.376665f, 0},
- {7.492649f, 1.477221f, 1.074996f, 0},
- {7.439977f, 1.969230f, 1.636436f, 0},
- {8.178588f, 2.361878f, 2.212241f, 0},
- {9.138661f, 2.566582f, 3.772062f, 0},
- {8.628697f, 3.113657f, 5.457579f, 0},
- {7.310690f, 3.958810f, 4.115630f, 0},
- {6.605598f, 3.852268f, -0.732625f, 0},
- {7.333435f, 2.907756f, -0.568623f, 0},
- {7.597994f, 2.693475f, 1.482010f, 0},
- {7.583629f, 2.049435f, 0.691924f, 0},
- {9.470259f, 0.593762f, -0.951695f, 0},
- {10.658978f, 0.784101f, -0.517147f, 0},
- {10.287878f, 1.835154f, 0.626083f, 0},
- {9.807840f, 2.612072f, 1.288080f, 0},
- {8.984236f, 2.947260f, 0.714669f, 0},
- {8.761575f, 2.649182f, -0.256179f, 0},
- {8.923183f, 2.196679f, -0.543483f, 0},
- {8.926775f, 1.908177f, -0.259771f, 0},
- {8.783123f, 2.282870f, 0.343568f, 0},
- {8.637076f, 2.968808f, 0.847547f, 0},
- {9.196122f, 2.409762f, 1.001973f, 0},
- {10.965436f, 2.219424f, -0.040701f, 0},
- {12.228376f, 2.415748f, -2.486377f, 0},
- {11.583140f, 2.370258f, -2.585736f, 0},
- {10.394420f, 2.659956f, -0.113724f, 0},
- {9.483426f, 3.004721f, 1.859096f, 0},
- {9.071624f, 3.149570f, 2.835930f, 0},
- {9.080004f, 3.254915f, 3.105278f, 0},
- {9.205699f, 3.192666f, 3.260900f, 0},
- {9.168590f, 2.627635f, 3.888181f, 0},
- {8.310268f, 1.988383f, 3.989934f, 0},
- {6.813893f, 1.753752f, 3.471590f, 0},
- {6.712140f, 1.843534f, 3.975569f, 0},
- {7.686579f, 1.092952f, 4.849452f, 0},
- {8.225274f, -0.057461f, 5.044580f, 0},
- {9.645035f, -1.168370f, 5.014652f, 0},
- {10.184927f, -1.946485f, 5.219356f, 0},
- {9.691722f, -2.285264f, 4.790794f, 0},
- {9.776716f, -2.582145f, 4.147952f, 0},
- {9.946704f, -2.756921f, 3.651155f, 0},
- {9.209291f, -2.138021f, 3.199848f, 0},
- {8.215697f, -1.181538f, 2.749739f, 0},
- {7.557292f, -0.480037f, 2.457646f, 0},
- {7.584826f, -0.227449f, 2.263716f, 0},
- {8.142674f, 0.092177f, 1.337161f, 0},
- {8.587996f, 0.541089f, -0.260968f, 0},
- {9.088384f, 0.393846f, -1.416169f, 0},
- {9.514551f, 0.010774f, -0.566228f, 0},
- {9.374491f, 0.046687f, 0.678756f, 0},
- {9.302665f, 0.275333f, 0.553060f, 0},
- {9.515748f, 0.501585f, 0.005986f, 0},
- {9.652218f, 0.667982f, -0.077812f, 0},
- {9.983814f, 0.775721f, 0.123301f, 0},
- {10.466246f, 0.855927f, 0.921767f, 0},
- {11.034868f, 0.636857f, 1.392227f, 0},
- {11.848896f, -0.166397f, 0.960074f, 0},
- {12.391183f, -1.085770f, 0.053870f, 0},
- {12.482162f, -1.602917f, -0.912190f, 0},
- {12.077542f, -1.947682f, -1.058236f, 0},
- {11.311399f, -1.833957f, -0.653617f, 0},
- {10.664965f, -1.778891f, 0.350750f, 0},
- {9.764745f, -2.568977f, 2.135627f, 0},
- {8.580813f, -3.081336f, 2.833536f, 0},
- {7.436386f, -2.665942f, 2.202664f, 0},
- {6.769601f, -1.289277f, 2.110487f, 0},
- {7.038948f, 0.441730f, 3.216608f, 0},
- {8.155843f, 1.883038f, 4.080914f, 0},
- {9.284708f, 1.380256f, 3.860648f, 0},
- {9.452302f, -0.167594f, 2.287658f, 0},
- {9.560040f, -0.761356f, 0.659602f, 0},
- {9.497791f, -0.784101f, -0.830787f, 0},
- {9.290693f, -0.700303f, -1.665166f, 0},
- {8.920790f, -0.146046f, -1.515529f, 0},
- {8.766363f, 0.034716f, -0.599747f, 0},
- {8.348576f, -0.287304f, -0.076614f, 0},
- {8.081622f, -0.591367f, 0.045490f, 0},
- {7.095212f, -1.157596f, 1.143231f, 0},
- {6.483494f, -1.507149f, 0.781706f, 0},
- {6.980290f, -1.605311f, 0.519541f, 0},
- {8.282735f, -1.045068f, 1.046265f, 0},
- {7.284354f, -1.468842f, 0.658405f, 0},
- {8.409628f, -2.402580f, -0.105345f, 0},
- {10.058035f, -2.456449f, 2.020705f, 0},
- {11.830939f, -2.476800f, 2.808397f, 0},
- {12.722779f, -1.401804f, 0.846350f, 0},
- {11.550818f, -0.071826f, -3.417721f, 0},
- {10.788265f, -0.575805f, -7.012612f, 0},
- {10.037683f, -1.229422f, -8.307875f, 0},
- {9.273934f, -0.415394f, -6.815091f, 0},
- {9.394841f, 0.909796f, -5.343854f, 0},
- {8.586799f, 1.194706f, -2.789243f, 0},
- {8.435964f, 0.617704f, -0.373495f, 0},
- {8.913607f, -0.415394f, 0.533907f, 0},
- {8.986629f, -1.616085f, 0.727837f, 0},
- {8.663413f, -2.105699f, 1.237801f, 0},
- {8.337802f, -2.239774f, 1.921346f, 0},
- {8.827415f, -2.661153f, 2.705446f, 0},
- {9.233232f, -3.117249f, 3.457225f, 0},
- {9.272737f, -2.991553f, 3.994723f, 0},
- {8.706509f, -2.610875f, 4.343079f, 0},
- {7.984657f, -2.519896f, 4.351459f, 0},
- {8.218092f, -3.441663f, 4.805160f, 0},
- {9.825797f, -4.513067f, 4.161120f, 0},
- {10.711651f, -6.089648f, 4.596864f, 0},
- {11.142607f, -7.103591f, 3.855859f, 0},
- {10.658978f, -6.648694f, 3.931277f, 0},
- {10.046063f, -5.696999f, 4.780020f, 0},
- {9.539690f, -4.680661f, 5.057748f, 0},
- {7.566869f, -3.590103f, 4.860226f, 0},
- {6.440398f, -3.344697f, 4.193441f, 0},
- {6.586444f, -3.541022f, 3.108869f, 0},
- {7.125139f, -3.699039f, 0.994790f, 0},
- {8.431175f, -4.952403f, -2.618058f, 0},
- {9.090777f, -5.112814f, -7.767982f, 0},
- {8.908818f, -3.330332f, -9.904806f, 0},
- {8.309072f, -1.798044f, -7.811078f, 0},
- {8.213304f, -1.308430f, -7.665031f, 0},
- {8.283933f, -1.283291f, -4.946417f, 0},
- {8.704114f, -1.482010f, -1.357511f, 0},
- {8.904030f, -1.138442f, -0.214281f, 0},
- {9.314635f, -1.148019f, -0.150835f, 0},
- {9.588771f, -0.961271f, -1.286883f, 0},
- {9.983814f, -0.888248f, -3.894166f, 0},
- {10.663767f, -0.937329f, -6.470325f, 0},
- {11.098314f, -0.972045f, -6.862975f, 0},
- {10.899596f, -1.125274f, -5.509054f, 0},
- {10.278301f, -1.490390f, -3.240550f, 0},
- {9.907200f, -1.777694f, -0.620098f, 0},
- {8.779531f, -2.339134f, 1.922543f, 0},
- {7.435188f, -2.651577f, 4.188653f, 0},
- {6.859383f, -2.463632f, 5.175064f, 0},
- {6.631934f, -2.347513f, 5.786782f, 0},
- {6.870157f, -2.407368f, 6.654679f, 0},
- {7.872130f, -2.549823f, 6.404485f, 0},
- {9.375688f, -3.722981f, 3.958810f, 0},
- {11.268303f, -5.311533f, -0.108936f, 0},
- {12.009308f, -6.212949f, -5.847834f, 0},
- {10.462654f, -5.131968f, -11.382027f, 0},
- {7.885298f, -2.762907f, -11.698062f, 0},
- {7.011415f, -1.878250f, -9.295482f, 0},
- {6.627146f, -1.376665f, -6.520604f, 0},
- {7.509408f, -1.753752f, -3.491941f, 0},
- {8.297100f, -1.997960f, -0.979228f, 0},
- {8.939943f, -1.666363f, -0.052672f, 0},
- {8.857343f, -0.831985f, 0.451307f, 0},
- {8.007402f, -0.197522f, 1.444900f, 0},
- {7.693762f, 0.035913f, 3.700236f, 0},
- {7.378925f, -0.505176f, 3.415326f, 0},
- {5.979515f, -1.707065f, -0.325611f, 0},
- {7.726084f, -3.241747f, -5.707773f, 0},
- {8.884876f, -3.162738f, -12.425899f, 0},
- {9.512156f, 0.045490f, -13.029237f, 0},
- {8.766363f, 1.078587f, -6.048946f, 0},
- {8.428782f, -0.650025f, -1.023521f, 0},
- {8.790305f, -0.999579f, 1.993172f, 0},
- {9.354139f, -0.804451f, 2.904165f, 0},
- {10.168168f, -1.060631f, -0.969651f, 0},
- {11.595111f, -1.048660f, -4.067746f, 0},
- {13.030434f, -0.831985f, -6.460749f, 0},
- {11.122256f, 0.191536f, -7.928393f, 0},
- {9.040500f, 0.798466f, -6.001062f, 0},
- {8.956702f, 0.328005f, -1.649604f, 0},
- {9.064442f, 0.119710f, 0.561440f, 0},
- {9.356534f, 0.306458f, 0.186748f, 0},
- {10.399208f, -0.664391f, -0.585382f, 0},
- {11.281470f, -1.975215f, -2.223015f, 0},
- {10.011348f, -1.996763f, -4.955994f, 0},
- {9.003389f, -2.169145f, -6.757630f, 0},
- {8.583207f, -2.082954f, -5.573698f, 0},
- {8.798685f, -1.921346f, -2.810791f, 0},
- {8.974659f, -1.520317f, -1.250970f, 0},
- {8.078031f, -0.515950f, 0.366313f, 0},
- {6.692986f, 0.751779f, 2.220621f, 0},
- {6.210555f, 1.480813f, 1.197100f, 0},
- {7.131125f, 0.602141f, -2.041055f, 0},
- {8.007402f, 0.234632f, -4.835087f, 0},
- {8.462300f, 0.919373f, -5.451593f, 0},
- {7.928393f, 1.326387f, -4.395751f, 0},
- {6.871354f, 1.467645f, -2.835930f, 0},
- {6.029793f, 1.558624f, -0.976834f, 0},
- {5.135559f, 1.978806f, 0.028730f, 0},
- {7.839808f, 1.517923f, 0.440533f, 0},
- {11.483781f, 0.501585f, -0.684741f, 0},
- {9.314635f, 0.493205f, -3.245338f, 0},
- {8.585602f, 0.633266f, -4.395751f, 0},
- {9.229641f, 0.914584f, -4.349064f, 0},
- {9.064442f, 0.970848f, -3.658338f, 0},
- {9.977829f, 0.555454f, -2.989159f, 0},
- {9.810235f, 0.744596f, -3.434480f, 0},
- {9.325409f, 1.397016f, -3.568555f, 0},
- {9.496594f, 1.741781f, -3.239353f, 0},
- {10.398011f, 1.367088f, -3.130417f, 0},
- {10.730804f, 0.985213f, -2.704249f, 0},
- {10.894808f, 1.125274f, -1.823183f, 0},
- {11.997336f, 0.918176f, -2.120064f, 0},
- {12.749115f, 0.508767f, -3.248930f, 0},
- {12.022475f, 0.416591f, -3.471590f, 0},
- {10.839741f, 0.440533f, -5.136756f, 0},
- {10.629051f, 0.883460f, -8.376109f, 0},
- {11.104300f, 1.051054f, -8.720874f, 0},
- {10.903187f, 0.842758f, -5.995077f, 0},
- {11.470613f, 0.239420f, -2.959231f, 0},
- {11.871641f, -0.373495f, -0.988805f, 0},
- {9.727634f, -0.487220f, 1.842337f, 0},
- {6.479902f, -0.034716f, 3.007115f, 0},
- {4.198230f, 0.515950f, 3.420115f, 0},
- {2.959231f, 1.742978f, 3.507503f, 0},
- {3.488349f, 2.468420f, 2.369061f, 0},
- {5.433637f, 2.197876f, -2.054224f, 0},
- {6.564897f, 2.667139f, -4.945220f, 0},
- {7.331040f, 3.190272f, -2.327163f, 0},
- {10.497370f, 3.070562f, 0.073023f, 0},
- {10.967831f, 1.744175f, -2.159569f, 0},
- {10.575182f, 0.481234f, -3.937262f, 0},
- {10.111904f, 0.632069f, -2.493559f, 0},
- {9.317030f, 1.003170f, -0.973242f, 0},
- {8.687355f, 1.310825f, -0.208295f, 0},
- {8.713691f, 1.209071f, -0.918176f, 0},
- {8.810657f, 1.183932f, -2.063801f, 0},
- {8.763969f, 1.406592f, -2.553414f, 0},
- {8.019373f, 1.916557f, -2.993947f, 0},
- {7.505817f, 2.184708f, -3.209425f, 0},
- {7.550110f, 2.245760f, -2.833536f, 0},
- {7.843400f, 2.250548f, -2.468420f, 0},
- {8.210909f, 2.315192f, -2.410959f, 0},
- {8.468286f, 2.409762f, -3.126825f, 0},
- {8.376109f, 2.358287f, -3.925291f, 0},
- {8.769955f, 2.191890f, -3.524262f, 0},
- {9.360126f, 2.389412f, -3.094504f, 0},
- {10.235206f, 2.645591f, -4.356247f, 0},
- {10.369281f, 3.308784f, -5.960361f, 0},
- {9.583982f, 3.739741f, -6.137532f, 0},
- {9.226050f, 3.244141f, -4.029438f, 0},
- {9.249992f, 3.345895f, -1.376665f, 0},
- {9.409206f, 3.989934f, 0.690727f, 0},
- {9.866499f, 4.723757f, 1.246181f, 0},
- {11.179717f, 3.829523f, -0.788889f, 0},
- {12.655742f, 2.403777f, -3.202243f, 0},
- {12.897555f, 0.988805f, -4.781218f, 0},
- {11.311399f, 0.092177f, -4.595667f, 0},
- {8.464694f, 0.628478f, -2.196679f, 0},
- {6.581656f, 1.258152f, -0.107739f, 0},
- {6.366178f, 1.856702f, 0.781706f, 0},
- {6.930012f, 1.881841f, 0.209493f, 0},
- {7.776362f, 0.798466f, -0.858321f, 0},
- {8.432373f, -0.011971f, -1.729810f, 0},
- {8.836992f, -0.251391f, -2.906559f, 0},
- {8.950717f, -0.007183f, -3.992329f, 0},
- {8.702917f, 0.239420f, -3.590103f, 0},
- {8.307875f, 0.493205f, -2.304418f, 0},
- {7.890086f, 1.065419f, -1.701079f, 0},
- {7.886495f, 1.557427f, -1.941696f, 0},
- {8.344984f, 1.771708f, -2.163160f, 0},
- {8.882483f, 2.037464f, -2.286461f, 0},
- {8.996207f, 2.401383f, -2.816776f, 0},
- {9.011769f, 2.549823f, -3.086124f, 0},
- {9.118311f, 2.431310f, -3.043028f, 0},
- {9.022543f, 2.371455f, -3.132811f, 0},
- {8.949520f, 2.278081f, -3.059788f, 0},
- {9.159013f, 2.190693f, -2.688687f, 0},
- {9.372096f, 2.074574f, -2.284067f, 0},
- {9.406812f, 2.118867f, -1.695094f, 0},
- {9.403221f, 2.088940f, -1.282094f, 0},
- {9.539690f, 2.345119f, -1.448491f, 0},
- {9.548070f, 2.826353f, -2.069786f, 0},
- {9.326607f, 3.178301f, -2.748542f, 0},
- {9.295482f, 3.290828f, -2.521093f, 0},
- {10.214854f, 3.190272f, -2.946063f, 0},
- {11.439487f, 3.104080f, -4.429270f, 0},
- {12.179296f, 2.619255f, -5.501872f, 0},
- {12.650953f, 1.750160f, -4.109644f, 0},
- {11.921919f, 0.913387f, -1.047463f, 0},
- {10.370478f, 0.256179f, 0.997184f, 0},
- {9.369702f, -0.351947f, 2.355893f, 0},
- {7.855371f, -0.039504f, 2.788046f, 0},
- {6.522998f, 0.343568f, 1.185129f, 0},
- {6.356601f, 0.954089f, -0.673967f, 0},
- {6.839033f, 1.606508f, -1.197100f, 0},
- {8.453920f, 1.814804f, -0.993593f, 0},
- {9.556450f, 1.889024f, -0.434547f, 0},
- {9.387658f, 2.385820f, -0.804451f, 0},
- {9.039303f, 2.761710f, -1.951273f, 0},
- {8.828612f, 2.579751f, -2.316389f, 0},
- {8.649048f, 2.282870f, -2.097319f, 0},
- {8.495819f, 2.323571f, -1.842337f, 0},
- {8.274356f, 2.814382f, -1.483207f, 0},
- {8.022964f, 3.214214f, -1.207874f, 0},
- {7.991840f, 3.224988f, -1.155202f, 0},
- {8.200135f, 3.023875f, -1.380256f, 0},
- {8.465892f, 2.995144f, -1.857899f, 0},
- {8.471877f, 3.099292f, -2.273293f, 0},
- {8.388080f, 3.125628f, -2.305615f, 0},
- {8.433570f, 3.105278f, -2.064998f, 0},
- {8.494622f, 3.213017f, -1.946485f, 0},
- {8.669398f, 3.210622f, -2.211044f, 0},
- {8.773546f, 3.099292f, -2.907756f, 0},
- {8.705312f, 3.130417f, -3.394976f, 0},
- {8.570039f, 3.405750f, -1.821986f, 0},
- {8.820233f, 3.371034f, -1.948879f, 0},
- {9.376884f, 3.290828f, -4.145557f, 0},
- {9.933537f, 3.511094f, -5.504266f, 0},
- {10.266330f, 3.343500f, -4.606441f, 0},
- {10.199292f, 3.286040f, -2.880223f, 0},
- {10.279498f, 3.457225f, -2.645591f, 0},
- {10.939100f, 3.313573f, -3.344697f, 0},
- {11.617856f, 1.872265f, -3.330332f, 0},
- {11.283865f, 0.302866f, -2.816776f, 0},
- {8.844175f, 0.647631f, -0.970848f, 0},
- {6.621161f, 1.608902f, 0.426168f, 0},
- {6.217738f, 2.564188f, 0.738611f, 0},
- {6.973108f, 3.286040f, -0.644040f, 0},
- {8.750801f, 2.173934f, -1.210268f, 0},
- {10.366886f, 0.428562f, -1.189917f, 0},
- {10.743973f, 0.110133f, -1.969230f, 0},
- {10.110707f, 0.746990f, -2.530669f, 0},
- {8.839387f, 1.630450f, -2.548626f, 0},
- {7.795516f, 2.329557f, -2.692278f, 0},
- {7.451948f, 2.700658f, -2.602495f, 0},
- {7.606374f, 2.907756f, -2.309206f, 0},
- {8.056483f, 3.023875f, -2.039858f, 0},
- {8.440752f, 3.139993f, -1.945288f, 0},
- {8.403643f, 3.387793f, -1.736992f, 0},
- {8.280341f, 3.640381f, -1.544259f, 0},
- {8.359349f, 3.767274f, -1.551442f, 0},
- {8.535323f, 3.780442f, -1.817198f, 0},
- {8.860934f, 3.679886f, -2.035070f, 0},
- {9.190137f, 3.599680f, -2.019508f, 0},
- {9.193728f, 3.535036f, -2.249351f, 0},
- {8.997404f, 3.507503f, -2.041055f, 0},
- {8.646653f, 3.554190f, -1.903389f, 0},
- {8.368926f, 3.604468f, -1.539471f, 0},
- {8.249216f, 3.761288f, -1.181538f, 0},
- {8.482651f, 3.960007f, -1.823183f, 0},
- {8.767561f, 3.967190f, -2.565385f, 0},
- {8.783123f, 3.831917f, -3.102883f, 0},
- {8.614332f, 3.810369f, -3.654746f, 0},
- {8.664610f, 3.786427f, -4.390963f, 0},
- {8.987827f, 4.016271f, -5.419272f, 0},
- {9.724044f, 4.271253f, -6.058523f, 0},
- {10.873260f, 3.715799f, -6.293155f, 0},
- {12.078739f, 3.123234f, -5.191823f, 0},
- {12.312174f, 2.310403f, -2.348710f, 0},
- {11.079161f, 1.405395f, 1.435323f, 0},
- {9.323015f, 1.150413f, 2.363075f, 0},
- {7.666229f, 0.990002f, 1.956061f, 0},
- {6.414062f, 1.784876f, 2.576159f, 0},
- {5.781993f, 3.196257f, 2.535458f, 0},
- {6.141123f, 3.886984f, 0.312443f, 0},
- {7.559687f, 3.445254f, -1.547850f, 0},
- {9.400826f, 2.853886f, -1.867476f, 0},
- {9.509763f, 3.022678f, -3.046620f, 0},
- {8.577222f, 3.954021f, -4.252100f, 0},
- {8.172602f, 3.744529f, -3.657140f, 0},
- {8.269567f, 3.207031f, -2.509122f, 0},
- {8.135491f, 3.442860f, -1.326387f, 0},
- {7.990643f, 3.718193f, -0.969651f, 0},
- {8.020570f, 3.763683f, -1.307233f, 0},
- {8.246822f, 3.590103f, -1.707065f, 0},
- {8.331817f, 3.252521f, -1.964441f, 0},
- {8.212107f, 2.896982f, -2.375046f, 0},
- {8.174996f, 2.774878f, -2.712629f, 0},
- {8.511381f, 2.673124f, -2.576159f, 0},
- {8.957899f, 2.570174f, -2.475603f, 0},
- {9.176969f, 2.637211f, -2.371455f, 0},
- {9.011769f, 2.729388f, -2.279279f, 0},
- {8.756786f, 2.636014f, -2.651577f, 0},
- {8.678975f, 2.534261f, -3.602074f, 0},
- {8.603558f, 2.598904f, -3.883393f, 0},
- {8.331817f, 2.859872f, -3.414129f, 0},
- {8.225274f, 3.234564f, -3.913320f, 0},
- {8.254004f, 3.434480f, -4.692632f, 0},
- {7.493846f, 3.796004f, -4.635171f, 0},
- {7.006627f, 4.036621f, -3.604468f, 0},
- {6.774389f, 4.210201f, -2.053027f, 0},
- {7.364560f, 4.368218f, -1.525105f, 0},
- {9.597151f, 3.620030f, -1.552639f, 0},
- {11.402378f, 1.831563f, -2.977188f, 0},
- {12.288232f, 0.525527f, -4.697421f, 0},
- {11.234784f, 0.181959f, -4.031833f, 0},
- {9.607924f, 0.386663f, -1.760934f, 0},
- {9.303862f, 0.387860f, -0.899022f, 0},
- {9.464272f, 0.622492f, -1.006761f, 0},
- {9.558844f, 1.036689f, -1.015141f, 0},
- {9.920368f, 0.829590f, -1.874659f, 0},
- {10.107116f, 0.355539f, -3.119643f, 0},
- {9.897623f, -0.099359f, -4.199427f, 0},
- {9.185349f, -0.276530f, -4.827904f, 0},
- {8.003811f, 0.396240f, -4.807554f, 0},
- {7.156264f, 0.701501f, -5.153516f, 0},
- {7.101197f, 0.053870f, -4.508279f, 0},
- {7.503423f, -0.792480f, -3.005918f, 0},
- {8.105564f, -1.297656f, -1.985989f, 0},
- {8.426387f, -1.464053f, -1.731007f, 0},
- {8.543703f, -1.358709f, -1.970427f, 0},
- {8.645456f, -1.344343f, -2.333148f, 0},
- {8.863329f, -1.558624f, -2.579751f, 0},
- {8.951914f, -1.918951f, -3.125628f, 0},
- {8.690947f, -1.860294f, -3.743332f, 0},
- {8.432373f, -1.956061f, -4.167105f, 0},
- {8.066060f, -2.053027f, -4.120419f, 0},
- {7.721295f, -2.195482f, -3.816355f, 0},
- {8.643063f, -2.871843f, -3.706222f, 0},
- {9.257174f, -3.336318f, -3.749317f, 0},
- {8.542506f, -3.499123f, -4.060563f, 0},
- {7.796712f, -4.046198f, -3.117249f, 0},
- {9.125494f, -4.362233f, -1.403001f, 0},
- {10.022121f, -4.328714f, 0.181959f, 0},
- {9.467864f, -4.274844f, 0.749385f, 0},
- {8.961491f, -3.708616f, -0.160411f, 0},
- {9.466667f, -3.045423f, -1.674743f, 0},
- {10.119086f, -2.406171f, -2.686292f, 0},
- {10.562014f, -1.898601f, -3.098095f, 0},
- {10.864880f, -1.751357f, -2.885011f, 0},
- {11.161760f, -1.505952f, -2.561794f, 0},
- {11.179717f, -1.201888f, -3.112460f, 0},
- {10.089159f, -1.221042f, -4.156332f, 0},
- {7.001838f, -0.794874f, -3.333924f, 0},
- {5.855016f, -0.556652f, -2.070983f, 0},
- {5.731715f, -0.816422f, -1.926134f, 0},
- {5.664677f, -0.999579f, -2.529472f, 0},
- {5.078098f, -0.949300f, -3.558978f, 0},
- {4.414905f, -0.963666f, -4.428073f, 0},
- {4.523841f, -1.501163f, -5.098449f, 0},
- {4.826707f, -2.104502f, -5.495886f, 0},
- {5.408498f, -2.646788f, -4.911702f, 0},
- {7.024583f, -3.204637f, -3.964795f, 0},
- {8.048103f, -3.580526f, -2.898179f, 0},
- {8.647851f, -4.011482f, -2.421733f, 0},
- {8.653836f, -3.981555f, -2.619255f, 0},
- {8.593981f, -3.761288f, -2.304418f, 0},
- {9.291890f, -3.605665f, -1.768117f, 0},
- {10.421953f, -3.653549f, -2.403777f, 0},
- {10.747564f, -4.040213f, -3.653549f, 0},
- {11.080358f, -4.187456f, -3.568555f, 0},
- {11.591519f, -4.479548f, -3.045423f, 0},
- {12.521667f, -4.991907f, -3.197454f, 0},
- {12.606661f, -5.301956f, -3.508700f, 0},
- {12.215209f, -5.559332f, -3.132811f, 0},
- {11.514905f, -5.664677f, -2.713826f, 0},
- {10.378858f, -5.208582f, -2.182313f, 0},
- {9.202108f, -4.546586f, -1.216254f, 0},
- {8.280341f, -4.206610f, -0.418985f, 0},
- {7.450751f, -4.313151f, 0.014365f, 0},
- {7.369348f, -4.450818f, 0.191536f, 0},
- {7.760799f, -4.636368f, 0.500388f, 0},
- {8.317451f, -4.886562f, 0.723048f, 0},
- {9.074018f, -4.566936f, 1.207874f, 0},
- {9.854527f, -4.408919f, 1.930922f, 0},
- {9.587574f, -3.520671f, 2.163160f, 0},
- {7.569263f, -1.774102f, 2.106896f, 0},
- {6.695381f, -1.079784f, 3.076547f, 0},
- {6.536166f, -1.090558f, 2.916136f, 0},
- {7.067678f, -1.138442f, 1.533485f, 0},
- {8.107959f, -0.973242f, -2.732979f, 0},
- {9.166195f, -1.021126f, -7.004232f, 0},
- {9.587574f, -1.686714f, -7.388502f, 0},
- {9.416389f, -1.589749f, -5.742489f, 0},
- {8.761575f, -1.954864f, -2.201467f, 0},
- {8.656230f, -2.102108f, -0.766144f, 0},
- {8.858541f, -2.230197f, -0.316034f, 0},
- {9.175772f, -2.531867f, 0.506373f, 0},
- {9.725241f, -2.759315f, 1.114500f, 0},
- {10.110707f, -2.782060f, 0.573411f, 0},
- {9.934733f, -2.370258f, 0.377087f, 0},
- {9.617501f, -2.214635f, -0.361524f, 0},
- {9.494201f, -2.189496f, -1.580172f, 0},
- {9.704890f, -2.115276f, -2.446872f, 0},
- {9.459484f, -2.057815f, -2.561794f, 0},
- {9.435542f, -2.030282f, -2.092531f, 0},
- {9.346957f, -1.996763f, -1.692699f, 0},
- {9.319424f, -2.132035f, -1.470039f, 0},
- {9.446317f, -2.430113f, -1.489192f, 0},
- {9.703692f, -2.687490f, -1.851914f, 0},
- {9.847345f, -2.719811f, -2.027887f, 0},
- {9.732423f, -2.558203f, -2.355893f, 0},
- {9.549267f, -2.409762f, -2.292447f, 0},
- {9.601939f, -2.473209f, -1.733401f, 0},
- {9.971844f, -2.697066f, -1.748963f, 0},
- {10.626657f, -3.017889f, -1.353920f, 0},
- {11.123453f, -3.641578f, -1.219845f, 0},
- {11.133030f, -4.373006f, -1.596931f, 0},
- {10.457866f, -4.733334f, -2.841915f, 0},
- {9.214079f, -4.768049f, -3.096898f, 0},
- {7.812275f, -4.437650f, -1.672349f, 0},
- {6.750447f, -4.045001f, 0.490811f, 0},
- {6.290761f, -3.907335f, 1.800438f, 0},
- {6.235694f, -4.234143f, 1.041477f, 0},
- {7.199359f, -4.850649f, -2.310403f, 0},
- {8.538915f, -4.039015f, -3.203440f, 0},
- {9.186545f, -2.800017f, -4.298786f, 0},
- {9.197320f, -2.372652f, -4.565740f, 0},
- {9.024938f, -1.969230f, -4.732136f, 0},
- {8.607149f, -1.534682f, -4.993104f, 0},
- {7.957124f, -1.502361f, -4.132390f, 0},
- {7.705733f, -1.678334f, -2.855083f, 0},
- {7.752420f, -1.753752f, -1.508346f, 0},
- {8.034935f, -1.557427f, -0.313640f, 0},
- {7.546519f, -1.106120f, 0.447715f, 0},
- {6.752841f, -0.906205f, 1.265335f, 0},
- {6.906070f, -1.195903f, 1.750160f, 0},
- {7.101197f, -1.496375f, 1.381453f, 0},
- {7.223301f, -1.824380f, 0.837970f, 0},
- {7.374136f, -2.153583f, 0.274136f, 0},
- {7.323858f, -2.404974f, -0.490811f, 0},
- {7.491452f, -2.598904f, -1.482010f, 0},
- {7.899663f, -2.819170f, -2.953246f, 0},
- {8.497016f, -3.117249f, -4.119221f, 0},
- {9.168590f, -3.533839f, -6.064509f, 0},
- {9.417586f, -3.632001f, -6.847412f, 0},
- {9.738409f, -3.272871f, -6.969516f, 0},
- {9.919171f, -2.809594f, -6.331462f, 0},
- {9.987406f, -2.677913f, -4.316743f, 0},
- {9.593559f, -2.616861f, -3.142388f, 0},
- {9.325409f, -2.674321f, -3.335121f, 0},
- {9.167392f, -2.829944f, -3.014298f, 0},
- {9.194925f, -3.105278f, -2.008734f, 0},
- {9.613911f, -3.459619f, -2.535458f, 0},
- {10.720031f, -4.271253f, -3.035846f, 0},
- {11.372450f, -5.182246f, -2.151189f, 0},
- {10.842135f, -5.142742f, -0.895431f, 0},
- {9.220064f, -4.575316f, 0.703895f, 0},
- {7.491452f, -4.206610f, 1.714247f, 0},
- {6.665453f, -4.437650f, 2.238577f, 0},
- {7.479481f, -4.993104f, 3.179498f, 0},
- {8.750801f, -5.791570f, 2.965217f, 0},
- {9.563632f, -6.527786f, 1.649604f, 0},
- {9.215276f, -6.408076f, 0.693121f, 0},
- {8.240837f, -5.831074f, -0.050278f, 0},
- {7.832625f, -5.178655f, -0.134075f, 0},
- {6.849806f, -4.006694f, 0.402226f, 0},
- {6.220132f, -3.184286f, -0.293290f, 0},
- {6.138729f, -3.074153f, 0.524330f, 0},
- {7.079649f, -3.414129f, -1.236604f, 0},
- {7.497437f, -3.640381f, -2.803608f, 0},
- {7.586023f, -3.466802f, -3.118446f, 0},
- {7.608768f, -3.038240f, -3.612848f, 0},
- {7.706930f, -2.804805f, -3.219002f, 0},
- {7.848188f, -2.905362f, -3.991132f, 0},
- {8.244428f, -3.093307f, -4.150346f, 0},
- {8.699326f, -2.829944f, -4.168303f, 0},
- {8.613134f, -2.391806f, -3.326741f, 0},
- {8.754393f, -2.479194f, -2.382229f, 0},
- {9.027331f, -2.700658f, -2.299629f, 0},
- {9.117114f, -2.700658f, -2.309206f, 0},
- {9.198517f, -2.815579f, -1.631647f, 0},
- {9.265554f, -2.861069f, -0.093374f, 0},
- {9.057259f, -2.791637f, 0.238223f, 0},
- {9.398433f, -2.922121f, 0.565031f, 0},
- {9.453499f, -2.892194f, 0.474052f, 0},
- {9.267948f, -2.750936f, 0.118513f, 0},
- {9.593559f, -2.905362f, 0.064643f, 0},
- {9.916777f, -3.290828f, 0.547075f, 0},
- {9.968252f, -3.573344f, 0.733822f, 0},
- {10.299849f, -4.295195f, -2.195482f, 0},
- {10.365689f, -5.293576f, -3.512291f, 0},
- {10.035290f, -6.093239f, -3.232170f, 0},
- {9.386461f, -5.595245f, -0.808043f, 0},
- {7.836217f, -5.037397f, -1.355117f, 0},
- {7.586023f, -4.918884f, -0.707486f, 0},
- {8.003811f, -5.001484f, -1.582566f, 0},
- {8.651442f, -5.248086f, -3.233367f, 0},
- {8.804670f, -4.791991f, -2.944866f, 0},
- {7.832625f, -3.906137f, -2.813185f, 0},
- {6.901282f, -3.084927f, -2.161963f, 0},
- {6.792346f, -2.578553f, -1.455674f, 0},
- {7.048525f, -2.341528f, -1.499966f, 0},
- {7.358574f, -2.551020f, -1.587355f, 0},
- {7.480678f, -2.724600f, -2.063801f, 0},
- {7.368151f, -2.518698f, -1.176749f, 0},
- {7.399275f, -2.738965f, -1.344343f, 0},
- {7.823049f, -2.987962f, -1.318007f, 0},
- {7.832625f, -2.798820f, -1.460462f, 0},
- {7.547716f, -2.303221f, -1.837548f, 0},
- {7.366954f, -2.001551f, -2.175131f, 0},
- {7.653060f, -2.163160f, -2.703052f, 0},
- {7.995431f, -2.481588f, -3.134008f, 0},
- {8.619121f, -2.681504f, -3.325544f, 0},
- {8.935155f, -2.726994f, -4.122813f, 0},
- {9.391250f, -2.748542f, -4.546586f, 0},
- {9.763548f, -2.730585f, -4.378992f, 0},
- {10.044867f, -2.233789f, -5.177458f, 0},
- {10.336959f, -2.200270f, -5.360614f, 0},
- {10.339353f, -2.786849f, -4.867409f, 0},
- {10.545254f, -3.339909f, -4.352656f, 0},
- {10.761930f, -3.875013f, -3.894166f, 0},
- {10.625460f, -4.471169f, -3.217805f, 0},
- {9.902411f, -4.558557f, -2.613269f, 0},
- {8.913607f, -3.739741f, -1.416169f, 0},
- {8.100776f, -3.011904f, 1.066616f, 0},
- {7.064087f, -3.003524f, 3.325544f, 0},
- {6.754038f, -3.834311f, 5.176260f, 0},
- {7.175417f, -4.786006f, 7.241258f, 0},
- {7.382516f, -5.288788f, 6.618766f, 0},
- {8.252808f, -5.669466f, 4.605244f, 0},
- {9.193728f, -6.020216f, 2.553414f, 0},
- {9.549267f, -5.853819f, 0.247800f, 0},
- {8.914804f, -5.385753f, -0.512359f, 0},
- {8.572433f, -4.914096f, -1.824380f, 0},
- {8.161828f, -3.992329f, -3.460816f, 0},
- {7.699748f, -2.631226f, -3.369837f, 0},
- {7.472299f, -2.184708f, -1.789665f, 0},
- {7.617147f, -2.147598f, -1.602917f, 0},
- {7.779953f, -1.984792f, -1.983595f, 0},
- {8.039723f, -1.725021f, -2.574962f, 0},
- {8.286326f, -1.487995f, -2.779666f, 0},
- {8.273158f, -1.437717f, -2.838324f, 0},
- {8.219289f, -1.659181f, -2.960428f, 0},
- {8.444344f, -1.786073f, -2.853886f, 0},
- {8.597572f, -1.544259f, -2.703052f, 0},
- {8.681370f, -1.361103f, -2.530669f, 0},
- {8.962687f, -1.437717f, -2.333148f, 0},
- {9.131479f, -1.589749f, -1.939302f, 0},
- {9.050076f, -1.765723f, -1.616085f, 0},
- {9.041697f, -1.929725f, -1.650801f, 0},
- {9.260766f, -2.108093f, -1.804030f, 0},
- {9.653415f, -2.413354f, -2.396594f, 0},
- {9.742000f, -2.288855f, -1.392227f, 0},
- {9.372096f, -1.877053f, -0.934935f, 0},
- {9.860513f, -2.138021f, -1.429337f, 0},
- {10.694892f, -2.595313f, -1.260546f, 0},
- {11.317384f, -2.925713f, -0.727837f, 0},
- {11.739960f, -3.251324f, -0.887051f, 0},
- {11.595111f, -3.508700f, -2.597707f, 0},
- {10.346536f, -4.009088f, -4.683055f, 0},
- {9.039303f, -4.310757f, -4.425679f, 0},
- {8.474271f, -4.114433f, -2.164357f, 0},
- {8.452724f, -3.538628f, -0.290895f, 0},
- {8.659822f, -3.467999f, 0.682347f, 0},
- {8.937549f, -3.530248f, 0.061052f, 0},
- {8.566448f, -2.431310f, -0.852335f, 0},
- {8.067257f, -1.312022f, -1.903389f, 0},
- {8.377306f, -1.103726f, -1.419761f, 0},
- {8.070848f, -1.212662f, -2.258928f, 0},
- {8.067257f, -1.584960f, -2.608481f, 0},
- {7.800304f, -1.910572f, -3.106475f, 0},
- {7.347800f, -2.184708f, -3.384202f, 0},
- {7.348997f, -2.264913f, -2.862266f, 0},
- {7.765588f, -2.091334f, -1.757343f, 0},
- {7.970292f, -1.810015f, -1.043871f, 0},
- {8.240837f, -1.757343f, -0.768538f, 0},
- {8.485045f, -1.801636f, -0.395043f, 0},
- {8.564054f, -1.716641f, -0.083797f, 0},
- {8.844175f, -1.758540f, -0.086191f, 0},
- {9.075215f, -1.959653f, -0.597353f, 0},
- {9.182955f, -2.019508f, -1.362300f, 0},
- {9.318227f, -2.041055f, -1.719036f, 0},
- {9.363716f, -2.062603f, -2.341528f, 0},
- {9.173378f, -1.891418f, -2.298432f, 0},
- {9.066835f, -1.715444f, -2.759315f, 0},
- {9.272737f, -1.723824f, -2.409762f, 0},
- {9.367308f, -1.574187f, -1.908177f, 0},
- {9.205699f, -1.302445f, -1.863885f, 0},
- {9.190137f, -1.492784f, -1.729810f, 0},
- {9.236824f, -1.769314f, -1.782482f, 0},
- {9.534902f, -2.070983f, -2.035070f, 0},
- {10.097539f, -2.543838f, -1.827972f, 0},
- {10.522510f, -2.759315f, -2.231395f, 0},
- {10.928327f, -2.730585f, -2.249351f, 0},
- {11.123453f, -2.719811f, -1.364694f, 0},
- {10.806222f, -2.395397f, -0.016759f, 0},
- {9.789884f, -1.911769f, 0.586579f, 0},
- {8.809459f, -2.251745f, 0.070629f, 0},
- {8.212107f, -3.077744f, 0.161609f, 0},
- {8.462300f, -3.548204f, 1.023521f, 0},
- {8.960294f, -3.872619f, 1.528697f, 0},
- {9.425965f, -4.192245f, 1.470039f, 0},
- {9.999376f, -4.453212f, 1.244984f, 0},
- {9.986209f, -4.420890f, 0.696712f, 0},
- {9.368505f, -4.025847f, 0.286107f, 0},
- {8.735239f, -3.618833f, 0.021548f, 0},
- {8.062469f, -3.245338f, -0.644040f, 0},
- {7.747632f, -2.964020f, -1.055842f, 0},
- {7.532154f, -2.788046f, -0.582988f, 0},
- {7.694959f, -2.956837f, -0.339976f, 0},
- {8.044512f, -3.439268f, -0.831985f, 0},
- {8.398854f, -3.869027f, -1.472433f, 0},
- {8.674187f, -3.954021f, -1.877053f, 0},
- {8.778335f, -3.669111f, -1.696291f, 0},
- {8.744816f, -3.325544f, -2.801214f, 0},
- {9.170983f, -3.161541f, -2.974794f, 0},
- {8.848964f, -2.875434f, -3.779245f, 0},
- {8.207318f, -2.503136f, -4.129995f, 0},
- {8.026556f, -2.263716f, -4.618412f, 0},
- {8.368926f, -2.215832f, -4.732136f, 0},
- {8.961491f, -2.413354f, -3.232170f, 0},
- {9.333789f, -2.713826f, -1.446097f, 0},
- {9.246401f, -2.952049f, -0.226252f, 0},
- {8.790305f, -2.959231f, 0.460884f, 0},
- {8.155843f, -2.730585f, 0.590170f, 0},
- {7.708127f, -2.560597f, 0.263362f, 0},
- {7.612359f, -2.658759f, 0.471657f, 0},
- {8.567645f, -3.356668f, 0.718260f, 0},
- {10.579970f, -4.683055f, 1.223436f, 0},
- {12.627011f, -5.783190f, 2.347513f, 0},
- {11.851291f, -5.154713f, 2.021902f, 0},
- {8.839387f, -3.144782f, -3.478773f, 0},
- {8.154645f, -3.208228f, -8.307875f, 0},
- {9.410403f, -4.708194f, -0.691924f, 0},
- {9.804249f, -4.711786f, 1.703473f, 0},
- {9.985011f, -4.288013f, -2.111685f, 0},
- {9.917974f, -3.863042f, -0.809240f, 0},
- {9.002192f, -3.196257f, -0.214281f, 0},
- {8.477862f, -2.410959f, -0.794874f, 0},
- {8.450329f, -1.956061f, -0.992396f, 0},
- {8.361744f, -1.842337f, -1.545456f, 0},
- {8.178588f, -1.766920f, -1.849520f, 0},
- {8.061272f, -1.640027f, -2.190693f, 0},
- {7.553701f, -1.369482f, -2.219424f, 0},
- {7.180206f, -1.359906f, -2.621649f, 0},
- {7.414838f, -1.776496f, -3.306390f, 0},
- {7.927197f, -1.954864f, -3.851071f, 0},
- {8.195347f, -1.989580f, -4.341882f, 0},
- {8.341393f, -2.115276f, -4.428073f, 0},
- {8.359349f, -2.343922f, -4.118024f, 0},
- {8.401248f, -2.454055f, -3.053802f, 0},
- {8.487439f, -2.311600f, -2.007537f, 0},
- {8.573630f, -2.114079f, -1.933317f, 0},
- {8.593981f, -2.120064f, -2.171540f, 0},
- {8.409628f, -2.209847f, -2.895785f, 0},
- {8.107959f, -2.146400f, -2.240971f, 0},
- {8.183376f, -1.910572f, -1.847125f, 0},
- {8.455117f, -1.956061f, -1.793256f, 0},
- {8.859737f, -2.144006f, -2.002748f, 0},
- {9.208094f, -2.382229f, -2.218226f, 0},
- {9.277525f, -2.410959f, -2.454055f, 0},
- {9.018951f, -2.202664f, -2.607284f, 0},
- {8.807065f, -1.917754f, -3.163935f, 0},
- {8.732844f, -1.766920f, -3.756500f, 0},
- {8.488636f, -1.750160f, -3.998314f, 0},
- {8.299495f, -1.744175f, -3.921700f, 0},
- {8.184573f, -1.738189f, -3.780442f, 0},
- {8.080425f, -1.723824f, -3.687068f, 0},
- {7.970292f, -1.810015f, -3.618833f, 0},
- {7.970292f, -1.811212f, -3.657140f, 0},
- {7.902057f, -1.886630f, -3.809172f, 0},
- {8.113944f, -2.105699f, -4.045001f, 0},
- {8.355759f, -2.325965f, -3.809172f, 0},
- {8.410825f, -2.215832f, -3.554190f, 0},
- {8.657428f, -2.017113f, -3.271674f, 0},
- {8.823824f, -2.086545f, -2.360681f, 0},
- {8.422796f, -2.122458f, -1.601720f, 0},
- {8.717282f, -1.810015f, -1.653195f, 0},
- {9.615108f, -1.516726f, -1.790862f, 0},
- {9.629473f, -1.593340f, -3.891772f, 0},
- {10.530889f, -2.082954f, -6.175839f, 0},
- {10.994166f, -2.302023f, -4.498702f, 0},
- {9.297876f, -1.614888f, -3.004721f, 0},
- {7.264003f, -0.905008f, -0.735019f, 0},
- {7.615951f, -1.219845f, 0.140061f, 0},
- {8.942337f, -1.484404f, -0.383072f, 0},
- {10.296257f, -2.246957f, -0.167594f, 0},
- {11.376041f, -2.970005f, 0.173579f, 0},
- {10.957057f, -2.890997f, -0.011971f, 0},
- {10.125072f, -2.902968f, -0.169988f, 0},
- {9.543282f, -2.770089f, -0.092177f, 0},
- {9.082398f, -2.452858f, 0.432153f, 0},
- {8.699326f, -1.927331f, 0.356736f, 0},
- {8.416810f, -1.535879f, 0.282516f, 0},
- {7.886495f, -0.933738f, -0.872686f, 0},
- {8.098382f, -0.636857f, 1.728612f, 0},
- {8.451527f, -0.509965f, 1.399410f, 0},
- {9.103946f, -0.675164f, 0.752976f, 0},
- {9.591166f, -0.895431f, 0.257377f, 0},
- {9.684539f, -0.997184f, -0.475249f, 0},
- {9.461879f, -0.949300f, -0.150835f, 0},
- {9.260766f, -0.992396f, -0.387860f, 0},
- {9.248795f, -1.278503f, -0.785298f, 0},
- {9.558844f, -1.503558f, -0.909796f, 0},
- {10.126269f, -1.493981f, -0.755370f, 0},
- {10.194504f, -1.428140f, -0.456095f, 0},
- {10.286680f, -1.380256f, -0.415394f, 0},
- {10.317805f, -1.411381f, -0.383072f, 0},
- {10.150211f, -1.398213f, -0.389058f, 0},
- {9.968252f, -1.315613f, -0.265756f, 0},
- {9.878469f, -1.361103f, -0.398634f, 0},
- {9.900018f, -1.498769f, -0.544681f, 0},
- {9.877273f, -1.466448f, -1.072602f, 0},
- {9.799460f, -1.371877f, -1.558624f, 0},
- {9.544478f, -1.285685f, -1.635239f, 0},
- {9.278723f, -1.120486f, -1.229422f, 0},
- {9.204502f, -1.103726f, -0.731428f, 0},
- {9.202108f, -1.182735f, -0.477643f, 0},
- {9.107537f, -1.255758f, 0.050278f, 0},
- {8.898045f, -1.216254f, 0.428562f, 0},
- {8.766363f, -1.130062f, 0.016759f, 0},
- {8.706509f, -1.060631f, -0.681150f, 0},
- {8.720874f, -1.039083f, -1.149216f, 0},
- {9.220064f, -1.296459f, -1.238999f, 0},
- {10.467443f, -1.696291f, -0.963666f, 0},
- {11.536453f, -1.877053f, -1.309627f, 0},
- {11.785450f, -1.964441f, -2.002748f, 0},
- {11.763902f, -2.772484f, -3.430889f, 0},
- {11.314989f, -3.549402f, -5.012258f, 0},
- {9.746788f, -3.913320f, -4.704603f, 0},
- {8.693340f, -4.775232f, -3.177104f, 0},
- {8.215697f, -5.501872f, -1.019929f, 0},
- {7.824246f, -5.450397f, 0.652420f, 0},
- {7.545321f, -4.419693f, 0.913387f, 0},
- {7.720098f, -3.350683f, -0.903811f, 0},
- {7.936773f, -2.221818f, -3.144782f, 0},
- {8.151054f, -1.693897f, -4.214989f, 0},
- {7.918817f, -1.904586f, -3.973175f, 0},
- {7.843400f, -2.130838f, -3.676294f, 0},
- {7.507014f, -2.142809f, -2.937684f, 0},
- {7.426809f, -2.203861f, -2.422930f, 0},
- {7.520183f, -2.273293f, -2.515107f, 0},
- {7.607571f, -2.073377f, -2.264913f, 0},
- {7.933182f, -1.736992f, -2.202664f, 0},
- {8.366532f, -1.519120f, -2.388215f, 0},
- {8.694537f, -1.306036f, -2.293644f, 0},
- {8.757984f, -1.061828f, -1.953667f, 0},
- {8.790305f, -1.007958f, -1.453279f, 0},
- {8.921987f, -1.209071f, -0.818816f, 0},
- {8.914804f, -1.312022f, -0.050278f, 0},
- {8.711297f, -1.246181f, 0.578199f, 0},
- {8.656230f, -1.249772f, 0.275333f, 0},
- {8.939943f, -1.387439f, -0.482431f, 0},
- {9.241612f, -1.586158f, -0.899022f, 0},
- {9.497791f, -1.592143f, -1.055842f, 0},
- {9.671371f, -1.361103f, -1.174355f, 0},
- {9.715664f, -1.000776f, -1.108515f, 0},
- {9.829389f, -0.665588f, -1.197100f, 0},
- {9.860513f, -0.462081f, -1.599326f, 0},
- {9.821009f, -0.490811f, -2.014719f, 0},
- {9.856922f, -0.694318f, -2.319980f, 0},
- {10.049655f, -1.024718f, -2.524684f, 0},
- {10.514130f, -1.493981f, -1.921346f, 0},
- {10.843332f, -1.666363f, -1.532288f, 0},
- {11.147395f, -1.837548f, -1.659181f, 0},
- {11.727989f, -2.455252f, -1.991974f, 0},
- {12.029658f, -3.106475f, -0.149638f, 0},
- {10.973816f, -3.138796f, 2.298432f, 0},
- {9.229641f, -2.894588f, 2.509122f, 0},
- {8.149857f, -2.712629f, 1.924937f, 0},
- {7.643484f, -3.005918f, 1.844731f, 0},
- {7.934379f, -3.333924f, 1.647210f, 0},
- {8.604755f, -3.669111f, 1.010352f, 0},
- {9.069230f, -3.952824f, 0.132878f, 0},
- {9.255978f, -3.986343f, -0.216675f, 0},
- {9.123099f, -3.824735f, 0.580594f, 0},
- {8.698129f, -3.511094f, 0.641646f, 0},
- {8.346182f, -3.187877f, 1.156399f, 0},
- {8.060075f, -2.959231f, 1.389833f, 0},
- {7.915226f, -2.890997f, 1.458068f, 0},
- {8.005008f, -3.084927f, 1.079784f, 0},
- {7.953533f, -3.286040f, -0.043096f, 0},
- {8.371321f, -3.442860f, -2.762907f, 0},
- {8.309072f, -3.312376f, -4.205412f, 0},
- {8.149857f, -2.729388f, -3.705025f, 0},
- {7.922408f, -2.109290f, -3.027466f, 0},
- {7.881707f, -1.766920f, -3.349486f, 0},
- {7.872130f, -1.252167f, -4.329911f, 0},
- {8.201332f, -0.677559f, -3.967190f, 0},
- {8.599967f, -0.760159f, -3.022678f, 0},
- {8.785517f, -1.183932f, -2.488771f, 0},
- {9.235627f, -1.813607f, -1.701079f, 0},
- {9.714467f, -2.225409f, -0.598550f, 0},
- {9.683342f, -2.312797f, 0.444124f, 0},
- {9.585180f, -2.341528f, 0.554257f, 0},
- {9.459484f, -2.260125f, 0.377087f, 0},
- {9.476244f, -2.183511f, 0.265756f, 0},
- {9.752774f, -2.238577f, 0.000000f, 0},
- {10.631446f, -2.571371f, 0.381875f, 0},
- {11.678908f, -2.847901f, 1.048660f, 0},
- {11.956635f, -2.754527f, 1.926134f, 0},
- {11.179717f, -2.287658f, 1.643618f, 0},
- {9.974237f, -1.684320f, -0.531512f, 0},
- {9.130282f, -1.295262f, 0.968454f, 0},
- {8.774743f, -0.958877f, 1.218648f, 0},
- {8.473074f, -0.690727f, 1.455674f, 0},
- {8.464694f, -0.987608f, 0.141258f, 0},
- {9.175772f, -1.808818f, -3.797201f, 0},
- {10.365689f, -2.500742f, -9.164998f, 0},
- {10.453077f, -1.736992f, -3.761288f, 0},
- {9.622290f, -0.969651f, 0.599747f, 0},
- {8.990221f, -0.987608f, -4.253296f, 0},
- {9.148238f, -1.395819f, -3.313573f, 0},
- {8.651442f, -1.607705f, -1.174355f, 0},
- {7.994234f, -1.643618f, -0.547075f, 0},
- {7.620739f, -1.555033f, -0.290895f, 0},
- {7.387304f, -1.526303f, -0.118513f, 0},
- {7.176615f, -1.487995f, -0.105345f, 0},
- {7.222105f, -1.329978f, -0.065841f, 0},
- {7.553701f, -1.047463f, -0.521936f, 0},
- {7.945153f, -0.768538f, -0.612915f, 0},
- {8.386883f, -0.518344f, -0.260968f, 0},
- {8.783123f, -0.316034f, -0.155623f, 0},
- {9.229641f, -0.201113f, -0.294487f, 0},
- {9.470259f, -0.234632f, -0.818816f, 0},
- {9.665385f, -0.349553f, -0.980425f, 0},
- {9.798264f, -0.347159f, -0.960074f, 0},
- {9.586377f, -0.480037f, -1.021126f, 0},
- {9.587574f, -0.565031f, -0.806845f, 0},
- {9.617501f, -0.590170f, -0.330400f, 0},
- {9.609122f, -0.484826f, 0.050278f, 0},
- {9.691722f, -0.368707f, 0.562637f, 0},
- {9.884455f, -0.318429f, 1.296459f, 0},
- {9.916777f, -0.286107f, 1.254561f, 0},
- {10.086765f, -0.414197f, 0.605733f, 0},
- {10.672147f, -0.663193f, -0.056264f, 0},
- {11.547227f, -0.732625f, -1.089361f, 0},
- {12.741933f, -0.981622f, -1.647210f, 0},
- {13.311752f, -1.082178f, -2.098516f, 0},
- {12.233165f, -1.091755f, -1.170764f, 0},
- {9.745591f, -1.782482f, -1.260546f, 0},
- {6.040567f, -2.230197f, -1.437717f, 0},
- {5.289985f, -2.487574f, 0.503979f, 0},
- {6.959939f, -3.001130f, 3.216608f, 0},
- {8.799882f, -4.107250f, 4.249705f, 0},
- {9.941916f, -4.839875f, 4.045001f, 0},
- {9.454696f, -5.104434f, 3.131614f, 0},
- {8.892059f, -5.509054f, 1.795650f, 0},
- {7.688973f, -5.981909f, 0.606930f, 0},
- {7.673411f, -6.725308f, 0.831985f, 0},
- {8.412022f, -7.346603f, 0.257377f, 0},
- {8.220486f, -6.330265f, -0.105345f, 0},
- {7.586023f, -4.578907f, 0.073023f, 0},
- {7.775165f, -3.556584f, -1.447294f, 0},
- {8.498213f, -3.017889f, -4.783612f, 0},
- {8.949520f, -2.546232f, -4.119221f, 0},
- {8.564054f, -2.585736f, -1.102529f, 0},
- {7.644681f, -3.087321f, -0.313640f, 0},
- {8.555674f, -2.998736f, -0.015562f, 0},
- {9.572012f, -2.636014f, -0.071826f, 0},
- {8.997404f, -2.252942f, 1.218648f, 0},
- {7.629118f, -1.496375f, 0.980425f, 0},
- {7.766785f, -1.379059f, 1.416169f, 0},
- {8.343787f, -1.787270f, 1.284488f, 0},
- {8.748407f, -1.811212f, 0.870292f, 0},
- {9.136268f, -2.027887f, 1.131260f, 0},
- {9.615108f, -2.226606f, 1.380256f, 0},
- {10.127466f, -2.141612f, 0.444124f, 0},
- {10.301045f, -1.841140f, -0.062249f, 0},
- {10.163380f, -1.441308f, -2.595313f, 0},
- {9.898820f, -1.045068f, 1.595734f, 0},
- {9.682145f, -1.219845f, 2.372652f, 0},
- {10.177745f, -1.084573f, 1.078587f, 0},
- {11.180914f, -0.885854f, 0.757764f, 0},
- {12.489345f, -1.234210f, 2.330754f, 0},
- {13.658912f, -2.050632f, 2.142809f, 0},
- {13.063952f, -2.145203f, -0.293290f, 0},
- {9.628276f, -1.520317f, -2.880223f, 0},
- {6.360192f, -1.479616f, -3.886984f, 0},
- {5.079296f, -1.917754f, -2.090137f, 0},
- {6.202175f, -3.551796f, -0.855927f, 0},
- {7.969095f, -4.886562f, -0.975637f, 0},
- {11.101906f, -4.876986f, 0.645237f, 0},
- {11.766296f, -4.067746f, 0.531512f, 0},
- {10.569196f, -3.503912f, -0.644040f, 0},
- {10.237599f, -3.076547f, -0.447715f, 0},
- {9.629473f, -2.752133f, -0.193930f, 0},
- {8.340196f, -1.911769f, -0.742202f, 0},
- {7.272383f, -1.003170f, -1.213859f, 0},
- {6.823470f, -0.739808f, -1.057039f, 0},
- {7.050919f, -0.673967f, -0.834379f, 0},
- {7.595600f, -0.442927f, -0.532710f, 0},
- {8.060075f, -0.168791f, -0.527921f, 0},
- {8.573630f, 0.094571f, -1.207874f, 0},
- {8.899241f, 0.466869f, -1.898601f, 0},
- {9.060850f, 0.805648f, -1.408987f, 0},
- {9.222459f, 0.831985f, -0.489614f, 0},
- {9.290693f, 0.647631f, 0.099359f, 0},
- {8.882483f, 0.517147f, -0.029928f, 0},
- {8.628697f, 0.389058f, -0.817619f, 0},
- {9.248795f, 0.234632f, -1.046265f, 0},
- {9.690525f, -0.081403f, -1.126471f, 0},
- {10.071202f, -0.231040f, -0.632069f, 0},
- {10.299849f, -0.039504f, 0.476446f, 0},
- {10.965436f, 0.278924f, 0.920570f, 0},
- {11.526876f, 0.132878f, -0.335188f, 0},
- {11.572366f, 0.118513f, -0.995987f, 0},
- {12.087119f, 0.074220f, 0.064643f, 0},
- {14.025224f, -0.268150f, 0.715866f, 0},
- {13.812140f, -0.075417f, 2.175131f, 0},
- {10.393223f, 0.955286f, 4.447227f, 0},
- {5.740095f, 2.165554f, 5.378571f, 0},
- {2.682701f, 2.470814f, 4.266465f, 0},
- {2.267308f, 1.452082f, 2.970005f, 0},
- {5.784388f, -0.737414f, 2.178722f, 0},
- {8.700523f, -2.176328f, 0.712274f, 0},
- {8.658625f, -2.545035f, -1.139639f, 0},
- {8.984236f, -3.094504f, -0.059855f, 0},
- {10.274710f, -4.108448f, 2.123656f, 0},
- {11.112679f, -5.146333f, 2.748542f, 0},
- {12.083528f, -5.299562f, -0.111330f, 0},
- {11.859670f, -3.488349f, -2.300826f, 0},
- {10.259148f, -1.679531f, -0.063446f, 0},
- {8.656230f, -1.307233f, 1.798044f, 0},
- {7.996628f, -1.447294f, 1.592143f, 0},
- {8.142674f, -1.909375f, 0.881066f, 0},
- {8.282735f, -2.118867f, 0.978031f, 0},
- {8.382094f, -1.970427f, 1.248575f, 0},
- {8.866920f, -1.735795f, 0.386663f, 0},
- {9.623487f, -1.595734f, -0.269348f, 0},
- {9.806643f, -1.525105f, -0.345962f, 0},
- {9.609122f, -1.367088f, 0.299275f, 0},
- {9.714467f, -1.388636f, 1.693897f, 0},
- {9.576800f, -1.092952f, 2.396594f, 0},
- {9.296679f, -1.480813f, 2.565385f, 0},
- {9.323015f, -0.742202f, 2.341528f, 0},
- {9.384068f, -1.109712f, 1.960850f, 0},
- {9.868893f, -1.590946f, 2.421733f, 0},
- {10.109509f, -1.939302f, 2.955640f, 0},
- {9.973041f, -2.006340f, 3.324347f, 0},
- {9.859316f, -1.581369f, 3.942050f, 0},
- {9.793475f, -0.999579f, 3.818749f, 0},
- {8.820233f, -0.578199f, 2.885011f, 0},
- {7.404064f, -0.547075f, 1.671152f, 0},
- {6.730096f, -0.906205f, 0.976834f, 0},
- {8.153448f, -2.236183f, 0.503979f, 0},
- {9.867696f, -4.234143f, -0.254982f, 0},
- {7.984657f, -2.888602f, -1.261743f, 0},
- {9.093172f, -3.695448f, -2.171540f, 0},
- {9.166195f, -3.958810f, -1.365891f, 0},
- {9.483426f, -4.307166f, -1.432929f, 0},
- {9.564829f, -4.777626f, -2.000354f, 0},
- {9.548070f, -5.154713f, -2.106896f, 0},
- {9.175772f, -5.427651f, -1.608902f, 0},
- {8.127112f, -6.010639f, -1.829169f, 0},
- {8.129506f, -6.432018f, -1.207874f, 0},
- {7.790727f, -5.821497f, 0.189142f, 0},
- {7.073664f, -4.104856f, 2.110487f, 0},
- {7.091620f, -3.636790f, 1.745372f, 0},
- {7.758405f, -3.837903f, 0.458489f, 0},
- {8.832204f, -3.739741f, 0.357933f, 0},
- {9.786293f, -3.177104f, 0.160411f, 0},
- {9.618699f, -2.337936f, -0.683544f, 0},
- {9.124296f, -1.669955f, -0.986410f, 0},
- {8.815445f, -1.297656f, 0.074220f, 0},
- {8.663413f, -1.192312f, 0.752976f, 0},
- {8.526943f, -1.224633f, 0.095768f, 0},
- {8.671793f, -1.508346f, -0.044293f, 0},
- {9.041697f, -1.966835f, -1.302445f, 0},
- {9.320621f, -2.434901f, -0.640449f, 0},
- {9.319424f, -2.719811f, -0.933738f, 0},
- {9.598348f, -2.252942f, 0.096965f, 0},
- {9.272737f, -2.086545f, -0.335188f, 0},
- {9.397235f, -1.977609f, -0.829590f, 0},
- {9.585180f, -1.861491f, -0.963666f, 0},
- {9.563632f, -1.543062f, -1.194706f, 0},
- {9.265554f, -1.262941f, -1.276109f, 0},
- {8.941140f, -0.998381f, -1.148019f, 0},
- {8.711297f, -0.948103f, -1.108515f, 0},
- {8.803473f, -1.259349f, -1.027112f, 0},
- {9.475047f, -2.545035f, -0.591367f, 0},
- {10.941494f, -4.028242f, -0.374692f, 0},
- {11.295835f, -3.961204f, 0.489614f, 0},
- {9.697707f, -2.606087f, 1.587355f, 0},
- {8.414416f, -2.354696f, 1.309627f, 0},
- {8.408431f, -3.039437f, 0.598550f, 0},
- {8.759181f, -3.227382f, 0.460884f, 0},
- {9.191334f, -3.215411f, 0.717063f, 0},
- {9.106340f, -3.286040f, -1.228225f, 0},
- {9.215276f, -3.016692f, -0.532710f, 0},
- {9.226050f, -2.573765f, 1.215057f, 0},
- {9.278723f, -2.743753f, 0.444124f, 0},
- {9.779110f, -3.204637f, 1.349132f, 0},
- {9.914383f, -3.223790f, 1.940499f, 0},
- {9.907200f, -2.806002f, 1.668757f, 0},
- {10.375266f, -2.416945f, 2.098516f, 0},
- {11.027685f, -2.161963f, 2.414551f, 0},
- {11.603491f, -1.948879f, 2.486377f, 0},
- {11.531665f, -1.472433f, 2.813185f, 0},
- {10.983393f, -0.723048f, 2.525881f, 0},
- {9.938325f, 0.086191f, 2.130838f, 0},
- {8.816642f, 0.365116f, 2.731782f, 0},
- {10.491385f, 0.019154f, 3.318361f, 0},
- {10.913961f, -0.289698f, 4.115630f, 0},
- {9.964661f, 0.154426f, 4.765655f, 0},
- {7.896072f, 1.101332f, 4.291604f, 0},
- {7.783545f, 1.666363f, 4.158726f, 0},
- {8.256399f, 1.159990f, 4.963177f, 0},
- {8.441950f, 0.727837f, 5.633553f, 0},
- {7.973883f, 0.981622f, 5.418075f, 0},
- {7.131125f, 1.492784f, 4.759670f, 0},
- {7.067678f, 1.640027f, 4.987119f, 0},
- {7.246047f, 1.323993f, 5.380965f, 0},
- {7.788333f, 1.154004f, 5.783190f, 0},
- {8.256399f, 1.544259f, 6.980290f, 0},
- {8.076834f, 2.169145f, 7.654258f, 0},
- {7.649469f, 2.182313f, 7.368151f, 0},
- {7.462722f, 2.094925f, 6.817485f, 0},
- {6.956348f, 1.817198f, 6.009442f, 0},
- {6.156685f, 1.295262f, 5.595245f, 0},
- {5.171472f, 1.101332f, 5.043383f, 0},
- {4.614820f, 1.007958f, 4.921278f, 0},
- {4.693829f, 0.915781f, 5.402513f, 0},
- {4.863817f, 1.090558f, 5.463564f, 0},
- {4.620806f, 1.468842f, 5.919660f, 0},
- {4.741713f, 1.361103f, 6.609190f, 0},
- {4.047395f, 1.677137f, 6.482296f, 0},
- {4.094082f, 1.859096f, 6.527786f, 0},
- {4.349064f, 1.829169f, 6.309914f, 0},
- {4.477154f, 1.816001f, 6.591233f, 0},
- {4.513067f, 1.195903f, 7.651864f, 0},
- {5.130771f, 0.706289f, 8.787911f, 0},
- {5.143939f, 0.804451f, 8.456315f, 0},
- {4.619609f, 0.244208f, 7.931985f, 0},
- {3.963598f, -0.852335f, 8.146266f, 0},
- {4.163514f, -1.314416f, 8.972264f, 0},
- {4.601653f, -1.395819f, 9.185349f, 0},
- {4.854240f, -1.686714f, 8.943534f, 0},
- {4.542994f, -2.023099f, 8.414416f, 0},
- {3.835509f, -2.602495f, 8.085214f, 0},
- {2.978385f, -2.853886f, 8.039723f, 0},
- {2.686292f, -2.522290f, 7.716507f, 0},
- {2.425325f, -2.989159f, 10.263936f, 0},
- {1.680728f, -3.276463f, 12.568354f, 0},
- {1.449688f, -2.462435f, 9.834177f, 0},
- {1.904586f, -2.296038f, 8.819036f, 0},
- {2.072180f, -2.254139f, 9.337380f, 0},
- {2.197876f, -2.144006f, 9.494201f, 0},
- {2.105699f, -1.899798f, 9.169786f, 0},
- {1.717839f, -1.751357f, 9.096764f, 0},
- {1.574187f, -1.813607f, 9.458287f, 0},
- {1.502361f, -1.717839f, 9.576800f, 0},
- {1.379059f, -1.528697f, 9.473849f, 0},
- {1.168370f, -1.182735f, 9.206897f, 0},
- {1.060631f, -1.138442f, 9.701299f, 0},
- {0.893037f, -1.142033f, 10.007756f, 0},
- {0.729034f, -1.097741f, 10.362098f, 0},
- {0.847547f, -1.270123f, 11.415545f, 0},
- {0.700303f, -1.437717f, 11.802209f, 0},
- {0.657208f, -0.940921f, 10.297455f, 0},
- {0.820014f, -0.262165f, 8.865723f, 0},
- {1.120486f, -0.100556f, 9.303862f, 0},
- {1.000776f, -0.172382f, 10.194504f, 0},
- {0.691924f, 0.026336f, 8.984236f, 0},
- {0.712274f, 0.058658f, 8.265976f, 0},
- {0.530315f, -0.462081f, 10.773900f, 0},
- {0.463278f, -0.685938f, 10.289075f, 0},
- {0.442927f, -0.518344f, 7.893678f, 0},
- {0.445321f, -0.438139f, 7.972686f, 0},
- {0.378284f, -0.450110f, 8.655033f, 0},
- {0.043096f, 0.015562f, 8.980644f, 0},
- {0.220266f, 0.984016f, 9.639050f, 0},
- {0.154426f, 1.146822f, 9.488214f, 0},
- {-0.119710f, 1.325190f, 9.168590f, 0},
- {-0.130484f, 1.334767f, 9.746788f, 0},
- {-0.025139f, 1.310825f, 10.338156f, 0},
- {0.028730f, 1.616085f, 9.712072f, 0},
- {0.044293f, 1.892615f, 8.583207f, 0},
- {0.069432f, 1.480813f, 8.564054f, 0},
- {0.033519f, 1.243787f, 8.768758f, 0},
- {0.373495f, 1.514332f, 8.633486f, 0},
- {0.353144f, 1.561018f, 8.446738f, 0},
- {0.129287f, 1.313219f, 8.616726f, 0},
- {-0.028730f, 0.976834f, 9.123099f, 0},
- {-0.076614f, 0.966060f, 9.351746f, 0},
- {-0.161609f, 1.165975f, 8.965082f, 0},
- {-0.343568f, 1.641224f, 8.194150f, 0},
- {-0.442927f, 1.661575f, 8.437161f, 0},
- {-0.363918f, 1.365891f, 9.854527f, 0},
- {-0.282516f, 1.326387f, 10.666162f, 0},
- {-0.314837f, 1.443703f, 10.433924f, 0},
- {-0.644040f, 1.332372f, 9.327804f, 0},
- {-0.999579f, 1.479616f, 8.036133f, 0},
- {-0.799663f, 1.452082f, 8.346182f, 0},
- {-0.858321f, 1.567004f, 9.868893f, 0},
- {-0.938526f, 1.495178f, 11.599899f, 0},
- {-1.193509f, 1.498769f, 11.905160f, 0},
- {-1.556230f, 1.338358f, 10.947480f, 0},
- {-1.557427f, 1.256955f, 11.003743f, 0},
- {-1.413775f, 1.060631f, 11.848896f, 0},
- {-1.280897f, 0.922964f, 12.215209f, 0},
- {-1.132457f, 0.927753f, 11.399983f, 0},
- {-1.037886f, 0.881066f, 10.413573f, 0},
- {-0.605733f, 0.897825f, 10.074794f, 0},
- {-0.149638f, 0.872686f, 10.181335f, 0},
- {0.278924f, 0.933738f, 10.765521f, 0},
- {0.741005f, 1.137245f, 10.898398f, 0},
- {1.114500f, 1.398213f, 10.672147f, 0},
- {1.337161f, 1.841140f, 11.609476f, 0},
- {1.916557f, 1.922543f, 13.679262f, 0},
- {2.594116f, 1.768117f, 13.814534f, 0},
- {3.088518f, 2.280476f, 12.144580f, 0},
- {3.426100f, 2.173934f, 11.726792f, 0},
- {3.564964f, 1.717839f, 11.662148f, 0},
- {3.779245f, 1.653195f, 11.219221f, 0},
- {3.823538f, 1.709459f, 10.377660f, 0},
+ { 3.233367f, 1.968032f, 8.875299f, 0 },
+ { 3.190272f, 2.127247f, 9.054865f, 0 },
+ { 3.361457f, 2.057815f, 9.054865f, 0 },
+ { 3.377019f, 1.917754f, 9.093172f, 0 },
+ { 3.460816f, 1.817198f, 9.058456f, 0 },
+ { 3.500320f, 1.726218f, 8.900438f, 0 },
+ { 3.715799f, 1.363497f, 8.836992f, 0 },
+ { 3.883393f, 0.884657f, 8.832204f, 0 },
+ { 3.948036f, 0.577002f, 9.016558f, 0 },
+ { 3.600877f, 0.717063f, 9.200911f, 0 },
+ { 3.318361f, 0.854729f, 9.166195f, 0 },
+ { 3.272871f, 0.731428f, 9.149436f, 0 },
+ { 3.452436f, 0.250194f, 9.297876f, 0 },
+ { 3.817552f, -0.353144f, 9.424768f, 0 },
+ { 3.828326f, -0.495599f, 9.284708f, 0 },
+ { 3.312376f, -0.040701f, 9.204502f, 0 },
+ { 3.049014f, 0.515950f, 9.223656f, 0 },
+ { 3.099292f, 0.980425f, 8.882483f, 0 },
+ { 3.153162f, 1.443703f, 8.154645f, 0 },
+ { 3.501518f, 1.487995f, 8.054089f, 0 },
+ { 4.235340f, 1.292868f, 8.480257f, 0 },
+ { 4.284421f, 1.511937f, 8.848964f, 0 },
+ { 3.988737f, 1.928528f, 9.149436f, 0 },
+ { 3.825932f, 2.076969f, 9.576800f, 0 },
+ { 3.903743f, 1.991974f, 10.133451f, 0 },
+ { 3.841494f, 2.000354f, 10.165773f, 0 },
+ { 3.706222f, 1.930922f, 9.649823f, 0 },
+ { 3.949233f, 1.614888f, 9.054865f, 0 },
+ { 4.237734f, 1.272517f, 8.625106f, 0 },
+ { 4.188653f, 1.134851f, 8.268370f, 0 },
+ { 4.242523f, 0.991199f, 8.091199f, 0 },
+ { 4.157528f, 0.970848f, 8.135491f, 0 },
+ { 3.951627f, 0.967257f, 8.353364f, 0 },
+ { 4.073731f, 0.994790f, 8.854949f, 0 },
+ { 3.840297f, 1.124077f, 9.249992f, 0 },
+ { 3.736149f, 1.142033f, 9.491806f, 0 },
+ { 3.809172f, 1.126471f, 9.651020f, 0 },
+ { 3.987540f, 1.173158f, 9.633064f, 0 },
+ { 4.237734f, 1.005564f, 9.467864f, 0 },
+ { 4.308363f, 0.939724f, 9.190137f, 0 },
+ { 4.367021f, 0.986410f, 9.021346f, 0 },
+ { 4.406525f, 1.033097f, 9.074018f, 0 },
+ { 4.185062f, 1.276109f, 9.235627f, 0 },
+ { 3.971978f, 1.363497f, 9.525325f, 0 },
+ { 4.031833f, 1.318007f, 10.833755f, 0 },
+ { 4.214989f, 1.144428f, 10.241191f, 0 },
+ { 4.808751f, 0.590170f, 9.690525f, 0 },
+ { 4.697421f, 0.372298f, 10.245979f, 0 },
+ { 4.490322f, 0.207098f, 9.682145f, 0 },
+ { 4.353853f, 0.494402f, 8.651442f, 0 },
+ { 3.981555f, 1.094149f, 8.230062f, 0 },
+ { 3.933671f, 1.310825f, 8.426387f, 0 },
+ { 4.107250f, 1.189917f, 9.068033f, 0 },
+ { 4.529827f, 0.888248f, 9.501383f, 0 },
+ { 4.699815f, 0.720654f, 9.765942f, 0 },
+ { 4.661508f, 0.647631f, 9.916777f, 0 },
+ { 4.627989f, 0.587776f, 9.925157f, 0 },
+ { 4.413708f, 0.587776f, 9.791081f, 0 },
+ { 4.369415f, 0.466869f, 9.840162f, 0 },
+ { 4.412511f, 0.335188f, 9.932339f, 0 },
+ { 4.234143f, 0.452504f, 9.502580f, 0 },
+ { 3.817552f, 1.055842f, 8.638274f, 0 },
+ { 3.130417f, 1.842337f, 7.748828f, 0 },
+ { 2.511516f, 2.430113f, 7.059299f, 0 },
+ { 2.267308f, 2.840718f, 6.742067f, 0 },
+ { 2.082954f, 3.129220f, 6.706154f, 0 },
+ { 1.653195f, 3.483561f, 6.813893f, 0 },
+ { 1.053448f, 3.797201f, 7.132322f, 0 },
+ { 0.333991f, 4.125207f, 7.364560f, 0 },
+ { -0.039504f, 4.228158f, 8.018176f, 0 },
+ { 0.403423f, 3.726573f, 8.789108f, 0 },
+ { 1.179144f, 3.120840f, 9.289496f, 0 },
+ { 1.683123f, 2.905362f, 9.911988f, 0 },
+ { 1.442506f, 3.038240f, 10.551240f, 0 },
+ { 1.403001f, 2.936486f, 12.229574f, 0 },
+ { 1.601720f, 2.541443f, 14.815310f, 0 },
+ { 2.233789f, 2.037464f, 14.715951f, 0 },
+ { 2.664745f, 1.736992f, 12.216406f, 0 },
+ { 3.331529f, 1.385045f, 10.475822f, 0 },
+ { 3.337515f, 1.235407f, 9.133873f, 0 },
+ { 3.173512f, 1.292868f, 8.406036f, 0 },
+ { 3.201046f, 1.462856f, 8.306677f, 0 },
+ { 3.157950f, 1.595734f, 9.011769f, 0 },
+ { 2.759315f, 1.777694f, 10.049655f, 0 },
+ { 2.315192f, 2.105699f, 10.682920f, 0 },
+ { 2.063801f, 2.375046f, 10.832559f, 0 },
+ { 2.310403f, 2.485180f, 10.688907f, 0 },
+ { 2.553414f, 2.606087f, 10.153803f, 0 },
+ { 2.475603f, 2.731782f, 9.356534f, 0 },
+ { 2.710234f, 2.529472f, 9.297876f, 0 },
+ { 2.777272f, 2.193087f, 9.394841f, 0 },
+ { 2.938881f, 1.920148f, 9.531310f, 0 },
+ { 3.108869f, 1.635239f, 10.534480f, 0 },
+ { 3.187877f, 1.425746f, 10.899596f, 0 },
+ { 3.448845f, 1.331175f, 10.508144f, 0 },
+ { 3.606862f, 1.470039f, 9.440331f, 0 },
+ { 3.700236f, 1.162384f, 8.781926f, 0 },
+ { 3.713404f, 0.864306f, 8.845372f, 0 },
+ { 3.575738f, 0.404620f, 9.610319f, 0 },
+ { 3.495532f, -0.130484f, 9.526522f, 0 },
+ { 3.403355f, -0.411802f, 8.833401f, 0 },
+ { 3.203440f, -0.380678f, 8.850161f, 0 },
+ { 2.822762f, -0.191536f, 9.560040f, 0 },
+ { 2.488771f, -0.459686f, 9.883258f, 0 },
+ { 3.065773f, -0.764947f, 10.110707f, 0 },
+ { 1.993172f, 1.004367f, 9.798264f, 0 },
+ { 2.426522f, 1.732204f, 10.036487f, 0 },
+ { 3.213017f, 1.238999f, 10.182533f, 0 },
+ { 2.779666f, 2.394200f, 9.916777f, 0 },
+ { 3.187877f, 2.622846f, 9.593559f, 0 },
+ { 4.195836f, 1.867476f, 9.876076f, 0 },
+ { 3.720587f, 2.114079f, 9.998179f, 0 },
+ { 2.948457f, 2.766498f, 9.500186f, 0 },
+ { 3.869027f, 2.822762f, 9.572012f, 0 },
+ { 4.205412f, 2.656365f, 9.753971f, 0 },
+ { 4.151543f, 2.828747f, 9.751576f, 0 },
+ { 4.046198f, 2.905362f, 9.131479f, 0 },
+ { 3.915714f, 3.032254f, 8.237246f, 0 },
+ { 3.864239f, 3.126825f, 8.008599f, 0 },
+ { 3.466802f, 2.999933f, 8.634683f, 0 },
+ { 2.876631f, 2.902968f, 9.473849f, 0 },
+ { 2.329557f, 2.899376f, 10.187322f, 0 },
+ { 2.197876f, 3.608059f, 10.637431f, 0 },
+ { 2.357090f, 4.205412f, 10.235206f, 0 },
+ { 2.716220f, 4.076126f, 9.261963f, 0 },
+ { 3.520671f, 3.847480f, 8.461103f, 0 },
+ { 4.180274f, 3.879801f, 7.758405f, 0 },
+ { 4.691435f, 4.034227f, 7.019794f, 0 },
+ { 4.918884f, 3.915714f, 6.659468f, 0 },
+ { 4.722559f, 4.205412f, 6.113590f, 0 },
+ { 5.349840f, 4.169499f, 5.413286f, 0 },
+ { 6.423639f, 3.742135f, 5.009864f, 0 },
+ { 6.799528f, 3.581723f, 4.843467f, 0 },
+ { 6.915647f, 3.337515f, 4.921278f, 0 },
+ { 7.358574f, 3.173512f, 5.214568f, 0 },
+ { 7.584826f, 2.861069f, 5.182246f, 0 },
+ { 7.077255f, 2.771286f, 5.073310f, 0 },
+ { 7.192177f, 2.306812f, 5.501872f, 0 },
+ { 7.241258f, 2.145203f, 5.888535f, 0 },
+ { 7.599191f, 1.898601f, 6.099225f, 0 },
+ { 7.576446f, 2.138021f, 6.144714f, 0 },
+ { 7.465116f, 1.962047f, 6.021413f, 0 },
+ { 7.677002f, 1.740583f, 5.643129f, 0 },
+ { 7.966701f, 1.648407f, 4.964374f, 0 },
+ { 8.038527f, 1.636436f, 4.419693f, 0 },
+ { 8.176193f, 1.582566f, 4.183865f, 0 },
+ { 8.489834f, 1.460462f, 4.319137f, 0 },
+ { 8.804670f, 1.314416f, 4.444832f, 0 },
+ { 8.803473f, 1.308430f, 4.492716f, 0 },
+ { 8.580813f, 1.392227f, 4.501096f, 0 },
+ { 8.056483f, 1.595734f, 4.428073f, 0 },
+ { 8.418008f, 1.316810f, 4.600455f, 0 },
+ { 8.826219f, 1.170764f, 4.411314f, 0 },
+ { 8.652639f, 1.201888f, 3.910926f, 0 },
+ { 8.285130f, 0.927753f, 3.752909f, 0 },
+ { 8.475469f, 1.027112f, 3.569752f, 0 },
+ { 9.009375f, 0.708683f, 3.605665f, 0 },
+ { 8.797488f, 0.600944f, 3.107672f, 0 },
+ { 8.864526f, 0.620098f, 2.863463f, 0 },
+ { 8.833401f, 0.214281f, 2.640803f, 0 },
+ { 9.212882f, 0.150835f, 2.487574f, 0 },
+ { 9.308650f, 0.226252f, 2.375046f, 0 },
+ { 8.869314f, 0.094571f, 2.142809f, 0 },
+ { 9.208094f, 0.002394f, 2.132035f, 0 },
+ { 9.100354f, 0.015562f, 2.367864f, 0 },
+ { 8.973462f, -0.011971f, 2.602495f, 0 },
+ { 8.872906f, 0.000000f, 2.564188f, 0 },
+ { 8.883679f, 0.092177f, 2.452858f, 0 },
+ { 8.857343f, 0.241814f, 2.480391f, 0 },
+ { 8.919592f, 0.371101f, 2.612072f, 0 },
+ { 9.002192f, 0.483628f, 2.536655f, 0 },
+ { 9.056062f, 0.521936f, 2.335542f, 0 },
+ { 9.023740f, 0.572214f, 2.012325f, 0 },
+ { 9.085989f, 0.592565f, 1.854308f, 0 },
+ { 9.127888f, 0.505176f, 1.783679f, 0 },
+ { 8.968674f, 0.653617f, 1.787270f, 0 },
+ { 8.872906f, 0.650025f, 1.867476f, 0 },
+ { 8.798685f, 0.628478f, 2.148795f, 0 },
+ { 8.841781f, 0.530315f, 2.687490f, 0 },
+ { 8.541308f, 0.642843f, 2.780863f, 0 },
+ { 8.499411f, 0.402226f, 2.566582f, 0 },
+ { 8.734042f, -0.217872f, 2.597707f, 0 },
+ { 8.689749f, -0.295684f, 3.051408f, 0 },
+ { 8.298298f, -0.123301f, 3.968387f, 0 },
+ { 7.545321f, -0.111330f, 4.738122f, 0 },
+ { 6.827062f, -0.112527f, 5.501872f, 0 },
+ { 6.604401f, 0.435744f, 6.827062f, 0 },
+ { 6.572079f, 0.610521f, 7.642287f, 0 },
+ { 6.546940f, 0.383072f, 7.778756f, 0 },
+ { 6.274001f, 0.530315f, 7.600388f, 0 },
+ { 5.847834f, 1.544259f, 7.811078f, 0 },
+ { 5.374979f, 1.781285f, 7.654258f, 0 },
+ { 5.163093f, 1.493981f, 7.372939f, 0 },
+ { 5.104434f, 1.314416f, 7.807487f, 0 },
+ { 5.424060f, 0.847547f, 8.513776f, 0 },
+ { 5.471944f, 0.817619f, 8.461103f, 0 },
+ { 4.618412f, 1.319204f, 8.107959f, 0 },
+ { 4.265267f, 1.634042f, 7.587220f, 0 },
+ { 5.191823f, 1.347935f, 7.196965f, 0 },
+ { 4.748896f, 1.868673f, 7.097606f, 0 },
+ { 4.595667f, 1.187523f, 7.428006f, 0 },
+ { 3.948036f, 1.272517f, 8.262384f, 0 },
+ { 2.280476f, 1.892615f, 8.998601f, 0 },
+ { 2.828747f, 1.725021f, 8.937549f, 0 },
+ { 3.256112f, 1.863885f, 9.101552f, 0 },
+ { 3.264492f, 1.679531f, 8.540112f, 0 },
+ { 3.616439f, 1.237801f, 8.178588f, 0 },
+ { 3.713404f, 1.492784f, 9.411600f, 0 },
+ { 3.654746f, 1.428140f, 10.740381f, 0 },
+ { 3.139993f, 1.246181f, 10.362098f, 0 },
+ { 2.381032f, 1.161187f, 9.357731f, 0 },
+ { 2.602495f, 1.027112f, 11.311399f, 0 },
+ { 2.964020f, 1.120486f, 12.570747f, 0 },
+ { 2.501939f, 1.344343f, 10.244782f, 0 },
+ { 2.152386f, 1.455674f, 9.786293f, 0 },
+ { 1.878250f, 1.450885f, 10.216052f, 0 },
+ { 1.844731f, 1.434126f, 12.245136f, 0 },
+ { 2.011128f, 1.198297f, 13.654123f, 0 },
+ { 1.562216f, 1.192312f, 10.202884f, 0 },
+ { 1.046265f, 1.596931f, 8.796291f, 0 },
+ { 1.344343f, 1.769314f, 9.710876f, 0 },
+ { 1.857899f, 1.845928f, 10.510538f, 0 },
+ { 2.217029f, 1.814804f, 11.314989f, 0 },
+ { 2.341528f, 1.612494f, 11.218024f, 0 },
+ { 2.144006f, 1.527500f, 10.122678f, 0 },
+ { 2.220621f, 1.271320f, 10.222037f, 0 },
+ { 2.487574f, 0.978031f, 10.830164f, 0 },
+ { 2.782060f, 0.950497f, 11.261120f, 0 },
+ { 3.031057f, 0.894234f, 10.802630f, 0 },
+ { 2.880223f, 0.992396f, 9.764745f, 0 },
+ { 2.115276f, 1.447294f, 8.930367f, 0 },
+ { 1.849520f, 1.715444f, 8.956702f, 0 },
+ { 2.313994f, 1.569398f, 9.429557f, 0 },
+ { 2.365470f, 1.504755f, 9.142253f, 0 },
+ { 2.184708f, 1.528697f, 8.570039f, 0 },
+ { 2.346316f, 1.491587f, 8.657428f, 0 },
+ { 2.662350f, 1.338358f, 8.938745f, 0 },
+ { 2.619255f, 1.200691f, 8.894453f, 0 },
+ { 2.372652f, 1.073799f, 8.850161f, 0 },
+ { 2.363075f, 1.012747f, 9.173378f, 0 },
+ { 2.529472f, 1.101332f, 9.485821f, 0 },
+ { 2.730585f, 1.132457f, 9.469061f, 0 },
+ { 2.913742f, 1.120486f, 9.311044f, 0 },
+ { 3.093307f, 1.151610f, 9.610319f, 0 },
+ { 3.087321f, 1.296459f, 10.226826f, 0 },
+ { 2.811988f, 1.377862f, 10.601518f, 0 },
+ { 2.683898f, 1.231816f, 10.516523f, 0 },
+ { 2.584539f, 1.250970f, 10.043670f, 0 },
+ { 2.732979f, 1.283291f, 9.721649f, 0 },
+ { 2.949655f, 1.004367f, 9.597151f, 0 },
+ { 2.908953f, 0.938526f, 9.525325f, 0 },
+ { 2.630029f, 1.124077f, 9.534902f, 0 },
+ { 2.710234f, 0.859518f, 9.769533f, 0 },
+ { 2.574962f, 0.883460f, 9.832980f, 0 },
+ { 2.279279f, 1.092952f, 9.628276f, 0 },
+ { 2.272096f, 1.016338f, 9.598348f, 0 },
+ { 2.448070f, 0.889445f, 9.724044f, 0 },
+ { 2.395397f, 0.984016f, 9.685737f, 0 },
+ { 2.266110f, 1.094149f, 9.788687f, 0 },
+ { 2.366667f, 1.074996f, 9.836571f, 0 },
+ { 2.486377f, 1.023521f, 9.856922f, 0 },
+ { 2.391806f, 1.103726f, 9.935930f, 0 },
+ { 2.179919f, 1.174355f, 9.900018f, 0 },
+ { 2.024296f, 1.203086f, 9.925157f, 0 },
+ { 2.039858f, 1.156399f, 9.900018f, 0 },
+ { 2.087743f, 1.066616f, 9.976632f, 0 },
+ { 2.084151f, 0.975637f, 9.853331f, 0 },
+ { 2.179919f, 0.985213f, 9.618699f, 0 },
+ { 2.300826f, 1.031900f, 9.533705f, 0 },
+ { 2.246957f, 1.083376f, 9.599545f, 0 },
+ { 2.124853f, 0.970848f, 9.703692f, 0 },
+ { 2.005142f, 1.036689f, 9.664188f, 0 },
+ { 2.142809f, 1.047463f, 9.641443f, 0 },
+ { 2.340331f, 0.885854f, 9.666583f, 0 },
+ { 2.238577f, 0.888248f, 9.624684f, 0 },
+ { 2.110487f, 0.960074f, 9.634261f, 0 },
+ { 2.123656f, 1.030703f, 9.668977f, 0 },
+ { 2.196679f, 1.061828f, 9.731226f, 0 },
+ { 2.325965f, 0.931344f, 9.607924f, 0 },
+ { 2.492362f, 0.841561f, 9.391250f, 0 },
+ { 2.663548f, 0.991199f, 9.607924f, 0 },
+ { 2.663548f, 0.933738f, 9.994588f, 0 },
+ { 2.318783f, 0.817619f, 9.791081f, 0 },
+ { 1.841140f, 0.946906f, 9.582786f, 0 },
+ { 1.580172f, 1.162384f, 9.424768f, 0 },
+ { 1.405395f, 1.210268f, 9.209291f, 0 },
+ { 1.625662f, 1.034294f, 9.338577f, 0 },
+ { 1.824380f, 1.120486f, 9.599545f, 0 },
+ { 1.843534f, 1.120486f, 10.004165f, 0 },
+ { 2.057815f, 0.648828f, 10.226826f, 0 },
+ { 2.493559f, 0.673967f, 9.695313f, 0 },
+ { 2.706643f, 0.766144f, 9.198517f, 0 },
+ { 2.315192f, 0.678756f, 8.605952f, 0 },
+ { 1.771708f, 0.752976f, 8.489834f, 0 },
+ { 1.243787f, 0.969651f, 9.085989f, 0 },
+ { 1.102529f, 0.957680f, 9.589969f, 0 },
+ { 0.967257f, 0.730231f, 9.928748f, 0 },
+ { 0.428562f, 0.812831f, 10.267527f, 0 },
+ { 0.254982f, 1.097741f, 10.530889f, 0 },
+ { 0.830787f, 1.238999f, 10.898398f, 0 },
+ { 1.181538f, 1.061828f, 11.079161f, 0 },
+ { 1.320401f, 1.142033f, 11.312595f, 0 },
+ { 1.430535f, 0.967257f, 11.358085f, 0 },
+ { 1.130062f, 0.909796f, 11.218024f, 0 },
+ { 0.805648f, 0.810437f, 11.358085f, 0 },
+ { 0.553060f, 0.751779f, 11.392801f, 0 },
+ { 0.617704f, 0.609324f, 11.170140f, 0 },
+ { 0.879869f, 0.511162f, 11.275485f, 0 },
+ { 0.829590f, 0.587776f, 11.293442f, 0 },
+ { 0.312443f, 0.672770f, 11.064795f, 0 },
+ { 0.293290f, 0.867898f, 10.777492f, 0 },
+ { 0.509965f, 0.920570f, 10.351324f, 0 },
+ { 0.536301f, 1.023521f, 10.133451f, 0 },
+ { 0.774524f, 1.107318f, 10.016136f, 0 },
+ { 1.381453f, 0.903811f, 9.916777f, 0 },
+ { 1.589749f, 0.810437f, 9.695313f, 0 },
+ { 1.593340f, 0.811634f, 9.537296f, 0 },
+ { 1.824380f, 0.887051f, 9.521733f, 0 },
+ { 1.902192f, 0.964863f, 9.576800f, 0 },
+ { 1.674743f, 1.398213f, 9.964661f, 0 },
+ { 1.234210f, 1.440111f, 9.610319f, 0 },
+ { 1.334767f, 1.115697f, 9.568420f, 0 },
+ { 1.393424f, 1.659181f, 9.431952f, 0 },
+ { 1.001973f, 2.656365f, 9.647429f, 0 },
+ { 0.780509f, 3.013101f, 9.451105f, 0 },
+ { 1.270123f, 3.008312f, 9.417586f, 0 },
+ { 1.909375f, 3.031057f, 9.946704f, 0 },
+ { 1.747766f, 3.309982f, 9.271540f, 0 },
+ { 1.356314f, 3.300405f, 8.287523f, 0 },
+ { 0.751779f, 3.156753f, 7.970292f, 0 },
+ { 0.063446f, 3.359063f, 8.893256f, 0 },
+ { 0.136469f, 3.002327f, 8.529338f, 0 },
+ { 0.253785f, 3.015495f, 8.072045f, 0 },
+ { -0.045490f, 3.882195f, 8.609544f, 0 },
+ { 0.149638f, 4.250902f, 9.435542f, 0 },
+ { 1.071405f, 3.465605f, 9.838965f, 0 },
+ { 1.856702f, 3.051408f, 11.276682f, 0 },
+ { 2.770089f, 2.961626f, 10.789463f, 0 },
+ { 3.514686f, 2.636014f, 7.386107f, 0 },
+ { 3.545810f, 2.828747f, 7.304704f, 0 },
+ { 3.815158f, 3.108869f, 6.725308f, 0 },
+ { 3.323150f, 3.184286f, 4.733334f, 0 },
+ { 2.572568f, 3.155556f, 6.907267f, 0 },
+ { 3.299208f, 2.012325f, 9.501383f, 0 },
+ { 3.531445f, 2.621649f, 8.761575f, 0 },
+ { 4.510673f, 3.228579f, 12.022475f, 0 },
+ { 6.127955f, 1.776496f, 13.516457f, 0 },
+ { 5.631158f, 1.547850f, 11.772282f, 0 },
+ { 5.889732f, -0.058658f, 7.119154f, 0 },
+ { 4.481943f, 1.406592f, 6.591233f, 0 },
+ { 4.230552f, 1.640027f, 9.447514f, 0 },
+ { 4.007891f, 0.654814f, 11.417940f, 0 },
+ { 4.525038f, 0.415394f, 11.757916f, 0 },
+ { 4.125207f, 0.555454f, 10.915158f, 0 },
+ { 3.624819f, 0.526724f, 9.951492f, 0 },
+ { 3.210622f, 0.480037f, 10.086765f, 0 },
+ { 3.298011f, 1.221042f, 9.670174f, 0 },
+ { 3.142388f, 1.479616f, 9.212882f, 0 },
+ { 2.955640f, 1.448491f, 8.816642f, 0 },
+ { 3.101686f, 2.088940f, 9.536098f, 0 },
+ { 3.215411f, 2.460041f, 9.319424f, 0 },
+ { 3.247732f, 2.573765f, 8.180982f, 0 },
+ { 3.251324f, 2.348710f, 8.084017f, 0 },
+ { 3.372231f, 2.255337f, 9.076412f, 0 },
+ { 3.545810f, 2.310403f, 9.700102f, 0 },
+ { 3.739741f, 2.173934f, 9.156618f, 0 },
+ { 3.809172f, 1.825577f, 9.087187f, 0 },
+ { 3.727770f, 1.434126f, 9.709679f, 0 },
+ { 3.596088f, 1.175552f, 10.115496f, 0 },
+ { 3.452436f, 1.128865f, 9.888046f, 0 },
+ { 3.217805f, 1.009155f, 9.366111f, 0 },
+ { 3.197454f, 1.152807f, 9.042893f, 0 },
+ { 3.360260f, 1.312022f, 8.710100f, 0 },
+ { 3.630804f, 1.417366f, 8.561660f, 0 },
+ { 3.858253f, 1.345540f, 8.723268f, 0 },
+ { 4.018665f, 1.070207f, 9.018951f, 0 },
+ { 4.181470f, 0.847547f, 9.135071f, 0 },
+ { 4.359838f, 0.720654f, 9.123099f, 0 },
+ { 4.487928f, 0.720654f, 9.082398f, 0 },
+ { 4.380189f, 0.676362f, 9.085989f, 0 },
+ { 4.357444f, 0.766144f, 9.149436f, 0 },
+ { 4.260479f, 0.820014f, 8.944732f, 0 },
+ { 4.271253f, 0.809240f, 9.156618f, 0 },
+ { 4.315546f, 0.563834f, 9.089581f, 0 },
+ { 4.484337f, 0.366313f, 8.816642f, 1 },
+ { 4.460395f, 0.489614f, 8.925578f, 0 },
+ { 4.448424f, 0.270545f, 9.436740f, 0 },
+ { 4.559754f, 0.149638f, 9.291890f, 0 },
+ { 4.551374f, 0.318429f, 8.737633f, 0 },
+ { 4.523841f, 0.301669f, 8.877694f, 0 },
+ { 4.411314f, 0.075417f, 9.094369f, 0 },
+ { 4.203018f, -0.062249f, 9.162603f, 0 },
+ { 4.171894f, -0.029928f, 8.957899f, 0 },
+ { 4.235340f, -0.195127f, 9.186545f, 0 },
+ { 4.386175f, -0.499191f, 9.753971f, 0 },
+ { 4.505885f, -0.679953f, 10.381251f, 0 },
+ { 4.586090f, -0.547075f, 10.471034f, 0 },
+ { 4.892548f, -0.622492f, 9.931142f, 0 },
+ { 5.498281f, -0.993593f, 9.714467f, 0 },
+ { 5.907689f, -1.383848f, 9.782701f, 0 },
+ { 6.193796f, -1.279700f, 9.963464f, 0 },
+ { 6.526589f, -1.408987f, 8.862131f, 0 },
+ { 6.619963f, -2.099714f, 7.775165f, 0 },
+ { 6.324279f, -2.311600f, 7.964306f, 0 },
+ { 5.984303f, -2.063801f, 9.196122f, 0 },
+ { 5.639538f, -1.571792f, 8.735239f, 0 },
+ { 5.276817f, -1.029506f, 7.680594f, 0 },
+ { 5.011061f, -0.629675f, 7.769179f, 0 },
+ { 4.618412f, -0.131681f, 8.444344f, 0 },
+ { 4.189850f, 0.440533f, 8.780728f, 0 },
+ { 4.214989f, 1.012747f, 8.608346f, 0 },
+ { 4.211398f, 1.684320f, 8.520958f, 0 },
+ { 4.193441f, 2.132035f, 9.264358f, 0 },
+ { 4.256888f, 2.742556f, 9.690525f, 0 },
+ { 4.542994f, 3.782836f, 9.542085f, 0 },
+ { 5.335475f, 4.732136f, 8.649048f, 0 },
+ { 5.679042f, 5.600034f, 7.328646f, 0 },
+ { 5.938813f, 6.015428f, 5.878958f, 0 },
+ { 5.702984f, 5.841848f, 3.946839f, 0 },
+ { 5.978318f, 4.942826f, 2.680307f, 0 },
+ { 6.204569f, 4.444832f, 3.429692f, 0 },
+ { 6.102816f, 4.230552f, 4.288013f, 0 },
+ { 6.244074f, 4.173091f, 4.954797f, 0 },
+ { 6.355404f, 3.830720f, 5.212173f, 0 },
+ { 7.004232f, 3.655943f, 4.850649f, 0 },
+ { 7.965504f, 2.867055f, 4.497505f, 0 },
+ { 8.603558f, 3.070562f, 4.267662f, 0 },
+ { 9.105143f, 4.338291f, 4.809948f, 0 },
+ { 8.657428f, 4.848255f, 3.834311f, 0 },
+ { 7.819458f, 5.075704f, 0.330400f, 0 },
+ { 7.815866f, 5.650312f, -3.190272f, 0 },
+ { 7.144293f, 6.502647f, -10.860091f, 0 },
+ { 7.374136f, 4.941629f, -7.758405f, 0 },
+ { 8.832204f, 3.672703f, 0.448913f, 0 },
+ { 9.153027f, 3.536233f, 0.270545f, 0 },
+ { 8.880088f, 4.343079f, 0.025139f, 0 },
+ { 8.923183f, 4.811145f, -0.472855f, 0 },
+ { 9.080004f, 4.722559f, -0.604536f, 0 },
+ { 9.029726f, 4.490322f, -0.079009f, 0 },
+ { 9.149436f, 4.181470f, -0.168791f, 0 },
+ { 9.192532f, 4.162317f, -0.488417f, 0 },
+ { 9.105143f, 4.446030f, -0.647631f, 0 },
+ { 9.289496f, 4.550177f, -0.691924f, 0 },
+ { 9.198517f, 4.359838f, -0.305261f, 0 },
+ { 8.995009f, 4.213792f, 0.192733f, 0 },
+ { 8.955505f, 4.545389f, -0.177171f, 0 },
+ { 8.451527f, 5.149924f, -1.136048f, 0 },
+ { 7.418429f, 5.443214f, 0.033519f, 0 },
+ { 6.846215f, 5.254072f, 2.087743f, 0 },
+ { 7.192177f, 4.586090f, 3.452436f, 0 },
+ { 7.727281f, 3.658338f, 3.614045f, 0 },
+ { 8.420402f, 3.105278f, 2.424128f, 0 },
+ { 9.446317f, 2.968808f, 1.719036f, 0 },
+ { 9.706087f, 2.862266f, 2.051830f, 0 },
+ { 9.520536f, 2.778469f, 2.466026f, 0 },
+ { 9.439134f, 2.862266f, 3.065773f, 0 },
+ { 8.769955f, 3.287237f, 3.415326f, 0 },
+ { 8.048103f, 3.784033f, 2.977188f, 0 },
+ { 7.817063f, 3.926488f, 1.849520f, 0 },
+ { 8.365335f, 3.857056f, 0.901416f, 0 },
+ { 8.749604f, 3.778048f, 0.855927f, 0 },
+ { 7.741646f, 4.425679f, 1.212662f, 0 },
+ { 6.775586f, 5.135559f, 1.638830f, 0 },
+ { 7.811078f, 4.550177f, 3.052605f, 0 },
+ { 8.285130f, 4.247311f, 3.077744f, 0 },
+ { 8.590390f, 4.511870f, 2.555809f, 0 },
+ { 8.787911f, 4.813539f, 2.319980f, 0 },
+ { 8.252808f, 4.928461f, 1.952470f, 0 },
+ { 7.679397f, 4.880577f, 1.568201f, 0 },
+ { 7.946350f, 4.525038f, 1.531091f, 0 },
+ { 8.236049f, 4.353853f, 1.537076f, 0 },
+ { 8.593981f, 4.235340f, 1.843534f, 0 },
+ { 8.511381f, 4.062957f, 1.691502f, 0 },
+ { 8.268370f, 4.389766f, 1.649604f, 0 },
+ { 8.129506f, 5.080492f, 1.691502f, 0 },
+ { 8.280341f, 5.632356f, 1.444900f, 0 },
+ { 8.936352f, 5.948390f, 1.972821f, 0 },
+ { 10.184927f, 5.974726f, 3.705025f, 0 },
+ { 11.186900f, 5.440820f, 3.477576f, 0 },
+ { 11.239573f, 4.985922f, 1.543062f, 0 },
+ { 11.077964f, 4.748896f, 1.107318f, 0 },
+ { 10.912764f, 4.514264f, 1.528697f, 0 },
+ { 10.890019f, 3.810369f, 1.624465f, 0 },
+ { 9.329000f, 2.948457f, 1.057039f, 0 },
+ { 7.509408f, 2.424128f, 1.201888f, 0 },
+ { 7.207739f, 1.965638f, 1.035492f, 0 },
+ { 7.030569f, 1.936908f, 0.076614f, 0 },
+ { 6.907267f, 2.347513f, -0.646434f, 0 },
+ { 7.483072f, 2.871843f, -0.088585f, 0 },
+ { 8.190558f, 3.590103f, 1.675940f, 0 },
+ { 8.498213f, 3.961204f, 1.974018f, 0 },
+ { 8.552083f, 3.774457f, 1.284488f, 0 },
+ { 8.402445f, 3.895364f, 2.099714f, 0 },
+ { 8.273158f, 4.100068f, 2.432507f, 0 },
+ { 8.030147f, 4.141966f, 1.668757f, 0 },
+ { 7.900860f, 4.010285f, 1.027112f, 0 },
+ { 7.912831f, 3.936065f, 0.803254f, 0 },
+ { 7.878115f, 4.007891f, 0.687135f, 0 },
+ { 7.789530f, 4.050986f, 0.326808f, 0 },
+ { 8.213304f, 3.869027f, 0.050278f, 0 },
+ { 8.558068f, 3.667914f, 0.016759f, 0 },
+ { 8.617923f, 3.523065f, 0.405817f, 0 },
+ { 8.524549f, 3.506306f, 0.683544f, 0 },
+ { 8.438358f, 3.640381f, 0.433350f, 0 },
+ { 8.262384f, 3.952824f, 0.190339f, 0 },
+ { 8.115141f, 4.276042f, 0.306458f, 0 },
+ { 8.386883f, 4.367021f, 0.554257f, 0 },
+ { 8.827415f, 4.244917f, 0.985213f, 0 },
+ { 9.200911f, 4.337093f, 0.806845f, 0 },
+ { 10.524903f, 4.668690f, -0.792480f, 0 },
+ { 11.640601f, 4.612426f, -1.328781f, 0 },
+ { 11.060007f, 4.495111f, -0.488417f, 0 },
+ { 9.582786f, 5.093661f, 0.833182f, 0 },
+ { 9.582786f, 5.696999f, 1.917754f, 0 },
+ { 10.176547f, 5.428849f, 1.911769f, 0 },
+ { 10.186124f, 5.148727f, 2.031479f, 0 },
+ { 9.921565f, 4.803962f, 2.525881f, 0 },
+ { 9.082398f, 3.547007f, 2.503136f, 0 },
+ { 8.127112f, 2.201467f, 3.013101f, 0 },
+ { 8.121126f, 2.080560f, 3.895364f, 0 },
+ { 7.538139f, 3.345895f, 3.219002f, 0 },
+ { 7.010218f, 3.763683f, 2.015916f, 0 },
+ { 7.691368f, 3.278857f, 1.988383f, 0 },
+ { 9.029726f, 2.555809f, 2.470814f, 0 },
+ { 9.815023f, 2.255337f, 1.878250f, 0 },
+ { 9.594757f, 2.603693f, 0.724246f, 0 },
+ { 8.785517f, 3.135205f, 0.660799f, 0 },
+ { 8.186967f, 3.447648f, 1.098938f, 0 },
+ { 7.940364f, 3.257309f, 1.605311f, 0 },
+ { 7.721295f, 2.911347f, 1.705868f, 0 },
+ { 7.763194f, 2.804805f, 1.307233f, 0 },
+ { 8.137886f, 2.965217f, 1.130062f, 0 },
+ { 8.329422f, 3.266886f, 1.200691f, 0 },
+ { 8.224077f, 3.472787f, 1.547850f, 0 },
+ { 7.841005f, 3.687068f, 1.614888f, 0 },
+ { 7.527365f, 4.015073f, 1.435323f, 0 },
+ { 7.979869f, 4.304772f, 1.449688f, 0 },
+ { 6.466734f, 4.948812f, 0.798466f, 0 },
+ { 5.912477f, 5.204991f, 0.487220f, 0 },
+ { 8.413219f, 5.108026f, 3.270477f, 0 },
+ { 9.945507f, 5.396527f, 3.342303f, 0 },
+ { 10.691300f, 5.128376f, 2.308009f, 0 },
+ { 10.842135f, 4.801568f, 1.601720f, 0 },
+ { 9.938325f, 4.821919f, 1.177946f, 0 },
+ { 8.507790f, 4.671084f, 1.237801f, 0 },
+ { 8.838189f, 4.602849f, 2.097319f, 0 },
+ { 10.510538f, 4.817131f, 2.170342f, 0 },
+ { 12.216406f, 4.753684f, 1.561018f, 0 },
+ { 12.654545f, 3.897758f, 0.378284f, 0 },
+ { 11.204856f, 1.860294f, -0.105345f, 0 },
+ { 8.844175f, 0.367510f, 1.064222f, 0 },
+ { 7.511803f, 0.355539f, 1.830366f, 0 },
+ { 7.447159f, 0.761356f, 1.376665f, 0 },
+ { 7.492649f, 1.477221f, 1.074996f, 0 },
+ { 7.439977f, 1.969230f, 1.636436f, 0 },
+ { 8.178588f, 2.361878f, 2.212241f, 0 },
+ { 9.138661f, 2.566582f, 3.772062f, 0 },
+ { 8.628697f, 3.113657f, 5.457579f, 0 },
+ { 7.310690f, 3.958810f, 4.115630f, 0 },
+ { 6.605598f, 3.852268f, -0.732625f, 0 },
+ { 7.333435f, 2.907756f, -0.568623f, 0 },
+ { 7.597994f, 2.693475f, 1.482010f, 0 },
+ { 7.583629f, 2.049435f, 0.691924f, 0 },
+ { 9.470259f, 0.593762f, -0.951695f, 0 },
+ { 10.658978f, 0.784101f, -0.517147f, 0 },
+ { 10.287878f, 1.835154f, 0.626083f, 0 },
+ { 9.807840f, 2.612072f, 1.288080f, 0 },
+ { 8.984236f, 2.947260f, 0.714669f, 0 },
+ { 8.761575f, 2.649182f, -0.256179f, 0 },
+ { 8.923183f, 2.196679f, -0.543483f, 0 },
+ { 8.926775f, 1.908177f, -0.259771f, 0 },
+ { 8.783123f, 2.282870f, 0.343568f, 0 },
+ { 8.637076f, 2.968808f, 0.847547f, 0 },
+ { 9.196122f, 2.409762f, 1.001973f, 0 },
+ { 10.965436f, 2.219424f, -0.040701f, 0 },
+ { 12.228376f, 2.415748f, -2.486377f, 0 },
+ { 11.583140f, 2.370258f, -2.585736f, 0 },
+ { 10.394420f, 2.659956f, -0.113724f, 0 },
+ { 9.483426f, 3.004721f, 1.859096f, 0 },
+ { 9.071624f, 3.149570f, 2.835930f, 0 },
+ { 9.080004f, 3.254915f, 3.105278f, 0 },
+ { 9.205699f, 3.192666f, 3.260900f, 0 },
+ { 9.168590f, 2.627635f, 3.888181f, 0 },
+ { 8.310268f, 1.988383f, 3.989934f, 0 },
+ { 6.813893f, 1.753752f, 3.471590f, 0 },
+ { 6.712140f, 1.843534f, 3.975569f, 0 },
+ { 7.686579f, 1.092952f, 4.849452f, 0 },
+ { 8.225274f, -0.057461f, 5.044580f, 0 },
+ { 9.645035f, -1.168370f, 5.014652f, 0 },
+ { 10.184927f, -1.946485f, 5.219356f, 0 },
+ { 9.691722f, -2.285264f, 4.790794f, 0 },
+ { 9.776716f, -2.582145f, 4.147952f, 0 },
+ { 9.946704f, -2.756921f, 3.651155f, 0 },
+ { 9.209291f, -2.138021f, 3.199848f, 0 },
+ { 8.215697f, -1.181538f, 2.749739f, 0 },
+ { 7.557292f, -0.480037f, 2.457646f, 0 },
+ { 7.584826f, -0.227449f, 2.263716f, 0 },
+ { 8.142674f, 0.092177f, 1.337161f, 0 },
+ { 8.587996f, 0.541089f, -0.260968f, 0 },
+ { 9.088384f, 0.393846f, -1.416169f, 0 },
+ { 9.514551f, 0.010774f, -0.566228f, 0 },
+ { 9.374491f, 0.046687f, 0.678756f, 0 },
+ { 9.302665f, 0.275333f, 0.553060f, 0 },
+ { 9.515748f, 0.501585f, 0.005986f, 0 },
+ { 9.652218f, 0.667982f, -0.077812f, 0 },
+ { 9.983814f, 0.775721f, 0.123301f, 0 },
+ { 10.466246f, 0.855927f, 0.921767f, 0 },
+ { 11.034868f, 0.636857f, 1.392227f, 0 },
+ { 11.848896f, -0.166397f, 0.960074f, 0 },
+ { 12.391183f, -1.085770f, 0.053870f, 0 },
+ { 12.482162f, -1.602917f, -0.912190f, 0 },
+ { 12.077542f, -1.947682f, -1.058236f, 0 },
+ { 11.311399f, -1.833957f, -0.653617f, 0 },
+ { 10.664965f, -1.778891f, 0.350750f, 0 },
+ { 9.764745f, -2.568977f, 2.135627f, 0 },
+ { 8.580813f, -3.081336f, 2.833536f, 0 },
+ { 7.436386f, -2.665942f, 2.202664f, 0 },
+ { 6.769601f, -1.289277f, 2.110487f, 0 },
+ { 7.038948f, 0.441730f, 3.216608f, 0 },
+ { 8.155843f, 1.883038f, 4.080914f, 0 },
+ { 9.284708f, 1.380256f, 3.860648f, 0 },
+ { 9.452302f, -0.167594f, 2.287658f, 0 },
+ { 9.560040f, -0.761356f, 0.659602f, 0 },
+ { 9.497791f, -0.784101f, -0.830787f, 0 },
+ { 9.290693f, -0.700303f, -1.665166f, 0 },
+ { 8.920790f, -0.146046f, -1.515529f, 0 },
+ { 8.766363f, 0.034716f, -0.599747f, 0 },
+ { 8.348576f, -0.287304f, -0.076614f, 0 },
+ { 8.081622f, -0.591367f, 0.045490f, 0 },
+ { 7.095212f, -1.157596f, 1.143231f, 0 },
+ { 6.483494f, -1.507149f, 0.781706f, 0 },
+ { 6.980290f, -1.605311f, 0.519541f, 0 },
+ { 8.282735f, -1.045068f, 1.046265f, 0 },
+ { 7.284354f, -1.468842f, 0.658405f, 0 },
+ { 8.409628f, -2.402580f, -0.105345f, 0 },
+ { 10.058035f, -2.456449f, 2.020705f, 0 },
+ { 11.830939f, -2.476800f, 2.808397f, 0 },
+ { 12.722779f, -1.401804f, 0.846350f, 0 },
+ { 11.550818f, -0.071826f, -3.417721f, 0 },
+ { 10.788265f, -0.575805f, -7.012612f, 0 },
+ { 10.037683f, -1.229422f, -8.307875f, 0 },
+ { 9.273934f, -0.415394f, -6.815091f, 0 },
+ { 9.394841f, 0.909796f, -5.343854f, 0 },
+ { 8.586799f, 1.194706f, -2.789243f, 0 },
+ { 8.435964f, 0.617704f, -0.373495f, 0 },
+ { 8.913607f, -0.415394f, 0.533907f, 0 },
+ { 8.986629f, -1.616085f, 0.727837f, 0 },
+ { 8.663413f, -2.105699f, 1.237801f, 0 },
+ { 8.337802f, -2.239774f, 1.921346f, 0 },
+ { 8.827415f, -2.661153f, 2.705446f, 0 },
+ { 9.233232f, -3.117249f, 3.457225f, 0 },
+ { 9.272737f, -2.991553f, 3.994723f, 0 },
+ { 8.706509f, -2.610875f, 4.343079f, 0 },
+ { 7.984657f, -2.519896f, 4.351459f, 0 },
+ { 8.218092f, -3.441663f, 4.805160f, 0 },
+ { 9.825797f, -4.513067f, 4.161120f, 0 },
+ { 10.711651f, -6.089648f, 4.596864f, 0 },
+ { 11.142607f, -7.103591f, 3.855859f, 0 },
+ { 10.658978f, -6.648694f, 3.931277f, 0 },
+ { 10.046063f, -5.696999f, 4.780020f, 0 },
+ { 9.539690f, -4.680661f, 5.057748f, 0 },
+ { 7.566869f, -3.590103f, 4.860226f, 0 },
+ { 6.440398f, -3.344697f, 4.193441f, 0 },
+ { 6.586444f, -3.541022f, 3.108869f, 0 },
+ { 7.125139f, -3.699039f, 0.994790f, 0 },
+ { 8.431175f, -4.952403f, -2.618058f, 0 },
+ { 9.090777f, -5.112814f, -7.767982f, 0 },
+ { 8.908818f, -3.330332f, -9.904806f, 0 },
+ { 8.309072f, -1.798044f, -7.811078f, 0 },
+ { 8.213304f, -1.308430f, -7.665031f, 0 },
+ { 8.283933f, -1.283291f, -4.946417f, 0 },
+ { 8.704114f, -1.482010f, -1.357511f, 0 },
+ { 8.904030f, -1.138442f, -0.214281f, 0 },
+ { 9.314635f, -1.148019f, -0.150835f, 0 },
+ { 9.588771f, -0.961271f, -1.286883f, 0 },
+ { 9.983814f, -0.888248f, -3.894166f, 0 },
+ { 10.663767f, -0.937329f, -6.470325f, 0 },
+ { 11.098314f, -0.972045f, -6.862975f, 0 },
+ { 10.899596f, -1.125274f, -5.509054f, 0 },
+ { 10.278301f, -1.490390f, -3.240550f, 0 },
+ { 9.907200f, -1.777694f, -0.620098f, 0 },
+ { 8.779531f, -2.339134f, 1.922543f, 0 },
+ { 7.435188f, -2.651577f, 4.188653f, 0 },
+ { 6.859383f, -2.463632f, 5.175064f, 0 },
+ { 6.631934f, -2.347513f, 5.786782f, 0 },
+ { 6.870157f, -2.407368f, 6.654679f, 0 },
+ { 7.872130f, -2.549823f, 6.404485f, 0 },
+ { 9.375688f, -3.722981f, 3.958810f, 0 },
+ { 11.268303f, -5.311533f, -0.108936f, 0 },
+ { 12.009308f, -6.212949f, -5.847834f, 0 },
+ { 10.462654f, -5.131968f, -11.382027f, 0 },
+ { 7.885298f, -2.762907f, -11.698062f, 0 },
+ { 7.011415f, -1.878250f, -9.295482f, 0 },
+ { 6.627146f, -1.376665f, -6.520604f, 0 },
+ { 7.509408f, -1.753752f, -3.491941f, 0 },
+ { 8.297100f, -1.997960f, -0.979228f, 0 },
+ { 8.939943f, -1.666363f, -0.052672f, 0 },
+ { 8.857343f, -0.831985f, 0.451307f, 0 },
+ { 8.007402f, -0.197522f, 1.444900f, 0 },
+ { 7.693762f, 0.035913f, 3.700236f, 0 },
+ { 7.378925f, -0.505176f, 3.415326f, 0 },
+ { 5.979515f, -1.707065f, -0.325611f, 0 },
+ { 7.726084f, -3.241747f, -5.707773f, 0 },
+ { 8.884876f, -3.162738f, -12.425899f, 0 },
+ { 9.512156f, 0.045490f, -13.029237f, 0 },
+ { 8.766363f, 1.078587f, -6.048946f, 0 },
+ { 8.428782f, -0.650025f, -1.023521f, 0 },
+ { 8.790305f, -0.999579f, 1.993172f, 0 },
+ { 9.354139f, -0.804451f, 2.904165f, 0 },
+ { 10.168168f, -1.060631f, -0.969651f, 0 },
+ { 11.595111f, -1.048660f, -4.067746f, 0 },
+ { 13.030434f, -0.831985f, -6.460749f, 0 },
+ { 11.122256f, 0.191536f, -7.928393f, 0 },
+ { 9.040500f, 0.798466f, -6.001062f, 0 },
+ { 8.956702f, 0.328005f, -1.649604f, 0 },
+ { 9.064442f, 0.119710f, 0.561440f, 0 },
+ { 9.356534f, 0.306458f, 0.186748f, 0 },
+ { 10.399208f, -0.664391f, -0.585382f, 0 },
+ { 11.281470f, -1.975215f, -2.223015f, 0 },
+ { 10.011348f, -1.996763f, -4.955994f, 0 },
+ { 9.003389f, -2.169145f, -6.757630f, 0 },
+ { 8.583207f, -2.082954f, -5.573698f, 0 },
+ { 8.798685f, -1.921346f, -2.810791f, 0 },
+ { 8.974659f, -1.520317f, -1.250970f, 0 },
+ { 8.078031f, -0.515950f, 0.366313f, 0 },
+ { 6.692986f, 0.751779f, 2.220621f, 0 },
+ { 6.210555f, 1.480813f, 1.197100f, 0 },
+ { 7.131125f, 0.602141f, -2.041055f, 0 },
+ { 8.007402f, 0.234632f, -4.835087f, 0 },
+ { 8.462300f, 0.919373f, -5.451593f, 0 },
+ { 7.928393f, 1.326387f, -4.395751f, 0 },
+ { 6.871354f, 1.467645f, -2.835930f, 0 },
+ { 6.029793f, 1.558624f, -0.976834f, 0 },
+ { 5.135559f, 1.978806f, 0.028730f, 0 },
+ { 7.839808f, 1.517923f, 0.440533f, 0 },
+ { 11.483781f, 0.501585f, -0.684741f, 0 },
+ { 9.314635f, 0.493205f, -3.245338f, 0 },
+ { 8.585602f, 0.633266f, -4.395751f, 0 },
+ { 9.229641f, 0.914584f, -4.349064f, 0 },
+ { 9.064442f, 0.970848f, -3.658338f, 0 },
+ { 9.977829f, 0.555454f, -2.989159f, 0 },
+ { 9.810235f, 0.744596f, -3.434480f, 0 },
+ { 9.325409f, 1.397016f, -3.568555f, 0 },
+ { 9.496594f, 1.741781f, -3.239353f, 0 },
+ { 10.398011f, 1.367088f, -3.130417f, 0 },
+ { 10.730804f, 0.985213f, -2.704249f, 0 },
+ { 10.894808f, 1.125274f, -1.823183f, 0 },
+ { 11.997336f, 0.918176f, -2.120064f, 0 },
+ { 12.749115f, 0.508767f, -3.248930f, 0 },
+ { 12.022475f, 0.416591f, -3.471590f, 0 },
+ { 10.839741f, 0.440533f, -5.136756f, 0 },
+ { 10.629051f, 0.883460f, -8.376109f, 0 },
+ { 11.104300f, 1.051054f, -8.720874f, 0 },
+ { 10.903187f, 0.842758f, -5.995077f, 0 },
+ { 11.470613f, 0.239420f, -2.959231f, 0 },
+ { 11.871641f, -0.373495f, -0.988805f, 0 },
+ { 9.727634f, -0.487220f, 1.842337f, 0 },
+ { 6.479902f, -0.034716f, 3.007115f, 0 },
+ { 4.198230f, 0.515950f, 3.420115f, 0 },
+ { 2.959231f, 1.742978f, 3.507503f, 0 },
+ { 3.488349f, 2.468420f, 2.369061f, 0 },
+ { 5.433637f, 2.197876f, -2.054224f, 0 },
+ { 6.564897f, 2.667139f, -4.945220f, 0 },
+ { 7.331040f, 3.190272f, -2.327163f, 0 },
+ { 10.497370f, 3.070562f, 0.073023f, 0 },
+ { 10.967831f, 1.744175f, -2.159569f, 0 },
+ { 10.575182f, 0.481234f, -3.937262f, 0 },
+ { 10.111904f, 0.632069f, -2.493559f, 0 },
+ { 9.317030f, 1.003170f, -0.973242f, 0 },
+ { 8.687355f, 1.310825f, -0.208295f, 0 },
+ { 8.713691f, 1.209071f, -0.918176f, 0 },
+ { 8.810657f, 1.183932f, -2.063801f, 0 },
+ { 8.763969f, 1.406592f, -2.553414f, 0 },
+ { 8.019373f, 1.916557f, -2.993947f, 0 },
+ { 7.505817f, 2.184708f, -3.209425f, 0 },
+ { 7.550110f, 2.245760f, -2.833536f, 0 },
+ { 7.843400f, 2.250548f, -2.468420f, 0 },
+ { 8.210909f, 2.315192f, -2.410959f, 0 },
+ { 8.468286f, 2.409762f, -3.126825f, 0 },
+ { 8.376109f, 2.358287f, -3.925291f, 0 },
+ { 8.769955f, 2.191890f, -3.524262f, 0 },
+ { 9.360126f, 2.389412f, -3.094504f, 0 },
+ { 10.235206f, 2.645591f, -4.356247f, 0 },
+ { 10.369281f, 3.308784f, -5.960361f, 0 },
+ { 9.583982f, 3.739741f, -6.137532f, 0 },
+ { 9.226050f, 3.244141f, -4.029438f, 0 },
+ { 9.249992f, 3.345895f, -1.376665f, 0 },
+ { 9.409206f, 3.989934f, 0.690727f, 0 },
+ { 9.866499f, 4.723757f, 1.246181f, 0 },
+ { 11.179717f, 3.829523f, -0.788889f, 0 },
+ { 12.655742f, 2.403777f, -3.202243f, 0 },
+ { 12.897555f, 0.988805f, -4.781218f, 0 },
+ { 11.311399f, 0.092177f, -4.595667f, 0 },
+ { 8.464694f, 0.628478f, -2.196679f, 0 },
+ { 6.581656f, 1.258152f, -0.107739f, 0 },
+ { 6.366178f, 1.856702f, 0.781706f, 0 },
+ { 6.930012f, 1.881841f, 0.209493f, 0 },
+ { 7.776362f, 0.798466f, -0.858321f, 0 },
+ { 8.432373f, -0.011971f, -1.729810f, 0 },
+ { 8.836992f, -0.251391f, -2.906559f, 0 },
+ { 8.950717f, -0.007183f, -3.992329f, 0 },
+ { 8.702917f, 0.239420f, -3.590103f, 0 },
+ { 8.307875f, 0.493205f, -2.304418f, 0 },
+ { 7.890086f, 1.065419f, -1.701079f, 0 },
+ { 7.886495f, 1.557427f, -1.941696f, 0 },
+ { 8.344984f, 1.771708f, -2.163160f, 0 },
+ { 8.882483f, 2.037464f, -2.286461f, 0 },
+ { 8.996207f, 2.401383f, -2.816776f, 0 },
+ { 9.011769f, 2.549823f, -3.086124f, 0 },
+ { 9.118311f, 2.431310f, -3.043028f, 0 },
+ { 9.022543f, 2.371455f, -3.132811f, 0 },
+ { 8.949520f, 2.278081f, -3.059788f, 0 },
+ { 9.159013f, 2.190693f, -2.688687f, 0 },
+ { 9.372096f, 2.074574f, -2.284067f, 0 },
+ { 9.406812f, 2.118867f, -1.695094f, 0 },
+ { 9.403221f, 2.088940f, -1.282094f, 0 },
+ { 9.539690f, 2.345119f, -1.448491f, 0 },
+ { 9.548070f, 2.826353f, -2.069786f, 0 },
+ { 9.326607f, 3.178301f, -2.748542f, 0 },
+ { 9.295482f, 3.290828f, -2.521093f, 0 },
+ { 10.214854f, 3.190272f, -2.946063f, 0 },
+ { 11.439487f, 3.104080f, -4.429270f, 0 },
+ { 12.179296f, 2.619255f, -5.501872f, 0 },
+ { 12.650953f, 1.750160f, -4.109644f, 0 },
+ { 11.921919f, 0.913387f, -1.047463f, 0 },
+ { 10.370478f, 0.256179f, 0.997184f, 0 },
+ { 9.369702f, -0.351947f, 2.355893f, 0 },
+ { 7.855371f, -0.039504f, 2.788046f, 0 },
+ { 6.522998f, 0.343568f, 1.185129f, 0 },
+ { 6.356601f, 0.954089f, -0.673967f, 0 },
+ { 6.839033f, 1.606508f, -1.197100f, 0 },
+ { 8.453920f, 1.814804f, -0.993593f, 0 },
+ { 9.556450f, 1.889024f, -0.434547f, 0 },
+ { 9.387658f, 2.385820f, -0.804451f, 0 },
+ { 9.039303f, 2.761710f, -1.951273f, 0 },
+ { 8.828612f, 2.579751f, -2.316389f, 0 },
+ { 8.649048f, 2.282870f, -2.097319f, 0 },
+ { 8.495819f, 2.323571f, -1.842337f, 0 },
+ { 8.274356f, 2.814382f, -1.483207f, 0 },
+ { 8.022964f, 3.214214f, -1.207874f, 0 },
+ { 7.991840f, 3.224988f, -1.155202f, 0 },
+ { 8.200135f, 3.023875f, -1.380256f, 0 },
+ { 8.465892f, 2.995144f, -1.857899f, 0 },
+ { 8.471877f, 3.099292f, -2.273293f, 0 },
+ { 8.388080f, 3.125628f, -2.305615f, 0 },
+ { 8.433570f, 3.105278f, -2.064998f, 0 },
+ { 8.494622f, 3.213017f, -1.946485f, 0 },
+ { 8.669398f, 3.210622f, -2.211044f, 0 },
+ { 8.773546f, 3.099292f, -2.907756f, 0 },
+ { 8.705312f, 3.130417f, -3.394976f, 0 },
+ { 8.570039f, 3.405750f, -1.821986f, 0 },
+ { 8.820233f, 3.371034f, -1.948879f, 0 },
+ { 9.376884f, 3.290828f, -4.145557f, 0 },
+ { 9.933537f, 3.511094f, -5.504266f, 0 },
+ { 10.266330f, 3.343500f, -4.606441f, 0 },
+ { 10.199292f, 3.286040f, -2.880223f, 0 },
+ { 10.279498f, 3.457225f, -2.645591f, 0 },
+ { 10.939100f, 3.313573f, -3.344697f, 0 },
+ { 11.617856f, 1.872265f, -3.330332f, 0 },
+ { 11.283865f, 0.302866f, -2.816776f, 0 },
+ { 8.844175f, 0.647631f, -0.970848f, 0 },
+ { 6.621161f, 1.608902f, 0.426168f, 0 },
+ { 6.217738f, 2.564188f, 0.738611f, 0 },
+ { 6.973108f, 3.286040f, -0.644040f, 0 },
+ { 8.750801f, 2.173934f, -1.210268f, 0 },
+ { 10.366886f, 0.428562f, -1.189917f, 0 },
+ { 10.743973f, 0.110133f, -1.969230f, 0 },
+ { 10.110707f, 0.746990f, -2.530669f, 0 },
+ { 8.839387f, 1.630450f, -2.548626f, 0 },
+ { 7.795516f, 2.329557f, -2.692278f, 0 },
+ { 7.451948f, 2.700658f, -2.602495f, 0 },
+ { 7.606374f, 2.907756f, -2.309206f, 0 },
+ { 8.056483f, 3.023875f, -2.039858f, 0 },
+ { 8.440752f, 3.139993f, -1.945288f, 0 },
+ { 8.403643f, 3.387793f, -1.736992f, 0 },
+ { 8.280341f, 3.640381f, -1.544259f, 0 },
+ { 8.359349f, 3.767274f, -1.551442f, 0 },
+ { 8.535323f, 3.780442f, -1.817198f, 0 },
+ { 8.860934f, 3.679886f, -2.035070f, 0 },
+ { 9.190137f, 3.599680f, -2.019508f, 0 },
+ { 9.193728f, 3.535036f, -2.249351f, 0 },
+ { 8.997404f, 3.507503f, -2.041055f, 0 },
+ { 8.646653f, 3.554190f, -1.903389f, 0 },
+ { 8.368926f, 3.604468f, -1.539471f, 0 },
+ { 8.249216f, 3.761288f, -1.181538f, 0 },
+ { 8.482651f, 3.960007f, -1.823183f, 0 },
+ { 8.767561f, 3.967190f, -2.565385f, 0 },
+ { 8.783123f, 3.831917f, -3.102883f, 0 },
+ { 8.614332f, 3.810369f, -3.654746f, 0 },
+ { 8.664610f, 3.786427f, -4.390963f, 0 },
+ { 8.987827f, 4.016271f, -5.419272f, 0 },
+ { 9.724044f, 4.271253f, -6.058523f, 0 },
+ { 10.873260f, 3.715799f, -6.293155f, 0 },
+ { 12.078739f, 3.123234f, -5.191823f, 0 },
+ { 12.312174f, 2.310403f, -2.348710f, 0 },
+ { 11.079161f, 1.405395f, 1.435323f, 0 },
+ { 9.323015f, 1.150413f, 2.363075f, 0 },
+ { 7.666229f, 0.990002f, 1.956061f, 0 },
+ { 6.414062f, 1.784876f, 2.576159f, 0 },
+ { 5.781993f, 3.196257f, 2.535458f, 0 },
+ { 6.141123f, 3.886984f, 0.312443f, 0 },
+ { 7.559687f, 3.445254f, -1.547850f, 0 },
+ { 9.400826f, 2.853886f, -1.867476f, 0 },
+ { 9.509763f, 3.022678f, -3.046620f, 0 },
+ { 8.577222f, 3.954021f, -4.252100f, 0 },
+ { 8.172602f, 3.744529f, -3.657140f, 0 },
+ { 8.269567f, 3.207031f, -2.509122f, 0 },
+ { 8.135491f, 3.442860f, -1.326387f, 0 },
+ { 7.990643f, 3.718193f, -0.969651f, 0 },
+ { 8.020570f, 3.763683f, -1.307233f, 0 },
+ { 8.246822f, 3.590103f, -1.707065f, 0 },
+ { 8.331817f, 3.252521f, -1.964441f, 0 },
+ { 8.212107f, 2.896982f, -2.375046f, 0 },
+ { 8.174996f, 2.774878f, -2.712629f, 0 },
+ { 8.511381f, 2.673124f, -2.576159f, 0 },
+ { 8.957899f, 2.570174f, -2.475603f, 0 },
+ { 9.176969f, 2.637211f, -2.371455f, 0 },
+ { 9.011769f, 2.729388f, -2.279279f, 0 },
+ { 8.756786f, 2.636014f, -2.651577f, 0 },
+ { 8.678975f, 2.534261f, -3.602074f, 0 },
+ { 8.603558f, 2.598904f, -3.883393f, 0 },
+ { 8.331817f, 2.859872f, -3.414129f, 0 },
+ { 8.225274f, 3.234564f, -3.913320f, 0 },
+ { 8.254004f, 3.434480f, -4.692632f, 0 },
+ { 7.493846f, 3.796004f, -4.635171f, 0 },
+ { 7.006627f, 4.036621f, -3.604468f, 0 },
+ { 6.774389f, 4.210201f, -2.053027f, 0 },
+ { 7.364560f, 4.368218f, -1.525105f, 0 },
+ { 9.597151f, 3.620030f, -1.552639f, 0 },
+ { 11.402378f, 1.831563f, -2.977188f, 0 },
+ { 12.288232f, 0.525527f, -4.697421f, 0 },
+ { 11.234784f, 0.181959f, -4.031833f, 0 },
+ { 9.607924f, 0.386663f, -1.760934f, 0 },
+ { 9.303862f, 0.387860f, -0.899022f, 0 },
+ { 9.464272f, 0.622492f, -1.006761f, 0 },
+ { 9.558844f, 1.036689f, -1.015141f, 0 },
+ { 9.920368f, 0.829590f, -1.874659f, 0 },
+ { 10.107116f, 0.355539f, -3.119643f, 0 },
+ { 9.897623f, -0.099359f, -4.199427f, 0 },
+ { 9.185349f, -0.276530f, -4.827904f, 0 },
+ { 8.003811f, 0.396240f, -4.807554f, 0 },
+ { 7.156264f, 0.701501f, -5.153516f, 0 },
+ { 7.101197f, 0.053870f, -4.508279f, 0 },
+ { 7.503423f, -0.792480f, -3.005918f, 0 },
+ { 8.105564f, -1.297656f, -1.985989f, 0 },
+ { 8.426387f, -1.464053f, -1.731007f, 0 },
+ { 8.543703f, -1.358709f, -1.970427f, 0 },
+ { 8.645456f, -1.344343f, -2.333148f, 0 },
+ { 8.863329f, -1.558624f, -2.579751f, 0 },
+ { 8.951914f, -1.918951f, -3.125628f, 0 },
+ { 8.690947f, -1.860294f, -3.743332f, 0 },
+ { 8.432373f, -1.956061f, -4.167105f, 0 },
+ { 8.066060f, -2.053027f, -4.120419f, 0 },
+ { 7.721295f, -2.195482f, -3.816355f, 0 },
+ { 8.643063f, -2.871843f, -3.706222f, 0 },
+ { 9.257174f, -3.336318f, -3.749317f, 0 },
+ { 8.542506f, -3.499123f, -4.060563f, 0 },
+ { 7.796712f, -4.046198f, -3.117249f, 0 },
+ { 9.125494f, -4.362233f, -1.403001f, 0 },
+ { 10.022121f, -4.328714f, 0.181959f, 0 },
+ { 9.467864f, -4.274844f, 0.749385f, 0 },
+ { 8.961491f, -3.708616f, -0.160411f, 0 },
+ { 9.466667f, -3.045423f, -1.674743f, 0 },
+ { 10.119086f, -2.406171f, -2.686292f, 0 },
+ { 10.562014f, -1.898601f, -3.098095f, 0 },
+ { 10.864880f, -1.751357f, -2.885011f, 0 },
+ { 11.161760f, -1.505952f, -2.561794f, 0 },
+ { 11.179717f, -1.201888f, -3.112460f, 0 },
+ { 10.089159f, -1.221042f, -4.156332f, 0 },
+ { 7.001838f, -0.794874f, -3.333924f, 0 },
+ { 5.855016f, -0.556652f, -2.070983f, 0 },
+ { 5.731715f, -0.816422f, -1.926134f, 0 },
+ { 5.664677f, -0.999579f, -2.529472f, 0 },
+ { 5.078098f, -0.949300f, -3.558978f, 0 },
+ { 4.414905f, -0.963666f, -4.428073f, 0 },
+ { 4.523841f, -1.501163f, -5.098449f, 0 },
+ { 4.826707f, -2.104502f, -5.495886f, 0 },
+ { 5.408498f, -2.646788f, -4.911702f, 0 },
+ { 7.024583f, -3.204637f, -3.964795f, 0 },
+ { 8.048103f, -3.580526f, -2.898179f, 0 },
+ { 8.647851f, -4.011482f, -2.421733f, 0 },
+ { 8.653836f, -3.981555f, -2.619255f, 0 },
+ { 8.593981f, -3.761288f, -2.304418f, 0 },
+ { 9.291890f, -3.605665f, -1.768117f, 0 },
+ { 10.421953f, -3.653549f, -2.403777f, 0 },
+ { 10.747564f, -4.040213f, -3.653549f, 0 },
+ { 11.080358f, -4.187456f, -3.568555f, 0 },
+ { 11.591519f, -4.479548f, -3.045423f, 0 },
+ { 12.521667f, -4.991907f, -3.197454f, 0 },
+ { 12.606661f, -5.301956f, -3.508700f, 0 },
+ { 12.215209f, -5.559332f, -3.132811f, 0 },
+ { 11.514905f, -5.664677f, -2.713826f, 0 },
+ { 10.378858f, -5.208582f, -2.182313f, 0 },
+ { 9.202108f, -4.546586f, -1.216254f, 0 },
+ { 8.280341f, -4.206610f, -0.418985f, 0 },
+ { 7.450751f, -4.313151f, 0.014365f, 0 },
+ { 7.369348f, -4.450818f, 0.191536f, 0 },
+ { 7.760799f, -4.636368f, 0.500388f, 0 },
+ { 8.317451f, -4.886562f, 0.723048f, 0 },
+ { 9.074018f, -4.566936f, 1.207874f, 0 },
+ { 9.854527f, -4.408919f, 1.930922f, 0 },
+ { 9.587574f, -3.520671f, 2.163160f, 0 },
+ { 7.569263f, -1.774102f, 2.106896f, 0 },
+ { 6.695381f, -1.079784f, 3.076547f, 0 },
+ { 6.536166f, -1.090558f, 2.916136f, 0 },
+ { 7.067678f, -1.138442f, 1.533485f, 0 },
+ { 8.107959f, -0.973242f, -2.732979f, 0 },
+ { 9.166195f, -1.021126f, -7.004232f, 0 },
+ { 9.587574f, -1.686714f, -7.388502f, 0 },
+ { 9.416389f, -1.589749f, -5.742489f, 0 },
+ { 8.761575f, -1.954864f, -2.201467f, 0 },
+ { 8.656230f, -2.102108f, -0.766144f, 0 },
+ { 8.858541f, -2.230197f, -0.316034f, 0 },
+ { 9.175772f, -2.531867f, 0.506373f, 0 },
+ { 9.725241f, -2.759315f, 1.114500f, 0 },
+ { 10.110707f, -2.782060f, 0.573411f, 0 },
+ { 9.934733f, -2.370258f, 0.377087f, 0 },
+ { 9.617501f, -2.214635f, -0.361524f, 0 },
+ { 9.494201f, -2.189496f, -1.580172f, 0 },
+ { 9.704890f, -2.115276f, -2.446872f, 0 },
+ { 9.459484f, -2.057815f, -2.561794f, 0 },
+ { 9.435542f, -2.030282f, -2.092531f, 0 },
+ { 9.346957f, -1.996763f, -1.692699f, 0 },
+ { 9.319424f, -2.132035f, -1.470039f, 0 },
+ { 9.446317f, -2.430113f, -1.489192f, 0 },
+ { 9.703692f, -2.687490f, -1.851914f, 0 },
+ { 9.847345f, -2.719811f, -2.027887f, 0 },
+ { 9.732423f, -2.558203f, -2.355893f, 0 },
+ { 9.549267f, -2.409762f, -2.292447f, 0 },
+ { 9.601939f, -2.473209f, -1.733401f, 0 },
+ { 9.971844f, -2.697066f, -1.748963f, 0 },
+ { 10.626657f, -3.017889f, -1.353920f, 0 },
+ { 11.123453f, -3.641578f, -1.219845f, 0 },
+ { 11.133030f, -4.373006f, -1.596931f, 0 },
+ { 10.457866f, -4.733334f, -2.841915f, 0 },
+ { 9.214079f, -4.768049f, -3.096898f, 0 },
+ { 7.812275f, -4.437650f, -1.672349f, 0 },
+ { 6.750447f, -4.045001f, 0.490811f, 0 },
+ { 6.290761f, -3.907335f, 1.800438f, 0 },
+ { 6.235694f, -4.234143f, 1.041477f, 0 },
+ { 7.199359f, -4.850649f, -2.310403f, 0 },
+ { 8.538915f, -4.039015f, -3.203440f, 0 },
+ { 9.186545f, -2.800017f, -4.298786f, 0 },
+ { 9.197320f, -2.372652f, -4.565740f, 0 },
+ { 9.024938f, -1.969230f, -4.732136f, 0 },
+ { 8.607149f, -1.534682f, -4.993104f, 0 },
+ { 7.957124f, -1.502361f, -4.132390f, 0 },
+ { 7.705733f, -1.678334f, -2.855083f, 0 },
+ { 7.752420f, -1.753752f, -1.508346f, 0 },
+ { 8.034935f, -1.557427f, -0.313640f, 0 },
+ { 7.546519f, -1.106120f, 0.447715f, 0 },
+ { 6.752841f, -0.906205f, 1.265335f, 0 },
+ { 6.906070f, -1.195903f, 1.750160f, 0 },
+ { 7.101197f, -1.496375f, 1.381453f, 0 },
+ { 7.223301f, -1.824380f, 0.837970f, 0 },
+ { 7.374136f, -2.153583f, 0.274136f, 0 },
+ { 7.323858f, -2.404974f, -0.490811f, 0 },
+ { 7.491452f, -2.598904f, -1.482010f, 0 },
+ { 7.899663f, -2.819170f, -2.953246f, 0 },
+ { 8.497016f, -3.117249f, -4.119221f, 0 },
+ { 9.168590f, -3.533839f, -6.064509f, 0 },
+ { 9.417586f, -3.632001f, -6.847412f, 0 },
+ { 9.738409f, -3.272871f, -6.969516f, 0 },
+ { 9.919171f, -2.809594f, -6.331462f, 0 },
+ { 9.987406f, -2.677913f, -4.316743f, 0 },
+ { 9.593559f, -2.616861f, -3.142388f, 0 },
+ { 9.325409f, -2.674321f, -3.335121f, 0 },
+ { 9.167392f, -2.829944f, -3.014298f, 0 },
+ { 9.194925f, -3.105278f, -2.008734f, 0 },
+ { 9.613911f, -3.459619f, -2.535458f, 0 },
+ { 10.720031f, -4.271253f, -3.035846f, 0 },
+ { 11.372450f, -5.182246f, -2.151189f, 0 },
+ { 10.842135f, -5.142742f, -0.895431f, 0 },
+ { 9.220064f, -4.575316f, 0.703895f, 0 },
+ { 7.491452f, -4.206610f, 1.714247f, 0 },
+ { 6.665453f, -4.437650f, 2.238577f, 0 },
+ { 7.479481f, -4.993104f, 3.179498f, 0 },
+ { 8.750801f, -5.791570f, 2.965217f, 0 },
+ { 9.563632f, -6.527786f, 1.649604f, 0 },
+ { 9.215276f, -6.408076f, 0.693121f, 0 },
+ { 8.240837f, -5.831074f, -0.050278f, 0 },
+ { 7.832625f, -5.178655f, -0.134075f, 0 },
+ { 6.849806f, -4.006694f, 0.402226f, 0 },
+ { 6.220132f, -3.184286f, -0.293290f, 0 },
+ { 6.138729f, -3.074153f, 0.524330f, 0 },
+ { 7.079649f, -3.414129f, -1.236604f, 0 },
+ { 7.497437f, -3.640381f, -2.803608f, 0 },
+ { 7.586023f, -3.466802f, -3.118446f, 0 },
+ { 7.608768f, -3.038240f, -3.612848f, 0 },
+ { 7.706930f, -2.804805f, -3.219002f, 0 },
+ { 7.848188f, -2.905362f, -3.991132f, 0 },
+ { 8.244428f, -3.093307f, -4.150346f, 0 },
+ { 8.699326f, -2.829944f, -4.168303f, 0 },
+ { 8.613134f, -2.391806f, -3.326741f, 0 },
+ { 8.754393f, -2.479194f, -2.382229f, 0 },
+ { 9.027331f, -2.700658f, -2.299629f, 0 },
+ { 9.117114f, -2.700658f, -2.309206f, 0 },
+ { 9.198517f, -2.815579f, -1.631647f, 0 },
+ { 9.265554f, -2.861069f, -0.093374f, 0 },
+ { 9.057259f, -2.791637f, 0.238223f, 0 },
+ { 9.398433f, -2.922121f, 0.565031f, 0 },
+ { 9.453499f, -2.892194f, 0.474052f, 0 },
+ { 9.267948f, -2.750936f, 0.118513f, 0 },
+ { 9.593559f, -2.905362f, 0.064643f, 0 },
+ { 9.916777f, -3.290828f, 0.547075f, 0 },
+ { 9.968252f, -3.573344f, 0.733822f, 0 },
+ { 10.299849f, -4.295195f, -2.195482f, 0 },
+ { 10.365689f, -5.293576f, -3.512291f, 0 },
+ { 10.035290f, -6.093239f, -3.232170f, 0 },
+ { 9.386461f, -5.595245f, -0.808043f, 0 },
+ { 7.836217f, -5.037397f, -1.355117f, 0 },
+ { 7.586023f, -4.918884f, -0.707486f, 0 },
+ { 8.003811f, -5.001484f, -1.582566f, 0 },
+ { 8.651442f, -5.248086f, -3.233367f, 0 },
+ { 8.804670f, -4.791991f, -2.944866f, 0 },
+ { 7.832625f, -3.906137f, -2.813185f, 0 },
+ { 6.901282f, -3.084927f, -2.161963f, 0 },
+ { 6.792346f, -2.578553f, -1.455674f, 0 },
+ { 7.048525f, -2.341528f, -1.499966f, 0 },
+ { 7.358574f, -2.551020f, -1.587355f, 0 },
+ { 7.480678f, -2.724600f, -2.063801f, 0 },
+ { 7.368151f, -2.518698f, -1.176749f, 0 },
+ { 7.399275f, -2.738965f, -1.344343f, 0 },
+ { 7.823049f, -2.987962f, -1.318007f, 0 },
+ { 7.832625f, -2.798820f, -1.460462f, 0 },
+ { 7.547716f, -2.303221f, -1.837548f, 0 },
+ { 7.366954f, -2.001551f, -2.175131f, 0 },
+ { 7.653060f, -2.163160f, -2.703052f, 0 },
+ { 7.995431f, -2.481588f, -3.134008f, 0 },
+ { 8.619121f, -2.681504f, -3.325544f, 0 },
+ { 8.935155f, -2.726994f, -4.122813f, 0 },
+ { 9.391250f, -2.748542f, -4.546586f, 0 },
+ { 9.763548f, -2.730585f, -4.378992f, 0 },
+ { 10.044867f, -2.233789f, -5.177458f, 0 },
+ { 10.336959f, -2.200270f, -5.360614f, 0 },
+ { 10.339353f, -2.786849f, -4.867409f, 0 },
+ { 10.545254f, -3.339909f, -4.352656f, 0 },
+ { 10.761930f, -3.875013f, -3.894166f, 0 },
+ { 10.625460f, -4.471169f, -3.217805f, 0 },
+ { 9.902411f, -4.558557f, -2.613269f, 0 },
+ { 8.913607f, -3.739741f, -1.416169f, 0 },
+ { 8.100776f, -3.011904f, 1.066616f, 0 },
+ { 7.064087f, -3.003524f, 3.325544f, 0 },
+ { 6.754038f, -3.834311f, 5.176260f, 0 },
+ { 7.175417f, -4.786006f, 7.241258f, 0 },
+ { 7.382516f, -5.288788f, 6.618766f, 0 },
+ { 8.252808f, -5.669466f, 4.605244f, 0 },
+ { 9.193728f, -6.020216f, 2.553414f, 0 },
+ { 9.549267f, -5.853819f, 0.247800f, 0 },
+ { 8.914804f, -5.385753f, -0.512359f, 0 },
+ { 8.572433f, -4.914096f, -1.824380f, 0 },
+ { 8.161828f, -3.992329f, -3.460816f, 0 },
+ { 7.699748f, -2.631226f, -3.369837f, 0 },
+ { 7.472299f, -2.184708f, -1.789665f, 0 },
+ { 7.617147f, -2.147598f, -1.602917f, 0 },
+ { 7.779953f, -1.984792f, -1.983595f, 0 },
+ { 8.039723f, -1.725021f, -2.574962f, 0 },
+ { 8.286326f, -1.487995f, -2.779666f, 0 },
+ { 8.273158f, -1.437717f, -2.838324f, 0 },
+ { 8.219289f, -1.659181f, -2.960428f, 0 },
+ { 8.444344f, -1.786073f, -2.853886f, 0 },
+ { 8.597572f, -1.544259f, -2.703052f, 0 },
+ { 8.681370f, -1.361103f, -2.530669f, 0 },
+ { 8.962687f, -1.437717f, -2.333148f, 0 },
+ { 9.131479f, -1.589749f, -1.939302f, 0 },
+ { 9.050076f, -1.765723f, -1.616085f, 0 },
+ { 9.041697f, -1.929725f, -1.650801f, 0 },
+ { 9.260766f, -2.108093f, -1.804030f, 0 },
+ { 9.653415f, -2.413354f, -2.396594f, 0 },
+ { 9.742000f, -2.288855f, -1.392227f, 0 },
+ { 9.372096f, -1.877053f, -0.934935f, 0 },
+ { 9.860513f, -2.138021f, -1.429337f, 0 },
+ { 10.694892f, -2.595313f, -1.260546f, 0 },
+ { 11.317384f, -2.925713f, -0.727837f, 0 },
+ { 11.739960f, -3.251324f, -0.887051f, 0 },
+ { 11.595111f, -3.508700f, -2.597707f, 0 },
+ { 10.346536f, -4.009088f, -4.683055f, 0 },
+ { 9.039303f, -4.310757f, -4.425679f, 0 },
+ { 8.474271f, -4.114433f, -2.164357f, 0 },
+ { 8.452724f, -3.538628f, -0.290895f, 0 },
+ { 8.659822f, -3.467999f, 0.682347f, 0 },
+ { 8.937549f, -3.530248f, 0.061052f, 0 },
+ { 8.566448f, -2.431310f, -0.852335f, 0 },
+ { 8.067257f, -1.312022f, -1.903389f, 0 },
+ { 8.377306f, -1.103726f, -1.419761f, 0 },
+ { 8.070848f, -1.212662f, -2.258928f, 0 },
+ { 8.067257f, -1.584960f, -2.608481f, 0 },
+ { 7.800304f, -1.910572f, -3.106475f, 0 },
+ { 7.347800f, -2.184708f, -3.384202f, 0 },
+ { 7.348997f, -2.264913f, -2.862266f, 0 },
+ { 7.765588f, -2.091334f, -1.757343f, 0 },
+ { 7.970292f, -1.810015f, -1.043871f, 0 },
+ { 8.240837f, -1.757343f, -0.768538f, 0 },
+ { 8.485045f, -1.801636f, -0.395043f, 0 },
+ { 8.564054f, -1.716641f, -0.083797f, 0 },
+ { 8.844175f, -1.758540f, -0.086191f, 0 },
+ { 9.075215f, -1.959653f, -0.597353f, 0 },
+ { 9.182955f, -2.019508f, -1.362300f, 0 },
+ { 9.318227f, -2.041055f, -1.719036f, 0 },
+ { 9.363716f, -2.062603f, -2.341528f, 0 },
+ { 9.173378f, -1.891418f, -2.298432f, 0 },
+ { 9.066835f, -1.715444f, -2.759315f, 0 },
+ { 9.272737f, -1.723824f, -2.409762f, 0 },
+ { 9.367308f, -1.574187f, -1.908177f, 0 },
+ { 9.205699f, -1.302445f, -1.863885f, 0 },
+ { 9.190137f, -1.492784f, -1.729810f, 0 },
+ { 9.236824f, -1.769314f, -1.782482f, 0 },
+ { 9.534902f, -2.070983f, -2.035070f, 0 },
+ { 10.097539f, -2.543838f, -1.827972f, 0 },
+ { 10.522510f, -2.759315f, -2.231395f, 0 },
+ { 10.928327f, -2.730585f, -2.249351f, 0 },
+ { 11.123453f, -2.719811f, -1.364694f, 0 },
+ { 10.806222f, -2.395397f, -0.016759f, 0 },
+ { 9.789884f, -1.911769f, 0.586579f, 0 },
+ { 8.809459f, -2.251745f, 0.070629f, 0 },
+ { 8.212107f, -3.077744f, 0.161609f, 0 },
+ { 8.462300f, -3.548204f, 1.023521f, 0 },
+ { 8.960294f, -3.872619f, 1.528697f, 0 },
+ { 9.425965f, -4.192245f, 1.470039f, 0 },
+ { 9.999376f, -4.453212f, 1.244984f, 0 },
+ { 9.986209f, -4.420890f, 0.696712f, 0 },
+ { 9.368505f, -4.025847f, 0.286107f, 0 },
+ { 8.735239f, -3.618833f, 0.021548f, 0 },
+ { 8.062469f, -3.245338f, -0.644040f, 0 },
+ { 7.747632f, -2.964020f, -1.055842f, 0 },
+ { 7.532154f, -2.788046f, -0.582988f, 0 },
+ { 7.694959f, -2.956837f, -0.339976f, 0 },
+ { 8.044512f, -3.439268f, -0.831985f, 0 },
+ { 8.398854f, -3.869027f, -1.472433f, 0 },
+ { 8.674187f, -3.954021f, -1.877053f, 0 },
+ { 8.778335f, -3.669111f, -1.696291f, 0 },
+ { 8.744816f, -3.325544f, -2.801214f, 0 },
+ { 9.170983f, -3.161541f, -2.974794f, 0 },
+ { 8.848964f, -2.875434f, -3.779245f, 0 },
+ { 8.207318f, -2.503136f, -4.129995f, 0 },
+ { 8.026556f, -2.263716f, -4.618412f, 0 },
+ { 8.368926f, -2.215832f, -4.732136f, 0 },
+ { 8.961491f, -2.413354f, -3.232170f, 0 },
+ { 9.333789f, -2.713826f, -1.446097f, 0 },
+ { 9.246401f, -2.952049f, -0.226252f, 0 },
+ { 8.790305f, -2.959231f, 0.460884f, 0 },
+ { 8.155843f, -2.730585f, 0.590170f, 0 },
+ { 7.708127f, -2.560597f, 0.263362f, 0 },
+ { 7.612359f, -2.658759f, 0.471657f, 0 },
+ { 8.567645f, -3.356668f, 0.718260f, 0 },
+ { 10.579970f, -4.683055f, 1.223436f, 0 },
+ { 12.627011f, -5.783190f, 2.347513f, 0 },
+ { 11.851291f, -5.154713f, 2.021902f, 0 },
+ { 8.839387f, -3.144782f, -3.478773f, 0 },
+ { 8.154645f, -3.208228f, -8.307875f, 0 },
+ { 9.410403f, -4.708194f, -0.691924f, 0 },
+ { 9.804249f, -4.711786f, 1.703473f, 0 },
+ { 9.985011f, -4.288013f, -2.111685f, 0 },
+ { 9.917974f, -3.863042f, -0.809240f, 0 },
+ { 9.002192f, -3.196257f, -0.214281f, 0 },
+ { 8.477862f, -2.410959f, -0.794874f, 0 },
+ { 8.450329f, -1.956061f, -0.992396f, 0 },
+ { 8.361744f, -1.842337f, -1.545456f, 0 },
+ { 8.178588f, -1.766920f, -1.849520f, 0 },
+ { 8.061272f, -1.640027f, -2.190693f, 0 },
+ { 7.553701f, -1.369482f, -2.219424f, 0 },
+ { 7.180206f, -1.359906f, -2.621649f, 0 },
+ { 7.414838f, -1.776496f, -3.306390f, 0 },
+ { 7.927197f, -1.954864f, -3.851071f, 0 },
+ { 8.195347f, -1.989580f, -4.341882f, 0 },
+ { 8.341393f, -2.115276f, -4.428073f, 0 },
+ { 8.359349f, -2.343922f, -4.118024f, 0 },
+ { 8.401248f, -2.454055f, -3.053802f, 0 },
+ { 8.487439f, -2.311600f, -2.007537f, 0 },
+ { 8.573630f, -2.114079f, -1.933317f, 0 },
+ { 8.593981f, -2.120064f, -2.171540f, 0 },
+ { 8.409628f, -2.209847f, -2.895785f, 0 },
+ { 8.107959f, -2.146400f, -2.240971f, 0 },
+ { 8.183376f, -1.910572f, -1.847125f, 0 },
+ { 8.455117f, -1.956061f, -1.793256f, 0 },
+ { 8.859737f, -2.144006f, -2.002748f, 0 },
+ { 9.208094f, -2.382229f, -2.218226f, 0 },
+ { 9.277525f, -2.410959f, -2.454055f, 0 },
+ { 9.018951f, -2.202664f, -2.607284f, 0 },
+ { 8.807065f, -1.917754f, -3.163935f, 0 },
+ { 8.732844f, -1.766920f, -3.756500f, 0 },
+ { 8.488636f, -1.750160f, -3.998314f, 0 },
+ { 8.299495f, -1.744175f, -3.921700f, 0 },
+ { 8.184573f, -1.738189f, -3.780442f, 0 },
+ { 8.080425f, -1.723824f, -3.687068f, 0 },
+ { 7.970292f, -1.810015f, -3.618833f, 0 },
+ { 7.970292f, -1.811212f, -3.657140f, 0 },
+ { 7.902057f, -1.886630f, -3.809172f, 0 },
+ { 8.113944f, -2.105699f, -4.045001f, 0 },
+ { 8.355759f, -2.325965f, -3.809172f, 0 },
+ { 8.410825f, -2.215832f, -3.554190f, 0 },
+ { 8.657428f, -2.017113f, -3.271674f, 0 },
+ { 8.823824f, -2.086545f, -2.360681f, 0 },
+ { 8.422796f, -2.122458f, -1.601720f, 0 },
+ { 8.717282f, -1.810015f, -1.653195f, 0 },
+ { 9.615108f, -1.516726f, -1.790862f, 0 },
+ { 9.629473f, -1.593340f, -3.891772f, 0 },
+ { 10.530889f, -2.082954f, -6.175839f, 0 },
+ { 10.994166f, -2.302023f, -4.498702f, 0 },
+ { 9.297876f, -1.614888f, -3.004721f, 0 },
+ { 7.264003f, -0.905008f, -0.735019f, 0 },
+ { 7.615951f, -1.219845f, 0.140061f, 0 },
+ { 8.942337f, -1.484404f, -0.383072f, 0 },
+ { 10.296257f, -2.246957f, -0.167594f, 0 },
+ { 11.376041f, -2.970005f, 0.173579f, 0 },
+ { 10.957057f, -2.890997f, -0.011971f, 0 },
+ { 10.125072f, -2.902968f, -0.169988f, 0 },
+ { 9.543282f, -2.770089f, -0.092177f, 0 },
+ { 9.082398f, -2.452858f, 0.432153f, 0 },
+ { 8.699326f, -1.927331f, 0.356736f, 0 },
+ { 8.416810f, -1.535879f, 0.282516f, 0 },
+ { 7.886495f, -0.933738f, -0.872686f, 0 },
+ { 8.098382f, -0.636857f, 1.728612f, 0 },
+ { 8.451527f, -0.509965f, 1.399410f, 0 },
+ { 9.103946f, -0.675164f, 0.752976f, 0 },
+ { 9.591166f, -0.895431f, 0.257377f, 0 },
+ { 9.684539f, -0.997184f, -0.475249f, 0 },
+ { 9.461879f, -0.949300f, -0.150835f, 0 },
+ { 9.260766f, -0.992396f, -0.387860f, 0 },
+ { 9.248795f, -1.278503f, -0.785298f, 0 },
+ { 9.558844f, -1.503558f, -0.909796f, 0 },
+ { 10.126269f, -1.493981f, -0.755370f, 0 },
+ { 10.194504f, -1.428140f, -0.456095f, 0 },
+ { 10.286680f, -1.380256f, -0.415394f, 0 },
+ { 10.317805f, -1.411381f, -0.383072f, 0 },
+ { 10.150211f, -1.398213f, -0.389058f, 0 },
+ { 9.968252f, -1.315613f, -0.265756f, 0 },
+ { 9.878469f, -1.361103f, -0.398634f, 0 },
+ { 9.900018f, -1.498769f, -0.544681f, 0 },
+ { 9.877273f, -1.466448f, -1.072602f, 0 },
+ { 9.799460f, -1.371877f, -1.558624f, 0 },
+ { 9.544478f, -1.285685f, -1.635239f, 0 },
+ { 9.278723f, -1.120486f, -1.229422f, 0 },
+ { 9.204502f, -1.103726f, -0.731428f, 0 },
+ { 9.202108f, -1.182735f, -0.477643f, 0 },
+ { 9.107537f, -1.255758f, 0.050278f, 0 },
+ { 8.898045f, -1.216254f, 0.428562f, 0 },
+ { 8.766363f, -1.130062f, 0.016759f, 0 },
+ { 8.706509f, -1.060631f, -0.681150f, 0 },
+ { 8.720874f, -1.039083f, -1.149216f, 0 },
+ { 9.220064f, -1.296459f, -1.238999f, 0 },
+ { 10.467443f, -1.696291f, -0.963666f, 0 },
+ { 11.536453f, -1.877053f, -1.309627f, 0 },
+ { 11.785450f, -1.964441f, -2.002748f, 0 },
+ { 11.763902f, -2.772484f, -3.430889f, 0 },
+ { 11.314989f, -3.549402f, -5.012258f, 0 },
+ { 9.746788f, -3.913320f, -4.704603f, 0 },
+ { 8.693340f, -4.775232f, -3.177104f, 0 },
+ { 8.215697f, -5.501872f, -1.019929f, 0 },
+ { 7.824246f, -5.450397f, 0.652420f, 0 },
+ { 7.545321f, -4.419693f, 0.913387f, 0 },
+ { 7.720098f, -3.350683f, -0.903811f, 0 },
+ { 7.936773f, -2.221818f, -3.144782f, 0 },
+ { 8.151054f, -1.693897f, -4.214989f, 0 },
+ { 7.918817f, -1.904586f, -3.973175f, 0 },
+ { 7.843400f, -2.130838f, -3.676294f, 0 },
+ { 7.507014f, -2.142809f, -2.937684f, 0 },
+ { 7.426809f, -2.203861f, -2.422930f, 0 },
+ { 7.520183f, -2.273293f, -2.515107f, 0 },
+ { 7.607571f, -2.073377f, -2.264913f, 0 },
+ { 7.933182f, -1.736992f, -2.202664f, 0 },
+ { 8.366532f, -1.519120f, -2.388215f, 0 },
+ { 8.694537f, -1.306036f, -2.293644f, 0 },
+ { 8.757984f, -1.061828f, -1.953667f, 0 },
+ { 8.790305f, -1.007958f, -1.453279f, 0 },
+ { 8.921987f, -1.209071f, -0.818816f, 0 },
+ { 8.914804f, -1.312022f, -0.050278f, 0 },
+ { 8.711297f, -1.246181f, 0.578199f, 0 },
+ { 8.656230f, -1.249772f, 0.275333f, 0 },
+ { 8.939943f, -1.387439f, -0.482431f, 0 },
+ { 9.241612f, -1.586158f, -0.899022f, 0 },
+ { 9.497791f, -1.592143f, -1.055842f, 0 },
+ { 9.671371f, -1.361103f, -1.174355f, 0 },
+ { 9.715664f, -1.000776f, -1.108515f, 0 },
+ { 9.829389f, -0.665588f, -1.197100f, 0 },
+ { 9.860513f, -0.462081f, -1.599326f, 0 },
+ { 9.821009f, -0.490811f, -2.014719f, 0 },
+ { 9.856922f, -0.694318f, -2.319980f, 0 },
+ { 10.049655f, -1.024718f, -2.524684f, 0 },
+ { 10.514130f, -1.493981f, -1.921346f, 0 },
+ { 10.843332f, -1.666363f, -1.532288f, 0 },
+ { 11.147395f, -1.837548f, -1.659181f, 0 },
+ { 11.727989f, -2.455252f, -1.991974f, 0 },
+ { 12.029658f, -3.106475f, -0.149638f, 0 },
+ { 10.973816f, -3.138796f, 2.298432f, 0 },
+ { 9.229641f, -2.894588f, 2.509122f, 0 },
+ { 8.149857f, -2.712629f, 1.924937f, 0 },
+ { 7.643484f, -3.005918f, 1.844731f, 0 },
+ { 7.934379f, -3.333924f, 1.647210f, 0 },
+ { 8.604755f, -3.669111f, 1.010352f, 0 },
+ { 9.069230f, -3.952824f, 0.132878f, 0 },
+ { 9.255978f, -3.986343f, -0.216675f, 0 },
+ { 9.123099f, -3.824735f, 0.580594f, 0 },
+ { 8.698129f, -3.511094f, 0.641646f, 0 },
+ { 8.346182f, -3.187877f, 1.156399f, 0 },
+ { 8.060075f, -2.959231f, 1.389833f, 0 },
+ { 7.915226f, -2.890997f, 1.458068f, 0 },
+ { 8.005008f, -3.084927f, 1.079784f, 0 },
+ { 7.953533f, -3.286040f, -0.043096f, 0 },
+ { 8.371321f, -3.442860f, -2.762907f, 0 },
+ { 8.309072f, -3.312376f, -4.205412f, 0 },
+ { 8.149857f, -2.729388f, -3.705025f, 0 },
+ { 7.922408f, -2.109290f, -3.027466f, 0 },
+ { 7.881707f, -1.766920f, -3.349486f, 0 },
+ { 7.872130f, -1.252167f, -4.329911f, 0 },
+ { 8.201332f, -0.677559f, -3.967190f, 0 },
+ { 8.599967f, -0.760159f, -3.022678f, 0 },
+ { 8.785517f, -1.183932f, -2.488771f, 0 },
+ { 9.235627f, -1.813607f, -1.701079f, 0 },
+ { 9.714467f, -2.225409f, -0.598550f, 0 },
+ { 9.683342f, -2.312797f, 0.444124f, 0 },
+ { 9.585180f, -2.341528f, 0.554257f, 0 },
+ { 9.459484f, -2.260125f, 0.377087f, 0 },
+ { 9.476244f, -2.183511f, 0.265756f, 0 },
+ { 9.752774f, -2.238577f, 0.000000f, 0 },
+ { 10.631446f, -2.571371f, 0.381875f, 0 },
+ { 11.678908f, -2.847901f, 1.048660f, 0 },
+ { 11.956635f, -2.754527f, 1.926134f, 0 },
+ { 11.179717f, -2.287658f, 1.643618f, 0 },
+ { 9.974237f, -1.684320f, -0.531512f, 0 },
+ { 9.130282f, -1.295262f, 0.968454f, 0 },
+ { 8.774743f, -0.958877f, 1.218648f, 0 },
+ { 8.473074f, -0.690727f, 1.455674f, 0 },
+ { 8.464694f, -0.987608f, 0.141258f, 0 },
+ { 9.175772f, -1.808818f, -3.797201f, 0 },
+ { 10.365689f, -2.500742f, -9.164998f, 0 },
+ { 10.453077f, -1.736992f, -3.761288f, 0 },
+ { 9.622290f, -0.969651f, 0.599747f, 0 },
+ { 8.990221f, -0.987608f, -4.253296f, 0 },
+ { 9.148238f, -1.395819f, -3.313573f, 0 },
+ { 8.651442f, -1.607705f, -1.174355f, 0 },
+ { 7.994234f, -1.643618f, -0.547075f, 0 },
+ { 7.620739f, -1.555033f, -0.290895f, 0 },
+ { 7.387304f, -1.526303f, -0.118513f, 0 },
+ { 7.176615f, -1.487995f, -0.105345f, 0 },
+ { 7.222105f, -1.329978f, -0.065841f, 0 },
+ { 7.553701f, -1.047463f, -0.521936f, 0 },
+ { 7.945153f, -0.768538f, -0.612915f, 0 },
+ { 8.386883f, -0.518344f, -0.260968f, 0 },
+ { 8.783123f, -0.316034f, -0.155623f, 0 },
+ { 9.229641f, -0.201113f, -0.294487f, 0 },
+ { 9.470259f, -0.234632f, -0.818816f, 0 },
+ { 9.665385f, -0.349553f, -0.980425f, 0 },
+ { 9.798264f, -0.347159f, -0.960074f, 0 },
+ { 9.586377f, -0.480037f, -1.021126f, 0 },
+ { 9.587574f, -0.565031f, -0.806845f, 0 },
+ { 9.617501f, -0.590170f, -0.330400f, 0 },
+ { 9.609122f, -0.484826f, 0.050278f, 0 },
+ { 9.691722f, -0.368707f, 0.562637f, 0 },
+ { 9.884455f, -0.318429f, 1.296459f, 0 },
+ { 9.916777f, -0.286107f, 1.254561f, 0 },
+ { 10.086765f, -0.414197f, 0.605733f, 0 },
+ { 10.672147f, -0.663193f, -0.056264f, 0 },
+ { 11.547227f, -0.732625f, -1.089361f, 0 },
+ { 12.741933f, -0.981622f, -1.647210f, 0 },
+ { 13.311752f, -1.082178f, -2.098516f, 0 },
+ { 12.233165f, -1.091755f, -1.170764f, 0 },
+ { 9.745591f, -1.782482f, -1.260546f, 0 },
+ { 6.040567f, -2.230197f, -1.437717f, 0 },
+ { 5.289985f, -2.487574f, 0.503979f, 0 },
+ { 6.959939f, -3.001130f, 3.216608f, 0 },
+ { 8.799882f, -4.107250f, 4.249705f, 0 },
+ { 9.941916f, -4.839875f, 4.045001f, 0 },
+ { 9.454696f, -5.104434f, 3.131614f, 0 },
+ { 8.892059f, -5.509054f, 1.795650f, 0 },
+ { 7.688973f, -5.981909f, 0.606930f, 0 },
+ { 7.673411f, -6.725308f, 0.831985f, 0 },
+ { 8.412022f, -7.346603f, 0.257377f, 0 },
+ { 8.220486f, -6.330265f, -0.105345f, 0 },
+ { 7.586023f, -4.578907f, 0.073023f, 0 },
+ { 7.775165f, -3.556584f, -1.447294f, 0 },
+ { 8.498213f, -3.017889f, -4.783612f, 0 },
+ { 8.949520f, -2.546232f, -4.119221f, 0 },
+ { 8.564054f, -2.585736f, -1.102529f, 0 },
+ { 7.644681f, -3.087321f, -0.313640f, 0 },
+ { 8.555674f, -2.998736f, -0.015562f, 0 },
+ { 9.572012f, -2.636014f, -0.071826f, 0 },
+ { 8.997404f, -2.252942f, 1.218648f, 0 },
+ { 7.629118f, -1.496375f, 0.980425f, 0 },
+ { 7.766785f, -1.379059f, 1.416169f, 0 },
+ { 8.343787f, -1.787270f, 1.284488f, 0 },
+ { 8.748407f, -1.811212f, 0.870292f, 0 },
+ { 9.136268f, -2.027887f, 1.131260f, 0 },
+ { 9.615108f, -2.226606f, 1.380256f, 0 },
+ { 10.127466f, -2.141612f, 0.444124f, 0 },
+ { 10.301045f, -1.841140f, -0.062249f, 0 },
+ { 10.163380f, -1.441308f, -2.595313f, 0 },
+ { 9.898820f, -1.045068f, 1.595734f, 0 },
+ { 9.682145f, -1.219845f, 2.372652f, 0 },
+ { 10.177745f, -1.084573f, 1.078587f, 0 },
+ { 11.180914f, -0.885854f, 0.757764f, 0 },
+ { 12.489345f, -1.234210f, 2.330754f, 0 },
+ { 13.658912f, -2.050632f, 2.142809f, 0 },
+ { 13.063952f, -2.145203f, -0.293290f, 0 },
+ { 9.628276f, -1.520317f, -2.880223f, 0 },
+ { 6.360192f, -1.479616f, -3.886984f, 0 },
+ { 5.079296f, -1.917754f, -2.090137f, 0 },
+ { 6.202175f, -3.551796f, -0.855927f, 0 },
+ { 7.969095f, -4.886562f, -0.975637f, 0 },
+ { 11.101906f, -4.876986f, 0.645237f, 0 },
+ { 11.766296f, -4.067746f, 0.531512f, 0 },
+ { 10.569196f, -3.503912f, -0.644040f, 0 },
+ { 10.237599f, -3.076547f, -0.447715f, 0 },
+ { 9.629473f, -2.752133f, -0.193930f, 0 },
+ { 8.340196f, -1.911769f, -0.742202f, 0 },
+ { 7.272383f, -1.003170f, -1.213859f, 0 },
+ { 6.823470f, -0.739808f, -1.057039f, 0 },
+ { 7.050919f, -0.673967f, -0.834379f, 0 },
+ { 7.595600f, -0.442927f, -0.532710f, 0 },
+ { 8.060075f, -0.168791f, -0.527921f, 0 },
+ { 8.573630f, 0.094571f, -1.207874f, 0 },
+ { 8.899241f, 0.466869f, -1.898601f, 0 },
+ { 9.060850f, 0.805648f, -1.408987f, 0 },
+ { 9.222459f, 0.831985f, -0.489614f, 0 },
+ { 9.290693f, 0.647631f, 0.099359f, 0 },
+ { 8.882483f, 0.517147f, -0.029928f, 0 },
+ { 8.628697f, 0.389058f, -0.817619f, 0 },
+ { 9.248795f, 0.234632f, -1.046265f, 0 },
+ { 9.690525f, -0.081403f, -1.126471f, 0 },
+ { 10.071202f, -0.231040f, -0.632069f, 0 },
+ { 10.299849f, -0.039504f, 0.476446f, 0 },
+ { 10.965436f, 0.278924f, 0.920570f, 0 },
+ { 11.526876f, 0.132878f, -0.335188f, 0 },
+ { 11.572366f, 0.118513f, -0.995987f, 0 },
+ { 12.087119f, 0.074220f, 0.064643f, 0 },
+ { 14.025224f, -0.268150f, 0.715866f, 0 },
+ { 13.812140f, -0.075417f, 2.175131f, 0 },
+ { 10.393223f, 0.955286f, 4.447227f, 0 },
+ { 5.740095f, 2.165554f, 5.378571f, 0 },
+ { 2.682701f, 2.470814f, 4.266465f, 0 },
+ { 2.267308f, 1.452082f, 2.970005f, 0 },
+ { 5.784388f, -0.737414f, 2.178722f, 0 },
+ { 8.700523f, -2.176328f, 0.712274f, 0 },
+ { 8.658625f, -2.545035f, -1.139639f, 0 },
+ { 8.984236f, -3.094504f, -0.059855f, 0 },
+ { 10.274710f, -4.108448f, 2.123656f, 0 },
+ { 11.112679f, -5.146333f, 2.748542f, 0 },
+ { 12.083528f, -5.299562f, -0.111330f, 0 },
+ { 11.859670f, -3.488349f, -2.300826f, 0 },
+ { 10.259148f, -1.679531f, -0.063446f, 0 },
+ { 8.656230f, -1.307233f, 1.798044f, 0 },
+ { 7.996628f, -1.447294f, 1.592143f, 0 },
+ { 8.142674f, -1.909375f, 0.881066f, 0 },
+ { 8.282735f, -2.118867f, 0.978031f, 0 },
+ { 8.382094f, -1.970427f, 1.248575f, 0 },
+ { 8.866920f, -1.735795f, 0.386663f, 0 },
+ { 9.623487f, -1.595734f, -0.269348f, 0 },
+ { 9.806643f, -1.525105f, -0.345962f, 0 },
+ { 9.609122f, -1.367088f, 0.299275f, 0 },
+ { 9.714467f, -1.388636f, 1.693897f, 0 },
+ { 9.576800f, -1.092952f, 2.396594f, 0 },
+ { 9.296679f, -1.480813f, 2.565385f, 0 },
+ { 9.323015f, -0.742202f, 2.341528f, 0 },
+ { 9.384068f, -1.109712f, 1.960850f, 0 },
+ { 9.868893f, -1.590946f, 2.421733f, 0 },
+ { 10.109509f, -1.939302f, 2.955640f, 0 },
+ { 9.973041f, -2.006340f, 3.324347f, 0 },
+ { 9.859316f, -1.581369f, 3.942050f, 0 },
+ { 9.793475f, -0.999579f, 3.818749f, 0 },
+ { 8.820233f, -0.578199f, 2.885011f, 0 },
+ { 7.404064f, -0.547075f, 1.671152f, 0 },
+ { 6.730096f, -0.906205f, 0.976834f, 0 },
+ { 8.153448f, -2.236183f, 0.503979f, 0 },
+ { 9.867696f, -4.234143f, -0.254982f, 0 },
+ { 7.984657f, -2.888602f, -1.261743f, 0 },
+ { 9.093172f, -3.695448f, -2.171540f, 0 },
+ { 9.166195f, -3.958810f, -1.365891f, 0 },
+ { 9.483426f, -4.307166f, -1.432929f, 0 },
+ { 9.564829f, -4.777626f, -2.000354f, 0 },
+ { 9.548070f, -5.154713f, -2.106896f, 0 },
+ { 9.175772f, -5.427651f, -1.608902f, 0 },
+ { 8.127112f, -6.010639f, -1.829169f, 0 },
+ { 8.129506f, -6.432018f, -1.207874f, 0 },
+ { 7.790727f, -5.821497f, 0.189142f, 0 },
+ { 7.073664f, -4.104856f, 2.110487f, 0 },
+ { 7.091620f, -3.636790f, 1.745372f, 0 },
+ { 7.758405f, -3.837903f, 0.458489f, 0 },
+ { 8.832204f, -3.739741f, 0.357933f, 0 },
+ { 9.786293f, -3.177104f, 0.160411f, 0 },
+ { 9.618699f, -2.337936f, -0.683544f, 0 },
+ { 9.124296f, -1.669955f, -0.986410f, 0 },
+ { 8.815445f, -1.297656f, 0.074220f, 0 },
+ { 8.663413f, -1.192312f, 0.752976f, 0 },
+ { 8.526943f, -1.224633f, 0.095768f, 0 },
+ { 8.671793f, -1.508346f, -0.044293f, 0 },
+ { 9.041697f, -1.966835f, -1.302445f, 0 },
+ { 9.320621f, -2.434901f, -0.640449f, 0 },
+ { 9.319424f, -2.719811f, -0.933738f, 0 },
+ { 9.598348f, -2.252942f, 0.096965f, 0 },
+ { 9.272737f, -2.086545f, -0.335188f, 0 },
+ { 9.397235f, -1.977609f, -0.829590f, 0 },
+ { 9.585180f, -1.861491f, -0.963666f, 0 },
+ { 9.563632f, -1.543062f, -1.194706f, 0 },
+ { 9.265554f, -1.262941f, -1.276109f, 0 },
+ { 8.941140f, -0.998381f, -1.148019f, 0 },
+ { 8.711297f, -0.948103f, -1.108515f, 0 },
+ { 8.803473f, -1.259349f, -1.027112f, 0 },
+ { 9.475047f, -2.545035f, -0.591367f, 0 },
+ { 10.941494f, -4.028242f, -0.374692f, 0 },
+ { 11.295835f, -3.961204f, 0.489614f, 0 },
+ { 9.697707f, -2.606087f, 1.587355f, 0 },
+ { 8.414416f, -2.354696f, 1.309627f, 0 },
+ { 8.408431f, -3.039437f, 0.598550f, 0 },
+ { 8.759181f, -3.227382f, 0.460884f, 0 },
+ { 9.191334f, -3.215411f, 0.717063f, 0 },
+ { 9.106340f, -3.286040f, -1.228225f, 0 },
+ { 9.215276f, -3.016692f, -0.532710f, 0 },
+ { 9.226050f, -2.573765f, 1.215057f, 0 },
+ { 9.278723f, -2.743753f, 0.444124f, 0 },
+ { 9.779110f, -3.204637f, 1.349132f, 0 },
+ { 9.914383f, -3.223790f, 1.940499f, 0 },
+ { 9.907200f, -2.806002f, 1.668757f, 0 },
+ { 10.375266f, -2.416945f, 2.098516f, 0 },
+ { 11.027685f, -2.161963f, 2.414551f, 0 },
+ { 11.603491f, -1.948879f, 2.486377f, 0 },
+ { 11.531665f, -1.472433f, 2.813185f, 0 },
+ { 10.983393f, -0.723048f, 2.525881f, 0 },
+ { 9.938325f, 0.086191f, 2.130838f, 0 },
+ { 8.816642f, 0.365116f, 2.731782f, 0 },
+ { 10.491385f, 0.019154f, 3.318361f, 0 },
+ { 10.913961f, -0.289698f, 4.115630f, 0 },
+ { 9.964661f, 0.154426f, 4.765655f, 0 },
+ { 7.896072f, 1.101332f, 4.291604f, 0 },
+ { 7.783545f, 1.666363f, 4.158726f, 0 },
+ { 8.256399f, 1.159990f, 4.963177f, 0 },
+ { 8.441950f, 0.727837f, 5.633553f, 0 },
+ { 7.973883f, 0.981622f, 5.418075f, 0 },
+ { 7.131125f, 1.492784f, 4.759670f, 0 },
+ { 7.067678f, 1.640027f, 4.987119f, 0 },
+ { 7.246047f, 1.323993f, 5.380965f, 0 },
+ { 7.788333f, 1.154004f, 5.783190f, 0 },
+ { 8.256399f, 1.544259f, 6.980290f, 0 },
+ { 8.076834f, 2.169145f, 7.654258f, 0 },
+ { 7.649469f, 2.182313f, 7.368151f, 0 },
+ { 7.462722f, 2.094925f, 6.817485f, 0 },
+ { 6.956348f, 1.817198f, 6.009442f, 0 },
+ { 6.156685f, 1.295262f, 5.595245f, 0 },
+ { 5.171472f, 1.101332f, 5.043383f, 0 },
+ { 4.614820f, 1.007958f, 4.921278f, 0 },
+ { 4.693829f, 0.915781f, 5.402513f, 0 },
+ { 4.863817f, 1.090558f, 5.463564f, 0 },
+ { 4.620806f, 1.468842f, 5.919660f, 0 },
+ { 4.741713f, 1.361103f, 6.609190f, 0 },
+ { 4.047395f, 1.677137f, 6.482296f, 0 },
+ { 4.094082f, 1.859096f, 6.527786f, 0 },
+ { 4.349064f, 1.829169f, 6.309914f, 0 },
+ { 4.477154f, 1.816001f, 6.591233f, 0 },
+ { 4.513067f, 1.195903f, 7.651864f, 0 },
+ { 5.130771f, 0.706289f, 8.787911f, 0 },
+ { 5.143939f, 0.804451f, 8.456315f, 0 },
+ { 4.619609f, 0.244208f, 7.931985f, 0 },
+ { 3.963598f, -0.852335f, 8.146266f, 0 },
+ { 4.163514f, -1.314416f, 8.972264f, 0 },
+ { 4.601653f, -1.395819f, 9.185349f, 0 },
+ { 4.854240f, -1.686714f, 8.943534f, 0 },
+ { 4.542994f, -2.023099f, 8.414416f, 0 },
+ { 3.835509f, -2.602495f, 8.085214f, 0 },
+ { 2.978385f, -2.853886f, 8.039723f, 0 },
+ { 2.686292f, -2.522290f, 7.716507f, 0 },
+ { 2.425325f, -2.989159f, 10.263936f, 0 },
+ { 1.680728f, -3.276463f, 12.568354f, 0 },
+ { 1.449688f, -2.462435f, 9.834177f, 0 },
+ { 1.904586f, -2.296038f, 8.819036f, 0 },
+ { 2.072180f, -2.254139f, 9.337380f, 0 },
+ { 2.197876f, -2.144006f, 9.494201f, 0 },
+ { 2.105699f, -1.899798f, 9.169786f, 0 },
+ { 1.717839f, -1.751357f, 9.096764f, 0 },
+ { 1.574187f, -1.813607f, 9.458287f, 0 },
+ { 1.502361f, -1.717839f, 9.576800f, 0 },
+ { 1.379059f, -1.528697f, 9.473849f, 0 },
+ { 1.168370f, -1.182735f, 9.206897f, 0 },
+ { 1.060631f, -1.138442f, 9.701299f, 0 },
+ { 0.893037f, -1.142033f, 10.007756f, 0 },
+ { 0.729034f, -1.097741f, 10.362098f, 0 },
+ { 0.847547f, -1.270123f, 11.415545f, 0 },
+ { 0.700303f, -1.437717f, 11.802209f, 0 },
+ { 0.657208f, -0.940921f, 10.297455f, 0 },
+ { 0.820014f, -0.262165f, 8.865723f, 0 },
+ { 1.120486f, -0.100556f, 9.303862f, 0 },
+ { 1.000776f, -0.172382f, 10.194504f, 0 },
+ { 0.691924f, 0.026336f, 8.984236f, 0 },
+ { 0.712274f, 0.058658f, 8.265976f, 0 },
+ { 0.530315f, -0.462081f, 10.773900f, 0 },
+ { 0.463278f, -0.685938f, 10.289075f, 0 },
+ { 0.442927f, -0.518344f, 7.893678f, 0 },
+ { 0.445321f, -0.438139f, 7.972686f, 0 },
+ { 0.378284f, -0.450110f, 8.655033f, 0 },
+ { 0.043096f, 0.015562f, 8.980644f, 0 },
+ { 0.220266f, 0.984016f, 9.639050f, 0 },
+ { 0.154426f, 1.146822f, 9.488214f, 0 },
+ { -0.119710f, 1.325190f, 9.168590f, 0 },
+ { -0.130484f, 1.334767f, 9.746788f, 0 },
+ { -0.025139f, 1.310825f, 10.338156f, 0 },
+ { 0.028730f, 1.616085f, 9.712072f, 0 },
+ { 0.044293f, 1.892615f, 8.583207f, 0 },
+ { 0.069432f, 1.480813f, 8.564054f, 0 },
+ { 0.033519f, 1.243787f, 8.768758f, 0 },
+ { 0.373495f, 1.514332f, 8.633486f, 0 },
+ { 0.353144f, 1.561018f, 8.446738f, 0 },
+ { 0.129287f, 1.313219f, 8.616726f, 0 },
+ { -0.028730f, 0.976834f, 9.123099f, 0 },
+ { -0.076614f, 0.966060f, 9.351746f, 0 },
+ { -0.161609f, 1.165975f, 8.965082f, 0 },
+ { -0.343568f, 1.641224f, 8.194150f, 0 },
+ { -0.442927f, 1.661575f, 8.437161f, 0 },
+ { -0.363918f, 1.365891f, 9.854527f, 0 },
+ { -0.282516f, 1.326387f, 10.666162f, 0 },
+ { -0.314837f, 1.443703f, 10.433924f, 0 },
+ { -0.644040f, 1.332372f, 9.327804f, 0 },
+ { -0.999579f, 1.479616f, 8.036133f, 0 },
+ { -0.799663f, 1.452082f, 8.346182f, 0 },
+ { -0.858321f, 1.567004f, 9.868893f, 0 },
+ { -0.938526f, 1.495178f, 11.599899f, 0 },
+ { -1.193509f, 1.498769f, 11.905160f, 0 },
+ { -1.556230f, 1.338358f, 10.947480f, 0 },
+ { -1.557427f, 1.256955f, 11.003743f, 0 },
+ { -1.413775f, 1.060631f, 11.848896f, 0 },
+ { -1.280897f, 0.922964f, 12.215209f, 0 },
+ { -1.132457f, 0.927753f, 11.399983f, 0 },
+ { -1.037886f, 0.881066f, 10.413573f, 0 },
+ { -0.605733f, 0.897825f, 10.074794f, 0 },
+ { -0.149638f, 0.872686f, 10.181335f, 0 },
+ { 0.278924f, 0.933738f, 10.765521f, 0 },
+ { 0.741005f, 1.137245f, 10.898398f, 0 },
+ { 1.114500f, 1.398213f, 10.672147f, 0 },
+ { 1.337161f, 1.841140f, 11.609476f, 0 },
+ { 1.916557f, 1.922543f, 13.679262f, 0 },
+ { 2.594116f, 1.768117f, 13.814534f, 0 },
+ { 3.088518f, 2.280476f, 12.144580f, 0 },
+ { 3.426100f, 2.173934f, 11.726792f, 0 },
+ { 3.564964f, 1.717839f, 11.662148f, 0 },
+ { 3.779245f, 1.653195f, 11.219221f, 0 },
+ { 3.823538f, 1.709459f, 10.377660f, 0 },
};
const size_t kBodyDetectOnBodyTestDataLength =
ARRAY_SIZE(kBodyDetectOnBodyTestData);
const struct body_detect_test_data kBodyDetectOffOnTestData[] = {
- {-0.269348, 0.220266, 10.030501, 0},
- {-0.259771, 0.216675, 10.113101, 0},
- {-0.253785, 0.213084, 10.096342, 0},
- {-0.262165, 0.201113, 10.098736, 0},
- {-0.257377, 0.210690, 10.093947, 0},
- {-0.253785, 0.202310, 10.096342, 0},
- {-0.257377, 0.213084, 10.113101, 0},
- {-0.257377, 0.221464, 10.096342, 0},
- {-0.262165, 0.217872, 10.115496, 0},
- {-0.258574, 0.219069, 10.102327, 0},
- {-0.275333, 0.205901, 10.123875, 0},
- {-0.262165, 0.209493, 10.085567, 0},
- {-0.271742, 0.209493, 10.110707, 0},
- {-0.275333, 0.220266, 10.096342, 0},
- {-0.251391, 0.210690, 10.097539, 0},
- {-0.262165, 0.210690, 10.090356, 0},
- {-0.268150, 0.208295, 10.108313, 0},
- {-0.258574, 0.210690, 10.098736, 0},
- {-0.270545, 0.219069, 10.097539, 0},
- {-0.263362, 0.211887, 10.102327, 0},
- {-0.264559, 0.211887, 10.097539, 0},
- {-0.262165, 0.204704, 10.090356, 0},
- {-0.246603, 0.203507, 10.089159, 0},
- {-0.250194, 0.215478, 10.099933, 0},
- {-0.270545, 0.225055, 10.109509, 0},
- {-0.256179, 0.213084, 10.097539, 0},
- {-0.248997, 0.207098, 10.086765, 0},
- {-0.248997, 0.210690, 10.087962, 0},
- {-0.256179, 0.201113, 10.089159, 0},
- {-0.258574, 0.203507, 10.104721, 0},
- {-0.262165, 0.208295, 10.093947, 0},
- {-0.246603, 0.204704, 10.086765, 0},
- {-0.247800, 0.208295, 10.108313, 0},
- {-0.252588, 0.220266, 10.099933, 0},
- {-0.264559, 0.210690, 10.098736, 0},
- {-0.266953, 0.185551, 10.084371, 0},
- {-0.253785, 0.213084, 10.109509, 0},
- {-0.256179, 0.231040, 10.099933, 0},
- {-0.252588, 0.205901, 10.091554, 0},
- {-0.259771, 0.207098, 10.095144, 0},
- {-0.260968, 0.203507, 10.096342, 0},
- {-0.253785, 0.205901, 10.095144, 0},
- {-0.256179, 0.217872, 10.093947, 0},
- {-0.265756, 0.209493, 10.083174, 0},
- {-0.263362, 0.204704, 10.103524, 0},
- {-0.253785, 0.198719, 10.095144, 0},
- {-0.252588, 0.209493, 10.103524, 0},
- {-0.260968, 0.205901, 10.098736, 0},
- {-0.259771, 0.205901, 10.083174, 0},
- {-0.266953, 0.216675, 10.090356, 0},
- {-0.265756, 0.207098, 10.101130, 0},
- {-0.262165, 0.204704, 10.111904, 0},
- {-0.248997, 0.199916, 10.101130, 0},
- {-0.263362, 0.207098, 10.096342, 0},
- {-0.281319, 0.227449, 10.108313, 0},
- {-0.259771, 0.219069, 10.087962, 0},
- {-0.258574, 0.214281, 10.079582, 0},
- {-0.268150, 0.204704, 10.108313, 0},
- {-0.277727, 0.204704, 10.114298, 0},
- {-0.257377, 0.208295, 10.115496, 0},
- {-0.260968, 0.222661, 10.104721, 0},
- {-0.265756, 0.213084, 10.102327, 0},
- {-0.256179, 0.210690, 10.099933, 0},
- {-0.253785, 0.203507, 10.109509, 0},
- {-0.270545, 0.201113, 10.103524, 0},
- {-0.259771, 0.209493, 10.115496, 0},
- {-0.264559, 0.207098, 10.103524, 0},
- {-0.263362, 0.202310, 10.105919, 0},
- {-0.260968, 0.220266, 10.110707, 0},
- {-0.257377, 0.216675, 10.110707, 0},
- {-0.259771, 0.195127, 10.093947, 0},
- {-0.271742, 0.209493, 10.104721, 0},
- {-0.257377, 0.223858, 10.108313, 0},
- {-0.265756, 0.205901, 10.101130, 0},
- {-0.270545, 0.196324, 10.101130, 0},
- {-0.254982, 0.202310, 10.115496, 0},
- {-0.248997, 0.214281, 10.116693, 0},
- {-0.268150, 0.207098, 10.111904, 0},
- {-0.263362, 0.204704, 10.091554, 0},
- {-0.270545, 0.210690, 10.091554, 0},
- {-0.268150, 0.215478, 10.102327, 0},
- {-0.264559, 0.223858, 10.096342, 0},
- {-0.262165, 0.203507, 10.099933, 0},
- {-0.259771, 0.203507, 10.103524, 0},
- {-0.269348, 0.204704, 10.119086, 0},
- {-0.265756, 0.202310, 10.091554, 0},
- {-0.260968, 0.201113, 10.092751, 0},
- {-0.260968, 0.210690, 10.092751, 0},
- {-0.266953, 0.205901, 10.109509, 0},
- {-0.269348, 0.203507, 10.105919, 0},
- {-0.264559, 0.193930, 10.114298, 0},
- {-0.263362, 0.216675, 10.093947, 0},
- {-0.256179, 0.208295, 10.095144, 0},
- {-0.271742, 0.203507, 10.103524, 0},
- {-0.259771, 0.208295, 10.089159, 0},
- {-0.257377, 0.220266, 10.108313, 0},
- {-0.266953, 0.207098, 10.101130, 0},
- {-0.268150, 0.198719, 10.117889, 0},
- {-0.258574, 0.204704, 10.091554, 0},
- {-0.266953, 0.201113, 10.104721, 0},
- {-0.265756, 0.205901, 10.091554, 0},
- {-0.277727, 0.203507, 10.102327, 0},
- {-0.266953, 0.204704, 10.093947, 0},
- {-0.265756, 0.215478, 10.107116, 0},
- {-0.254982, 0.215478, 10.110707, 0},
- {-0.269348, 0.217872, 10.095144, 0},
- {-0.265756, 0.229843, 10.109509, 0},
- {-0.260968, 0.226252, 10.098736, 0},
- {-0.253785, 0.208295, 10.095144, 0},
- {-0.253785, 0.211887, 10.085567, 0},
- {-0.268150, 0.214281, 10.109509, 0},
- {-0.258574, 0.201113, 10.107116, 0},
- {-0.265756, 0.211887, 10.103524, 0},
- {-0.256179, 0.215478, 10.093947, 0},
- {-0.263362, 0.204704, 10.107116, 0},
- {-0.260968, 0.214281, 10.098736, 0},
- {-0.259771, 0.213084, 10.110707, 0},
- {-0.276530, 0.215478, 10.095144, 0},
- {-0.263362, 0.211887, 10.084371, 0},
- {-0.245406, 0.217872, 10.110707, 0},
- {-0.251391, 0.209493, 10.105919, 0},
- {-0.269348, 0.205901, 10.093947, 0},
- {-0.271742, 0.201113, 10.099933, 0},
- {-0.270545, 0.228646, 10.099933, 0},
- {-0.262165, 0.217872, 10.096342, 0},
- {-0.259771, 0.209493, 10.099933, 0},
- {-0.260968, 0.210690, 10.105919, 0},
- {-0.252588, 0.203507, 10.099933, 0},
- {-0.263362, 0.197522, 10.095144, 0},
- {-0.271742, 0.213084, 10.101130, 0},
- {-0.268150, 0.196324, 10.110707, 0},
- {-0.248997, 0.213084, 10.108313, 0},
- {-0.254982, 0.215478, 10.095144, 0},
- {-0.260968, 0.208295, 10.107116, 0},
- {-0.259771, 0.219069, 10.108313, 0},
- {-0.266953, 0.214281, 10.098736, 0},
- {-0.269348, 0.202310, 10.090356, 0},
- {-0.258574, 0.204704, 10.113101, 0},
- {-0.263362, 0.226252, 10.086765, 0},
- {-0.264559, 0.204704, 10.096342, 0},
- {-0.271742, 0.219069, 10.096342, 0},
- {-0.252588, 0.210690, 10.104721, 0},
- {-0.258574, 0.211887, 10.113101, 0},
- {-0.264559, 0.210690, 10.104721, 0},
- {-0.269348, 0.214281, 10.103524, 0},
- {-0.253785, 0.211887, 10.093947, 0},
- {-0.256179, 0.223858, 10.110707, 0},
- {-0.274136, 0.207098, 10.098736, 0},
- {-0.274136, 0.207098, 10.092751, 0},
- {-0.254982, 0.210690, 10.091554, 0},
- {-0.257377, 0.204704, 10.098736, 0},
- {-0.257377, 0.209493, 10.108313, 0},
- {-0.257377, 0.211887, 10.095144, 0},
- {-0.259771, 0.199916, 10.095144, 0},
- {-0.257377, 0.214281, 10.101130, 0},
- {-0.270545, 0.217872, 10.103524, 0},
- {-0.281319, 0.204704, 10.104721, 0},
- {-0.271742, 0.208295, 10.103524, 0},
- {-0.258574, 0.211887, 10.104721, 0},
- {-0.264559, 0.204704, 10.126269, 0},
- {-0.262165, 0.201113, 10.101130, 0},
- {-0.258574, 0.219069, 10.096342, 0},
- {-0.263362, 0.211887, 10.107116, 0},
- {-0.265756, 0.203507, 10.091554, 0},
- {-0.264559, 0.205901, 10.107116, 0},
- {-0.256179, 0.214281, 10.095144, 0},
- {-0.263362, 0.202310, 10.097539, 0},
- {-0.271742, 0.207098, 10.104721, 0},
- {-0.272939, 0.210690, 10.101130, 0},
- {-0.262165, 0.205901, 10.096342, 0},
- {-0.260968, 0.209493, 10.107116, 0},
- {-0.269348, 0.217872, 10.093947, 0},
- {-0.256179, 0.220266, 10.087962, 0},
- {-0.264559, 0.208295, 10.092751, 0},
- {-0.265756, 0.208295, 10.095144, 0},
- {-0.262165, 0.199916, 10.098736, 0},
- {-0.259771, 0.215478, 10.101130, 0},
- {-0.263362, 0.217872, 10.097539, 0},
- {-0.263362, 0.204704, 10.095144, 0},
- {-0.248997, 0.202310, 10.096342, 0},
- {-0.260968, 0.226252, 10.097539, 0},
- {-0.259771, 0.216675, 10.103524, 0},
- {-0.270545, 0.205901, 10.090356, 0},
- {-0.250194, 0.219069, 10.089159, 0},
- {-0.254982, 0.213084, 10.098736, 0},
- {-0.268150, 0.204704, 10.102327, 0},
- {-0.258574, 0.215478, 10.104721, 0},
- {-0.250194, 0.217872, 10.102327, 0},
- {-0.250194, 0.215478, 10.097539, 0},
- {-0.251391, 0.213084, 10.086765, 0},
- {-0.266953, 0.204704, 10.108313, 0},
- {-0.270545, 0.199916, 10.099933, 0},
- {-0.271742, 0.208295, 10.092751, 0},
- {-0.268150, 0.222661, 10.098736, 0},
- {-0.252588, 0.213084, 10.096342, 0},
- {-0.266953, 0.213084, 10.092751, 0},
- {-0.265756, 0.205901, 10.105919, 0},
- {-0.258574, 0.209493, 10.103524, 0},
- {-0.263362, 0.203507, 10.103524, 0},
- {-0.265756, 0.213084, 10.092751, 0},
- {-0.266953, 0.209493, 10.097539, 0},
- {-0.272939, 0.193930, 10.110707, 0},
- {-0.258574, 0.209493, 10.109509, 0},
- {-0.259771, 0.213084, 10.101130, 0},
- {-0.274136, 0.215478, 10.101130, 0},
- {-0.259771, 0.207098, 10.091554, 0},
- {-0.265756, 0.208295, 10.101130, 0},
- {-0.263362, 0.210690, 10.109509, 0},
- {-0.264559, 0.216675, 10.110707, 0},
- {-0.266953, 0.211887, 10.099933, 0},
- {-0.268150, 0.199916, 10.093947, 0},
- {-0.265756, 0.216675, 10.105919, 0},
- {-0.262165, 0.204704, 10.081977, 0},
- {-0.263362, 0.214281, 10.086765, 0},
- {-0.263362, 0.210690, 10.084371, 0},
- {-0.257377, 0.201113, 10.104721, 0},
- {-0.262165, 0.203507, 10.109509, 0},
- {-0.266953, 0.217872, 10.113101, 0},
- {-0.252588, 0.209493, 10.102327, 0},
- {-0.257377, 0.213084, 10.096342, 0},
- {-0.260968, 0.211887, 10.101130, 0},
- {-0.263362, 0.197522, 10.114298, 0},
- {-0.272939, 0.192733, 10.103524, 0},
- {-0.250194, 0.207098, 10.079582, 0},
- {-0.253785, 0.214281, 10.107116, 0},
- {-0.254982, 0.205901, 10.095144, 0},
- {-0.256179, 0.209493, 10.103524, 0},
- {-0.265756, 0.222661, 10.111904, 0},
- {-0.259771, 0.211887, 10.101130, 0},
- {-0.256179, 0.202310, 10.115496, 0},
- {-0.260968, 0.209493, 10.109509, 0},
- {-0.243011, 0.203507, 10.101130, 0},
- {-0.252588, 0.205901, 10.096342, 0},
- {-0.253785, 0.225055, 10.095144, 0},
- {-0.258574, 0.225055, 10.096342, 0},
- {-0.264559, 0.215478, 10.092751, 0},
- {-0.265756, 0.205901, 10.114298, 0},
- {-0.266953, 0.220266, 10.108313, 0},
- {-0.268150, 0.208295, 10.109509, 0},
- {-0.259771, 0.210690, 10.103524, 0},
- {-0.253785, 0.210690, 10.109509, 0},
- {-0.268150, 0.213084, 10.097539, 0},
- {-0.268150, 0.215478, 10.102327, 0},
- {-0.269348, 0.201113, 10.103524, 0},
- {-0.262165, 0.199916, 10.107116, 0},
- {-0.260968, 0.205901, 10.120284, 0},
- {-0.257377, 0.193930, 10.102327, 0},
- {-0.264559, 0.203507, 10.104721, 0},
- {-0.265756, 0.210690, 10.093947, 0},
- {-0.256179, 0.209493, 10.097539, 0},
- {-0.257377, 0.204704, 10.107116, 0},
- {-0.260968, 0.208295, 10.093947, 0},
- {-0.258574, 0.204704, 10.102327, 0},
- {-0.263362, 0.211887, 10.107116, 0},
- {-0.263362, 0.191536, 10.097539, 0},
- {-0.253785, 0.209493, 10.107116, 0},
- {-0.254982, 0.217872, 10.105919, 0},
- {-0.259771, 0.207098, 10.096342, 0},
- {-0.265756, 0.204704, 10.114298, 0},
- {-0.270545, 0.208295, 10.099933, 0},
- {-0.262165, 0.214281, 10.104721, 0},
- {-0.257377, 0.205901, 10.095144, 0},
- {-0.266953, 0.214281, 10.096342, 0},
- {-0.274136, 0.225055, 10.093947, 0},
- {-0.266953, 0.216675, 10.099933, 0},
- {-0.269348, 0.208295, 10.099933, 0},
- {-0.266953, 0.222661, 10.105919, 0},
- {-0.246603, 0.204704, 10.090356, 0},
- {-0.257377, 0.202310, 10.102327, 0},
- {-0.258574, 0.217872, 10.114298, 0},
- {-0.268150, 0.225055, 10.099933, 0},
- {-0.278924, 0.210690, 10.097539, 0},
- {-0.263362, 0.203507, 10.104721, 0},
- {-0.252588, 0.221464, 10.089159, 0},
- {-0.252588, 0.208295, 10.073597, 0},
- {-0.252588, 0.213084, 10.091554, 0},
- {-0.256179, 0.210690, 10.087962, 0},
- {-0.272939, 0.214281, 10.097539, 0},
- {-0.259771, 0.203507, 10.097539, 0},
- {-0.271742, 0.208295, 10.102327, 0},
- {-0.262165, 0.216675, 10.095144, 0},
- {-0.264559, 0.215478, 10.095144, 0},
- {-0.265756, 0.214281, 10.103524, 0},
- {-0.268150, 0.217872, 10.096342, 0},
- {-0.262165, 0.221464, 10.104721, 0},
- {-0.274136, 0.219069, 10.101130, 0},
- {-0.264559, 0.208295, 10.097539, 0},
- {-0.265756, 0.203507, 10.089159, 0},
- {-0.269348, 0.204704, 10.110707, 0},
- {-0.268150, 0.214281, 10.116693, 0},
- {-0.250194, 0.199916, 10.102327, 0},
- {-0.266953, 0.197522, 10.105919, 0},
- {-0.268150, 0.199916, 10.108313, 0},
- {-0.259771, 0.195127, 10.093947, 0},
- {-0.262165, 0.215478, 10.085567, 0},
- {-0.263362, 0.216675, 10.101130, 0},
- {-0.252588, 0.227449, 10.037683, 0},
- {-0.276530, 0.208295, 10.177745, 0},
- {-0.254982, 0.205901, 10.175350, 0},
- {-0.257377, 0.204704, 10.041275, 0},
- {-0.258574, 0.210690, 10.117889, 1},
- {-0.243011, 0.209493, 10.085567, 0},
- {-0.254982, 0.196324, 10.109509, 0},
- {-0.248997, 0.193930, 10.097539, 0},
- {-0.269348, 0.207098, 10.098736, 0},
- {-0.262165, 0.213084, 10.098736, 0},
- {-0.262165, 0.201113, 10.066414, 0},
- {-0.264559, 0.208295, 10.103524, 0},
- {-0.264559, 0.208295, 10.101130, 0},
- {-0.257377, 0.210690, 10.119086, 0},
- {-0.256179, 0.198719, 10.093947, 0},
- {-0.253785, 0.198719, 10.113101, 0},
- {-0.254982, 0.215478, 10.081977, 0},
- {-0.259771, 0.210690, 10.092751, 0},
- {-0.264559, 0.214281, 10.090356, 0},
- {-0.260968, 0.187945, 10.144226, 0},
- {-0.268150, 0.245406, 10.073597, 0},
- {-0.408211, 0.396240, 10.056837, 0},
- {-2.020705, 2.340331, 10.170562, 0},
- {-0.186748, 1.916557, 10.966634, 0},
- {7.234076, -2.675519, 16.133318, 0},
- {7.775165, 0.863109, 11.798618, 0},
- {3.503912, -1.510740, 2.634817, 0},
- {-3.895364, -5.768825, 9.538493, 0},
- {-4.587287, -2.717417, 26.975452, 0},
- {-3.013101, 4.329911, 32.156502, 0},
- {-4.693829, -1.854308, 19.993965, 0},
- {-5.236115, -2.634817, 18.126490, 0},
- {-6.558911, 1.010352, 20.283663, 0},
- {-8.033738, 0.130484, 22.203812, 0},
- {-7.487861, -0.525527, 18.705885, 0},
- {-6.692986, 0.266953, 15.228310, 0},
- {-6.151897, 0.128090, 10.176547, 0},
- {-6.020216, 0.745793, 5.400118, 0},
- {-5.798753, 1.690305, 1.695094, 0},
- {-3.584117, 1.229422, -1.827972, 0},
- {-0.386663, 1.133654, -4.835087, 0},
- {0.955286, 1.742978, -4.969162, 0},
- {3.201046, 1.059434, -6.075283, 0},
- {7.366954, -0.312443, -7.837414, 0},
- {8.429978, -0.656011, -6.296746, 0},
- {6.950363, -0.164003, -3.179498, 0},
- {6.801922, -0.415394, -0.955286, 0},
- {7.827837, -0.814028, 1.152807, 0},
- {7.793121, -0.723048, 3.940853, 0},
- {7.422020, -0.292092, 6.720520, 0},
- {7.978672, -0.298078, 7.856567, 0},
- {8.202530, -0.122104, 7.301113, 0},
- {7.778756, 0.360327, 6.107605, 0},
- {7.892480, 0.318429, 5.987895, 0},
- {8.950717, 0.108936, 6.327871, 0},
- {8.798685, 0.319626, 7.009021, 0},
- {7.748828, 0.839167, 7.133519, 0},
- {7.795516, 0.958877, 6.597219, 0},
- {7.850582, 1.035492, 5.942405, 0},
- {7.547716, 1.152807, 5.074507, 0},
- {7.116760, 1.128865, 4.546586, 0},
- {7.422020, 0.805648, 4.566936, 0},
- {7.937970, 0.517147, 4.827904, 0},
- {8.088805, 0.418985, 5.172669, 0},
- {8.329422, 0.415394, 5.573698, 0},
- {8.099579, 0.739808, 5.117603, 0},
- {7.973883, 0.805648, 4.387372, 0},
- {7.833823, 1.048660, 3.857056, 0},
- {8.100776, 1.177946, 3.950430, 0},
- {8.722071, 1.122880, 4.909307, 0},
- {9.400826, 0.921767, 5.566515, 0},
- {9.440331, 0.920570, 5.175064, 0},
- {8.723268, 1.022323, 4.551374, 0},
- {8.115141, 1.175552, 4.096477, 0},
- {8.135491, 1.387439, 3.754106, 0},
- {8.602361, 1.533485, 3.762486, 0},
- {8.884876, 1.289277, 4.268859, 0},
- {8.775940, 0.867898, 4.517856, 0},
- {8.434767, 0.647631, 4.377795, 0},
- {8.220486, 0.623689, 4.394554, 0},
- {7.817063, 0.945709, 4.226960, 0},
- {8.021768, 1.249772, 3.598483, 0},
- {9.108734, 0.667982, 3.156753, 0},
- {9.658203, 0.177171, 2.748542, 0},
- {9.301467, 0.393846, 2.639606, 0},
- {9.026134, 0.736217, 3.105278, 0},
- {8.865723, 0.814028, 3.799596, 0},
- {8.759181, 0.849941, 4.060563, 0},
- {8.493424, 0.964863, 4.404131, 0},
- {8.276750, 1.033097, 4.540600, 0},
- {8.324634, 0.908599, 4.672281, 0},
- {8.778335, 0.644040, 4.946417, 0},
- {8.558068, 0.827196, 5.007470, 0},
- {8.507790, 0.703895, 4.434059, 0},
- {8.688552, 0.684741, 3.661929, 0},
- {8.784320, 0.820014, 3.207031, 0},
- {8.844175, 0.839167, 3.385399, 0},
- {8.908818, 0.858321, 3.974372, 0},
- {9.044091, 0.907402, 4.442438, 0},
- {8.989024, 0.899022, 4.399343, 0},
- {8.925578, 0.815225, 4.141966, 0},
- {9.033317, 0.615309, 3.840297, 0},
- {9.083595, 0.436942, 3.727770, 0},
- {9.020149, 0.338779, 3.928882, 0},
- {8.930367, 0.299275, 4.174288, 0},
- {8.963885, 0.246603, 4.288013, 0},
- {8.842978, 0.304063, 4.236537, 0},
- {8.641865, 0.396240, 4.152740, 0},
- {8.591587, 0.466869, 4.163514, 0},
- {8.656230, 0.460884, 4.255691, 0},
- {8.836992, 0.398634, 4.118024, 0},
- {8.957899, 0.453701, 3.754106, 0},
- {9.045288, 0.502782, 3.326741, 0},
- {9.083595, 0.586579, 3.045423, 0},
- {9.033317, 0.705092, 3.004721, 0},
- {8.968674, 0.715866, 3.072956, 0},
- {8.899241, 0.684741, 3.071759, 0},
- {8.809459, 0.632069, 3.072956, 0},
- {8.832204, 0.585382, 3.138796, 0},
- {8.825022, 0.575805, 3.143585, 0},
- {8.761575, 0.556652, 3.064576, 0},
- {8.750801, 0.594959, 3.092109, 0},
- {8.817839, 0.633266, 3.129220, 0},
- {8.913607, 0.640449, 3.046620, 0},
- {8.998601, 0.658405, 2.869449, 0},
- {9.095566, 0.684741, 2.670730, 0},
- {9.133873, 0.694318, 2.789243, 0},
- {9.126691, 0.676362, 3.256112, 0},
- {9.041697, 0.723048, 3.632001, 0},
- {8.827415, 0.763750, 3.794807, 0},
- {8.853752, 0.694318, 3.775654, 0},
- {9.000996, 0.618901, 3.673900, 0},
- {9.066835, 0.561440, 3.708616, 0},
- {9.075215, 0.497994, 3.767274, 0},
- {9.064442, 0.417788, 3.775654, 0},
- {9.003389, 0.444124, 3.676294, 0},
- {8.943534, 0.500388, 3.551796, 0},
- {8.961491, 0.505176, 3.343500, 0},
- {8.789108, 0.600944, 3.191469, 0},
- {8.816642, 0.596156, 3.118446, 0},
- {8.889665, 0.549469, 3.131614, 0},
- {8.881285, 0.533907, 3.242944, 0},
- {8.783123, 0.590170, 3.416523, 0},
- {8.716085, 0.642843, 3.600877, 0},
- {8.719677, 0.612915, 3.694251, 0},
- {8.792700, 0.532710, 3.641578, 0},
- {8.895650, 0.470460, 3.475181, 0},
- {8.902833, 0.453701, 3.179498, 0},
- {8.833401, 0.399831, 2.855083, 0},
- {8.759181, 0.278924, 2.383426, 0},
- {8.670595, 0.118513, 1.875856, 0},
- {8.531732, -0.013168, 1.414972, 0},
- {8.376109, -0.057461, 1.115697, 0},
- {8.304283, -0.015562, 1.341949, 0},
- {7.916422, 0.159214, 1.878250, 0},
- {7.595600, 0.270545, 3.086124, 0},
- {7.516591, 0.349553, 4.906913, 0},
- {7.881707, 0.061052, 6.694183, 0},
- {8.112747, -0.235829, 7.243652, 0},
- {8.034935, -0.387860, 7.001838, 0},
- {8.052892, -0.222661, 6.254848, 0},
- {7.948744, 0.203507, 5.623976, 0},
- {7.327449, 0.853532, 5.892127, 0},
- {6.556517, 1.406592, 6.268016, 0},
- {6.993458, 1.375468, 6.548137, 0},
- {7.503423, 1.138442, 6.823470, 0},
- {7.237667, 1.118091, 7.408852, 0},
- {7.144293, 1.031900, 8.170208, 0},
- {7.127533, 0.927753, 8.361744, 0},
- {6.883325, 0.820014, 8.204924, 0},
- {6.708549, 0.644040, 7.923605, 0},
- {6.877340, 0.410605, 7.595600, 0},
- {7.054511, 0.339976, 7.395684, 0},
- {7.176615, 0.295684, 7.271185, 0},
- {7.182600, 0.259771, 7.201754, 0},
- {6.823470, 0.384269, 7.207739, 0},
- {6.624752, 0.464475, 7.419626, 0},
- {6.767207, 0.436942, 7.730872, 0},
- {6.834244, 0.386663, 7.971489, 0},
- {6.795937, 0.344765, 7.827837, 0},
- {6.531378, 0.404620, 7.354982, 0},
- {6.513421, 0.317232, 7.140702, 0},
- {6.649891, 0.192733, 7.065284, 0},
- {6.544546, 0.299275, 6.846215, 0},
- {6.555320, 0.381875, 6.678621, 0},
- {6.630737, 0.332794, 6.690592, 0},
- {6.636723, 0.199916, 6.915647, 0},
- {6.590036, 0.169988, 7.594403, 0},
- {6.248862, 0.393846, 8.506593, 0},
- {6.199781, 0.445321, 8.953111, 0},
- {6.538560, 0.023942, 8.977053, 0},
- {6.251256, 0.074220, 8.766363, 0},
- {6.154291, 0.337582, 8.178588, 0},
- {6.550531, 0.281319, 7.522577, 0},
- {6.397303, 0.652420, 7.284354, 0},
- {6.174642, 0.914584, 7.181403, 0},
- {6.265622, 0.825999, 6.584050, 0},
- {6.449975, 0.812831, 6.244074, 0},
- {6.738476, 0.641646, 6.549335, 0},
- {6.904873, 0.591367, 6.961137, 0},
- {6.669044, 0.671573, 7.244849, 0},
- {6.514618, 0.677559, 7.499832, 0},
- {6.716928, 0.464475, 7.510606, 0},
- {6.792346, 0.463278, 7.596797, 0},
- {6.734885, 0.585382, 7.791924, 0},
- {6.658270, 0.447715, 7.554898, 0},
- {6.463143, 0.486023, 7.091620, 0},
- {6.501450, 0.563834, 6.517013, 0},
- {6.488282, 0.654814, 6.062115, 0},
- {6.436807, 0.670376, 6.069297, 0},
- {6.479902, 0.659602, 6.549335, 0},
- {6.368572, 0.628478, 7.060496, 0},
- {6.446383, 0.487220, 7.497437, 0},
- {6.628343, 0.423773, 7.789530, 0},
- {6.636723, 0.460884, 7.996628, 0},
- {6.369769, 0.560243, 8.149857, 0},
- {6.105210, 0.602141, 8.106761, 0},
- {6.810302, 0.294487, 8.166616, 0},
- {7.140702, 0.201113, 8.110353, 0},
- {6.691789, 0.211887, 7.706930, 0},
- {6.524195, 0.271742, 7.422020, 0},
- {6.406879, 0.363918, 7.422020, 0},
- {6.278790, 0.423773, 7.556096, 0},
- {6.175839, 0.460884, 7.661440, 0},
- {6.229709, 0.451307, 7.507014, 0},
- {6.511027, 0.403423, 6.991064, 0},
- {6.872551, 0.345962, 6.734885, 0},
- {6.777980, 0.488417, 6.701366, 0},
- {6.730096, 0.620098, 6.682212, 0},
- {6.818682, 0.694318, 6.673833, 0},
- {6.897690, 0.634463, 6.702563, 0},
- {6.824667, 0.557849, 6.743265, 0},
- {6.700169, 0.621295, 6.815091, 0},
- {6.441595, 0.687135, 6.744462, 0},
- {6.476311, 0.812831, 6.872551, 0},
- {7.070073, 0.621295, 7.327449, 0},
- {6.791149, 0.446518, 7.169432, 0},
- {6.742067, 0.513556, 7.479481, 0},
- {6.738476, 0.420182, 7.603980, 0},
- {6.797134, 0.195127, 7.705733, 0},
- {6.882128, 0.363918, 7.593205, 0},
- {6.769601, 0.568623, 7.325055, 0},
- {6.915647, 0.465672, 7.016203, 0},
- {7.165841, 0.305261, 6.475114, 0},
- {7.277171, 0.234632, 5.893323, 0},
- {7.274777, 0.275333, 5.352234, 0},
- {6.994656, 0.428562, 5.149924, 0},
- {6.801922, 0.456095, 5.353431, 0},
- {6.751644, 0.354342, 5.864593, 0},
- {6.592430, 0.339976, 6.321885, 0},
- {6.416456, 0.262165, 6.567291, 0},
- {6.847412, -0.142455, 7.101197, 0},
- {7.248441, -0.061052, 7.084438, 0},
- {6.556517, 0.310049, 7.459130, 0},
- {6.555320, 0.251391, 7.558490, 0},
- {6.552926, 0.347159, 7.578840, 0},
- {6.534969, 0.442927, 7.498635, 0},
- {6.439201, 0.484826, 7.303507, 0},
- {6.555320, 0.341173, 7.278368, 0},
- {6.587642, 0.209493, 7.347800, 0},
- {6.563700, 0.135272, 7.492649, 0},
- {6.603204, 0.100556, 7.559687, 0},
- {6.515815, 0.198719, 7.558490, 0},
- {6.441595, 0.270545, 7.536942, 0},
- {6.330265, 0.298078, 7.629118, 0},
- {6.339842, 0.277727, 7.694959, 0},
- {6.260833, 0.245406, 7.636301, 0},
- {6.145912, 0.185551, 7.546519, 0},
- {6.068100, 0.132878, 7.322661, 0},
- {5.987895, 0.122104, 7.220907, 0},
- {5.989091, 0.123301, 7.357377, 0},
- {5.981909, 0.122104, 7.590811, 0},
- {6.020216, 0.088585, 7.677002, 0},
- {6.030990, 0.148440, 7.593205, 0},
- {6.063312, 0.219069, 7.480678, 0},
- {6.089648, 0.265756, 7.527365, 0},
- {6.050144, 0.359130, 7.862553, 0},
- {6.011837, 0.365116, 8.170208, 0},
- {6.011837, 0.265756, 8.222880, 0},
- {5.893323, 0.202310, 8.207318, 0},
- {5.845439, 0.137667, 8.021768, 0},
- {5.822695, 0.196324, 8.021768, 0},
- {5.906492, 0.239420, 8.250414, 0},
- {5.809526, 0.296881, 8.378503, 0},
- {5.810724, 0.222661, 8.389277, 0},
- {5.754460, 0.226252, 8.317451, 0},
- {5.809526, 0.104148, 8.396460, 0},
- {5.810724, 0.187945, 8.570039, 0},
- {6.063312, 0.287304, 8.530535, 0},
- {6.098028, 0.141258, 8.274356, 0},
- {5.651509, 0.290895, 8.311465, 0},
- {5.661086, 0.392649, 8.327028, 0},
- {5.258861, 0.590170, 8.374912, 0},
- {6.062115, 0.117316, 7.928393, 0},
- {6.623555, -0.246603, 7.491452, 0},
- {6.019019, 0.135272, 7.080847, 0},
- {6.084859, 0.463278, 7.062890, 0},
- {5.912477, 0.451307, 7.258018, 0},
- {5.827483, 0.532710, 7.372939, 0},
- {5.821497, 0.537498, 7.540533, 0},
- {5.737700, 0.536301, 7.648272, 0},
- {5.851425, 0.383072, 7.718901, 0},
- {6.072888, 0.365116, 7.699748, 0},
- {5.929236, 0.392649, 7.878115, 0},
- {5.967544, 0.354342, 8.107959, 0},
- {6.045355, 0.253785, 8.421598, 0},
- {5.923251, 0.323217, 8.574827, 0},
- {5.803541, 0.372298, 8.486242, 0},
- {5.785584, 0.416591, 8.215697, 0},
- {5.768825, 0.496797, 7.946350, 0},
- {5.838257, 0.527921, 7.711719, 0},
- {5.963953, 0.471657, 7.472299, 0},
- {5.986697, 0.430956, 7.435188, 0},
- {5.928040, 0.436942, 7.484270, 0},
- {5.907689, 0.472855, 7.449553, 0},
- {5.935222, 0.456095, 7.354982, 0},
- {5.959164, 0.450110, 7.420823, 0},
- {5.960361, 0.391452, 7.717704, 0},
- {5.880156, 0.399831, 7.902057, 0},
- {5.771219, 0.411802, 7.936773, 0},
- {5.997471, 0.266953, 8.137886, 0},
- {5.945996, 0.380678, 8.301888, 0},
- {5.877761, 0.434547, 8.265976, 0},
- {5.904098, 0.408211, 7.947547, 0},
- {5.918463, 0.432153, 7.615951, 0},
- {5.869381, 0.438139, 7.486664, 0},
- {5.837060, 0.451307, 7.556096, 0},
- {5.900506, 0.465672, 7.654258, 0},
- {5.870579, 0.454898, 7.651864, 0},
- {5.875367, 0.454898, 7.615951, 0},
- {5.887338, 0.451307, 7.697353, 0},
- {5.850228, 0.456095, 7.779953, 0},
- {5.858608, 0.477643, 7.884101, 0},
- {5.749671, 0.506373, 7.787136, 0},
- {5.683831, 0.507570, 7.660243, 0},
- {5.740095, 0.469263, 7.811078, 0},
- {5.766431, 0.405817, 8.002614, 0},
- {5.714955, 0.442927, 8.042118, 0},
- {5.723335, 0.399831, 8.002614, 0},
- {5.712561, 0.343568, 7.995431, 0},
- {5.741292, 0.323217, 8.110353, 0},
- {5.766431, 0.349553, 8.237246, 0},
- {5.704182, 0.367510, 8.276750, 0},
- {5.651509, 0.348356, 8.161828, 0},
- {5.655100, 0.367510, 7.977475, 0},
- {5.770022, 0.269348, 8.037330, 0},
- {5.765234, 0.149638, 8.125915, 0},
- {5.671860, 0.073023, 7.973883, 0},
- {5.667071, 0.105345, 7.836217, 0},
- {5.662283, 0.092177, 7.824246, 0},
- {5.702984, 0.031125, 7.970292, 0},
- {5.731715, -0.005986, 8.169010, 0},
- {5.705379, -0.038307, 8.178588, 0},
- {5.635947, -0.082600, 8.060075, 0},
- {5.614399, -0.087388, 7.846991, 0},
- {5.607216, -0.051475, 7.807487, 0},
- {5.610808, -0.033519, 7.864947, 0},
- {5.594049, 0.014365, 7.959518, 0},
- {5.595245, 0.070629, 8.085214, 0},
- {5.577289, 0.046687, 8.267173, 0},
- {5.512646, -0.061052, 8.195347, 0},
- {5.414484, -0.068235, 7.988248, 0},
- {5.358220, 0.023942, 7.862553, 0},
- {5.412089, 0.094571, 7.925999, 0},
- {5.420469, 0.159214, 8.106761, 0},
- {5.276817, 0.208295, 8.341393, 0},
- {5.264846, 0.239420, 8.215697, 0},
- {5.281605, 0.105345, 8.564054, 0},
- {5.311533, -0.020351, 8.683764, 0},
- {5.209779, 0.087388, 8.489834, 0},
- {5.149924, 0.135272, 8.765166, 0},
- {5.169078, 0.017957, 9.282313, 0},
- {5.274423, -0.105345, 9.628276, 0},
- {5.270832, -0.059855, 9.247598, 0},
- {5.166684, 0.098162, 8.629894, 0},
- {5.128376, 0.126893, 8.294706, 0},
- {5.119997, 0.088585, 8.373714, 0},
- {5.146333, 0.090980, 8.540112, 0},
- {5.112814, 0.226252, 8.293509, 0},
- {5.086478, 0.238223, 8.079228, 0},
- {5.076901, 0.137667, 8.086411, 0},
- {5.064930, 0.064643, 8.396460, 0},
- {5.090069, 0.101754, 8.791503, 0},
- {5.090069, 0.272939, 9.018951, 0},
- {5.106829, 0.399831, 8.947125, 0},
- {5.129574, 0.401029, 8.738831, 0},
- {5.143939, 0.233435, 8.713691, 0},
- {5.165487, 0.124498, 8.570039, 0},
- {5.170275, 0.147243, 8.276750, 0},
- {5.114011, 0.207098, 7.818260, 0},
- {5.033806, 0.308852, 7.491452, 0},
- {5.043383, 0.314837, 7.789530, 0},
- {5.061339, 0.219069, 8.386883, 0},
- {5.069719, 0.137667, 8.644259, 0},
- {5.058945, 0.147243, 8.481454, 0},
- {5.007470, 0.186748, 8.107959, 0},
- {4.957191, 0.214281, 8.024161, 0},
- {5.048171, 0.130484, 8.451527, 0},
- {5.088872, 0.058658, 8.924380, 0},
- {5.104434, -0.016759, 9.154224, 0},
- {5.117603, -0.027533, 8.935155, 0},
- {5.018243, 0.071826, 8.637076, 0},
- {4.983528, 0.090980, 8.604755, 0},
- {5.019441, 0.026336, 8.650245, 0},
- {5.030214, -0.013168, 8.646653, 0},
- {4.939235, -0.026336, 8.565250, 0},
- {4.879380, -0.089783, 8.562857, 0},
- {4.832693, -0.186748, 8.906425, 0},
- {4.851846, -0.294487, 9.361322, 0},
- {4.910504, -0.284910, 9.572012, 0},
- {4.920081, -0.166397, 9.233232, 0},
- {4.865015, -0.051475, 8.621514, 0},
- {4.821919, -0.007183, 8.482651, 0},
- {4.851846, -0.021548, 8.792700, 0},
- {4.916490, -0.056264, 9.081201, 0},
- {4.939235, -0.034716, 8.680172, 0},
- {4.878182, 0.039504, 8.130703, 0},
- {4.825510, 0.070629, 8.079228, 0},
- {4.854240, 0.033519, 8.445540, 0},
- {4.932052, -0.016759, 8.767561, 0},
- {4.988316, -0.080206, 8.864526, 0},
- {5.024229, -0.152032, 8.710100, 0},
- {5.026623, -0.175974, 8.593981, 0},
- {5.011061, -0.119710, 8.465892, 0},
- {5.051762, -0.058658, 8.503001, 0},
- {5.104434, 0.028730, 8.389277, 0},
- {5.108026, 0.174777, 8.304283, 0},
- {5.121194, 0.207098, 8.368926, 0},
- {5.137953, 0.177171, 8.186967, 0},
- {5.123588, 0.141258, 8.036133, 0},
- {5.098449, 0.186748, 8.031344, 0},
- {5.036200, 0.240617, 8.049300, 0},
- {4.977542, 0.316034, 8.190558, 0},
- {4.978739, 0.294487, 8.428782, 0},
- {5.046974, 0.195127, 8.704114, 0},
- {5.042185, 0.211887, 8.719677, 0},
- {4.927264, 0.299275, 8.538915, 0},
- {4.918884, 0.241814, 8.495819, 0},
- {4.897336, 0.189142, 8.492228, 0},
- {4.878182, 0.237026, 8.601164, 0},
- {4.818327, 0.262165, 8.705312, 0},
- {4.871000, 0.172382, 8.791503, 0},
- {4.924870, 0.119710, 8.872906, 0},
- {4.873394, 0.243011, 8.825022, 0},
- {4.832693, 0.408211, 8.659822, 0},
- {4.838678, 0.367510, 8.619121, 0},
- {4.904519, 0.169988, 8.809459, 0},
- {4.926067, 0.071826, 9.058456, 0},
- {4.940432, 0.058658, 8.823824, 0},
- {4.930855, 0.167594, 8.331817, 0},
- {4.918884, 0.266953, 8.265976, 0},
- {4.941629, 0.207098, 8.900438, 0},
- {4.957191, 0.129287, 9.339774, 0},
- {4.915293, 0.180762, 9.089581, 0},
- {4.930855, 0.190339, 8.826219, 0},
- {5.080492, 0.038307, 8.766363, 0},
- {5.204991, -0.108936, 8.631091, 0},
- {5.202597, -0.047884, 8.157040, 0},
- {5.157107, 0.095768, 7.870933, 0},
- {5.164289, 0.168791, 8.019373, 0},
- {5.199006, 0.167594, 8.428782, 0},
- {5.215765, 0.180762, 8.804670, 0},
- {5.201400, 0.278924, 8.614332, 0},
- {5.171472, 0.433350, 8.225274, 0},
- {5.199006, 0.466869, 8.068454, 0},
- {5.245692, 0.434547, 8.081622, 0},
- {5.252875, 0.493205, 8.092396, 0},
- {5.194217, 0.633266, 8.359349, 0},
- {5.155910, 0.772130, 8.494622, 0},
- {5.196611, 0.809240, 8.324634, 0},
- {5.245692, 0.724246, 8.206120, 0},
- {5.252875, 0.677559, 8.295903, 0},
- {5.234919, 0.689530, 8.449132, 0},
- {5.256466, 0.666785, 8.635880, 0},
- {5.276817, 0.672770, 8.653836, 0},
- {5.300759, 0.682347, 8.694537, 0},
- {5.352234, 0.640449, 8.677778, 0},
- {5.373782, 0.659602, 8.445540, 0},
- {5.371388, 0.752976, 8.093594, 0},
- {5.348643, 0.889445, 7.916422, 0},
- {5.337869, 0.974439, 8.097184, 0},
- {5.346249, 0.991199, 8.227669, 0},
- {5.382162, 0.978031, 8.289918, 0},
- {5.436031, 0.922964, 8.264779, 0},
- {5.408498, 0.940921, 8.136689, 0},
- {5.376176, 0.939724, 8.165420, 0},
- {5.364205, 0.924161, 8.331817, 0},
- {5.351037, 0.873883, 8.446738, 0},
- {5.334278, 0.855927, 8.334210, 0},
- {5.292379, 0.861912, 8.178588, 0},
- {5.298365, 0.858321, 8.146266, 0},
- {5.319912, 0.841561, 8.136689, 0},
- {5.353431, 0.793677, 8.121126, 0},
- {5.378571, 0.736217, 8.218092, 0},
- {5.397724, 0.694318, 8.354561, 0},
- {5.367796, 0.709880, 8.420402, 0},
- {5.335475, 0.749385, 8.528141, 0},
- {5.313927, 0.818816, 8.493424, 0},
- {5.306745, 0.889445, 8.315057, 0},
- {5.333081, 0.893037, 8.216895, 0},
- {5.345052, 0.899022, 8.208515, 0},
- {5.348643, 0.920570, 8.322240, 0},
- {5.346249, 0.955286, 8.494622, 0},
- {5.325898, 0.984016, 8.801080, 0},
- {5.355825, 0.998381, 9.132676, 0},
- {5.388147, 0.967257, 9.349351, 0},
- {5.489901, 0.889445, 9.421177, 0},
- {5.553347, 0.900219, 9.010572, 0},
- {5.532996, 1.004367, 8.176193, 0},
- {5.509054, 1.109712, 7.471101, 0},
- {5.504266, 1.175552, 7.400473, 0},
- {5.482718, 1.159990, 7.684185, 0},
- {5.443214, 1.177946, 8.027753, 0},
- {5.426455, 1.201888, 8.292312, 0},
- {5.492295, 1.139639, 8.359349, 0},
- {5.532996, 1.092952, 8.263581, 0},
- {5.522223, 1.072602, 7.959518, 0},
- {5.504266, 1.033097, 7.606374, 0},
- {5.524617, 0.958877, 7.461524, 0},
- {5.505463, 0.876277, 7.580038, 0},
- {5.458776, 0.823605, 7.835020, 0},
- {5.432440, 0.756567, 8.016979, 0},
- {5.386950, 0.760159, 8.174996, 0},
- {5.400118, 0.748188, 8.362941, 0},
- {5.449199, 0.687135, 8.324634, 0},
- {5.426455, 0.701501, 7.993037, 0},
- {5.407301, 0.751779, 7.637498, 0},
- {5.455185, 0.737414, 7.868538, 0},
- {5.456382, 0.735019, 8.342590, 0},
- {5.409695, 0.805648, 8.420402, 0},
- {5.379767, 0.878671, 8.323437, 0},
- {5.433637, 0.877474, 8.230062, 0},
- {5.477930, 0.864306, 8.248019, 0},
- {5.511448, 0.831985, 8.370124, 0},
- {5.525814, 0.817619, 8.439555, 0},
- {5.498281, 0.797269, 8.486242, 0},
- {5.485112, 0.806845, 8.465892, 0},
- {5.480324, 0.830787, 8.364138, 0},
- {5.485112, 0.831985, 8.337802, 0},
- {5.487506, 0.854729, 8.340196, 0},
- {5.434834, 0.873883, 8.372518, 0},
- {5.397724, 0.854729, 8.346182, 0},
- {5.392936, 0.869095, 8.216895, 0},
- {5.373782, 0.891840, 8.018176, 0},
- {5.401315, 0.872686, 7.902057, 0},
- {5.448002, 0.833182, 7.929591, 0},
- {5.425257, 0.835576, 8.146266, 0},
- {5.413286, 0.849941, 8.409628, 0},
- {5.421666, 0.837970, 8.495819, 0},
- {5.434834, 0.802057, 8.402445, 0},
- {5.456382, 0.772130, 8.238442, 0},
- {5.482718, 0.749385, 8.231260, 0},
- {5.497083, 0.744596, 8.304283, 0},
- {5.479127, 0.781706, 8.298298, 0},
- {5.432440, 0.882263, 8.295903, 0},
- {5.404907, 0.958877, 8.201332, 0},
- {5.397724, 0.944512, 8.110353, 0},
- {5.394133, 0.920570, 8.216895, 0},
- {5.437228, 0.899022, 8.328225, 0},
- {5.474339, 0.902613, 8.413219, 0},
- {5.529405, 0.889445, 8.447935, 0},
- {5.590457, 0.873883, 8.355759, 0},
- {5.612005, 0.877474, 8.292312, 0},
- {5.613202, 0.870292, 8.209712, 0},
- {5.585669, 0.913387, 8.025358, 0},
- {5.511448, 0.933738, 7.991840, 0},
- {5.475535, 0.949300, 8.026556, 0},
- {5.463564, 0.999579, 8.031344, 0},
- {5.469550, 0.994790, 7.918817, 0},
- {5.504266, 0.974439, 7.881707, 0},
- {5.546165, 0.991199, 7.955927, 0},
- {5.553347, 0.997184, 8.128309, 0},
- {5.567712, 1.010352, 8.230062, 0},
- {5.553347, 1.048660, 8.279144, 0},
- {5.578486, 1.033097, 8.268370, 0},
- {5.571303, 1.016338, 8.101973, 0},
- {5.543770, 0.985213, 7.933182, 0},
- {5.550953, 0.909796, 7.971489, 0},
- {5.547361, 0.855927, 7.951138, 0},
- {5.540179, 0.840364, 7.978672, 0},
- {5.523419, 0.848744, 8.152251, 0},
- {5.491098, 0.853532, 8.298298, 0},
- {5.420469, 0.901416, 8.333014, 0},
- {5.403709, 0.937329, 8.419205, 0},
- {5.440820, 0.964863, 8.601164, 0},
- {5.465959, 0.991199, 8.426387, 0},
- {5.457579, 1.051054, 8.109156, 0},
- {5.437228, 1.104923, 7.977475, 0},
- {5.428849, 1.102529, 8.027753, 0},
- {5.433637, 1.090558, 8.195347, 0},
- {5.432440, 1.100135, 8.276750, 0},
- {5.461170, 1.134851, 8.309072, 0},
- {5.511448, 1.119289, 8.292312, 0},
- {5.540179, 1.089361, 8.316254, 0},
- {5.518631, 1.103726, 8.358152, 0},
- {5.528208, 1.112106, 8.343787, 0},
- {5.527011, 1.094149, 8.257596, 0},
- {5.495886, 1.116894, 8.154645, 0},
- {5.510252, 1.092952, 8.208515, 0},
- {5.538982, 1.058236, 8.158237, 0},
- {5.511448, 1.088164, 7.948744, 0},
- {5.515040, 1.084573, 7.852976, 0},
- {5.507857, 1.104923, 7.959518, 0},
- {5.468353, 1.138442, 8.188165, 0},
- {5.468353, 1.148019, 8.327028, 0},
- {5.481521, 1.133654, 8.289918, 0},
- {5.511448, 1.120486, 8.226472, 0},
- {5.530602, 1.086967, 8.198938, 0},
- {5.529405, 1.065419, 8.166616, 0},
- {5.469550, 1.060631, 8.221684, 0},
- {5.440820, 1.053448, 8.240837, 0},
- {5.396527, 1.053448, 8.213304, 0},
- {5.386950, 1.055842, 8.234851, 0},
- {5.421666, 1.046265, 8.246822, 0},
- {5.431243, 1.029506, 8.155843, 0},
- {5.298365, 1.292868, 5.756854, 0},
- {5.191823, 1.255758, 8.088805, 0},
- {5.204991, 1.169567, 10.260345, 0}
+ { -0.269348, 0.220266, 10.030501, 0 },
+ { -0.259771, 0.216675, 10.113101, 0 },
+ { -0.253785, 0.213084, 10.096342, 0 },
+ { -0.262165, 0.201113, 10.098736, 0 },
+ { -0.257377, 0.210690, 10.093947, 0 },
+ { -0.253785, 0.202310, 10.096342, 0 },
+ { -0.257377, 0.213084, 10.113101, 0 },
+ { -0.257377, 0.221464, 10.096342, 0 },
+ { -0.262165, 0.217872, 10.115496, 0 },
+ { -0.258574, 0.219069, 10.102327, 0 },
+ { -0.275333, 0.205901, 10.123875, 0 },
+ { -0.262165, 0.209493, 10.085567, 0 },
+ { -0.271742, 0.209493, 10.110707, 0 },
+ { -0.275333, 0.220266, 10.096342, 0 },
+ { -0.251391, 0.210690, 10.097539, 0 },
+ { -0.262165, 0.210690, 10.090356, 0 },
+ { -0.268150, 0.208295, 10.108313, 0 },
+ { -0.258574, 0.210690, 10.098736, 0 },
+ { -0.270545, 0.219069, 10.097539, 0 },
+ { -0.263362, 0.211887, 10.102327, 0 },
+ { -0.264559, 0.211887, 10.097539, 0 },
+ { -0.262165, 0.204704, 10.090356, 0 },
+ { -0.246603, 0.203507, 10.089159, 0 },
+ { -0.250194, 0.215478, 10.099933, 0 },
+ { -0.270545, 0.225055, 10.109509, 0 },
+ { -0.256179, 0.213084, 10.097539, 0 },
+ { -0.248997, 0.207098, 10.086765, 0 },
+ { -0.248997, 0.210690, 10.087962, 0 },
+ { -0.256179, 0.201113, 10.089159, 0 },
+ { -0.258574, 0.203507, 10.104721, 0 },
+ { -0.262165, 0.208295, 10.093947, 0 },
+ { -0.246603, 0.204704, 10.086765, 0 },
+ { -0.247800, 0.208295, 10.108313, 0 },
+ { -0.252588, 0.220266, 10.099933, 0 },
+ { -0.264559, 0.210690, 10.098736, 0 },
+ { -0.266953, 0.185551, 10.084371, 0 },
+ { -0.253785, 0.213084, 10.109509, 0 },
+ { -0.256179, 0.231040, 10.099933, 0 },
+ { -0.252588, 0.205901, 10.091554, 0 },
+ { -0.259771, 0.207098, 10.095144, 0 },
+ { -0.260968, 0.203507, 10.096342, 0 },
+ { -0.253785, 0.205901, 10.095144, 0 },
+ { -0.256179, 0.217872, 10.093947, 0 },
+ { -0.265756, 0.209493, 10.083174, 0 },
+ { -0.263362, 0.204704, 10.103524, 0 },
+ { -0.253785, 0.198719, 10.095144, 0 },
+ { -0.252588, 0.209493, 10.103524, 0 },
+ { -0.260968, 0.205901, 10.098736, 0 },
+ { -0.259771, 0.205901, 10.083174, 0 },
+ { -0.266953, 0.216675, 10.090356, 0 },
+ { -0.265756, 0.207098, 10.101130, 0 },
+ { -0.262165, 0.204704, 10.111904, 0 },
+ { -0.248997, 0.199916, 10.101130, 0 },
+ { -0.263362, 0.207098, 10.096342, 0 },
+ { -0.281319, 0.227449, 10.108313, 0 },
+ { -0.259771, 0.219069, 10.087962, 0 },
+ { -0.258574, 0.214281, 10.079582, 0 },
+ { -0.268150, 0.204704, 10.108313, 0 },
+ { -0.277727, 0.204704, 10.114298, 0 },
+ { -0.257377, 0.208295, 10.115496, 0 },
+ { -0.260968, 0.222661, 10.104721, 0 },
+ { -0.265756, 0.213084, 10.102327, 0 },
+ { -0.256179, 0.210690, 10.099933, 0 },
+ { -0.253785, 0.203507, 10.109509, 0 },
+ { -0.270545, 0.201113, 10.103524, 0 },
+ { -0.259771, 0.209493, 10.115496, 0 },
+ { -0.264559, 0.207098, 10.103524, 0 },
+ { -0.263362, 0.202310, 10.105919, 0 },
+ { -0.260968, 0.220266, 10.110707, 0 },
+ { -0.257377, 0.216675, 10.110707, 0 },
+ { -0.259771, 0.195127, 10.093947, 0 },
+ { -0.271742, 0.209493, 10.104721, 0 },
+ { -0.257377, 0.223858, 10.108313, 0 },
+ { -0.265756, 0.205901, 10.101130, 0 },
+ { -0.270545, 0.196324, 10.101130, 0 },
+ { -0.254982, 0.202310, 10.115496, 0 },
+ { -0.248997, 0.214281, 10.116693, 0 },
+ { -0.268150, 0.207098, 10.111904, 0 },
+ { -0.263362, 0.204704, 10.091554, 0 },
+ { -0.270545, 0.210690, 10.091554, 0 },
+ { -0.268150, 0.215478, 10.102327, 0 },
+ { -0.264559, 0.223858, 10.096342, 0 },
+ { -0.262165, 0.203507, 10.099933, 0 },
+ { -0.259771, 0.203507, 10.103524, 0 },
+ { -0.269348, 0.204704, 10.119086, 0 },
+ { -0.265756, 0.202310, 10.091554, 0 },
+ { -0.260968, 0.201113, 10.092751, 0 },
+ { -0.260968, 0.210690, 10.092751, 0 },
+ { -0.266953, 0.205901, 10.109509, 0 },
+ { -0.269348, 0.203507, 10.105919, 0 },
+ { -0.264559, 0.193930, 10.114298, 0 },
+ { -0.263362, 0.216675, 10.093947, 0 },
+ { -0.256179, 0.208295, 10.095144, 0 },
+ { -0.271742, 0.203507, 10.103524, 0 },
+ { -0.259771, 0.208295, 10.089159, 0 },
+ { -0.257377, 0.220266, 10.108313, 0 },
+ { -0.266953, 0.207098, 10.101130, 0 },
+ { -0.268150, 0.198719, 10.117889, 0 },
+ { -0.258574, 0.204704, 10.091554, 0 },
+ { -0.266953, 0.201113, 10.104721, 0 },
+ { -0.265756, 0.205901, 10.091554, 0 },
+ { -0.277727, 0.203507, 10.102327, 0 },
+ { -0.266953, 0.204704, 10.093947, 0 },
+ { -0.265756, 0.215478, 10.107116, 0 },
+ { -0.254982, 0.215478, 10.110707, 0 },
+ { -0.269348, 0.217872, 10.095144, 0 },
+ { -0.265756, 0.229843, 10.109509, 0 },
+ { -0.260968, 0.226252, 10.098736, 0 },
+ { -0.253785, 0.208295, 10.095144, 0 },
+ { -0.253785, 0.211887, 10.085567, 0 },
+ { -0.268150, 0.214281, 10.109509, 0 },
+ { -0.258574, 0.201113, 10.107116, 0 },
+ { -0.265756, 0.211887, 10.103524, 0 },
+ { -0.256179, 0.215478, 10.093947, 0 },
+ { -0.263362, 0.204704, 10.107116, 0 },
+ { -0.260968, 0.214281, 10.098736, 0 },
+ { -0.259771, 0.213084, 10.110707, 0 },
+ { -0.276530, 0.215478, 10.095144, 0 },
+ { -0.263362, 0.211887, 10.084371, 0 },
+ { -0.245406, 0.217872, 10.110707, 0 },
+ { -0.251391, 0.209493, 10.105919, 0 },
+ { -0.269348, 0.205901, 10.093947, 0 },
+ { -0.271742, 0.201113, 10.099933, 0 },
+ { -0.270545, 0.228646, 10.099933, 0 },
+ { -0.262165, 0.217872, 10.096342, 0 },
+ { -0.259771, 0.209493, 10.099933, 0 },
+ { -0.260968, 0.210690, 10.105919, 0 },
+ { -0.252588, 0.203507, 10.099933, 0 },
+ { -0.263362, 0.197522, 10.095144, 0 },
+ { -0.271742, 0.213084, 10.101130, 0 },
+ { -0.268150, 0.196324, 10.110707, 0 },
+ { -0.248997, 0.213084, 10.108313, 0 },
+ { -0.254982, 0.215478, 10.095144, 0 },
+ { -0.260968, 0.208295, 10.107116, 0 },
+ { -0.259771, 0.219069, 10.108313, 0 },
+ { -0.266953, 0.214281, 10.098736, 0 },
+ { -0.269348, 0.202310, 10.090356, 0 },
+ { -0.258574, 0.204704, 10.113101, 0 },
+ { -0.263362, 0.226252, 10.086765, 0 },
+ { -0.264559, 0.204704, 10.096342, 0 },
+ { -0.271742, 0.219069, 10.096342, 0 },
+ { -0.252588, 0.210690, 10.104721, 0 },
+ { -0.258574, 0.211887, 10.113101, 0 },
+ { -0.264559, 0.210690, 10.104721, 0 },
+ { -0.269348, 0.214281, 10.103524, 0 },
+ { -0.253785, 0.211887, 10.093947, 0 },
+ { -0.256179, 0.223858, 10.110707, 0 },
+ { -0.274136, 0.207098, 10.098736, 0 },
+ { -0.274136, 0.207098, 10.092751, 0 },
+ { -0.254982, 0.210690, 10.091554, 0 },
+ { -0.257377, 0.204704, 10.098736, 0 },
+ { -0.257377, 0.209493, 10.108313, 0 },
+ { -0.257377, 0.211887, 10.095144, 0 },
+ { -0.259771, 0.199916, 10.095144, 0 },
+ { -0.257377, 0.214281, 10.101130, 0 },
+ { -0.270545, 0.217872, 10.103524, 0 },
+ { -0.281319, 0.204704, 10.104721, 0 },
+ { -0.271742, 0.208295, 10.103524, 0 },
+ { -0.258574, 0.211887, 10.104721, 0 },
+ { -0.264559, 0.204704, 10.126269, 0 },
+ { -0.262165, 0.201113, 10.101130, 0 },
+ { -0.258574, 0.219069, 10.096342, 0 },
+ { -0.263362, 0.211887, 10.107116, 0 },
+ { -0.265756, 0.203507, 10.091554, 0 },
+ { -0.264559, 0.205901, 10.107116, 0 },
+ { -0.256179, 0.214281, 10.095144, 0 },
+ { -0.263362, 0.202310, 10.097539, 0 },
+ { -0.271742, 0.207098, 10.104721, 0 },
+ { -0.272939, 0.210690, 10.101130, 0 },
+ { -0.262165, 0.205901, 10.096342, 0 },
+ { -0.260968, 0.209493, 10.107116, 0 },
+ { -0.269348, 0.217872, 10.093947, 0 },
+ { -0.256179, 0.220266, 10.087962, 0 },
+ { -0.264559, 0.208295, 10.092751, 0 },
+ { -0.265756, 0.208295, 10.095144, 0 },
+ { -0.262165, 0.199916, 10.098736, 0 },
+ { -0.259771, 0.215478, 10.101130, 0 },
+ { -0.263362, 0.217872, 10.097539, 0 },
+ { -0.263362, 0.204704, 10.095144, 0 },
+ { -0.248997, 0.202310, 10.096342, 0 },
+ { -0.260968, 0.226252, 10.097539, 0 },
+ { -0.259771, 0.216675, 10.103524, 0 },
+ { -0.270545, 0.205901, 10.090356, 0 },
+ { -0.250194, 0.219069, 10.089159, 0 },
+ { -0.254982, 0.213084, 10.098736, 0 },
+ { -0.268150, 0.204704, 10.102327, 0 },
+ { -0.258574, 0.215478, 10.104721, 0 },
+ { -0.250194, 0.217872, 10.102327, 0 },
+ { -0.250194, 0.215478, 10.097539, 0 },
+ { -0.251391, 0.213084, 10.086765, 0 },
+ { -0.266953, 0.204704, 10.108313, 0 },
+ { -0.270545, 0.199916, 10.099933, 0 },
+ { -0.271742, 0.208295, 10.092751, 0 },
+ { -0.268150, 0.222661, 10.098736, 0 },
+ { -0.252588, 0.213084, 10.096342, 0 },
+ { -0.266953, 0.213084, 10.092751, 0 },
+ { -0.265756, 0.205901, 10.105919, 0 },
+ { -0.258574, 0.209493, 10.103524, 0 },
+ { -0.263362, 0.203507, 10.103524, 0 },
+ { -0.265756, 0.213084, 10.092751, 0 },
+ { -0.266953, 0.209493, 10.097539, 0 },
+ { -0.272939, 0.193930, 10.110707, 0 },
+ { -0.258574, 0.209493, 10.109509, 0 },
+ { -0.259771, 0.213084, 10.101130, 0 },
+ { -0.274136, 0.215478, 10.101130, 0 },
+ { -0.259771, 0.207098, 10.091554, 0 },
+ { -0.265756, 0.208295, 10.101130, 0 },
+ { -0.263362, 0.210690, 10.109509, 0 },
+ { -0.264559, 0.216675, 10.110707, 0 },
+ { -0.266953, 0.211887, 10.099933, 0 },
+ { -0.268150, 0.199916, 10.093947, 0 },
+ { -0.265756, 0.216675, 10.105919, 0 },
+ { -0.262165, 0.204704, 10.081977, 0 },
+ { -0.263362, 0.214281, 10.086765, 0 },
+ { -0.263362, 0.210690, 10.084371, 0 },
+ { -0.257377, 0.201113, 10.104721, 0 },
+ { -0.262165, 0.203507, 10.109509, 0 },
+ { -0.266953, 0.217872, 10.113101, 0 },
+ { -0.252588, 0.209493, 10.102327, 0 },
+ { -0.257377, 0.213084, 10.096342, 0 },
+ { -0.260968, 0.211887, 10.101130, 0 },
+ { -0.263362, 0.197522, 10.114298, 0 },
+ { -0.272939, 0.192733, 10.103524, 0 },
+ { -0.250194, 0.207098, 10.079582, 0 },
+ { -0.253785, 0.214281, 10.107116, 0 },
+ { -0.254982, 0.205901, 10.095144, 0 },
+ { -0.256179, 0.209493, 10.103524, 0 },
+ { -0.265756, 0.222661, 10.111904, 0 },
+ { -0.259771, 0.211887, 10.101130, 0 },
+ { -0.256179, 0.202310, 10.115496, 0 },
+ { -0.260968, 0.209493, 10.109509, 0 },
+ { -0.243011, 0.203507, 10.101130, 0 },
+ { -0.252588, 0.205901, 10.096342, 0 },
+ { -0.253785, 0.225055, 10.095144, 0 },
+ { -0.258574, 0.225055, 10.096342, 0 },
+ { -0.264559, 0.215478, 10.092751, 0 },
+ { -0.265756, 0.205901, 10.114298, 0 },
+ { -0.266953, 0.220266, 10.108313, 0 },
+ { -0.268150, 0.208295, 10.109509, 0 },
+ { -0.259771, 0.210690, 10.103524, 0 },
+ { -0.253785, 0.210690, 10.109509, 0 },
+ { -0.268150, 0.213084, 10.097539, 0 },
+ { -0.268150, 0.215478, 10.102327, 0 },
+ { -0.269348, 0.201113, 10.103524, 0 },
+ { -0.262165, 0.199916, 10.107116, 0 },
+ { -0.260968, 0.205901, 10.120284, 0 },
+ { -0.257377, 0.193930, 10.102327, 0 },
+ { -0.264559, 0.203507, 10.104721, 0 },
+ { -0.265756, 0.210690, 10.093947, 0 },
+ { -0.256179, 0.209493, 10.097539, 0 },
+ { -0.257377, 0.204704, 10.107116, 0 },
+ { -0.260968, 0.208295, 10.093947, 0 },
+ { -0.258574, 0.204704, 10.102327, 0 },
+ { -0.263362, 0.211887, 10.107116, 0 },
+ { -0.263362, 0.191536, 10.097539, 0 },
+ { -0.253785, 0.209493, 10.107116, 0 },
+ { -0.254982, 0.217872, 10.105919, 0 },
+ { -0.259771, 0.207098, 10.096342, 0 },
+ { -0.265756, 0.204704, 10.114298, 0 },
+ { -0.270545, 0.208295, 10.099933, 0 },
+ { -0.262165, 0.214281, 10.104721, 0 },
+ { -0.257377, 0.205901, 10.095144, 0 },
+ { -0.266953, 0.214281, 10.096342, 0 },
+ { -0.274136, 0.225055, 10.093947, 0 },
+ { -0.266953, 0.216675, 10.099933, 0 },
+ { -0.269348, 0.208295, 10.099933, 0 },
+ { -0.266953, 0.222661, 10.105919, 0 },
+ { -0.246603, 0.204704, 10.090356, 0 },
+ { -0.257377, 0.202310, 10.102327, 0 },
+ { -0.258574, 0.217872, 10.114298, 0 },
+ { -0.268150, 0.225055, 10.099933, 0 },
+ { -0.278924, 0.210690, 10.097539, 0 },
+ { -0.263362, 0.203507, 10.104721, 0 },
+ { -0.252588, 0.221464, 10.089159, 0 },
+ { -0.252588, 0.208295, 10.073597, 0 },
+ { -0.252588, 0.213084, 10.091554, 0 },
+ { -0.256179, 0.210690, 10.087962, 0 },
+ { -0.272939, 0.214281, 10.097539, 0 },
+ { -0.259771, 0.203507, 10.097539, 0 },
+ { -0.271742, 0.208295, 10.102327, 0 },
+ { -0.262165, 0.216675, 10.095144, 0 },
+ { -0.264559, 0.215478, 10.095144, 0 },
+ { -0.265756, 0.214281, 10.103524, 0 },
+ { -0.268150, 0.217872, 10.096342, 0 },
+ { -0.262165, 0.221464, 10.104721, 0 },
+ { -0.274136, 0.219069, 10.101130, 0 },
+ { -0.264559, 0.208295, 10.097539, 0 },
+ { -0.265756, 0.203507, 10.089159, 0 },
+ { -0.269348, 0.204704, 10.110707, 0 },
+ { -0.268150, 0.214281, 10.116693, 0 },
+ { -0.250194, 0.199916, 10.102327, 0 },
+ { -0.266953, 0.197522, 10.105919, 0 },
+ { -0.268150, 0.199916, 10.108313, 0 },
+ { -0.259771, 0.195127, 10.093947, 0 },
+ { -0.262165, 0.215478, 10.085567, 0 },
+ { -0.263362, 0.216675, 10.101130, 0 },
+ { -0.252588, 0.227449, 10.037683, 0 },
+ { -0.276530, 0.208295, 10.177745, 0 },
+ { -0.254982, 0.205901, 10.175350, 0 },
+ { -0.257377, 0.204704, 10.041275, 0 },
+ { -0.258574, 0.210690, 10.117889, 1 },
+ { -0.243011, 0.209493, 10.085567, 0 },
+ { -0.254982, 0.196324, 10.109509, 0 },
+ { -0.248997, 0.193930, 10.097539, 0 },
+ { -0.269348, 0.207098, 10.098736, 0 },
+ { -0.262165, 0.213084, 10.098736, 0 },
+ { -0.262165, 0.201113, 10.066414, 0 },
+ { -0.264559, 0.208295, 10.103524, 0 },
+ { -0.264559, 0.208295, 10.101130, 0 },
+ { -0.257377, 0.210690, 10.119086, 0 },
+ { -0.256179, 0.198719, 10.093947, 0 },
+ { -0.253785, 0.198719, 10.113101, 0 },
+ { -0.254982, 0.215478, 10.081977, 0 },
+ { -0.259771, 0.210690, 10.092751, 0 },
+ { -0.264559, 0.214281, 10.090356, 0 },
+ { -0.260968, 0.187945, 10.144226, 0 },
+ { -0.268150, 0.245406, 10.073597, 0 },
+ { -0.408211, 0.396240, 10.056837, 0 },
+ { -2.020705, 2.340331, 10.170562, 0 },
+ { -0.186748, 1.916557, 10.966634, 0 },
+ { 7.234076, -2.675519, 16.133318, 0 },
+ { 7.775165, 0.863109, 11.798618, 0 },
+ { 3.503912, -1.510740, 2.634817, 0 },
+ { -3.895364, -5.768825, 9.538493, 0 },
+ { -4.587287, -2.717417, 26.975452, 0 },
+ { -3.013101, 4.329911, 32.156502, 0 },
+ { -4.693829, -1.854308, 19.993965, 0 },
+ { -5.236115, -2.634817, 18.126490, 0 },
+ { -6.558911, 1.010352, 20.283663, 0 },
+ { -8.033738, 0.130484, 22.203812, 0 },
+ { -7.487861, -0.525527, 18.705885, 0 },
+ { -6.692986, 0.266953, 15.228310, 0 },
+ { -6.151897, 0.128090, 10.176547, 0 },
+ { -6.020216, 0.745793, 5.400118, 0 },
+ { -5.798753, 1.690305, 1.695094, 0 },
+ { -3.584117, 1.229422, -1.827972, 0 },
+ { -0.386663, 1.133654, -4.835087, 0 },
+ { 0.955286, 1.742978, -4.969162, 0 },
+ { 3.201046, 1.059434, -6.075283, 0 },
+ { 7.366954, -0.312443, -7.837414, 0 },
+ { 8.429978, -0.656011, -6.296746, 0 },
+ { 6.950363, -0.164003, -3.179498, 0 },
+ { 6.801922, -0.415394, -0.955286, 0 },
+ { 7.827837, -0.814028, 1.152807, 0 },
+ { 7.793121, -0.723048, 3.940853, 0 },
+ { 7.422020, -0.292092, 6.720520, 0 },
+ { 7.978672, -0.298078, 7.856567, 0 },
+ { 8.202530, -0.122104, 7.301113, 0 },
+ { 7.778756, 0.360327, 6.107605, 0 },
+ { 7.892480, 0.318429, 5.987895, 0 },
+ { 8.950717, 0.108936, 6.327871, 0 },
+ { 8.798685, 0.319626, 7.009021, 0 },
+ { 7.748828, 0.839167, 7.133519, 0 },
+ { 7.795516, 0.958877, 6.597219, 0 },
+ { 7.850582, 1.035492, 5.942405, 0 },
+ { 7.547716, 1.152807, 5.074507, 0 },
+ { 7.116760, 1.128865, 4.546586, 0 },
+ { 7.422020, 0.805648, 4.566936, 0 },
+ { 7.937970, 0.517147, 4.827904, 0 },
+ { 8.088805, 0.418985, 5.172669, 0 },
+ { 8.329422, 0.415394, 5.573698, 0 },
+ { 8.099579, 0.739808, 5.117603, 0 },
+ { 7.973883, 0.805648, 4.387372, 0 },
+ { 7.833823, 1.048660, 3.857056, 0 },
+ { 8.100776, 1.177946, 3.950430, 0 },
+ { 8.722071, 1.122880, 4.909307, 0 },
+ { 9.400826, 0.921767, 5.566515, 0 },
+ { 9.440331, 0.920570, 5.175064, 0 },
+ { 8.723268, 1.022323, 4.551374, 0 },
+ { 8.115141, 1.175552, 4.096477, 0 },
+ { 8.135491, 1.387439, 3.754106, 0 },
+ { 8.602361, 1.533485, 3.762486, 0 },
+ { 8.884876, 1.289277, 4.268859, 0 },
+ { 8.775940, 0.867898, 4.517856, 0 },
+ { 8.434767, 0.647631, 4.377795, 0 },
+ { 8.220486, 0.623689, 4.394554, 0 },
+ { 7.817063, 0.945709, 4.226960, 0 },
+ { 8.021768, 1.249772, 3.598483, 0 },
+ { 9.108734, 0.667982, 3.156753, 0 },
+ { 9.658203, 0.177171, 2.748542, 0 },
+ { 9.301467, 0.393846, 2.639606, 0 },
+ { 9.026134, 0.736217, 3.105278, 0 },
+ { 8.865723, 0.814028, 3.799596, 0 },
+ { 8.759181, 0.849941, 4.060563, 0 },
+ { 8.493424, 0.964863, 4.404131, 0 },
+ { 8.276750, 1.033097, 4.540600, 0 },
+ { 8.324634, 0.908599, 4.672281, 0 },
+ { 8.778335, 0.644040, 4.946417, 0 },
+ { 8.558068, 0.827196, 5.007470, 0 },
+ { 8.507790, 0.703895, 4.434059, 0 },
+ { 8.688552, 0.684741, 3.661929, 0 },
+ { 8.784320, 0.820014, 3.207031, 0 },
+ { 8.844175, 0.839167, 3.385399, 0 },
+ { 8.908818, 0.858321, 3.974372, 0 },
+ { 9.044091, 0.907402, 4.442438, 0 },
+ { 8.989024, 0.899022, 4.399343, 0 },
+ { 8.925578, 0.815225, 4.141966, 0 },
+ { 9.033317, 0.615309, 3.840297, 0 },
+ { 9.083595, 0.436942, 3.727770, 0 },
+ { 9.020149, 0.338779, 3.928882, 0 },
+ { 8.930367, 0.299275, 4.174288, 0 },
+ { 8.963885, 0.246603, 4.288013, 0 },
+ { 8.842978, 0.304063, 4.236537, 0 },
+ { 8.641865, 0.396240, 4.152740, 0 },
+ { 8.591587, 0.466869, 4.163514, 0 },
+ { 8.656230, 0.460884, 4.255691, 0 },
+ { 8.836992, 0.398634, 4.118024, 0 },
+ { 8.957899, 0.453701, 3.754106, 0 },
+ { 9.045288, 0.502782, 3.326741, 0 },
+ { 9.083595, 0.586579, 3.045423, 0 },
+ { 9.033317, 0.705092, 3.004721, 0 },
+ { 8.968674, 0.715866, 3.072956, 0 },
+ { 8.899241, 0.684741, 3.071759, 0 },
+ { 8.809459, 0.632069, 3.072956, 0 },
+ { 8.832204, 0.585382, 3.138796, 0 },
+ { 8.825022, 0.575805, 3.143585, 0 },
+ { 8.761575, 0.556652, 3.064576, 0 },
+ { 8.750801, 0.594959, 3.092109, 0 },
+ { 8.817839, 0.633266, 3.129220, 0 },
+ { 8.913607, 0.640449, 3.046620, 0 },
+ { 8.998601, 0.658405, 2.869449, 0 },
+ { 9.095566, 0.684741, 2.670730, 0 },
+ { 9.133873, 0.694318, 2.789243, 0 },
+ { 9.126691, 0.676362, 3.256112, 0 },
+ { 9.041697, 0.723048, 3.632001, 0 },
+ { 8.827415, 0.763750, 3.794807, 0 },
+ { 8.853752, 0.694318, 3.775654, 0 },
+ { 9.000996, 0.618901, 3.673900, 0 },
+ { 9.066835, 0.561440, 3.708616, 0 },
+ { 9.075215, 0.497994, 3.767274, 0 },
+ { 9.064442, 0.417788, 3.775654, 0 },
+ { 9.003389, 0.444124, 3.676294, 0 },
+ { 8.943534, 0.500388, 3.551796, 0 },
+ { 8.961491, 0.505176, 3.343500, 0 },
+ { 8.789108, 0.600944, 3.191469, 0 },
+ { 8.816642, 0.596156, 3.118446, 0 },
+ { 8.889665, 0.549469, 3.131614, 0 },
+ { 8.881285, 0.533907, 3.242944, 0 },
+ { 8.783123, 0.590170, 3.416523, 0 },
+ { 8.716085, 0.642843, 3.600877, 0 },
+ { 8.719677, 0.612915, 3.694251, 0 },
+ { 8.792700, 0.532710, 3.641578, 0 },
+ { 8.895650, 0.470460, 3.475181, 0 },
+ { 8.902833, 0.453701, 3.179498, 0 },
+ { 8.833401, 0.399831, 2.855083, 0 },
+ { 8.759181, 0.278924, 2.383426, 0 },
+ { 8.670595, 0.118513, 1.875856, 0 },
+ { 8.531732, -0.013168, 1.414972, 0 },
+ { 8.376109, -0.057461, 1.115697, 0 },
+ { 8.304283, -0.015562, 1.341949, 0 },
+ { 7.916422, 0.159214, 1.878250, 0 },
+ { 7.595600, 0.270545, 3.086124, 0 },
+ { 7.516591, 0.349553, 4.906913, 0 },
+ { 7.881707, 0.061052, 6.694183, 0 },
+ { 8.112747, -0.235829, 7.243652, 0 },
+ { 8.034935, -0.387860, 7.001838, 0 },
+ { 8.052892, -0.222661, 6.254848, 0 },
+ { 7.948744, 0.203507, 5.623976, 0 },
+ { 7.327449, 0.853532, 5.892127, 0 },
+ { 6.556517, 1.406592, 6.268016, 0 },
+ { 6.993458, 1.375468, 6.548137, 0 },
+ { 7.503423, 1.138442, 6.823470, 0 },
+ { 7.237667, 1.118091, 7.408852, 0 },
+ { 7.144293, 1.031900, 8.170208, 0 },
+ { 7.127533, 0.927753, 8.361744, 0 },
+ { 6.883325, 0.820014, 8.204924, 0 },
+ { 6.708549, 0.644040, 7.923605, 0 },
+ { 6.877340, 0.410605, 7.595600, 0 },
+ { 7.054511, 0.339976, 7.395684, 0 },
+ { 7.176615, 0.295684, 7.271185, 0 },
+ { 7.182600, 0.259771, 7.201754, 0 },
+ { 6.823470, 0.384269, 7.207739, 0 },
+ { 6.624752, 0.464475, 7.419626, 0 },
+ { 6.767207, 0.436942, 7.730872, 0 },
+ { 6.834244, 0.386663, 7.971489, 0 },
+ { 6.795937, 0.344765, 7.827837, 0 },
+ { 6.531378, 0.404620, 7.354982, 0 },
+ { 6.513421, 0.317232, 7.140702, 0 },
+ { 6.649891, 0.192733, 7.065284, 0 },
+ { 6.544546, 0.299275, 6.846215, 0 },
+ { 6.555320, 0.381875, 6.678621, 0 },
+ { 6.630737, 0.332794, 6.690592, 0 },
+ { 6.636723, 0.199916, 6.915647, 0 },
+ { 6.590036, 0.169988, 7.594403, 0 },
+ { 6.248862, 0.393846, 8.506593, 0 },
+ { 6.199781, 0.445321, 8.953111, 0 },
+ { 6.538560, 0.023942, 8.977053, 0 },
+ { 6.251256, 0.074220, 8.766363, 0 },
+ { 6.154291, 0.337582, 8.178588, 0 },
+ { 6.550531, 0.281319, 7.522577, 0 },
+ { 6.397303, 0.652420, 7.284354, 0 },
+ { 6.174642, 0.914584, 7.181403, 0 },
+ { 6.265622, 0.825999, 6.584050, 0 },
+ { 6.449975, 0.812831, 6.244074, 0 },
+ { 6.738476, 0.641646, 6.549335, 0 },
+ { 6.904873, 0.591367, 6.961137, 0 },
+ { 6.669044, 0.671573, 7.244849, 0 },
+ { 6.514618, 0.677559, 7.499832, 0 },
+ { 6.716928, 0.464475, 7.510606, 0 },
+ { 6.792346, 0.463278, 7.596797, 0 },
+ { 6.734885, 0.585382, 7.791924, 0 },
+ { 6.658270, 0.447715, 7.554898, 0 },
+ { 6.463143, 0.486023, 7.091620, 0 },
+ { 6.501450, 0.563834, 6.517013, 0 },
+ { 6.488282, 0.654814, 6.062115, 0 },
+ { 6.436807, 0.670376, 6.069297, 0 },
+ { 6.479902, 0.659602, 6.549335, 0 },
+ { 6.368572, 0.628478, 7.060496, 0 },
+ { 6.446383, 0.487220, 7.497437, 0 },
+ { 6.628343, 0.423773, 7.789530, 0 },
+ { 6.636723, 0.460884, 7.996628, 0 },
+ { 6.369769, 0.560243, 8.149857, 0 },
+ { 6.105210, 0.602141, 8.106761, 0 },
+ { 6.810302, 0.294487, 8.166616, 0 },
+ { 7.140702, 0.201113, 8.110353, 0 },
+ { 6.691789, 0.211887, 7.706930, 0 },
+ { 6.524195, 0.271742, 7.422020, 0 },
+ { 6.406879, 0.363918, 7.422020, 0 },
+ { 6.278790, 0.423773, 7.556096, 0 },
+ { 6.175839, 0.460884, 7.661440, 0 },
+ { 6.229709, 0.451307, 7.507014, 0 },
+ { 6.511027, 0.403423, 6.991064, 0 },
+ { 6.872551, 0.345962, 6.734885, 0 },
+ { 6.777980, 0.488417, 6.701366, 0 },
+ { 6.730096, 0.620098, 6.682212, 0 },
+ { 6.818682, 0.694318, 6.673833, 0 },
+ { 6.897690, 0.634463, 6.702563, 0 },
+ { 6.824667, 0.557849, 6.743265, 0 },
+ { 6.700169, 0.621295, 6.815091, 0 },
+ { 6.441595, 0.687135, 6.744462, 0 },
+ { 6.476311, 0.812831, 6.872551, 0 },
+ { 7.070073, 0.621295, 7.327449, 0 },
+ { 6.791149, 0.446518, 7.169432, 0 },
+ { 6.742067, 0.513556, 7.479481, 0 },
+ { 6.738476, 0.420182, 7.603980, 0 },
+ { 6.797134, 0.195127, 7.705733, 0 },
+ { 6.882128, 0.363918, 7.593205, 0 },
+ { 6.769601, 0.568623, 7.325055, 0 },
+ { 6.915647, 0.465672, 7.016203, 0 },
+ { 7.165841, 0.305261, 6.475114, 0 },
+ { 7.277171, 0.234632, 5.893323, 0 },
+ { 7.274777, 0.275333, 5.352234, 0 },
+ { 6.994656, 0.428562, 5.149924, 0 },
+ { 6.801922, 0.456095, 5.353431, 0 },
+ { 6.751644, 0.354342, 5.864593, 0 },
+ { 6.592430, 0.339976, 6.321885, 0 },
+ { 6.416456, 0.262165, 6.567291, 0 },
+ { 6.847412, -0.142455, 7.101197, 0 },
+ { 7.248441, -0.061052, 7.084438, 0 },
+ { 6.556517, 0.310049, 7.459130, 0 },
+ { 6.555320, 0.251391, 7.558490, 0 },
+ { 6.552926, 0.347159, 7.578840, 0 },
+ { 6.534969, 0.442927, 7.498635, 0 },
+ { 6.439201, 0.484826, 7.303507, 0 },
+ { 6.555320, 0.341173, 7.278368, 0 },
+ { 6.587642, 0.209493, 7.347800, 0 },
+ { 6.563700, 0.135272, 7.492649, 0 },
+ { 6.603204, 0.100556, 7.559687, 0 },
+ { 6.515815, 0.198719, 7.558490, 0 },
+ { 6.441595, 0.270545, 7.536942, 0 },
+ { 6.330265, 0.298078, 7.629118, 0 },
+ { 6.339842, 0.277727, 7.694959, 0 },
+ { 6.260833, 0.245406, 7.636301, 0 },
+ { 6.145912, 0.185551, 7.546519, 0 },
+ { 6.068100, 0.132878, 7.322661, 0 },
+ { 5.987895, 0.122104, 7.220907, 0 },
+ { 5.989091, 0.123301, 7.357377, 0 },
+ { 5.981909, 0.122104, 7.590811, 0 },
+ { 6.020216, 0.088585, 7.677002, 0 },
+ { 6.030990, 0.148440, 7.593205, 0 },
+ { 6.063312, 0.219069, 7.480678, 0 },
+ { 6.089648, 0.265756, 7.527365, 0 },
+ { 6.050144, 0.359130, 7.862553, 0 },
+ { 6.011837, 0.365116, 8.170208, 0 },
+ { 6.011837, 0.265756, 8.222880, 0 },
+ { 5.893323, 0.202310, 8.207318, 0 },
+ { 5.845439, 0.137667, 8.021768, 0 },
+ { 5.822695, 0.196324, 8.021768, 0 },
+ { 5.906492, 0.239420, 8.250414, 0 },
+ { 5.809526, 0.296881, 8.378503, 0 },
+ { 5.810724, 0.222661, 8.389277, 0 },
+ { 5.754460, 0.226252, 8.317451, 0 },
+ { 5.809526, 0.104148, 8.396460, 0 },
+ { 5.810724, 0.187945, 8.570039, 0 },
+ { 6.063312, 0.287304, 8.530535, 0 },
+ { 6.098028, 0.141258, 8.274356, 0 },
+ { 5.651509, 0.290895, 8.311465, 0 },
+ { 5.661086, 0.392649, 8.327028, 0 },
+ { 5.258861, 0.590170, 8.374912, 0 },
+ { 6.062115, 0.117316, 7.928393, 0 },
+ { 6.623555, -0.246603, 7.491452, 0 },
+ { 6.019019, 0.135272, 7.080847, 0 },
+ { 6.084859, 0.463278, 7.062890, 0 },
+ { 5.912477, 0.451307, 7.258018, 0 },
+ { 5.827483, 0.532710, 7.372939, 0 },
+ { 5.821497, 0.537498, 7.540533, 0 },
+ { 5.737700, 0.536301, 7.648272, 0 },
+ { 5.851425, 0.383072, 7.718901, 0 },
+ { 6.072888, 0.365116, 7.699748, 0 },
+ { 5.929236, 0.392649, 7.878115, 0 },
+ { 5.967544, 0.354342, 8.107959, 0 },
+ { 6.045355, 0.253785, 8.421598, 0 },
+ { 5.923251, 0.323217, 8.574827, 0 },
+ { 5.803541, 0.372298, 8.486242, 0 },
+ { 5.785584, 0.416591, 8.215697, 0 },
+ { 5.768825, 0.496797, 7.946350, 0 },
+ { 5.838257, 0.527921, 7.711719, 0 },
+ { 5.963953, 0.471657, 7.472299, 0 },
+ { 5.986697, 0.430956, 7.435188, 0 },
+ { 5.928040, 0.436942, 7.484270, 0 },
+ { 5.907689, 0.472855, 7.449553, 0 },
+ { 5.935222, 0.456095, 7.354982, 0 },
+ { 5.959164, 0.450110, 7.420823, 0 },
+ { 5.960361, 0.391452, 7.717704, 0 },
+ { 5.880156, 0.399831, 7.902057, 0 },
+ { 5.771219, 0.411802, 7.936773, 0 },
+ { 5.997471, 0.266953, 8.137886, 0 },
+ { 5.945996, 0.380678, 8.301888, 0 },
+ { 5.877761, 0.434547, 8.265976, 0 },
+ { 5.904098, 0.408211, 7.947547, 0 },
+ { 5.918463, 0.432153, 7.615951, 0 },
+ { 5.869381, 0.438139, 7.486664, 0 },
+ { 5.837060, 0.451307, 7.556096, 0 },
+ { 5.900506, 0.465672, 7.654258, 0 },
+ { 5.870579, 0.454898, 7.651864, 0 },
+ { 5.875367, 0.454898, 7.615951, 0 },
+ { 5.887338, 0.451307, 7.697353, 0 },
+ { 5.850228, 0.456095, 7.779953, 0 },
+ { 5.858608, 0.477643, 7.884101, 0 },
+ { 5.749671, 0.506373, 7.787136, 0 },
+ { 5.683831, 0.507570, 7.660243, 0 },
+ { 5.740095, 0.469263, 7.811078, 0 },
+ { 5.766431, 0.405817, 8.002614, 0 },
+ { 5.714955, 0.442927, 8.042118, 0 },
+ { 5.723335, 0.399831, 8.002614, 0 },
+ { 5.712561, 0.343568, 7.995431, 0 },
+ { 5.741292, 0.323217, 8.110353, 0 },
+ { 5.766431, 0.349553, 8.237246, 0 },
+ { 5.704182, 0.367510, 8.276750, 0 },
+ { 5.651509, 0.348356, 8.161828, 0 },
+ { 5.655100, 0.367510, 7.977475, 0 },
+ { 5.770022, 0.269348, 8.037330, 0 },
+ { 5.765234, 0.149638, 8.125915, 0 },
+ { 5.671860, 0.073023, 7.973883, 0 },
+ { 5.667071, 0.105345, 7.836217, 0 },
+ { 5.662283, 0.092177, 7.824246, 0 },
+ { 5.702984, 0.031125, 7.970292, 0 },
+ { 5.731715, -0.005986, 8.169010, 0 },
+ { 5.705379, -0.038307, 8.178588, 0 },
+ { 5.635947, -0.082600, 8.060075, 0 },
+ { 5.614399, -0.087388, 7.846991, 0 },
+ { 5.607216, -0.051475, 7.807487, 0 },
+ { 5.610808, -0.033519, 7.864947, 0 },
+ { 5.594049, 0.014365, 7.959518, 0 },
+ { 5.595245, 0.070629, 8.085214, 0 },
+ { 5.577289, 0.046687, 8.267173, 0 },
+ { 5.512646, -0.061052, 8.195347, 0 },
+ { 5.414484, -0.068235, 7.988248, 0 },
+ { 5.358220, 0.023942, 7.862553, 0 },
+ { 5.412089, 0.094571, 7.925999, 0 },
+ { 5.420469, 0.159214, 8.106761, 0 },
+ { 5.276817, 0.208295, 8.341393, 0 },
+ { 5.264846, 0.239420, 8.215697, 0 },
+ { 5.281605, 0.105345, 8.564054, 0 },
+ { 5.311533, -0.020351, 8.683764, 0 },
+ { 5.209779, 0.087388, 8.489834, 0 },
+ { 5.149924, 0.135272, 8.765166, 0 },
+ { 5.169078, 0.017957, 9.282313, 0 },
+ { 5.274423, -0.105345, 9.628276, 0 },
+ { 5.270832, -0.059855, 9.247598, 0 },
+ { 5.166684, 0.098162, 8.629894, 0 },
+ { 5.128376, 0.126893, 8.294706, 0 },
+ { 5.119997, 0.088585, 8.373714, 0 },
+ { 5.146333, 0.090980, 8.540112, 0 },
+ { 5.112814, 0.226252, 8.293509, 0 },
+ { 5.086478, 0.238223, 8.079228, 0 },
+ { 5.076901, 0.137667, 8.086411, 0 },
+ { 5.064930, 0.064643, 8.396460, 0 },
+ { 5.090069, 0.101754, 8.791503, 0 },
+ { 5.090069, 0.272939, 9.018951, 0 },
+ { 5.106829, 0.399831, 8.947125, 0 },
+ { 5.129574, 0.401029, 8.738831, 0 },
+ { 5.143939, 0.233435, 8.713691, 0 },
+ { 5.165487, 0.124498, 8.570039, 0 },
+ { 5.170275, 0.147243, 8.276750, 0 },
+ { 5.114011, 0.207098, 7.818260, 0 },
+ { 5.033806, 0.308852, 7.491452, 0 },
+ { 5.043383, 0.314837, 7.789530, 0 },
+ { 5.061339, 0.219069, 8.386883, 0 },
+ { 5.069719, 0.137667, 8.644259, 0 },
+ { 5.058945, 0.147243, 8.481454, 0 },
+ { 5.007470, 0.186748, 8.107959, 0 },
+ { 4.957191, 0.214281, 8.024161, 0 },
+ { 5.048171, 0.130484, 8.451527, 0 },
+ { 5.088872, 0.058658, 8.924380, 0 },
+ { 5.104434, -0.016759, 9.154224, 0 },
+ { 5.117603, -0.027533, 8.935155, 0 },
+ { 5.018243, 0.071826, 8.637076, 0 },
+ { 4.983528, 0.090980, 8.604755, 0 },
+ { 5.019441, 0.026336, 8.650245, 0 },
+ { 5.030214, -0.013168, 8.646653, 0 },
+ { 4.939235, -0.026336, 8.565250, 0 },
+ { 4.879380, -0.089783, 8.562857, 0 },
+ { 4.832693, -0.186748, 8.906425, 0 },
+ { 4.851846, -0.294487, 9.361322, 0 },
+ { 4.910504, -0.284910, 9.572012, 0 },
+ { 4.920081, -0.166397, 9.233232, 0 },
+ { 4.865015, -0.051475, 8.621514, 0 },
+ { 4.821919, -0.007183, 8.482651, 0 },
+ { 4.851846, -0.021548, 8.792700, 0 },
+ { 4.916490, -0.056264, 9.081201, 0 },
+ { 4.939235, -0.034716, 8.680172, 0 },
+ { 4.878182, 0.039504, 8.130703, 0 },
+ { 4.825510, 0.070629, 8.079228, 0 },
+ { 4.854240, 0.033519, 8.445540, 0 },
+ { 4.932052, -0.016759, 8.767561, 0 },
+ { 4.988316, -0.080206, 8.864526, 0 },
+ { 5.024229, -0.152032, 8.710100, 0 },
+ { 5.026623, -0.175974, 8.593981, 0 },
+ { 5.011061, -0.119710, 8.465892, 0 },
+ { 5.051762, -0.058658, 8.503001, 0 },
+ { 5.104434, 0.028730, 8.389277, 0 },
+ { 5.108026, 0.174777, 8.304283, 0 },
+ { 5.121194, 0.207098, 8.368926, 0 },
+ { 5.137953, 0.177171, 8.186967, 0 },
+ { 5.123588, 0.141258, 8.036133, 0 },
+ { 5.098449, 0.186748, 8.031344, 0 },
+ { 5.036200, 0.240617, 8.049300, 0 },
+ { 4.977542, 0.316034, 8.190558, 0 },
+ { 4.978739, 0.294487, 8.428782, 0 },
+ { 5.046974, 0.195127, 8.704114, 0 },
+ { 5.042185, 0.211887, 8.719677, 0 },
+ { 4.927264, 0.299275, 8.538915, 0 },
+ { 4.918884, 0.241814, 8.495819, 0 },
+ { 4.897336, 0.189142, 8.492228, 0 },
+ { 4.878182, 0.237026, 8.601164, 0 },
+ { 4.818327, 0.262165, 8.705312, 0 },
+ { 4.871000, 0.172382, 8.791503, 0 },
+ { 4.924870, 0.119710, 8.872906, 0 },
+ { 4.873394, 0.243011, 8.825022, 0 },
+ { 4.832693, 0.408211, 8.659822, 0 },
+ { 4.838678, 0.367510, 8.619121, 0 },
+ { 4.904519, 0.169988, 8.809459, 0 },
+ { 4.926067, 0.071826, 9.058456, 0 },
+ { 4.940432, 0.058658, 8.823824, 0 },
+ { 4.930855, 0.167594, 8.331817, 0 },
+ { 4.918884, 0.266953, 8.265976, 0 },
+ { 4.941629, 0.207098, 8.900438, 0 },
+ { 4.957191, 0.129287, 9.339774, 0 },
+ { 4.915293, 0.180762, 9.089581, 0 },
+ { 4.930855, 0.190339, 8.826219, 0 },
+ { 5.080492, 0.038307, 8.766363, 0 },
+ { 5.204991, -0.108936, 8.631091, 0 },
+ { 5.202597, -0.047884, 8.157040, 0 },
+ { 5.157107, 0.095768, 7.870933, 0 },
+ { 5.164289, 0.168791, 8.019373, 0 },
+ { 5.199006, 0.167594, 8.428782, 0 },
+ { 5.215765, 0.180762, 8.804670, 0 },
+ { 5.201400, 0.278924, 8.614332, 0 },
+ { 5.171472, 0.433350, 8.225274, 0 },
+ { 5.199006, 0.466869, 8.068454, 0 },
+ { 5.245692, 0.434547, 8.081622, 0 },
+ { 5.252875, 0.493205, 8.092396, 0 },
+ { 5.194217, 0.633266, 8.359349, 0 },
+ { 5.155910, 0.772130, 8.494622, 0 },
+ { 5.196611, 0.809240, 8.324634, 0 },
+ { 5.245692, 0.724246, 8.206120, 0 },
+ { 5.252875, 0.677559, 8.295903, 0 },
+ { 5.234919, 0.689530, 8.449132, 0 },
+ { 5.256466, 0.666785, 8.635880, 0 },
+ { 5.276817, 0.672770, 8.653836, 0 },
+ { 5.300759, 0.682347, 8.694537, 0 },
+ { 5.352234, 0.640449, 8.677778, 0 },
+ { 5.373782, 0.659602, 8.445540, 0 },
+ { 5.371388, 0.752976, 8.093594, 0 },
+ { 5.348643, 0.889445, 7.916422, 0 },
+ { 5.337869, 0.974439, 8.097184, 0 },
+ { 5.346249, 0.991199, 8.227669, 0 },
+ { 5.382162, 0.978031, 8.289918, 0 },
+ { 5.436031, 0.922964, 8.264779, 0 },
+ { 5.408498, 0.940921, 8.136689, 0 },
+ { 5.376176, 0.939724, 8.165420, 0 },
+ { 5.364205, 0.924161, 8.331817, 0 },
+ { 5.351037, 0.873883, 8.446738, 0 },
+ { 5.334278, 0.855927, 8.334210, 0 },
+ { 5.292379, 0.861912, 8.178588, 0 },
+ { 5.298365, 0.858321, 8.146266, 0 },
+ { 5.319912, 0.841561, 8.136689, 0 },
+ { 5.353431, 0.793677, 8.121126, 0 },
+ { 5.378571, 0.736217, 8.218092, 0 },
+ { 5.397724, 0.694318, 8.354561, 0 },
+ { 5.367796, 0.709880, 8.420402, 0 },
+ { 5.335475, 0.749385, 8.528141, 0 },
+ { 5.313927, 0.818816, 8.493424, 0 },
+ { 5.306745, 0.889445, 8.315057, 0 },
+ { 5.333081, 0.893037, 8.216895, 0 },
+ { 5.345052, 0.899022, 8.208515, 0 },
+ { 5.348643, 0.920570, 8.322240, 0 },
+ { 5.346249, 0.955286, 8.494622, 0 },
+ { 5.325898, 0.984016, 8.801080, 0 },
+ { 5.355825, 0.998381, 9.132676, 0 },
+ { 5.388147, 0.967257, 9.349351, 0 },
+ { 5.489901, 0.889445, 9.421177, 0 },
+ { 5.553347, 0.900219, 9.010572, 0 },
+ { 5.532996, 1.004367, 8.176193, 0 },
+ { 5.509054, 1.109712, 7.471101, 0 },
+ { 5.504266, 1.175552, 7.400473, 0 },
+ { 5.482718, 1.159990, 7.684185, 0 },
+ { 5.443214, 1.177946, 8.027753, 0 },
+ { 5.426455, 1.201888, 8.292312, 0 },
+ { 5.492295, 1.139639, 8.359349, 0 },
+ { 5.532996, 1.092952, 8.263581, 0 },
+ { 5.522223, 1.072602, 7.959518, 0 },
+ { 5.504266, 1.033097, 7.606374, 0 },
+ { 5.524617, 0.958877, 7.461524, 0 },
+ { 5.505463, 0.876277, 7.580038, 0 },
+ { 5.458776, 0.823605, 7.835020, 0 },
+ { 5.432440, 0.756567, 8.016979, 0 },
+ { 5.386950, 0.760159, 8.174996, 0 },
+ { 5.400118, 0.748188, 8.362941, 0 },
+ { 5.449199, 0.687135, 8.324634, 0 },
+ { 5.426455, 0.701501, 7.993037, 0 },
+ { 5.407301, 0.751779, 7.637498, 0 },
+ { 5.455185, 0.737414, 7.868538, 0 },
+ { 5.456382, 0.735019, 8.342590, 0 },
+ { 5.409695, 0.805648, 8.420402, 0 },
+ { 5.379767, 0.878671, 8.323437, 0 },
+ { 5.433637, 0.877474, 8.230062, 0 },
+ { 5.477930, 0.864306, 8.248019, 0 },
+ { 5.511448, 0.831985, 8.370124, 0 },
+ { 5.525814, 0.817619, 8.439555, 0 },
+ { 5.498281, 0.797269, 8.486242, 0 },
+ { 5.485112, 0.806845, 8.465892, 0 },
+ { 5.480324, 0.830787, 8.364138, 0 },
+ { 5.485112, 0.831985, 8.337802, 0 },
+ { 5.487506, 0.854729, 8.340196, 0 },
+ { 5.434834, 0.873883, 8.372518, 0 },
+ { 5.397724, 0.854729, 8.346182, 0 },
+ { 5.392936, 0.869095, 8.216895, 0 },
+ { 5.373782, 0.891840, 8.018176, 0 },
+ { 5.401315, 0.872686, 7.902057, 0 },
+ { 5.448002, 0.833182, 7.929591, 0 },
+ { 5.425257, 0.835576, 8.146266, 0 },
+ { 5.413286, 0.849941, 8.409628, 0 },
+ { 5.421666, 0.837970, 8.495819, 0 },
+ { 5.434834, 0.802057, 8.402445, 0 },
+ { 5.456382, 0.772130, 8.238442, 0 },
+ { 5.482718, 0.749385, 8.231260, 0 },
+ { 5.497083, 0.744596, 8.304283, 0 },
+ { 5.479127, 0.781706, 8.298298, 0 },
+ { 5.432440, 0.882263, 8.295903, 0 },
+ { 5.404907, 0.958877, 8.201332, 0 },
+ { 5.397724, 0.944512, 8.110353, 0 },
+ { 5.394133, 0.920570, 8.216895, 0 },
+ { 5.437228, 0.899022, 8.328225, 0 },
+ { 5.474339, 0.902613, 8.413219, 0 },
+ { 5.529405, 0.889445, 8.447935, 0 },
+ { 5.590457, 0.873883, 8.355759, 0 },
+ { 5.612005, 0.877474, 8.292312, 0 },
+ { 5.613202, 0.870292, 8.209712, 0 },
+ { 5.585669, 0.913387, 8.025358, 0 },
+ { 5.511448, 0.933738, 7.991840, 0 },
+ { 5.475535, 0.949300, 8.026556, 0 },
+ { 5.463564, 0.999579, 8.031344, 0 },
+ { 5.469550, 0.994790, 7.918817, 0 },
+ { 5.504266, 0.974439, 7.881707, 0 },
+ { 5.546165, 0.991199, 7.955927, 0 },
+ { 5.553347, 0.997184, 8.128309, 0 },
+ { 5.567712, 1.010352, 8.230062, 0 },
+ { 5.553347, 1.048660, 8.279144, 0 },
+ { 5.578486, 1.033097, 8.268370, 0 },
+ { 5.571303, 1.016338, 8.101973, 0 },
+ { 5.543770, 0.985213, 7.933182, 0 },
+ { 5.550953, 0.909796, 7.971489, 0 },
+ { 5.547361, 0.855927, 7.951138, 0 },
+ { 5.540179, 0.840364, 7.978672, 0 },
+ { 5.523419, 0.848744, 8.152251, 0 },
+ { 5.491098, 0.853532, 8.298298, 0 },
+ { 5.420469, 0.901416, 8.333014, 0 },
+ { 5.403709, 0.937329, 8.419205, 0 },
+ { 5.440820, 0.964863, 8.601164, 0 },
+ { 5.465959, 0.991199, 8.426387, 0 },
+ { 5.457579, 1.051054, 8.109156, 0 },
+ { 5.437228, 1.104923, 7.977475, 0 },
+ { 5.428849, 1.102529, 8.027753, 0 },
+ { 5.433637, 1.090558, 8.195347, 0 },
+ { 5.432440, 1.100135, 8.276750, 0 },
+ { 5.461170, 1.134851, 8.309072, 0 },
+ { 5.511448, 1.119289, 8.292312, 0 },
+ { 5.540179, 1.089361, 8.316254, 0 },
+ { 5.518631, 1.103726, 8.358152, 0 },
+ { 5.528208, 1.112106, 8.343787, 0 },
+ { 5.527011, 1.094149, 8.257596, 0 },
+ { 5.495886, 1.116894, 8.154645, 0 },
+ { 5.510252, 1.092952, 8.208515, 0 },
+ { 5.538982, 1.058236, 8.158237, 0 },
+ { 5.511448, 1.088164, 7.948744, 0 },
+ { 5.515040, 1.084573, 7.852976, 0 },
+ { 5.507857, 1.104923, 7.959518, 0 },
+ { 5.468353, 1.138442, 8.188165, 0 },
+ { 5.468353, 1.148019, 8.327028, 0 },
+ { 5.481521, 1.133654, 8.289918, 0 },
+ { 5.511448, 1.120486, 8.226472, 0 },
+ { 5.530602, 1.086967, 8.198938, 0 },
+ { 5.529405, 1.065419, 8.166616, 0 },
+ { 5.469550, 1.060631, 8.221684, 0 },
+ { 5.440820, 1.053448, 8.240837, 0 },
+ { 5.396527, 1.053448, 8.213304, 0 },
+ { 5.386950, 1.055842, 8.234851, 0 },
+ { 5.421666, 1.046265, 8.246822, 0 },
+ { 5.431243, 1.029506, 8.155843, 0 },
+ { 5.298365, 1.292868, 5.756854, 0 },
+ { 5.191823, 1.255758, 8.088805, 0 },
+ { 5.204991, 1.169567, 10.260345, 0 }
};
const size_t kBodyDetectOffOnTestDataLength =
ARRAY_SIZE(kBodyDetectOffOnTestData);
const struct body_detect_test_data kBodyDetectOnOffTestData[] = {
- {-6.536166, 0.264559, 7.560884, 0},
- {-6.253651, 0.108936, 8.167813, 0},
- {-5.890929, -0.029928, 8.061272, 0},
- {-5.833468, -0.045490, 8.250414, 0},
- {-5.932828, 0.038307, 8.573630, 0},
- {-5.995077, 0.104148, 8.634683, 0},
- {-6.080071, 0.181959, 8.317451, 0},
- {-6.069297, 0.177171, 8.151054, 0},
- {-5.978318, 0.113724, 8.407233, 0},
- {-5.895718, 0.033519, 8.592784, 0},
- {-5.828680, -0.022745, 8.299495, 0},
- {-5.768825, -0.070629, 7.958321, 0},
- {-5.770022, -0.089783, 8.028950, 0},
- {-5.832272, -0.074220, 8.360547, 0},
- {-5.880156, -0.067038, 8.488636, 0},
- {-5.987895, -0.017957, 8.342590, 0},
- {-6.148306, 0.014365, 8.317451, 0},
- {-6.337448, 0.102951, 8.492228, 0},
- {-6.411668, 0.148440, 8.571237, 0},
- {-6.341039, 0.099359, 8.250414, 0},
- {-6.232103, 0.067038, 7.899663, 0},
- {-6.172248, 0.100556, 8.152251, 0},
- {-6.095634, 0.111330, 8.632288, 0},
- {-6.033384, 0.126893, 8.614332, 0},
- {-5.936419, 0.131681, 8.136689, 0},
- {-5.931631, 0.205901, 7.739252, 0},
- {-5.986697, 0.271742, 7.870933, 0},
- {-6.040567, 0.250194, 8.099579, 0},
- {-6.077677, 0.244208, 8.191755, 0},
- {-6.071692, 0.277727, 8.146266, 0},
- {-5.953178, 0.292092, 8.025358, 0},
- {-5.847834, 0.330400, 7.942759, 0},
- {-5.776008, 0.392649, 8.036133, 0},
- {-5.680240, 0.417788, 7.892480, 0},
- {-5.617990, 0.458489, 7.609965, 0},
- {-5.550953, 0.496797, 7.418429, 0},
- {-5.301956, 0.369904, 8.050498, 0},
- {-5.276817, 0.290895, 9.167392, 0},
- {-5.890929, 0.215478, 9.044091, 0},
- {-6.495465, 0.108936, 9.111129, 0},
- {-6.545743, -0.049081, 9.390053, 0},
- {-5.966347, -0.161609, 9.362519, 0},
- {-5.325898, -0.117316, 8.969871, 0},
- {-5.263649, 0.105345, 8.404840, 0},
- {-5.620385, 0.336385, 8.085214, 0},
- {-5.886141, 0.472855, 8.037330, 0},
- {-5.704182, 0.427365, 8.032541, 0},
- {-5.359417, 0.301669, 7.813472, 0},
- {-5.331883, 0.329203, 7.632710, 0},
- {-5.483915, 0.433350, 7.621936, 0},
- {-5.862199, 0.703895, 8.079228, 0},
- {-5.808330, 0.616507, 9.142253, 0},
- {-5.513843, 0.481234, 9.751576, 0},
- {-5.365402, 0.470460, 9.706087, 0},
- {-5.378571, 0.440533, 9.333789, 0},
- {-5.637144, 0.565031, 8.905227, 0},
- {-5.776008, 0.560243, 8.019373, 0},
- {-5.779599, 0.676362, 7.132322, 0},
- {-5.549756, 0.760159, 7.116760, 0},
- {-5.303153, 0.730231, 7.817063, 0},
- {-5.206188, 0.831985, 8.506593, 0},
- {-5.151122, 0.725443, 8.941140, 0},
- {-5.292379, 0.556652, 9.176969, 0},
- {-5.622779, 0.563834, 9.362519, 0},
- {-5.481521, 0.433350, 9.410403, 0},
- {-5.045777, -0.074220, 9.109931, 0},
- {-5.035003, -0.328005, 8.900438, 0},
- {-5.307941, -0.389058, 9.000996, 0},
- {-5.561727, -0.269348, 9.169786, 0},
- {-5.603625, 0.213084, 9.216474, 0},
- {-5.357023, 0.697909, 9.339774, 0},
- {-5.081690, 0.764947, 9.429557, 0},
- {-5.063733, 0.520739, 9.349351, 0},
- {-5.212173, 0.463278, 9.210487, 0},
- {-5.079296, 0.622492, 9.057259, 0},
- {-4.827904, 0.758961, 8.755589, 0},
- {-4.689041, 0.723048, 8.749604, 0},
- {-4.681858, 0.731428, 9.129085, 0},
- {-4.598061, 0.723048, 9.536098, 0},
- {-4.378992, 0.730231, 9.668977, 0},
- {-4.214989, 0.672770, 9.102749, 0},
- {-4.241325, 0.641646, 8.643063, 0},
- {-4.289209, 0.708683, 8.941140, 0},
- {-4.304772, 0.984016, 9.394841, 0},
- {-4.106053, 0.980425, 9.239218, 0},
- {-3.926488, 0.615309, 8.754393, 0},
- {-4.012679, 0.414197, 8.646653, 0},
- {-4.191047, 0.730231, 9.080004, 0},
- {-4.211398, 1.057039, 9.763548, 0},
- {-4.055775, 0.944512, 9.933537, 0},
- {-3.976766, 0.493205, 9.303862, 0},
- {-4.319137, 0.397437, 8.835795, 0},
- {-4.368218, 0.577002, 9.014163, 0},
- {-4.213792, 0.700303, 9.281116, 0},
- {-4.164711, 0.563834, 9.527719, 0},
- {-4.132390, 0.458489, 9.472652, 0},
- {-4.106053, 0.392649, 9.238021, 0},
- {-4.090491, 0.524330, 9.093172, 0},
- {-4.052184, 0.738611, 9.153027, 0},
- {-4.015073, 0.524330, 9.047682, 0},
- {-4.149149, 0.454898, 8.930367, 0},
- {-4.250902, 0.724246, 9.131479, 0},
- {-4.231749, 0.701501, 9.166195, 0},
- {-4.356247, 0.757764, 9.208094, 0},
- {-4.443635, 0.785298, 9.235627, 0},
- {-4.355050, 0.804451, 9.149436, 0},
- {-4.307166, 0.567425, 9.187743, 0},
- {-4.550177, 0.476446, 9.249992, 0},
- {-4.790794, 0.457292, 9.175772, 0},
- {-4.935644, 0.417788, 9.200911, 0},
- {-4.940432, 0.588973, 9.419980, 0},
- {-4.709392, 0.357933, 9.624684, 0},
- {-4.763261, 0.093374, 9.773125, 0},
- {-5.021835, 0.171185, 9.756365, 0},
- {-5.087675, 0.294487, 9.680948, 0},
- {-4.916490, 0.357933, 9.610319, 0},
- {-4.729742, 0.360327, 9.296679, 0},
- {-4.635171, 0.266953, 8.780728, 0},
- {-4.843467, 0.410605, 8.383291, 0},
- {-4.898533, 0.500388, 8.177390, 0},
- {-4.692632, 0.489614, 8.313860, 0},
- {-4.566936, 0.451307, 8.595179, 0},
- {-4.624397, 0.457292, 8.774743, 0},
- {-4.781218, 0.441730, 8.777138, 0},
- {-4.916490, 0.410605, 8.816642, 0},
- {-5.014652, 0.482431, 8.795094, 0},
- {-4.830298, 0.306458, 8.991419, 0},
- {-5.154713, 0.448913, 8.974659, 0},
- {-5.114011, 0.424971, 8.789108, 0},
- {-4.894942, 0.238223, 8.692143, 0},
- {-4.979936, 0.184353, 8.980644, 0},
- {-5.267240, 0.381875, 9.326607, 0},
- {-5.289985, 0.413000, 9.498989, 0},
- {-5.128376, 0.320823, 9.273934, 0},
- {-4.978739, 0.312443, 8.930367, 0},
- {-5.054156, 0.391452, 8.816642, 0},
- {-5.224144, 0.409408, 8.898045, 0},
- {-5.287591, 0.392649, 8.862131, 0},
- {-5.182246, 0.426168, 8.808262, 0},
- {-5.039791, 0.471657, 8.797488, 0},
- {-4.969162, 0.490811, 8.793897, 0},
- {-5.032609, 0.511162, 8.804670, 0},
- {-5.021835, 0.465672, 8.822627, 0},
- {-4.967965, 0.496797, 8.820233, 0},
- {-4.969162, 0.571017, 8.796291, 0},
- {-4.904519, 0.560243, 8.785517, 0},
- {-4.750093, 0.547075, 8.775940, 0},
- {-4.687844, 0.500388, 8.554477, 0},
- {-4.741713, 0.487220, 8.224077, 0},
- {-4.880577, 0.569820, 8.147463, 0},
- {-4.959586, 0.610521, 8.506593, 0},
- {-4.977542, 0.555454, 8.856146, 0},
- {-4.910504, 0.424971, 8.870511, 0},
- {-4.947615, 0.316034, 8.845372, 0},
- {-5.177458, 0.336385, 9.156618, 0},
- {-5.345052, 0.371101, 9.455894, 0},
- {-5.370191, 0.402226, 9.381673, 0},
- {-5.357023, 0.372298, 9.232036, 0},
- {-5.309139, 0.289698, 9.148238, 0},
- {-5.236115, 0.247800, 9.085989, 0},
- {-5.159501, 0.211887, 9.010572, 0},
- {-5.081690, 0.173579, 8.878891, 0},
- {-5.049368, 0.208295, 8.710100, 0},
- {-5.026623, 0.229843, 8.664610, 0},
- {-5.032609, 0.237026, 8.772349, 0},
- {-4.967965, 0.233435, 8.868117, 0},
- {-4.844664, 0.164003, 8.799882, 0},
- {-4.906913, 0.155623, 8.500607, 0},
- {-5.141545, 0.264559, 8.359349, 0},
- {-5.264846, 0.310049, 8.640668, 0},
- {-5.348643, 0.306458, 8.961491, 0},
- {-5.366600, 0.301669, 8.968674, 0},
- {-5.404907, 0.298078, 8.802277, 0},
- {-5.386950, 0.259771, 8.801080, 0},
- {-5.335475, 0.208295, 8.759181, 0},
- {-5.300759, 0.174777, 8.723268, 0},
- {-5.237313, 0.147243, 8.762773, 0},
- {-5.303153, 0.185551, 8.772349, 0},
- {-5.394133, 0.204704, 8.888468, 0},
- {-5.383359, 0.167594, 8.965082, 0},
- {-5.257663, 0.110133, 8.893256, 0},
- {-5.116405, 0.039504, 8.738831, 0},
- {-5.194217, 0.044293, 8.644259, 0},
- {-5.336672, 0.111330, 8.772349, 0},
- {-5.389344, 0.132878, 8.972264, 0},
- {-5.400118, 0.136469, 8.959097, 0},
- {-5.455185, 0.185551, 8.850161, 0},
- {-5.519828, 0.210690, 8.804670, 0},
- {-5.555741, 0.210690, 8.898045, 0},
- {-5.507857, 0.222661, 8.835795, 0},
- {-5.402513, 0.205901, 8.598769, 0},
- {-5.368994, 0.257377, 8.353364, 0},
- {-5.437228, 0.366313, 8.394066, 0},
- {-5.401315, 0.345962, 8.656230, 0},
- {-5.341460, 0.350750, 8.723268, 0},
- {-5.272028, 0.362721, 8.585602, 0},
- {-5.282803, 0.387860, 8.337802, 0},
- {-5.285197, 0.420182, 8.268370, 0},
- {-5.250481, 0.415394, 8.337802, 0},
- {-5.185837, 0.379481, 8.416810, 0},
- {-5.161895, 0.356736, 8.468286, 0},
- {-5.203794, 0.344765, 8.577222, 0},
- {-5.272028, 0.306458, 8.719677, 0},
- {-5.315124, 0.271742, 8.868117, 0},
- {-5.337869, 0.296881, 8.939943, 0},
- {-5.376176, 0.299275, 8.894453, 0},
- {-5.442017, 0.318429, 8.793897, 0},
- {-5.452791, 0.331597, 8.714889, 0},
- {-5.412089, 0.289698, 8.700523, 0},
- {-5.406104, 0.251391, 8.773546, 0},
- {-5.368994, 0.252588, 8.866920, 0},
- {-5.323504, 0.240617, 8.942337, 0},
- {-5.333081, 0.231040, 9.015361, 0},
- {-5.377373, 0.231040, 8.980644, 0},
- {-5.450397, 0.292092, 8.865723, 0},
- {-5.483915, 0.336385, 8.750801, 0},
- {-5.474339, 0.355539, 8.653836, 0},
- {-5.404907, 0.342371, 8.593981, 0},
- {-5.243298, 0.234632, 8.598769, 0},
- {-5.164289, 0.198719, 8.635880, 0},
- {-5.214568, 0.248997, 8.646653, 0},
- {-5.316321, 0.288501, 8.589192, 0},
- {-5.452791, 0.343568, 8.579616, 0},
- {-5.509054, 0.366313, 8.670595, 0},
- {-5.474339, 0.319626, 8.686158, 0},
- {-5.384556, 0.275333, 8.689749, 0},
- {-5.365402, 0.268150, 8.750801, 0},
- {-5.437228, 0.357933, 8.748407, 0},
- {-5.470747, 0.402226, 8.730451, 0},
- {-5.386950, 0.362721, 8.672990, 0},
- {-5.339066, 0.363918, 8.700523, 0},
- {-5.295970, 0.398634, 8.793897, 0},
- {-5.307941, 0.413000, 8.899241, 0},
- {-5.295970, 0.392649, 8.924380, 0},
- {-5.287591, 0.405817, 8.936352, 0},
- {-5.269634, 0.417788, 8.896848, 0},
- {-5.342658, 0.471657, 8.640668, 0},
- {-5.464762, 0.557849, 8.434767, 0},
- {-5.467156, 0.575805, 8.456315, 0},
- {-5.443214, 0.561440, 8.497016, 0},
- {-5.440820, 0.574608, 8.524549, 0},
- {-5.438426, 0.598550, 8.480257, 0},
- {-5.348643, 0.553060, 8.530535, 0},
- {-5.238510, 0.509965, 8.638274, 0},
- {-5.155910, 0.445321, 8.657428, 0},
- {-5.111617, 0.395043, 8.583207, 0},
- {-5.115209, 0.365116, 8.610741, 0},
- {-5.176260, 0.344765, 8.625106, 0},
- {-5.254072, 0.373495, 8.711297, 0},
- {-5.267240, 0.379481, 8.808262, 0},
- {-5.238510, 0.329203, 8.795094, 0},
- {-5.266043, 0.282516, 8.694537, 0},
- {-5.410892, 0.308852, 8.599967, 0},
- {-5.538982, 0.337582, 8.520958, 0},
- {-5.544967, 0.344765, 8.590390, 0},
- {-5.458776, 0.276530, 8.730451, 0},
- {-5.408498, 0.211887, 8.729254, 0},
- {-5.450397, 0.195127, 8.633486, 0},
- {-5.509054, 0.216675, 8.659822, 0},
- {-5.483915, 0.190339, 8.823824, 0},
- {-5.430046, 0.169988, 9.004586, 0},
- {-5.392936, 0.186748, 9.078807, 0},
- {-5.406104, 0.197522, 9.024938, 0},
- {-5.462368, 0.269348, 8.857343, 0},
- {-5.462368, 0.290895, 8.724465, 0},
- {-5.409695, 0.284910, 8.667005, 0},
- {-5.389344, 0.288501, 8.643063, 0},
- {-5.354629, 0.284910, 8.577222, 0},
- {-5.329489, 0.287304, 8.591587, 0},
- {-5.280408, 0.282516, 8.658625, 0},
- {-5.206188, 0.225055, 8.695735, 0},
- {-5.169078, 0.235829, 8.741224, 0},
- {-5.181049, 0.256179, 8.693340, 0},
- {-5.245692, 0.262165, 8.619121, 0},
- {-5.334278, 0.257377, 8.613134, 0},
- {-5.388147, 0.248997, 8.681370, 0},
- {-5.376176, 0.240617, 8.742421, 0},
- {-5.360614, 0.199916, 8.707705, 0},
- {-5.443214, 0.190339, 8.631091, 0},
- {-5.489901, 0.172382, 8.549688, 0},
- {-5.524617, 0.192733, 8.529338, 0},
- {-5.518631, 0.189142, 8.562857, 0},
- {-5.479127, 0.158017, 8.555674, 0},
- {-5.499477, 0.140061, 8.599967, 0},
- {-5.519828, 0.130484, 8.643063, 0},
- {-5.493492, 0.090980, 8.652639, 0},
- {-5.458776, 0.074220, 8.610741, 0},
- {-5.483915, 0.107739, 8.635880, 0},
- {-5.445608, 0.087388, 8.746013, 0},
- {-5.422863, 0.052672, 8.787911, 0},
- {-5.402513, 0.032322, 8.768758, 0},
- {-5.373782, -0.007183, 8.802277, 0},
- {-5.371388, -0.031125, 8.772349, 0},
- {-5.416878, -0.052672, 8.682567, 0},
- {-5.614399, -0.032322, 8.693340, 0},
- {-5.582078, 0.015562, 8.038527, 0},
- {-5.532996, -0.019154, 8.003811, 1},
- {-5.451593, -0.088585, 8.389277, 0},
- {-5.433637, -0.120907, 8.461103, 0},
- {-5.456382, -0.082600, 8.352167, 0},
- {-5.480324, -0.110133, 8.429978, 0},
- {-5.503069, -0.126893, 8.602361, 0},
- {-5.524617, -0.173579, 8.689749, 0},
- {-5.519828, -0.161609, 8.710100, 0},
- {-5.448002, -0.165200, 8.803473, 0},
- {-5.337869, -0.209493, 8.835795, 0},
- {-5.226539, -0.217872, 8.792700, 0},
- {-5.204991, -0.144849, 8.779531, 0},
- {-5.155910, -0.038307, 8.741224, 0},
- {-5.038594, 0.025139, 8.692143, 0},
- {-4.826707, 0.129287, 8.741224, 0},
- {-4.588484, 0.221464, 9.275131, 0},
- {-4.413708, 0.146046, 9.674962, 0},
- {-4.571725, 0.420182, 9.512156, 0},
- {-4.693829, 0.806845, 9.115917, 0},
- {-4.513067, 1.146822, 8.775940, 0},
- {-3.907335, 0.906205, 8.744816, 0},
- {-3.440465, 0.709880, 8.558068, 0},
- {-3.076547, 0.870292, 8.097184, 0},
- {-2.567780, 0.849941, 7.629118, 0},
- {-0.930147, -0.430956, 9.020149, 0},
- {0.472855, -1.265335, 13.321329, 0},
- {-0.475249, -0.396240, 11.602294, 0},
- {-2.302023, 0.135272, 10.661373, 0},
- {-2.796426, -0.083797, 11.195279, 0},
- {-2.404974, -0.368707, 10.447092, 0},
- {-1.205480, -0.381875, 9.781505, 0},
- {-0.250194, 0.064643, 9.928748, 0},
- {-0.004788, 0.374692, 9.695313, 0},
- {0.256179, -0.470460, 8.904030, 0},
- {0.268150, -0.964863, 8.276750, 0},
- {0.314837, -0.756567, 8.742421, 0},
- {0.496797, -0.694318, 9.910791, 0},
- {0.828393, -0.748188, 10.779886, 0},
- {0.738611, -0.306458, 11.670528, 0},
- {0.616507, -0.045490, 11.973394, 0},
- {0.690727, -0.164003, 11.194082, 0},
- {0.632069, -0.343568, 10.463851, 0},
- {0.422576, 0.026336, 10.319002, 0},
- {0.520739, 0.468066, 10.074794, 0},
- {0.845153, 0.277727, 9.525325, 0},
- {1.058236, -0.199916, 9.085989, 0},
- {1.198297, -0.499191, 9.630670, 0},
- {1.109712, -0.314837, 10.516523, 0},
- {1.086967, 0.258574, 10.805025, 0},
- {1.313219, 0.523133, 10.685315, 0},
- {1.334767, 0.202310, 10.316608, 0},
- {1.298854, -0.199916, 9.993391, 0},
- {1.471236, -0.282516, 10.037683, 0},
- {1.620873, 0.053870, 9.892835, 0},
- {1.553836, 0.363918, 9.296679, 0},
- {1.425746, 0.114922, 8.937549, 0},
- {1.545456, -0.174777, 9.566027, 0},
- {1.985989, 0.075417, 10.395617, 0},
- {2.272096, 0.312443, 10.295060, 0},
- {2.181116, 0.196324, 9.525325, 0},
- {1.965638, 0.197522, 9.500186, 0},
- {2.054224, -0.038307, 9.800658, 0},
- {1.924937, 0.196324, 9.728832, 0},
- {2.146400, 0.402226, 9.747986, 0},
- {2.321177, 0.282516, 9.983814, 0},
- {2.279279, 0.118513, 7.716507, 0},
- {2.229000, -0.113724, 9.612713, 0},
- {2.345119, 0.343568, 11.982971, 0},
- {2.196679, 0.189142, 9.917974, 0},
- {2.218226, -0.119710, 9.633064, 0},
- {2.020705, 0.239420, 9.703692, 0},
- {1.997960, 0.318429, 9.247598, 0},
- {1.975215, 0.132878, 8.886073, 0},
- {1.841140, 0.253785, 8.754393, 0},
- {1.507149, 0.458489, 8.775940, 0},
- {1.295262, 0.497994, 9.170983, 0},
- {1.291671, 0.102951, 9.712072, 0},
- {1.267729, 0.034716, 9.686934, 0},
- {1.474827, -0.047884, 9.932339, 0},
- {1.121683, -0.041899, 10.319002, 0},
- {0.475249, 0.349553, 11.362873, 0},
- {0.029928, 0.153229, 13.443434, 0},
- {1.442506, -0.270545, 12.089513, 0},
- {0.821211, 0.186748, 10.431530, 0},
- {0.302866, 0.573411, 9.538493, 0},
- {0.973242, -0.051475, 8.095987, 0},
- {1.428140, -1.648407, 7.060496, 0},
- {1.292868, -2.129641, 8.062469, 0},
- {0.068235, 0.414197, 8.157040, 0},
- {-1.018732, 1.418563, 9.985011, 0},
- {-1.479616, 1.746569, 18.444918, 0},
- {0.362721, 0.951695, 11.461036, 0},
- {0.283713, -0.120907, 8.001416, 0},
- {-0.320823, 0.131681, 11.031277, 0},
- {-0.141258, 0.141258, 9.783898, 0},
- {-0.098162, 0.118513, 10.248373, 0},
- {-0.278924, 0.311246, 9.223656, 0},
- {-0.034716, 0.162806, 9.734818, 0},
- {-0.282516, -0.306458, 12.023673, 0},
- {-0.219069, 0.069432, 9.692919, 0},
- {-0.235829, 0.088585, 10.111904, 0},
- {-0.243011, 0.071826, 10.181335, 0},
- {-0.237026, 0.084994, 10.177745, 0},
- {-0.246603, 0.079009, 10.078385, 0},
- {-0.222661, 0.083797, 10.192110, 0},
- {-0.252588, 0.067038, 10.103524, 0},
- {-0.226252, 0.084994, 10.156197, 0},
- {-0.265756, 0.071826, 10.116693, 0},
- {-0.235829, 0.083797, 10.168168, 0},
- {-0.251391, 0.083797, 10.108313, 0},
- {-0.248997, 0.083797, 10.155000, 0},
- {-0.228646, 0.083797, 10.122678, 0},
- {-0.266953, 0.067038, 10.104721, 0},
- {-0.233435, 0.074220, 10.141831, 0},
- {-0.259771, 0.080206, 10.107116, 0},
- {-0.245406, 0.080206, 10.166970, 0},
- {-0.256179, 0.075417, 10.099933, 0},
- {-0.243011, 0.070629, 10.153803, 0},
- {-0.256179, 0.073023, 10.090356, 0},
- {-0.258574, 0.077812, 10.200489, 0},
- {-0.253785, 0.063446, 10.095144, 0},
- {-0.245406, 0.073023, 10.135846, 0},
- {-0.251391, 0.082600, 10.134649, 0},
- {-0.251391, 0.068235, 10.116693, 0},
- {-0.247800, 0.079009, 10.164577, 0},
- {-0.244208, 0.075417, 10.115496, 0},
- {-0.238223, 0.073023, 10.137043, 0},
- {-0.251391, 0.077812, 10.078385, 0},
- {-0.235829, 0.077812, 10.131058, 0},
- {-0.250194, 0.087388, 10.123875, 0},
- {-0.250194, 0.079009, 10.147817, 0},
- {-0.254982, 0.064643, 10.110707, 0},
- {-0.256179, 0.083797, 10.151408, 0},
- {-0.237026, 0.079009, 10.103524, 0},
- {-0.256179, 0.079009, 10.137043, 0},
- {-0.246603, 0.081403, 10.139438, 0},
- {-0.243011, 0.077812, 10.115496, 0},
- {-0.254982, 0.063446, 10.159788, 0},
- {-0.248997, 0.089783, 10.092751, 0},
- {-0.251391, 0.074220, 10.164577, 0},
- {-0.246603, 0.079009, 10.117889, 0},
- {-0.247800, 0.086191, 10.145423, 0},
- {-0.247800, 0.088585, 10.123875, 0},
- {-0.254982, 0.075417, 10.122678, 0},
- {-0.250194, 0.080206, 10.147817, 0},
- {-0.251391, 0.068235, 10.113101, 0},
- {-0.246603, 0.074220, 10.147817, 0},
- {-0.243011, 0.068235, 10.104721, 0},
- {-0.245406, 0.063446, 10.143028, 0},
- {-0.250194, 0.075417, 10.121481, 0},
- {-0.252588, 0.079009, 10.141831, 0},
- {-0.245406, 0.071826, 10.129861, 0},
- {-0.240617, 0.079009, 10.135846, 0},
- {-0.240617, 0.069432, 10.141831, 0},
- {-0.245406, 0.079009, 10.121481, 0},
- {-0.252588, 0.069432, 10.160985, 0},
- {-0.258574, 0.067038, 10.121481, 0},
- {-0.260968, 0.067038, 10.140635, 0},
- {-0.250194, 0.068235, 10.127466, 0},
- {-0.239420, 0.074220, 10.129861, 0},
- {-0.250194, 0.065841, 10.131058, 0},
- {-0.245406, 0.074220, 10.128663, 0},
- {-0.247800, 0.088585, 10.133451, 0},
- {-0.245406, 0.082600, 10.105919, 0},
- {-0.251391, 0.067038, 10.133451, 0},
- {-0.241814, 0.075417, 10.121481, 0},
- {-0.247800, 0.075417, 10.140635, 0},
- {-0.254982, 0.080206, 10.132255, 0},
- {-0.237026, 0.074220, 10.137043, 0},
- {-0.251391, 0.082600, 10.135846, 0},
- {-0.247800, 0.095768, 10.135846, 0},
- {-0.244208, 0.075417, 10.115496, 0},
- {-0.245406, 0.074220, 10.138240, 0},
- {-0.239420, 0.080206, 10.137043, 0},
- {-0.257377, 0.073023, 10.128663, 0},
- {-0.253785, 0.081403, 10.134649, 0},
- {-0.256179, 0.061052, 10.137043, 0},
- {-0.243011, 0.082600, 10.129861, 0},
- {-0.246603, 0.080206, 10.116693, 0},
- {-0.240617, 0.080206, 10.120284, 0},
- {-0.251391, 0.069432, 10.109509, 0},
- {-0.247800, 0.073023, 10.144226, 0},
- {-0.248997, 0.077812, 10.110707, 0},
- {-0.256179, 0.065841, 10.134649, 0},
- {-0.246603, 0.071826, 10.111904, 0},
- {-0.265756, 0.075417, 10.123875, 0},
- {-0.245406, 0.084994, 10.131058, 0},
- {-0.251391, 0.073023, 10.114298, 0},
- {-0.247800, 0.090980, 10.145423, 0},
- {-0.263362, 0.088585, 10.121481, 0},
- {-0.258574, 0.074220, 10.149014, 0},
- {-0.252588, 0.069432, 10.114298, 0},
- {-0.259771, 0.074220, 10.121481, 0},
- {-0.251391, 0.068235, 10.137043, 0},
- {-0.245406, 0.074220, 10.131058, 0},
- {-0.244208, 0.074220, 10.121481, 0},
- {-0.253785, 0.070629, 10.108313, 0},
- {-0.256179, 0.077812, 10.144226, 0},
- {-0.241814, 0.058658, 10.104721, 0},
- {-0.244208, 0.069432, 10.133451, 0},
- {-0.241814, 0.081403, 10.113101, 0},
- {-0.253785, 0.080206, 10.110707, 0},
- {-0.257377, 0.086191, 10.121481, 0},
- {-0.252588, 0.080206, 10.129861, 0},
- {-0.246603, 0.081403, 10.121481, 0},
- {-0.245406, 0.086191, 10.123875, 0},
- {-0.251391, 0.076614, 10.153803, 0},
- {-0.246603, 0.068235, 10.120284, 0},
- {-0.234632, 0.090980, 10.134649, 0},
- {-0.253785, 0.080206, 10.098736, 0},
- {-0.256179, 0.093374, 10.135846, 0},
- {-0.259771, 0.076614, 10.126269, 0},
- {-0.240617, 0.074220, 10.147817, 0},
- {-0.256179, 0.068235, 10.119086, 0},
- {-0.254982, 0.073023, 10.120284, 0},
- {-0.250194, 0.082600, 10.143028, 0},
- {-0.250194, 0.076614, 10.115496, 0},
- {-0.247800, 0.068235, 10.145423, 0},
- {-0.241814, 0.077812, 10.122678, 0},
- {-0.245406, 0.079009, 10.138240, 0},
- {-0.266953, 0.083797, 10.111904, 0},
- {-0.254982, 0.074220, 10.116693, 0},
- {-0.248997, 0.090980, 10.138240, 0},
- {-0.262165, 0.083797, 10.123875, 0},
- {-0.245406, 0.081403, 10.128663, 0},
- {-0.252588, 0.065841, 10.103524, 0},
- {-0.248997, 0.089783, 10.128663, 0},
- {-0.250194, 0.070629, 10.108313, 0},
- {-0.248997, 0.068235, 10.147817, 0},
- {-0.251391, 0.083797, 10.125072, 0},
- {-0.258574, 0.070629, 10.125072, 0},
- {-0.259771, 0.058658, 10.125072, 0},
- {-0.246603, 0.070629, 10.120284, 0},
- {-0.243011, 0.064643, 10.128663, 0},
- {-0.263362, 0.073023, 10.134649, 0},
- {-0.246603, 0.076614, 10.140635, 0},
- {-0.246603, 0.084994, 10.122678, 0},
- {-0.241814, 0.068235, 10.131058, 0},
- {-0.243011, 0.073023, 10.115496, 0},
- {-0.252588, 0.074220, 10.157393, 0},
- {-0.264559, 0.076614, 10.105919, 0},
- {-0.254982, 0.069432, 10.135846, 0},
- {-0.234632, 0.075417, 10.126269, 0},
- {-0.239420, 0.080206, 10.120284, 0},
- {-0.251391, 0.087388, 10.146620, 0},
- {-0.238223, 0.069432, 10.126269, 0},
- {-0.247800, 0.065841, 10.127466, 0},
- {-0.253785, 0.069432, 10.113101, 0},
- {-0.252588, 0.079009, 10.144226, 0},
- {-0.254982, 0.074220, 10.123875, 0},
- {-0.247800, 0.061052, 10.134649, 0},
- {-0.248997, 0.067038, 10.119086, 0},
- {-0.247800, 0.077812, 10.123875, 0},
- {-0.253785, 0.079009, 10.134649, 0},
- {-0.246603, 0.084994, 10.111904, 0},
- {-0.253785, 0.087388, 10.139438, 0},
- {-0.256179, 0.082600, 10.097539, 0},
- {-0.240617, 0.087388, 10.149014, 0},
- {-0.252588, 0.059855, 10.108313, 0},
- {-0.235829, 0.082600, 10.129861, 0},
- {-0.247800, 0.094571, 10.127466, 0},
- {-0.248997, 0.082600, 10.122678, 0},
- {-0.240617, 0.084994, 10.131058, 0},
- {-0.253785, 0.077812, 10.116693, 0},
- {-0.258574, 0.086191, 10.133451, 0},
- {-0.247800, 0.071826, 10.128663, 0},
- {-0.247800, 0.074220, 10.132255, 0},
- {-0.254982, 0.071826, 10.120284, 0},
- {-0.253785, 0.080206, 10.140635, 0},
- {-0.269348, 0.076614, 10.132255, 0},
- {-0.253785, 0.082600, 10.131058, 0},
- {-0.244208, 0.089783, 10.140635, 0},
- {-0.247800, 0.073023, 10.110707, 0},
- {-0.252588, 0.070629, 10.129861, 0},
- {-0.257377, 0.071826, 10.125072, 0},
- {-0.252588, 0.074220, 10.117889, 0},
- {-0.254982, 0.068235, 10.128663, 0},
- {-0.259771, 0.058658, 10.134649, 0},
- {-0.252588, 0.070629, 10.119086, 0},
- {-0.243011, 0.089783, 10.146620, 0},
- {-0.240617, 0.075417, 10.128663, 0},
- {-0.254982, 0.063446, 10.145423, 0},
- {-0.272939, 0.081403, 10.127466, 0},
- {-0.241814, 0.075417, 10.127466, 0},
- {-0.233435, 0.073023, 10.125072, 0},
- {-0.248997, 0.080206, 10.132255, 0},
- {-0.241814, 0.074220, 10.134649, 0},
- {-0.266953, 0.068235, 10.133451, 0},
- {-0.245406, 0.069432, 10.127466, 0},
- {-0.247800, 0.087388, 10.131058, 0},
- {-0.247800, 0.082600, 10.129861, 0},
- {-0.257377, 0.070629, 10.137043, 0},
- {-0.247800, 0.074220, 10.131058, 0},
- {-0.252588, 0.086191, 10.114298, 0},
- {-0.247800, 0.089783, 10.135846, 0},
- {-0.256179, 0.073023, 10.131058, 0},
- {-0.257377, 0.080206, 10.133451, 0},
- {-0.245406, 0.069432, 10.125072, 0},
- {-0.250194, 0.061052, 10.126269, 0},
- {-0.252588, 0.079009, 10.135846, 0},
- {-0.250194, 0.073023, 10.128663, 0},
- {-0.237026, 0.075417, 10.155000, 0},
- {-0.247800, 0.079009, 10.140635, 0},
- {-0.251391, 0.069432, 10.151408, 0},
- {-0.244208, 0.075417, 10.127466, 0},
- {-0.252588, 0.071826, 10.111904, 0},
- {-0.257377, 0.077812, 10.138240, 0},
- {-0.241814, 0.069432, 10.122678, 0},
- {-0.253785, 0.071826, 10.139438, 0},
- {-0.256179, 0.077812, 10.119086, 0},
- {-0.262165, 0.077812, 10.133451, 0},
- {-0.252588, 0.061052, 10.132255, 0},
- {-0.250194, 0.077812, 10.119086, 0},
- {-0.253785, 0.081403, 10.132255, 0},
- {-0.253785, 0.079009, 10.117889, 0},
- {-0.252588, 0.064643, 10.129861, 0},
- {-0.247800, 0.073023, 10.117889, 0},
- {-0.253785, 0.065841, 10.126269, 0},
- {-0.256179, 0.069432, 10.128663, 0},
- {-0.250194, 0.080206, 10.128663, 0},
- {-0.257377, 0.084994, 10.107116, 0},
- {-0.254982, 0.080206, 10.137043, 0},
- {-0.259771, 0.076614, 10.137043, 0},
- {-0.265756, 0.063446, 10.132255, 0},
- {-0.251391, 0.056264, 10.120284, 0},
- {-0.247800, 0.067038, 10.132255, 0},
- {-0.247800, 0.074220, 10.126269, 0},
- {-0.247800, 0.070629, 10.127466, 0},
- {-0.239420, 0.081403, 10.143028, 0},
- {-0.254982, 0.081403, 10.129861, 0},
- {-0.259771, 0.088585, 10.138240, 0},
- {-0.246603, 0.080206, 10.108313, 0},
- {-0.252588, 0.086191, 10.125072, 0},
- {-0.247800, 0.071826, 10.132255, 0},
- {-0.240617, 0.073023, 10.126269, 0},
- {-0.256179, 0.075417, 10.134649, 0},
- {-0.254982, 0.081403, 10.117889, 0},
- {-0.250194, 0.070629, 10.133451, 0},
- {-0.254982, 0.064643, 10.137043, 0},
- {-0.254982, 0.075417, 10.147817, 0},
- {-0.240617, 0.077812, 10.122678, 0},
- {-0.239420, 0.083797, 10.153803, 0},
- {-0.258574, 0.070629, 10.131058, 0},
- {-0.256179, 0.077812, 10.133451, 0},
- {-0.265756, 0.080206, 10.143028, 0},
- {-0.256179, 0.070629, 10.138240, 0},
- {-0.250194, 0.067038, 10.129861, 0},
- {-0.245406, 0.071826, 10.126269, 0},
- {-0.259771, 0.073023, 10.135846, 0},
- {-0.251391, 0.061052, 10.121481, 0},
- {-0.254982, 0.075417, 10.150211, 0},
- {-0.247800, 0.081403, 10.137043, 0},
- {-0.248997, 0.084994, 10.126269, 0},
- {-0.257377, 0.082600, 10.135846, 0},
- {-0.257377, 0.073023, 10.110707, 0},
- {-0.251391, 0.077812, 10.138240, 0},
- {-0.238223, 0.064643, 10.116693, 0},
- {-0.239420, 0.075417, 10.138240, 0},
- {-0.260968, 0.071826, 10.132255, 0},
- {-0.253785, 0.094571, 10.132255, 0},
- {-0.248997, 0.081403, 10.127466, 0},
- {-0.245406, 0.073023, 10.150211, 0},
- {-0.252588, 0.080206, 10.120284, 0},
- {-0.247800, 0.075417, 10.122678, 0},
- {-0.246603, 0.069432, 10.122678, 0},
- {-0.246603, 0.090980, 10.119086, 0},
- {-0.253785, 0.076614, 10.139438, 0},
- {-0.253785, 0.063446, 10.127466, 0},
- {-0.248997, 0.094571, 10.146620, 0},
- {-0.257377, 0.079009, 10.115496, 0},
- {-0.247800, 0.068235, 10.122678, 0},
- {-0.244208, 0.080206, 10.117889, 0},
- {-0.257377, 0.099359, 10.134649, 0},
- {-0.257377, 0.089783, 10.111904, 0},
- {-0.247800, 0.073023, 10.133451, 0},
- {-0.238223, 0.070629, 10.120284, 0},
- {-0.256179, 0.073023, 10.125072, 0},
- {-0.257377, 0.063446, 10.144226, 0},
- {-0.259771, 0.081403, 10.122678, 0},
- {-0.251391, 0.079009, 10.123875, 0},
- {-0.256179, 0.068235, 10.122678, 0},
- {-0.252588, 0.065841, 10.128663, 0},
- {-0.239420, 0.074220, 10.122678, 0},
- {-0.247800, 0.073023, 10.138240, 0},
- {-0.245406, 0.076614, 10.111904, 0},
- {-0.252588, 0.076614, 10.125072, 0},
- {-0.259771, 0.059855, 10.122678, 0},
- {-0.262165, 0.067038, 10.137043, 0},
- {-0.248997, 0.073023, 10.127466, 0},
- {-0.248997, 0.076614, 10.132255, 0},
- {-0.244208, 0.080206, 10.115496, 0},
- {-0.245406, 0.055067, 10.140635, 0},
- {-0.251391, 0.059855, 10.135846, 0},
- {-0.246603, 0.073023, 10.111904, 0},
- {-0.248997, 0.081403, 10.123875, 0},
- {-0.248997, 0.070629, 10.126269, 0},
- {-0.251391, 0.075417, 10.129861, 0},
- {-0.239420, 0.071826, 10.139438, 0},
- {-0.244208, 0.076614, 10.109509, 0},
- {-0.263362, 0.082600, 10.135846, 0},
- {-0.252588, 0.071826, 10.127466, 0},
- {-0.241814, 0.067038, 10.122678, 0},
- {-0.252588, 0.079009, 10.125072, 0},
- {-0.260968, 0.084994, 10.125072, 0},
- {-0.245406, 0.080206, 10.119086, 0},
- {-0.241814, 0.071826, 10.126269, 0},
- {-0.251391, 0.075417, 10.135846, 0},
- {-0.254982, 0.068235, 10.127466, 0},
- {-0.260968, 0.074220, 10.127466, 0},
- {-0.247800, 0.076614, 10.122678, 0},
- {-0.258574, 0.067038, 10.114298, 0},
- {-0.258574, 0.073023, 10.122678, 0},
- {-0.257377, 0.058658, 10.145423, 0},
- {-0.254982, 0.063446, 10.127466, 0},
- {-0.245406, 0.068235, 10.135846, 0},
- {-0.247800, 0.071826, 10.135846, 0},
- {-0.256179, 0.068235, 10.138240, 0},
- {-0.257377, 0.074220, 10.113101, 0},
- {-0.244208, 0.081403, 10.139438, 0},
- {-0.241814, 0.061052, 10.131058, 0},
- {-0.257377, 0.073023, 10.116693, 0},
- {-0.256179, 0.083797, 10.129861, 0},
- {-0.240617, 0.084994, 10.121481, 0},
- {-0.239420, 0.073023, 10.135846, 0},
- {-0.252588, 0.074220, 10.132255, 0},
- {-0.252588, 0.077812, 10.127466, 0},
- {-0.251391, 0.082600, 10.140635, 0},
- {-0.256179, 0.077812, 10.129861, 0},
- {-0.254982, 0.064643, 10.117889, 0},
- {-0.263362, 0.065841, 10.122678, 0},
- {-0.252588, 0.079009, 10.135846, 0},
- {-0.248997, 0.075417, 10.127466, 0},
- {-0.238223, 0.079009, 10.133451, 0},
- {-0.244208, 0.080206, 10.133451, 0},
- {-0.254982, 0.076614, 10.150211, 0},
- {-0.264559, 0.068235, 10.141831, 0},
- {-0.246603, 0.077812, 10.132255, 0},
- {-0.262165, 0.070629, 10.134649, 0},
- {-0.258574, 0.062249, 10.129861, 0},
- {-0.259771, 0.071826, 10.133451, 0},
- {-0.243011, 0.086191, 10.125072, 0},
- {-0.250194, 0.074220, 10.125072, 0},
- {-0.260968, 0.059855, 10.101130, 0},
- {-0.252588, 0.063446, 10.129861, 0},
- {-0.251391, 0.079009, 10.128663, 0},
- {-0.252588, 0.069432, 10.138240, 0},
- {-0.246603, 0.074220, 10.141831, 0},
- {-0.250194, 0.080206, 10.117889, 0},
- {-0.256179, 0.068235, 10.131058, 0},
- {-0.258574, 0.058658, 10.110707, 0},
- {-0.244208, 0.073023, 10.137043, 0},
- {-0.260968, 0.076614, 10.117889, 0},
- {-0.245406, 0.081403, 10.119086, 0},
- {-0.243011, 0.077812, 10.135846, 0},
- {-0.256179, 0.069432, 10.131058, 0},
- {-0.245406, 0.079009, 10.121481, 0},
- {-0.250194, 0.086191, 10.129861, 0},
- {-0.245406, 0.089783, 10.132255, 0},
- {-0.241814, 0.077812, 10.147817, 0},
- {-0.244208, 0.076614, 10.133451, 0},
- {-0.263362, 0.075417, 10.096342, 0},
- {-0.250194, 0.058658, 10.134649, 0},
- {-0.231040, 0.068235, 10.117889, 0},
- {-0.250194, 0.069432, 10.144226, 0},
- {-0.263362, 0.073023, 10.117889, 0},
- {-0.241814, 0.071826, 10.133451, 0},
- {-0.240617, 0.073023, 10.131058, 0},
- {-0.237026, 0.082600, 10.116693, 0},
- {-0.239420, 0.080206, 10.138240, 0},
- {-0.259771, 0.079009, 10.139438, 0},
- {-0.266953, 0.071826, 10.140635, 0},
- {-0.251391, 0.071826, 10.107116, 0},
- {-0.258574, 0.073023, 10.132255, 0},
- {-0.243011, 0.090980, 10.132255, 0},
- {-0.234632, 0.064643, 10.129861, 0},
- {-0.250194, 0.059855, 10.134649, 0},
- {-0.238223, 0.081403, 10.140635, 0},
- {-0.243011, 0.077812, 10.131058, 0},
- {-0.247800, 0.069432, 10.143028, 0},
- {-0.247800, 0.067038, 10.135846, 0},
- {-0.243011, 0.065841, 10.128663, 0},
- {-0.253785, 0.077812, 10.129861, 0},
- {-0.244208, 0.080206, 10.107116, 0},
- {-0.244208, 0.074220, 10.143028, 0},
- {-0.253785, 0.080206, 10.119086, 0},
- {-0.247800, 0.070629, 10.139438, 0},
- {-0.243011, 0.082600, 10.125072, 0},
- {-0.257377, 0.075417, 10.150211, 0},
- {-0.263362, 0.077812, 10.152605, 0},
- {-0.263362, 0.081403, 10.135846, 0},
- {-0.250194, 0.075417, 10.139438, 0},
- {-0.248997, 0.077812, 10.131058, 0},
- {-0.247800, 0.074220, 10.127466, 0},
- {-0.243011, 0.069432, 10.122678, 0},
- {-0.251391, 0.079009, 10.133451, 0},
- {-0.252588, 0.061052, 10.126269, 0},
- {-0.265756, 0.081403, 10.128663, 0},
- {-0.244208, 0.064643, 10.122678, 0},
- {-0.256179, 0.065841, 10.123875, 0},
- {-0.263362, 0.076614, 10.125072, 0},
- {-0.252588, 0.079009, 10.126269, 0},
- {-0.252588, 0.070629, 10.115496, 0},
- {-0.254982, 0.073023, 10.115496, 0},
- {-0.234632, 0.070629, 10.123875, 0},
- {-0.237026, 0.076614, 10.121481, 0},
- {-0.256179, 0.070629, 10.134649, 0},
- {-0.268150, 0.073023, 10.129861, 0},
- {-0.244208, 0.075417, 10.121481, 0},
- {-0.253785, 0.080206, 10.126269, 0},
- {-0.259771, 0.075417, 10.120284, 0},
- {-0.263362, 0.070629, 10.115496, 0},
- {-0.247800, 0.075417, 10.126269, 0},
- {-0.243011, 0.068235, 10.152605, 0},
- {-0.247800, 0.069432, 10.125072, 0},
- {-0.257377, 0.083797, 10.129861, 0},
- {-0.247800, 0.075417, 10.129861, 0},
- {-0.247800, 0.076614, 10.115496, 0},
- {-0.247800, 0.071826, 10.131058, 0},
- {-0.258574, 0.083797, 10.125072, 0},
- {-0.250194, 0.095768, 10.132255, 0},
- {-0.266953, 0.076614, 10.123875, 0},
- {-0.256179, 0.079009, 10.152605, 0},
- {-0.251391, 0.073023, 10.126269, 0},
- {-0.248997, 0.068235, 10.128663, 0},
- {-0.243011, 0.073023, 10.134649, 0},
- {-0.258574, 0.071826, 10.137043, 0},
- {-0.253785, 0.061052, 10.119086, 0},
- {-0.250194, 0.073023, 10.138240, 0},
- {-0.241814, 0.070629, 10.113101, 0},
- {-0.250194, 0.079009, 10.141831, 0},
- {-0.237026, 0.070629, 10.128663, 0},
- {-0.240617, 0.083797, 10.120284, 0},
- {-0.259771, 0.073023, 10.144226, 0},
- {-0.232237, 0.068235, 10.122678, 0},
- {-0.246603, 0.065841, 10.133451, 0},
- {-0.258574, 0.079009, 10.109509, 0},
- {-0.245406, 0.075417, 10.131058, 0},
- {-0.240617, 0.076614, 10.127466, 0},
- {-0.246603, 0.074220, 10.115496, 0},
- {-0.247800, 0.068235, 10.129861, 0},
- {-0.252588, 0.073023, 10.145423, 0},
- {-0.252588, 0.069432, 10.132255, 0},
- {-0.248997, 0.062249, 10.110707, 0},
- {-0.257377, 0.073023, 10.146620, 0},
- {-0.247800, 0.077812, 10.133451, 0},
- {-0.233435, 0.075417, 10.123875, 0},
- {-0.259771, 0.080206, 10.117889, 0},
- {-0.252588, 0.071826, 10.131058, 0},
- {-0.257377, 0.077812, 10.128663, 0},
- {-0.244208, 0.065841, 10.138240, 0},
- {-0.245406, 0.076614, 10.132255, 0},
- {-0.259771, 0.074220, 10.134649, 0},
- {-0.251391, 0.073023, 10.133451, 0},
- {-0.238223, 0.063446, 10.127466, 0},
- {-0.246603, 0.052672, 10.128663, 0},
- {-0.260968, 0.069432, 10.125072, 0},
- {-0.251391, 0.087388, 10.104721, 0},
- {-0.243011, 0.074220, 10.120284, 0},
- {-0.259771, 0.069432, 10.149014, 0},
- {-0.252588, 0.083797, 10.139438, 0},
- {-0.252588, 0.070629, 10.134649, 0},
- {-0.244208, 0.071826, 10.134649, 0},
- {-0.244208, 0.080206, 10.122678, 0},
- {-0.263362, 0.076614, 10.126269, 0},
- {-0.243011, 0.076614, 10.113101, 0},
- {-0.250194, 0.084994, 10.133451, 0},
- {-0.247800, 0.081403, 10.151408, 0},
- {-0.247800, 0.082600, 10.123875, 0},
- {-0.240617, 0.080206, 10.133451, 0},
- {-0.254982, 0.074220, 10.135846, 0},
- {-0.260968, 0.076614, 10.123875, 0},
- {-0.251391, 0.069432, 10.127466, 0},
- {-0.251391, 0.080206, 10.140635, 0},
- {-0.248997, 0.065841, 10.129861, 0},
- {-0.245406, 0.081403, 10.137043, 0},
- {-0.248997, 0.096965, 10.128663, 0},
- {-0.264559, 0.069432, 10.149014, 0},
- {-0.254982, 0.071826, 10.114298, 0},
- {-0.257377, 0.071826, 10.140635, 0},
- {-0.254982, 0.077812, 10.128663, 0},
- {-0.256179, 0.083797, 10.126269, 0},
- {-0.254982, 0.063446, 10.143028, 0},
- {-0.247800, 0.058658, 10.133451, 0},
- {-0.251391, 0.068235, 10.137043, 0},
- {-0.245406, 0.080206, 10.102327, 0},
- {-0.243011, 0.070629, 10.129861, 0},
- {-0.253785, 0.073023, 10.111904, 0},
- {-0.251391, 0.076614, 10.145423, 0},
- {-0.247800, 0.075417, 10.133451, 0},
- {-0.248997, 0.065841, 10.139438, 0},
- {-0.248997, 0.063446, 10.125072, 0},
- {-0.252588, 0.070629, 10.102327, 0},
- {-0.246603, 0.083797, 10.113101, 0},
- {-0.237026, 0.074220, 10.116693, 0},
- {-0.240617, 0.073023, 10.138240, 0},
- {-0.235829, 0.076614, 10.116693, 0},
- {-0.247800, 0.073023, 10.141831, 0},
- {-0.258574, 0.075417, 10.134649, 0},
- {-0.253785, 0.081403, 10.126269, 0},
- {-0.250194, 0.082600, 10.121481, 0},
- {-0.250194, 0.088585, 10.149014, 0},
- {-0.253785, 0.069432, 10.126269, 0},
- {-0.252588, 0.083797, 10.128663, 0},
- {-0.245406, 0.058658, 10.133451, 0},
- {-0.258574, 0.087388, 10.119086, 0},
- {-0.253785, 0.064643, 10.131058, 0},
- {-0.248997, 0.067038, 10.128663, 0},
- {-0.248997, 0.075417, 10.155000, 0},
- {-0.251391, 0.079009, 10.132255, 0},
- {-0.253785, 0.087388, 10.131058, 0},
- {-0.240617, 0.088585, 10.113101, 0},
- {-0.247800, 0.077812, 10.134649, 0},
- {-0.247800, 0.077812, 10.122678, 0},
- {-0.263362, 0.086191, 10.131058, 0},
- {-0.243011, 0.084994, 10.129861, 0},
- {-0.243011, 0.077812, 10.113101, 0},
- {-0.252588, 0.077812, 10.125072, 0},
- {-0.248997, 0.076614, 10.096342, 0},
- {-0.241814, 0.070629, 10.158591, 0},
- {-0.257377, 0.075417, 10.117889, 0},
- {-0.250194, 0.076614, 10.131058, 0},
- {-0.250194, 0.071826, 10.135846, 0},
- {-0.253785, 0.069432, 10.115496, 0},
- {-0.248997, 0.069432, 10.144226, 0},
- {-0.246603, 0.068235, 10.110707, 0},
- {-0.260968, 0.075417, 10.151408, 0},
- {-0.246603, 0.074220, 10.113101, 0},
- {-0.254982, 0.076614, 10.122678, 0},
- {-0.250194, 0.063446, 10.116693, 0},
- {-0.233435, 0.077812, 10.134649, 0},
- {-0.245406, 0.079009, 10.135846, 0},
- {-0.250194, 0.079009, 10.119086, 0},
- {-0.264559, 0.086191, 10.109509, 0},
- {-0.252588, 0.090980, 10.126269, 0},
- {-0.250194, 0.082600, 10.147817, 0},
- {-0.238223, 0.070629, 10.125072, 0},
- {-0.245406, 0.082600, 10.139438, 0},
- {-0.239420, 0.082600, 10.131058, 0},
- {-0.251391, 0.087388, 10.147817, 0},
- {-0.257377, 0.073023, 10.128663, 0},
- {-0.251391, 0.081403, 10.144226, 0},
- {-0.254982, 0.086191, 10.120284, 0},
- {-0.253785, 0.080206, 10.146620, 0},
- {-0.256179, 0.077812, 10.149014, 0},
- {-0.248997, 0.083797, 10.128663, 0},
- {-0.251391, 0.071826, 10.125072, 0},
- {-0.244208, 0.068235, 10.113101, 0},
- {-0.252588, 0.070629, 10.132255, 0},
- {-0.258574, 0.064643, 10.116693, 0},
- {-0.246603, 0.074220, 10.135846, 0},
- {-0.247800, 0.070629, 10.123875, 0},
- {-0.239420, 0.081403, 10.144226, 0},
- {-0.247800, 0.075417, 10.121481, 0},
- {-0.259771, 0.073023, 10.103524, 0},
- {-0.248997, 0.073023, 10.129861, 0},
- {-0.241814, 0.071826, 10.134649, 0},
- {-0.235829, 0.079009, 10.127466, 0},
- {-0.244208, 0.095768, 10.122678, 0},
- {-0.227449, 0.065841, 10.147817, 0},
- {-0.251391, 0.074220, 10.135846, 0},
- {-0.251391, 0.074220, 10.137043, 0},
- {-0.253785, 0.077812, 10.125072, 0},
- {-0.259771, 0.071826, 10.135846, 0},
- {-0.227449, 0.067038, 10.122678, 0},
- {-0.235829, 0.065841, 10.127466, 0},
- {-0.251391, 0.076614, 10.128663, 0},
- {-0.238223, 0.058658, 10.128663, 0},
- {-0.238223, 0.074220, 10.126269, 0},
- {-0.246603, 0.084994, 10.140635, 0},
- {-0.258574, 0.071826, 10.132255, 0},
- {-0.252588, 0.074220, 10.122678, 0},
- {-0.245406, 0.076614, 10.121481, 0},
- {-0.244208, 0.074220, 10.134649, 0},
- {-0.248997, 0.069432, 10.122678, 0},
- {-0.246603, 0.077812, 10.127466, 0},
- {-0.256179, 0.083797, 10.133451, 0},
- {-0.247800, 0.086191, 10.135846, 0},
- {-0.248997, 0.076614, 10.144226, 0},
- {-0.253785, 0.073023, 10.120284, 0},
- {-0.256179, 0.071826, 10.140635, 0},
- {-0.254982, 0.083797, 10.123875, 0},
- {-0.247800, 0.076614, 10.131058, 0},
- {-0.259771, 0.077812, 10.117889, 0},
- {-0.243011, 0.069432, 10.132255, 0},
- {-0.250194, 0.075417, 10.120284, 0},
- {-0.247800, 0.086191, 10.128663, 0},
- {-0.241814, 0.065841, 10.150211, 0},
- {-0.250194, 0.075417, 10.128663, 0},
- {-0.234632, 0.079009, 10.103524, 0},
- {-0.266953, 0.073023, 10.127466, 0},
- {-0.237026, 0.080206, 10.119086, 0},
- {-0.254982, 0.075417, 10.151408, 0},
- {-0.248997, 0.063446, 10.129861, 0},
- {-0.254982, 0.071826, 10.135846, 0},
- {-0.246603, 0.075417, 10.125072, 0},
- {-0.237026, 0.069432, 10.126269, 0},
- {-0.243011, 0.070629, 10.146620, 0},
- {-0.244208, 0.082600, 10.137043, 0},
- {-0.263362, 0.071826, 10.138240, 0},
- {-0.250194, 0.074220, 10.149014, 0},
- {-0.250194, 0.070629, 10.137043, 0},
- {-0.253785, 0.080206, 10.122678, 0},
- {-0.247800, 0.080206, 10.131058, 0},
- {-0.237026, 0.082600, 10.134649, 0},
- {-0.243011, 0.079009, 10.129861, 0},
- {-0.246603, 0.071826, 10.117889, 0},
- {-0.256179, 0.074220, 10.135846, 0},
- {-0.250194, 0.075417, 10.128663, 0},
- {-0.247800, 0.074220, 10.120284, 0},
- {-0.251391, 0.065841, 10.141831, 0},
- {-0.248997, 0.062249, 10.115496, 0},
- {-0.260968, 0.068235, 10.141831, 0},
- {-0.248997, 0.079009, 10.141831, 0},
- {-0.247800, 0.075417, 10.156197, 0},
- {-0.246603, 0.070629, 10.132255, 0},
- {-0.252588, 0.082600, 10.116693, 0},
- {-0.252588, 0.074220, 10.122678, 0},
- {-0.262165, 0.071826, 10.123875, 0},
- {-0.251391, 0.067038, 10.121481, 0},
- {-0.239420, 0.081403, 10.113101, 0},
- {-0.247800, 0.084994, 10.132255, 0},
- {-0.252588, 0.075417, 10.138240, 0},
- {-0.246603, 0.075417, 10.125072, 0},
- {-0.246603, 0.076614, 10.109509, 0},
- {-0.253785, 0.074220, 10.125072, 0},
- {-0.251391, 0.081403, 10.139438, 0},
- {-0.243011, 0.073023, 10.114298, 0},
- {-0.253785, 0.065841, 10.107116, 0},
- {-0.243011, 0.080206, 10.121481, 0},
- {-0.253785, 0.069432, 10.129861, 0},
- {-0.256179, 0.068235, 10.121481, 0},
- {-0.246603, 0.068235, 10.121481, 0},
- {-0.254982, 0.075417, 10.121481, 0},
- {-0.241814, 0.074220, 10.120284, 0},
- {-0.258574, 0.073023, 10.127466, 0},
- {-0.235829, 0.074220, 10.128663, 0},
- {-0.247800, 0.071826, 10.120284, 0},
- {-0.258574, 0.073023, 10.119086, 0},
- {-0.256179, 0.082600, 10.125072, 0},
- {-0.243011, 0.081403, 10.128663, 0},
- {-0.241814, 0.069432, 10.132255, 0},
- {-0.252588, 0.074220, 10.135846, 0},
- {-0.235829, 0.076614, 10.138240, 0},
- {-0.252588, 0.069432, 10.133451, 0},
- {-0.257377, 0.087388, 10.129861, 0},
- {-0.252588, 0.079009, 10.120284, 0},
- {-0.245406, 0.077812, 10.132255, 0},
- {-0.244208, 0.077812, 10.105919, 0},
- {-0.252588, 0.064643, 10.128663, 0},
- {-0.257377, 0.080206, 10.122678, 0},
- {-0.227449, 0.075417, 10.122678, 0},
- {-0.256179, 0.076614, 10.139438, 0},
- {-0.250194, 0.068235, 10.134649, 0},
- {-0.244208, 0.080206, 10.145423, 0},
- {-0.244208, 0.075417, 10.117889, 0},
- {-0.245406, 0.071826, 10.137043, 0},
- {-0.251391, 0.069432, 10.132255, 0},
- {-0.252588, 0.065841, 10.127466, 0},
- {-0.252588, 0.087388, 10.135846, 0},
- {-0.250194, 0.083797, 10.140635, 0},
- {-0.265756, 0.083797, 10.127466, 0},
- {-0.251391, 0.081403, 10.116693, 0},
- {-0.243011, 0.073023, 10.131058, 0},
- {-0.256179, 0.079009, 10.132255, 0},
- {-0.256179, 0.079009, 10.135846, 0},
- {-0.259771, 0.080206, 10.139438, 0},
- {-0.248997, 0.069432, 10.134649, 0},
- {-0.247800, 0.076614, 10.109509, 0},
- {-0.251391, 0.069432, 10.140635, 0},
- {-0.248997, 0.065841, 10.129861, 0},
- {-0.256179, 0.084994, 10.119086, 0},
- {-0.253785, 0.082600, 10.111904, 0},
- {-0.251391, 0.079009, 10.134649, 0},
- {-0.258574, 0.077812, 10.125072, 0},
- {-0.254982, 0.062249, 10.108313, 0},
- {-0.272939, 0.080206, 10.151408, 0},
- {-0.260968, 0.082600, 10.113101, 0},
- {-0.244208, 0.086191, 10.123875, 0},
- {-0.247800, 0.079009, 10.116693, 0},
- {-0.247800, 0.075417, 10.141831, 0},
- {-0.259771, 0.076614, 10.120284, 0},
- {-0.239420, 0.081403, 10.134649, 0},
- {-0.253785, 0.080206, 10.121481, 0},
- {-0.262165, 0.074220, 10.119086, 0},
- {-0.253785, 0.069432, 10.127466, 0},
- {-0.262165, 0.069432, 10.104721, 0},
- {-0.252588, 0.084994, 10.120284, 0},
- {-0.251391, 0.063446, 10.113101, 0},
- {-0.263362, 0.074220, 10.121481, 0},
- {-0.259771, 0.068235, 10.135846, 0},
- {-0.250194, 0.070629, 10.138240, 0},
- {-0.258574, 0.077812, 10.132255, 0},
- {-0.252588, 0.067038, 10.135846, 0},
- {-0.251391, 0.064643, 10.128663, 0},
- {-0.243011, 0.082600, 10.134649, 0},
- {-0.238223, 0.084994, 10.144226, 0},
- {-0.260968, 0.084994, 10.123875, 0},
- {-0.254982, 0.075417, 10.137043, 0},
- {-0.259771, 0.075417, 10.111904, 0},
- {-0.251391, 0.084994, 10.143028, 0},
- {-0.245406, 0.079009, 10.117889, 0},
- {-0.252588, 0.074220, 10.149014, 0},
- {-0.254982, 0.062249, 10.132255, 0},
- {-0.241814, 0.062249, 10.116693, 0},
- {-0.247800, 0.074220, 10.151408, 0},
- {-0.240617, 0.081403, 10.115496, 0},
- {-0.247800, 0.067038, 10.139438, 0},
- {-0.250194, 0.079009, 10.126269, 0},
- {-0.237026, 0.087388, 10.150211, 0},
- {-0.238223, 0.073023, 10.134649, 0},
- {-0.241814, 0.080206, 10.140635, 0},
- {-0.248997, 0.075417, 10.122678, 0},
- {-0.254982, 0.081403, 10.123875, 0},
- {-0.257377, 0.067038, 10.138240, 0},
- {-0.247800, 0.076614, 10.128663, 0},
- {-0.256179, 0.076614, 10.145423, 0},
- {-0.241814, 0.080206, 10.132255, 0},
- {-0.238223, 0.067038, 10.137043, 0},
- {-0.257377, 0.064643, 10.119086, 0},
- {-0.243011, 0.081403, 10.129861, 0},
- {-0.248997, 0.081403, 10.115496, 0},
- {-0.258574, 0.062249, 10.133451, 0},
- {-0.247800, 0.070629, 10.119086, 0},
- {-0.252588, 0.074220, 10.129861, 0},
- {-0.246603, 0.070629, 10.133451, 0},
- {-0.245406, 0.073023, 10.102327, 0},
- {-0.252588, 0.080206, 10.139438, 0},
- {-0.247800, 0.068235, 10.113101, 0},
- {-0.254982, 0.074220, 10.126269, 0},
- {-0.251391, 0.079009, 10.120284, 0},
- {-0.251391, 0.089783, 10.137043, 0},
- {-0.252588, 0.065841, 10.127466, 0},
- {-0.251391, 0.068235, 10.120284, 0},
- {-0.257377, 0.067038, 10.127466, 0},
- {-0.241814, 0.081403, 10.128663, 0},
- {-0.241814, 0.081403, 10.135846, 0},
- {-0.247800, 0.071826, 10.135846, 0},
- {-0.250194, 0.070629, 10.138240, 0},
- {-0.252588, 0.084994, 10.131058, 0},
- {-0.245406, 0.083797, 10.139438, 0},
- {-0.244208, 0.075417, 10.123875, 0},
- {-0.259771, 0.077812, 10.137043, 0},
- {-0.248997, 0.071826, 10.123875, 0},
- {-0.246603, 0.086191, 10.152605, 0},
- {-0.241814, 0.069432, 10.132255, 0},
- {-0.243011, 0.064643, 10.129861, 0},
- {-0.245406, 0.073023, 10.129861, 0},
- {-0.251391, 0.076614, 10.116693, 0},
- {-0.264559, 0.068235, 10.139438, 0},
- {-0.247800, 0.073023, 10.105919, 0},
- {-0.244208, 0.077812, 10.145423, 0},
- {-0.250194, 0.077812, 10.137043, 0},
- {-0.252588, 0.064643, 10.126269, 0},
- {-0.252588, 0.079009, 10.125072, 0},
- {-0.239420, 0.084994, 10.126269, 0},
- {-0.246603, 0.067038, 10.137043, 0},
- {-0.252588, 0.077812, 10.114298, 0},
- {-0.266953, 0.062249, 10.131058, 0},
- {-0.264559, 0.076614, 10.114298, 0},
- {-0.250194, 0.071826, 10.135846, 0},
- {-0.250194, 0.087388, 10.134649, 0},
- {-0.246603, 0.082600, 10.147817, 0},
- {-0.245406, 0.065841, 10.131058, 0},
- {-0.258574, 0.070629, 10.139438, 0},
- {-0.251391, 0.081403, 10.111904, 0},
- {-0.246603, 0.080206, 10.132255, 0},
- {-0.235829, 0.074220, 10.117889, 0},
- {-0.243011, 0.075417, 10.123875, 0},
- {-0.241814, 0.065841, 10.139438, 0},
- {-0.241814, 0.077812, 10.119086, 0},
- {-0.247800, 0.084994, 10.153803, 0},
- {-0.266953, 0.081403, 10.116693, 0},
- {-0.243011, 0.083797, 10.137043, 0},
- {-0.257377, 0.074220, 10.109509, 0},
- {-0.252588, 0.074220, 10.126269, 0},
- {-0.247800, 0.076614, 10.127466, 0},
- {-0.243011, 0.068235, 10.111904, 0},
- {-0.259771, 0.077812, 10.132255, 0},
- {-0.253785, 0.092177, 10.103524, 0},
- {-0.243011, 0.086191, 10.123875, 0},
- {-0.232237, 0.069432, 10.134649, 0},
- {-0.233435, 0.076614, 10.129861, 0},
- {-0.257377, 0.068235, 10.114298, 0},
- {-0.250194, 0.074220, 10.127466, 0},
- {-0.245406, 0.077812, 10.131058, 0},
- {-0.251391, 0.077812, 10.123875, 0},
- {-0.245406, 0.074220, 10.123875, 0},
- {-0.245406, 0.069432, 10.122678, 0},
- {-0.254982, 0.071826, 10.119086, 0},
- {-0.257377, 0.064643, 10.116693, 0},
- {-0.256179, 0.079009, 10.128663, 0},
- {-0.241814, 0.062249, 10.098736, 0},
- {-0.248997, 0.067038, 10.144226, 0},
- {-0.237026, 0.083797, 10.145423, 0},
- {-0.253785, 0.076614, 10.120284, 0},
- {-0.251391, 0.065841, 10.113101, 0},
- {-0.248997, 0.067038, 10.104721, 0},
- {-0.244208, 0.073023, 10.134649, 0},
- {-0.259771, 0.069432, 10.134649, 0},
- {-0.244208, 0.084994, 10.141831, 0},
- {-0.257377, 0.076614, 10.126269, 0},
- {-0.246603, 0.073023, 10.137043, 0},
- {-0.247800, 0.073023, 10.111904, 0},
- {-0.243011, 0.073023, 10.144226, 0},
- {-0.251391, 0.080206, 10.129861, 0},
- {-0.244208, 0.076614, 10.126269, 0},
- {-0.246603, 0.069432, 10.135846, 0},
- {-0.250194, 0.073023, 10.131058, 0},
- {-0.250194, 0.069432, 10.122678, 0},
- {-0.238223, 0.073023, 10.133451, 0},
- {-0.229843, 0.063446, 10.121481, 0},
- {-0.235829, 0.084994, 10.115496, 0},
- {-0.243011, 0.077812, 10.122678, 0},
- {-0.238223, 0.067038, 10.116693, 0},
- {-0.245406, 0.069432, 10.137043, 0},
- {-0.258574, 0.081403, 10.122678, 0},
- {-0.239420, 0.083797, 10.149014, 0},
- {-0.240617, 0.075417, 10.123875, 0},
- {-0.251391, 0.067038, 10.153803, 0},
- {-0.240617, 0.075417, 10.145423, 0},
- {-0.231040, 0.083797, 10.129861, 0},
- {-0.247800, 0.090980, 10.155000, 0},
- {-0.247800, 0.077812, 10.125072, 0},
- {-0.253785, 0.084994, 10.131058, 0},
- {-0.257377, 0.073023, 10.108313, 0},
- {-0.248997, 0.080206, 10.123875, 0},
- {-0.244208, 0.073023, 10.113101, 0},
- {-0.237026, 0.080206, 10.121481, 0},
- {-0.248997, 0.055067, 10.127466, 0},
- {-0.256179, 0.073023, 10.137043, 0},
- {-0.260968, 0.081403, 10.131058, 0},
- {-0.251391, 0.069432, 10.125072, 0},
- {-0.252588, 0.074220, 10.115496, 0},
- {-0.250194, 0.086191, 10.122678, 0},
- {-0.235829, 0.076614, 10.119086, 0},
- {-0.258574, 0.079009, 10.127466, 0},
- {-0.247800, 0.076614, 10.139438, 0},
- {-0.247800, 0.079009, 10.126269, 0},
- {-0.237026, 0.088585, 10.134649, 0},
- {-0.240617, 0.073023, 10.120284, 0},
- {-0.244208, 0.073023, 10.125072, 0},
- {-0.243011, 0.076614, 10.115496, 0},
- {-0.238223, 0.080206, 10.122678, 0},
- {-0.239420, 0.067038, 10.122678, 0},
- {-0.253785, 0.081403, 10.119086, 0},
- {-0.246603, 0.080206, 10.125072, 0},
- {-0.251391, 0.082600, 10.126269, 0},
- {-0.238223, 0.073023, 10.132255, 0},
- {-0.252588, 0.075417, 10.133451, 0},
- {-0.254982, 0.061052, 10.140635, 0},
- {-0.253785, 0.065841, 10.117889, 0},
- {-0.235829, 0.071826, 10.143028, 0},
- {-0.245406, 0.083797, 10.122678, 0},
- {-0.256179, 0.088585, 10.129861, 0},
- {-0.259771, 0.077812, 10.121481, 0},
- {-0.238223, 0.067038, 10.125072, 0},
- {-0.247800, 0.073023, 10.140635, 0},
- {-0.248997, 0.073023, 10.111904, 0},
- {-0.245406, 0.075417, 10.145423, 0},
- {-0.268150, 0.075417, 10.102327, 0},
- {-0.246603, 0.080206, 10.129861, 0},
- {-0.251391, 0.080206, 10.126269, 0},
- {-0.251391, 0.071826, 10.134649, 0},
- {-0.262165, 0.076614, 10.143028, 0},
- {-0.247800, 0.070629, 10.121481, 0},
- {-0.238223, 0.083797, 10.135846, 0},
- {-0.251391, 0.069432, 10.111904, 0},
- {-0.256179, 0.082600, 10.139438, 0},
- {-0.262165, 0.083797, 10.128663, 0},
- {-0.251391, 0.079009, 10.122678, 0},
- {-0.245406, 0.077812, 10.125072, 0},
- {-0.239420, 0.074220, 10.125072, 0},
- {-0.258574, 0.076614, 10.127466, 0},
- {-0.256179, 0.088585, 10.126269, 0},
- {-0.246603, 0.080206, 10.111904, 0},
- {-0.241814, 0.084994, 10.133451, 0},
- {-0.235829, 0.079009, 10.141831, 0},
- {-0.263362, 0.073023, 10.138240, 0},
- {-0.251391, 0.069432, 10.134649, 0},
- {-0.245406, 0.069432, 10.127466, 0},
- {-0.250194, 0.074220, 10.133451, 0},
- {-0.251391, 0.068235, 10.131058, 0},
- {-0.254982, 0.070629, 10.128663, 0},
- {-0.240617, 0.083797, 10.111904, 0},
- {-0.245406, 0.075417, 10.122678, 0},
- {-0.245406, 0.084994, 10.119086, 0},
- {-0.248997, 0.079009, 10.098736, 0},
- {-0.240617, 0.070629, 10.127466, 0},
- {-0.244208, 0.079009, 10.145423, 0},
- {-0.264559, 0.079009, 10.120284, 0},
- {-0.244208, 0.077812, 10.119086, 0},
- {-0.237026, 0.080206, 10.107116, 0},
- {-0.235829, 0.086191, 10.128663, 0},
- {-0.245406, 0.081403, 10.133451, 0},
- {-0.247800, 0.077812, 10.138240, 0},
- {-0.251391, 0.080206, 10.125072, 0},
- {-0.257377, 0.068235, 10.147817, 0},
- {-0.263362, 0.076614, 10.121481, 0},
- {-0.268150, 0.073023, 10.116693, 0},
- {-0.247800, 0.071826, 10.122678, 0},
- {-0.260968, 0.073023, 10.134649, 0},
- {-0.254982, 0.074220, 10.116693, 0},
- {-0.246603, 0.086191, 10.131058, 0},
- {-0.248997, 0.079009, 10.125072, 0},
- {-0.252588, 0.067038, 10.132255, 0},
- {-0.254982, 0.063446, 10.123875, 0},
- {-0.256179, 0.067038, 10.116693, 0},
- {-0.259771, 0.083797, 10.125072, 0},
- {-0.264559, 0.069432, 10.131058, 0},
- {-0.243011, 0.074220, 10.143028, 0},
- {-0.254982, 0.081403, 10.128663, 0},
- {-0.253785, 0.065841, 10.143028, 0},
- {-0.260968, 0.075417, 10.131058, 0},
- {-0.265756, 0.090980, 10.128663, 0},
- {-0.244208, 0.088585, 10.146620, 0},
- {-0.246603, 0.082600, 10.114298, 0},
- {-0.256179, 0.077812, 10.133451, 0},
- {-0.250194, 0.064643, 10.117889, 0},
- {-0.254982, 0.075417, 10.117889, 0},
- {-0.266953, 0.065841, 10.113101, 0},
- {-0.253785, 0.073023, 10.128663, 0},
- {-0.259771, 0.082600, 10.138240, 0},
- {-0.247800, 0.071826, 10.145423, 0},
- {-0.243011, 0.074220, 10.122678, 0},
- {-0.257377, 0.083797, 10.140635, 0},
- {-0.232237, 0.087388, 10.117889, 0},
- {-0.244208, 0.076614, 10.125072, 0},
- {-0.248997, 0.067038, 10.128663, 0},
- {-0.256179, 0.062249, 10.115496, 0},
- {-0.263362, 0.071826, 10.141831, 0},
- {-0.246603, 0.075417, 10.107116, 0},
- {-0.244208, 0.081403, 10.137043, 0},
- {-0.254982, 0.083797, 10.123875, 0},
- {-0.243011, 0.092177, 10.132255, 0},
- {-0.260968, 0.077812, 10.131058, 0},
- {-0.256179, 0.073023, 10.119086, 0},
- {-0.239420, 0.082600, 10.132255, 0},
- {-0.251391, 0.073023, 10.117889, 0},
- {-0.254982, 0.071826, 10.134649, 0},
- {-0.259771, 0.080206, 10.120284, 0},
- {-0.246603, 0.069432, 10.133451, 0},
- {-0.250194, 0.061052, 10.126269, 0},
- {-0.256179, 0.063446, 10.109509, 0},
- {-0.251391, 0.087388, 10.120284, 0},
- {-0.246603, 0.069432, 10.132255, 0},
- {-0.244208, 0.077812, 10.133451, 0},
- {-0.257377, 0.069432, 10.126269, 0},
- {-0.247800, 0.075417, 10.133451, 0},
- {-0.246603, 0.071826, 10.117889, 0},
- {-0.245406, 0.093374, 10.135846, 0},
- {-0.254982, 0.082600, 10.105919, 0},
- {-0.247800, 0.076614, 10.143028, 0},
- {-0.246603, 0.076614, 10.126269, 0},
- {-0.243011, 0.067038, 10.127466, 0},
- {-0.253785, 0.064643, 10.119086, 0},
- {-0.248997, 0.079009, 10.127466, 0},
- {-0.248997, 0.080206, 10.141831, 0},
- {-0.244208, 0.074220, 10.133451, 0},
- {-0.240617, 0.079009, 10.135846, 0},
- {-0.232237, 0.075417, 10.115496, 0},
- {-0.254982, 0.082600, 10.139438, 0},
- {-0.258574, 0.077812, 10.119086, 0},
- {-0.246603, 0.076614, 10.109509, 0},
- {-0.248997, 0.080206, 10.125072, 0},
- {-0.256179, 0.077812, 10.128663, 0},
- {-0.235829, 0.076614, 10.126269, 0},
- {-0.253785, 0.076614, 10.128663, 0},
- {-0.254982, 0.075417, 10.147817, 0},
- {-0.246603, 0.079009, 10.145423, 0},
- {-0.243011, 0.081403, 10.146620, 0},
- {-0.237026, 0.075417, 10.134649, 0},
- {-0.258574, 0.077812, 10.149014, 0},
- {-0.262165, 0.079009, 10.141831, 0},
- {-0.245406, 0.069432, 10.140635, 0},
- {-0.240617, 0.074220, 10.120284, 0},
- {-0.252588, 0.080206, 10.143028, 0},
- {-0.254982, 0.084994, 10.135846, 0},
- {-0.248997, 0.067038, 10.131058, 0},
- {-0.234632, 0.070629, 10.133451, 0},
- {-0.246603, 0.067038, 10.132255, 0},
- {-0.246603, 0.070629, 10.143028, 0},
- {-0.245406, 0.079009, 10.135846, 0},
- {-0.253785, 0.077812, 10.144226, 0},
- {-0.248997, 0.076614, 10.127466, 0},
- {-0.227449, 0.093374, 10.119086, 0},
- {-0.257377, 0.073023, 10.125072, 0},
- {-0.254982, 0.057461, 10.133451, 0},
- {-0.247800, 0.069432, 10.122678, 0},
- {-0.252588, 0.075417, 10.125072, 0},
- {-0.262165, 0.088585, 10.125072, 0},
- {-0.253785, 0.080206, 10.127466, 0},
- {-0.252588, 0.070629, 10.137043, 0},
- {-0.254982, 0.068235, 10.113101, 0},
- {-0.244208, 0.076614, 10.132255, 0},
- {-0.244208, 0.074220, 10.129861, 0},
- {-0.244208, 0.073023, 10.141831, 0},
- {-0.239420, 0.080206, 10.108313, 0},
- {-0.241814, 0.087388, 10.122678, 0},
- {-0.253785, 0.093374, 10.122678, 0},
- {-0.252588, 0.070629, 10.133451, 0},
- {-0.244208, 0.073023, 10.147817, 0},
- {-0.245406, 0.076614, 10.122678, 0},
- {-0.254982, 0.087388, 10.132255, 0},
- {-0.241814, 0.065841, 10.125072, 0},
- {-0.231040, 0.068235, 10.123875, 0},
- {-0.238223, 0.081403, 10.117889, 0},
- {-0.241814, 0.083797, 10.139438, 0},
- {-0.240617, 0.045490, 10.119086, 0},
- {-0.262165, 0.069432, 10.125072, 0},
- {-0.259771, 0.081403, 10.126269, 0},
- {-0.248997, 0.068235, 10.129861, 0},
- {-0.238223, 0.071826, 10.131058, 0},
- {-0.237026, 0.087388, 10.117889, 0},
- {-0.253785, 0.076614, 10.123875, 0},
- {-0.260968, 0.077812, 10.120284, 0},
- {-0.246603, 0.073023, 10.126269, 0},
- {-0.256179, 0.082600, 10.119086, 0},
- {-0.252588, 0.067038, 10.139438, 0},
- {-0.260968, 0.073023, 10.127466, 0},
- {-0.235829, 0.086191, 10.121481, 0},
- {-0.244208, 0.088585, 10.131058, 0},
- {-0.245406, 0.073023, 10.143028, 0},
- {-0.243011, 0.079009, 10.139438, 0},
- {-0.253785, 0.077812, 10.120284, 0},
- {-0.252588, 0.068235, 10.123875, 0},
- {-0.246603, 0.069432, 10.132255, 0},
- {-0.237026, 0.070629, 10.139438, 0},
- {-0.244208, 0.068235, 10.120284, 0},
- {-0.247800, 0.079009, 10.134649, 0},
- {-0.256179, 0.084994, 10.150211, 0},
- {-0.246603, 0.070629, 10.126269, 0},
- {-0.246603, 0.065841, 10.131058, 0},
- {-0.262165, 0.068235, 10.126269, 0},
- {-0.244208, 0.069432, 10.125072, 0},
- {-0.245406, 0.081403, 10.114298, 0},
- {-0.257377, 0.070629, 10.133451, 0},
- {-0.247800, 0.079009, 10.109509, 0},
- {-0.245406, 0.071826, 10.125072, 0},
- {-0.237026, 0.069432, 10.139438, 0},
- {-0.244208, 0.081403, 10.145423, 0},
- {-0.246603, 0.075417, 10.129861, 0},
- {-0.262165, 0.082600, 10.128663, 0},
- {-0.246603, 0.083797, 10.147817, 0},
- {-0.243011, 0.079009, 10.128663, 0},
- {-0.251391, 0.069432, 10.133451, 0},
- {-0.253785, 0.070629, 10.122678, 0},
- {-0.248997, 0.075417, 10.139438, 0},
- {-0.256179, 0.080206, 10.104721, 0},
- {-0.263362, 0.081403, 10.127466, 0},
- {-0.247800, 0.068235, 10.140635, 0},
- {-0.251391, 0.062249, 10.138240, 0},
- {-0.245406, 0.087388, 10.133451, 0},
- {-0.254982, 0.075417, 10.122678, 0},
- {-0.240617, 0.071826, 10.135846, 0},
- {-0.258574, 0.068235, 10.114298, 0},
- {-0.250194, 0.077812, 10.137043, 0},
- {-0.238223, 0.070629, 10.121481, 0},
- {-0.244208, 0.080206, 10.126269, 0},
- {-0.246603, 0.071826, 10.119086, 0},
- {-0.258574, 0.068235, 10.147817, 0},
- {-0.252588, 0.058658, 10.121481, 0},
- {-0.258574, 0.073023, 10.122678, 0},
- {-0.244208, 0.075417, 10.144226, 0},
- {-0.241814, 0.075417, 10.120284, 0},
- {-0.257377, 0.063446, 10.129861, 0},
- {-0.260968, 0.075417, 10.091554, 0},
- {-0.260968, 0.086191, 10.149014, 0},
- {-0.243011, 0.084994, 10.095144, 0},
- {-0.246603, 0.081403, 10.141831, 0},
- {-0.243011, 0.068235, 10.138240, 0},
- {-0.252588, 0.084994, 10.131058, 0},
- {-0.257377, 0.077812, 10.141831, 0},
- {-0.247800, 0.071826, 10.113101, 0},
- {-0.258574, 0.073023, 10.151408, 0},
- {-0.256179, 0.067038, 10.119086, 0},
- {-0.264559, 0.070629, 10.131058, 0},
- {-0.266953, 0.079009, 10.107116, 0},
- {-0.245406, 0.077812, 10.137043, 0},
- {-0.256179, 0.076614, 10.128663, 0},
- {-0.252588, 0.068235, 10.135846, 0},
- {-0.257377, 0.069432, 10.133451, 0},
- {-0.258574, 0.062249, 10.133451, 0},
- {-0.268150, 0.092177, 10.128663, 0},
- {-0.257377, 0.076614, 10.139438, 0},
- {-0.240617, 0.076614, 10.115496, 0},
- {-0.248997, 0.075417, 10.129861, 0},
- {-0.251391, 0.075417, 10.135846, 0},
- {-0.263362, 0.062249, 10.092751, 0},
- {-0.245406, 0.079009, 10.135846, 0},
- {-0.248997, 0.077812, 10.114298, 0},
- {-0.245406, 0.090980, 10.143028, 0},
- {-0.246603, 0.081403, 10.125072, 0},
- {-0.243011, 0.059855, 10.127466, 0},
- {-0.248997, 0.068235, 10.145423, 0},
- {-0.245406, 0.070629, 10.132255, 0},
- {-0.240617, 0.068235, 10.139438, 0},
- {-0.241814, 0.069432, 10.115496, 0},
- {-0.250194, 0.082600, 10.137043, 0},
- {-0.250194, 0.073023, 10.128663, 0},
- {-0.241814, 0.086191, 10.144226, 0},
- {-0.254982, 0.070629, 10.121481, 0},
- {-0.244208, 0.082600, 10.131058, 0},
- {-0.244208, 0.086191, 10.126269, 0},
- {-0.251391, 0.086191, 10.138240, 0},
- {-0.256179, 0.073023, 10.123875, 0},
- {-0.247800, 0.080206, 10.127466, 0},
- {-0.239420, 0.087388, 10.145423, 0},
- {-0.247800, 0.056264, 10.145423, 0},
- {-0.239420, 0.063446, 10.143028, 0},
- {-0.259771, 0.067038, 10.111904, 0},
- {-0.245406, 0.079009, 10.135846, 0},
- {-0.254982, 0.074220, 10.121481, 0},
- {-0.257377, 0.070629, 10.141831, 0},
- {-0.243011, 0.068235, 10.141831, 0},
- {-0.254982, 0.071826, 10.140635, 0},
- {-0.231040, 0.068235, 10.126269, 0},
- {-0.240617, 0.074220, 10.119086, 0},
- {-0.244208, 0.070629, 10.123875, 0},
- {-0.248997, 0.067038, 10.132255, 0},
- {-0.252588, 0.071826, 10.135846, 0},
- {-0.250194, 0.074220, 10.108313, 0},
- {-0.252588, 0.071826, 10.137043, 0},
- {-0.253785, 0.074220, 10.117889, 0},
- {-0.246603, 0.069432, 10.123875, 0},
- {-0.250194, 0.065841, 10.132255, 0},
- {-0.240617, 0.062249, 10.153803, 0},
- {-0.250194, 0.069432, 10.122678, 0},
- {-0.248997, 0.073023, 10.114298, 0},
- {-0.251391, 0.075417, 10.131058, 0},
- {-0.239420, 0.065841, 10.134649, 0},
- {-0.244208, 0.077812, 10.146620, 0},
- {-0.253785, 0.089783, 10.102327, 0},
- {-0.248997, 0.073023, 10.123875, 0},
- {-0.252588, 0.074220, 10.109509, 0},
- {-0.248997, 0.086191, 10.144226, 0},
- {-0.240617, 0.073023, 10.135846, 0},
- {-0.245406, 0.063446, 10.111904, 0},
- {-0.253785, 0.057461, 10.120284, 0},
- {-0.257377, 0.074220, 10.120284, 0},
- {-0.262165, 0.070629, 10.153803, 0},
- {-0.260968, 0.071826, 10.128663, 0},
- {-0.251391, 0.070629, 10.138240, 0},
- {-0.246603, 0.075417, 10.119086, 0},
- {-0.247800, 0.069432, 10.120284, 0},
- {-0.268150, 0.074220, 10.134649, 0},
- {-0.241814, 0.082600, 10.143028, 0},
- {-0.245406, 0.082600, 10.143028, 0},
- {-0.259771, 0.074220, 10.125072, 0},
- {-0.263362, 0.069432, 10.132255, 0},
- {-0.248997, 0.076614, 10.111904, 0},
- {-0.254982, 0.071826, 10.128663, 0},
- {-0.238223, 0.079009, 10.101130, 0},
- {-0.246603, 0.075417, 10.149014, 0},
- {-0.262165, 0.061052, 10.116693, 0},
- {-0.245406, 0.071826, 10.135846, 0},
- {-0.241814, 0.090980, 10.120284, 0},
- {-0.247800, 0.082600, 10.133451, 0},
- {-0.260968, 0.064643, 10.149014, 0},
- {-0.241814, 0.069432, 10.127466, 0},
- {-0.246603, 0.073023, 10.128663, 0},
- {-0.259771, 0.068235, 10.083174, 0},
- {-0.254982, 0.086191, 10.129861, 0},
- {-0.251391, 0.070629, 10.111904, 0},
- {-0.250194, 0.064643, 10.128663, 0},
- {-0.244208, 0.080206, 10.114298, 0},
- {-0.234632, 0.075417, 10.128663, 0},
- {-0.247800, 0.080206, 10.132255, 0},
- {-0.247800, 0.071826, 10.135846, 0},
- {-0.240617, 0.063446, 10.133451, 0},
- {-0.253785, 0.070629, 10.128663, 0},
- {-0.251391, 0.075417, 10.131058, 0},
- {-0.252588, 0.074220, 10.116693, 0},
- {-0.248997, 0.071826, 10.129861, 0},
- {-0.251391, 0.087388, 10.108313, 0},
- {-0.248997, 0.083797, 10.137043, 0},
- {-0.257377, 0.068235, 10.132255, 0},
- {-0.256179, 0.065841, 10.141831, 0},
- {-0.239420, 0.076614, 10.132255, 0},
- {-0.251391, 0.073023, 10.127466, 0},
- {-0.252588, 0.073023, 10.138240, 0},
- {-0.253785, 0.070629, 10.119086, 0},
- {-0.247800, 0.069432, 10.119086, 0},
- {-0.246603, 0.067038, 10.123875, 0},
- {-0.246603, 0.077812, 10.146620, 0},
- {-0.246603, 0.083797, 10.123875, 0},
- {-0.246603, 0.083797, 10.143028, 0},
- {-0.241814, 0.071826, 10.110707, 0},
- {-0.248997, 0.077812, 10.134649, 0},
- {-0.251391, 0.074220, 10.143028, 0},
- {-0.243011, 0.082600, 10.133451, 0},
- {-0.251391, 0.079009, 10.111904, 0},
- {-0.251391, 0.081403, 10.122678, 0},
- {-0.247800, 0.080206, 10.144226, 0},
- {-0.247800, 0.092177, 10.114298, 0},
- {-0.244208, 0.073023, 10.134649, 0},
- {-0.245406, 0.081403, 10.126269, 0},
- {-0.250194, 0.073023, 10.144226, 0},
- {-0.243011, 0.079009, 10.133451, 0},
- {-0.260968, 0.077812, 10.122678, 0},
- {-0.252588, 0.090980, 10.122678, 0},
- {-0.268150, 0.073023, 10.128663, 0},
- {-0.256179, 0.075417, 10.123875, 0},
- {-0.248997, 0.063446, 10.104721, 0},
- {-0.245406, 0.090980, 10.128663, 0},
- {-0.253785, 0.087388, 10.115496, 0},
- {-0.239420, 0.073023, 10.138240, 0},
- {-0.238223, 0.059855, 10.119086, 0},
- {-0.248997, 0.070629, 10.125072, 0},
- {-0.250194, 0.081403, 10.131058, 0},
- {-0.248997, 0.093374, 10.132255, 0},
- {-0.253785, 0.092177, 10.128663, 0},
- {-0.251391, 0.071826, 10.134649, 0},
- {-0.233435, 0.074220, 10.129861, 0},
- {-0.241814, 0.079009, 10.103524, 0},
- {-0.253785, 0.070629, 10.153803, 0},
- {-0.260968, 0.069432, 10.144226, 0},
- {-0.250194, 0.065841, 10.123875, 0},
- {-0.262165, 0.092177, 10.125072, 0},
- {-0.252588, 0.088585, 10.151408, 0},
- {-0.253785, 0.087388, 10.132255, 0},
- {-0.244208, 0.062249, 10.137043, 0},
- {-0.256179, 0.065841, 10.110707, 0},
- {-0.244208, 0.075417, 10.117889, 0},
- {-0.240617, 0.082600, 10.132255, 0},
- {-0.248997, 0.074220, 10.115496, 0},
- {-0.250194, 0.079009, 10.141831, 0},
- {-0.246603, 0.077812, 10.119086, 0},
- {-0.252588, 0.074220, 10.117889, 0},
- {-0.257377, 0.075417, 10.120284, 0},
- {-0.250194, 0.077812, 10.117889, 0},
- {-0.239420, 0.081403, 10.143028, 0},
- {-0.237026, 0.076614, 10.137043, 0},
- {-0.240617, 0.077812, 10.149014, 0},
- {-0.270545, 0.071826, 10.131058, 0},
- {-0.262165, 0.068235, 10.122678, 0},
- {-0.259771, 0.067038, 10.114298, 0},
- {-0.246603, 0.082600, 10.121481, 0},
- {-0.254982, 0.076614, 10.127466, 0},
- {-0.244208, 0.063446, 10.122678, 0},
- {-0.246603, 0.074220, 10.121481, 0},
- {-0.253785, 0.086191, 10.127466, 0},
- {-0.253785, 0.079009, 10.131058, 0},
- {-0.245406, 0.071826, 10.132255, 0},
- {-0.248997, 0.074220, 10.132255, 0},
- {-0.260968, 0.055067, 10.121481, 0},
- {-0.243011, 0.070629, 10.122678, 0},
- {-0.252588, 0.070629, 10.132255, 0},
- {-0.243011, 0.077812, 10.143028, 0},
- {-0.246603, 0.077812, 10.132255, 0},
- {-0.253785, 0.082600, 10.131058, 0},
- {-0.256179, 0.068235, 10.137043, 0},
- {-0.243011, 0.088585, 10.121481, 0},
- {-0.239420, 0.065841, 10.133451, 0},
- {-0.252588, 0.063446, 10.122678, 0},
- {-0.252588, 0.082600, 10.141831, 0},
- {-0.238223, 0.083797, 10.122678, 0},
- {-0.251391, 0.076614, 10.140635, 0},
- {-0.265756, 0.081403, 10.135846, 0},
- {-0.252588, 0.076614, 10.141831, 0},
- {-0.246603, 0.079009, 10.131058, 0},
- {-0.250194, 0.077812, 10.126269, 0},
- {-0.240617, 0.079009, 10.146620, 0},
- {-0.247800, 0.089783, 10.132255, 0},
- {-0.259771, 0.089783, 10.111904, 0},
- {-0.266953, 0.084994, 10.141831, 0},
- {-0.244208, 0.087388, 10.147817, 0},
- {-0.235829, 0.067038, 10.127466, 0},
- {-0.245406, 0.069432, 10.129861, 0},
- {-0.250194, 0.083797, 10.108313, 0},
- {-0.240617, 0.084994, 10.146620, 0},
- {-0.256179, 0.077812, 10.121481, 0},
- {-0.250194, 0.076614, 10.151408, 0},
- {-0.248997, 0.073023, 10.128663, 0},
- {-0.252588, 0.068235, 10.140635, 0},
- {-0.252588, 0.074220, 10.147817, 0},
- {-0.253785, 0.083797, 10.139438, 0},
- {-0.243011, 0.069432, 10.114298, 0},
- {-0.235829, 0.059855, 10.122678, 0},
- {-0.253785, 0.076614, 10.145423, 0},
- {-0.245406, 0.077812, 10.115496, 0},
- {-0.252588, 0.065841, 10.139438, 0},
- {-0.248997, 0.092177, 10.132255, 0},
- {-0.256179, 0.088585, 10.150211, 0},
- {-0.250194, 0.082600, 10.134649, 0},
- {-0.244208, 0.069432, 10.137043, 0},
- {-0.254982, 0.076614, 10.127466, 0},
- {-0.253785, 0.063446, 10.135846, 0},
- {-0.258574, 0.080206, 10.145423, 0},
- {-0.232237, 0.074220, 10.126269, 0},
- {-0.241814, 0.080206, 10.131058, 0},
- {-0.240617, 0.075417, 10.116693, 0},
- {-0.253785, 0.068235, 10.132255, 0},
- {-0.241814, 0.083797, 10.139438, 0},
- {-0.245406, 0.084994, 10.129861, 0},
- {-0.245406, 0.079009, 10.165773, 0},
- {-0.238223, 0.079009, 10.101130, 0},
- {-0.247800, 0.081403, 10.138240, 0},
- {-0.244208, 0.070629, 10.126269, 0},
- {-0.253785, 0.082600, 10.149014, 0},
- {-0.235829, 0.079009, 10.115496, 0},
- {-0.239420, 0.070629, 10.114298, 0},
- {-0.251391, 0.086191, 10.128663, 0},
- {-0.241814, 0.075417, 10.119086, 0},
- {-0.241814, 0.074220, 10.165773, 0},
- {-0.233435, 0.075417, 10.101130, 0},
- {-0.254982, 0.087388, 10.135846, 0},
- {-0.232237, 0.074220, 10.129861, 0},
- {-0.233435, 0.076614, 10.123875, 0},
- {-0.258574, 0.093374, 10.137043, 0},
- {-0.243011, 0.074220, 10.137043, 0},
- {-0.244208, 0.083797, 10.145423, 0},
- {-0.252588, 0.087388, 10.137043, 0},
- {-0.251391, 0.077812, 10.120284, 0},
- {-0.235829, 0.067038, 10.117889, 0},
- {-0.240617, 0.075417, 10.125072, 0},
- {-0.253785, 0.086191, 10.127466, 0},
- {-0.256179, 0.080206, 10.126269, 0},
- {-0.254982, 0.071826, 10.132255, 0},
- {-0.235829, 0.074220, 10.128663, 0},
- {-0.252588, 0.079009, 10.117889, 0},
- {-0.245406, 0.081403, 10.123875, 0},
- {-0.246603, 0.073023, 10.127466, 0},
- {-0.252588, 0.063446, 10.159788, 0},
- {-0.247800, 0.079009, 10.147817, 0},
- {-0.258574, 0.079009, 10.131058, 0},
- {-0.269348, 0.075417, 10.134649, 0},
- {-0.248997, 0.083797, 10.107116, 0},
- {-0.244208, 0.081403, 10.139438, 0},
- {-0.259771, 0.070629, 10.133451, 0},
- {-0.257377, 0.063446, 10.128663, 0},
- {-0.254982, 0.071826, 10.121481, 0},
- {-0.252588, 0.088585, 10.137043, 0},
- {-0.251391, 0.083797, 10.135846, 0},
- {-0.253785, 0.086191, 10.134649, 0},
- {-0.252588, 0.073023, 10.115496, 0},
- {-0.254982, 0.075417, 10.145423, 0},
- {-0.250194, 0.076614, 10.137043, 0},
- {-0.248997, 0.070629, 10.135846, 0},
- {-0.259771, 0.073023, 10.137043, 0},
- {-0.245406, 0.088585, 10.120284, 0},
- {-0.254982, 0.074220, 10.151408, 0},
- {-0.252588, 0.074220, 10.103524, 0},
- {-0.258574, 0.070629, 10.146620, 0},
- {-0.251391, 0.080206, 10.121481, 0},
- {-0.241814, 0.070629, 10.131058, 0},
- {-0.246603, 0.071826, 10.116693, 0},
- {-0.248997, 0.067038, 10.135846, 0},
- {-0.251391, 0.070629, 10.132255, 0},
- {-0.250194, 0.081403, 10.132255, 0},
- {-0.254982, 0.074220, 10.134649, 0},
- {-0.243011, 0.081403, 10.131058, 0},
- {-0.237026, 0.089783, 10.128663, 0},
- {-0.243011, 0.077812, 10.125072, 0},
- {-0.244208, 0.074220, 10.131058, 0},
- {-0.243011, 0.086191, 10.121481, 0},
- {-0.250194, 0.079009, 10.135846, 0},
- {-0.247800, 0.061052, 10.132255, 0},
- {-0.258574, 0.063446, 10.122678, 0},
- {-0.245406, 0.076614, 10.114298, 0},
- {-0.238223, 0.082600, 10.101130, 0},
- {-0.264559, 0.057461, 10.119086, 0},
- {-0.248997, 0.077812, 10.126269, 0},
- {-0.237026, 0.094571, 10.127466, 0},
- {-0.256179, 0.071826, 10.116693, 0},
- {-0.248997, 0.080206, 10.135846, 0},
- {-0.259771, 0.067038, 10.128663, 0},
- {-0.246603, 0.074220, 10.134649, 0},
- {-0.244208, 0.083797, 10.131058, 0},
- {-0.233435, 0.075417, 10.129861, 0},
- {-0.241814, 0.074220, 10.128663, 0},
- {-0.238223, 0.080206, 10.105919, 0},
- {-0.241814, 0.084994, 10.131058, 0},
- {-0.254982, 0.076614, 10.129861, 0},
- {-0.258574, 0.079009, 10.117889, 0},
- {-0.251391, 0.069432, 10.135846, 0},
- {-0.243011, 0.082600, 10.135846, 0},
- {-0.243011, 0.073023, 10.121481, 0},
- {-0.250194, 0.074220, 10.140635, 0},
- {-0.251391, 0.069432, 10.119086, 0},
- {-0.258574, 0.074220, 10.117889, 0},
- {-0.260968, 0.069432, 10.138240, 0},
- {-0.260968, 0.080206, 10.133451, 0},
- {-0.238223, 0.080206, 10.140635, 0},
- {-0.248997, 0.075417, 10.103524, 0},
- {-0.259771, 0.069432, 10.144226, 0},
- {-0.252588, 0.076614, 10.095144, 0},
- {-0.254982, 0.068235, 10.146620, 0},
- {-0.256179, 0.079009, 10.143028, 0},
- {-0.246603, 0.090980, 10.139438, 0},
- {-0.251391, 0.079009, 10.131058, 0},
- {-0.253785, 0.077812, 10.119086, 0},
- {-0.256179, 0.076614, 10.157393, 0},
- {-0.246603, 0.067038, 10.121481, 0},
- {-0.237026, 0.081403, 10.159788, 0},
- {-0.250194, 0.082600, 10.125072, 0},
- {-0.248997, 0.077812, 10.117889, 0},
- {-0.237026, 0.074220, 10.121481, 0},
- {-0.237026, 0.062249, 10.138240, 0},
- {-0.247800, 0.070629, 10.126269, 0},
- {-0.245406, 0.073023, 10.138240, 0},
- {-0.245406, 0.065841, 10.134649, 0},
- {-0.240617, 0.083797, 10.137043, 0},
- {-0.244208, 0.063446, 10.137043, 0},
- {-0.260968, 0.080206, 10.123875, 0},
- {-0.245406, 0.083797, 10.137043, 0},
- {-0.237026, 0.068235, 10.122678, 0},
- {-0.250194, 0.070629, 10.137043, 0},
- {-0.248997, 0.073023, 10.128663, 0},
- {-0.239420, 0.073023, 10.127466, 0},
- {-0.256179, 0.069432, 10.123875, 0},
- {-0.244208, 0.064643, 10.141831, 0},
- {-0.246603, 0.062249, 10.114298, 0},
- {-0.260968, 0.076614, 10.108313, 0},
- {-0.257377, 0.069432, 10.135846, 0},
- {-0.265756, 0.074220, 10.123875, 0},
- {-0.254982, 0.065841, 10.145423, 0},
- {-0.248997, 0.070629, 10.123875, 0},
- {-0.241814, 0.079009, 10.137043, 0},
- {-0.251391, 0.095768, 10.141831, 0},
- {-0.244208, 0.071826, 10.111904, 0},
- {-0.243011, 0.075417, 10.132255, 0},
- {-0.246603, 0.090980, 10.131058, 0},
- {-0.252588, 0.071826, 10.135846, 0},
- {-0.248997, 0.065841, 10.120284, 0},
- {-0.248997, 0.082600, 10.116693, 0},
- {-0.263362, 0.075417, 10.138240, 0},
- {-0.247800, 0.061052, 10.129861, 0},
- {-0.250194, 0.059855, 10.132255, 0},
- {-0.251391, 0.069432, 10.152605, 0},
- {-0.247800, 0.068235, 10.129861, 0},
- {-0.240617, 0.062249, 10.138240, 0},
- {-0.264559, 0.070629, 10.120284, 0},
- {-0.253785, 0.071826, 10.151408, 0},
- {-0.246603, 0.074220, 10.125072, 0},
- {-0.256179, 0.070629, 10.160985, 0},
- {-0.247800, 0.061052, 10.131058, 0},
- {-0.246603, 0.070629, 10.125072, 0},
- {-0.258574, 0.086191, 10.135846, 0},
- {-0.253785, 0.077812, 10.120284, 0},
- {-0.235829, 0.074220, 10.133451, 0},
- {-0.239420, 0.083797, 10.122678, 0},
- {-0.258574, 0.071826, 10.139438, 0},
- {-0.259771, 0.084994, 10.110707, 0},
- {-0.243011, 0.077812, 10.131058, 0},
- {-0.240617, 0.077812, 10.134649, 0},
- {-0.244208, 0.059855, 10.128663, 0},
- {-0.239420, 0.068235, 10.122678, 0},
- {-0.258574, 0.076614, 10.119086, 0},
- {-0.258574, 0.075417, 10.147817, 0},
- {-0.248997, 0.062249, 10.117889, 0},
- {-0.248997, 0.076614, 10.135846, 0},
- {-0.241814, 0.076614, 10.109509, 0},
- {-0.257377, 0.068235, 10.144226, 0},
- {-0.264559, 0.064643, 10.096342, 0},
- {-0.241814, 0.068235, 10.139438, 0},
- {-0.250194, 0.088585, 10.114298, 0},
- {-0.259771, 0.079009, 10.159788, 0},
- {-0.247800, 0.071826, 10.138240, 0},
- {-0.245406, 0.073023, 10.117889, 0},
- {-0.246603, 0.070629, 10.137043, 0},
- {-0.248997, 0.069432, 10.108313, 0},
- {-0.254982, 0.077812, 10.144226, 0},
- {-0.254982, 0.088585, 10.108313, 0},
- {-0.245406, 0.082600, 10.135846, 0},
- {-0.245406, 0.095768, 10.125072, 0},
- {-0.232237, 0.083797, 10.133451, 0},
- {-0.243011, 0.069432, 10.089159, 0},
- {-0.237026, 0.082600, 10.152605, 0},
- {-0.241814, 0.065841, 10.116693, 0},
- {-0.262165, 0.067038, 10.138240, 0},
- {-0.262165, 0.081403, 10.150211, 0},
- {-0.257377, 0.079009, 10.109509, 0},
- {-0.257377, 0.084994, 10.131058, 0},
- {-0.238223, 0.090980, 10.107116, 0},
- {-0.231040, 0.093374, 10.151408, 0},
- {-0.250194, 0.069432, 10.108313, 0},
- {-0.244208, 0.067038, 10.166970, 0},
- {-0.244208, 0.074220, 10.105919, 0},
- {-0.247800, 0.076614, 10.145423, 0},
- {-0.237026, 0.071826, 10.122678, 0},
- {-0.244208, 0.070629, 10.127466, 0},
- {-0.243011, 0.074220, 10.119086, 0},
- {-0.246603, 0.073023, 10.121481, 0},
- {-0.245406, 0.084994, 10.129861, 0},
- {-0.237026, 0.082600, 10.128663, 0},
- {-0.229843, 0.074220, 10.127466, 0},
- {-0.250194, 0.076614, 10.116693, 0},
- {-0.240617, 0.074220, 10.138240, 0},
- {-0.240617, 0.074220, 10.117889, 0},
- {-0.245406, 0.075417, 10.126269, 0},
- {-0.241814, 0.077812, 10.129861, 0},
- {-0.251391, 0.081403, 10.139438, 0},
- {-0.227449, 0.075417, 10.127466, 0},
- {-0.239420, 0.079009, 10.119086, 0},
- {-0.238223, 0.087388, 10.120284, 0},
- {-0.243011, 0.057461, 10.122678, 0},
- {-0.250194, 0.056264, 10.145423, 0},
- {-0.233435, 0.075417, 10.119086, 0},
- {-0.237026, 0.061052, 10.137043, 0},
- {-0.240617, 0.084994, 10.123875, 0},
- {-0.245406, 0.088585, 10.151408, 0},
- {-0.234632, 0.081403, 10.128663, 0},
- {-0.240617, 0.086191, 10.123875, 0},
- {-0.237026, 0.080206, 10.119086, 0},
- {-0.234632, 0.067038, 10.134649, 0},
- {-0.241814, 0.070629, 10.138240, 0},
- {-0.248997, 0.065841, 10.134649, 0},
- {-0.238223, 0.081403, 10.143028, 0},
- {-0.243011, 0.079009, 10.121481, 0},
- {-0.240617, 0.079009, 10.128663, 0},
- {-0.251391, 0.069432, 10.131058, 0},
- {-0.244208, 0.063446, 10.138240, 0},
- {-0.240617, 0.058658, 10.117889, 0},
- {-0.239420, 0.081403, 10.145423, 0},
- {-0.245406, 0.080206, 10.114298, 0},
- {-0.240617, 0.075417, 10.127466, 0},
- {-0.243011, 0.077812, 10.127466, 0},
- {-0.250194, 0.065841, 10.119086, 0},
- {-0.232237, 0.064643, 10.120284, 0},
- {-0.239420, 0.065841, 10.131058, 0},
- {-0.251391, 0.071826, 10.143028, 0},
- {-0.246603, 0.080206, 10.125072, 0},
- {-0.238223, 0.075417, 10.123875, 0},
- {-0.245406, 0.081403, 10.132255, 0},
- {-0.241814, 0.083797, 10.117889, 0},
- {-0.251391, 0.070629, 10.135846, 0},
- {-0.262165, 0.075417, 10.120284, 0},
- {-0.251391, 0.086191, 10.145423, 0},
- {-0.239420, 0.087388, 10.131058, 0},
- {-0.246603, 0.077812, 10.126269, 0},
- {-0.246603, 0.073023, 10.135846, 0},
- {-0.264559, 0.079009, 10.120284, 0},
- {-0.264559, 0.074220, 10.125072, 0},
- {-0.229843, 0.067038, 10.127466, 0},
- {-0.231040, 0.077812, 10.131058, 0},
- {-0.245406, 0.075417, 10.128663, 0},
- {-0.240617, 0.071826, 10.116693, 0},
- {-0.234632, 0.081403, 10.128663, 0},
- {-0.228646, 0.063446, 10.132255, 0},
- {-0.227449, 0.057461, 10.139438, 0},
- {-0.251391, 0.075417, 10.120284, 0},
- {-0.231040, 0.092177, 10.122678, 0},
- {-0.240617, 0.077812, 10.137043, 0},
- {-0.252588, 0.075417, 10.132255, 0},
- {-0.248997, 0.077812, 10.120284, 0},
- {-0.248997, 0.080206, 10.117889, 0},
- {-0.252588, 0.063446, 10.113101, 0},
- {-0.247800, 0.069432, 10.133451, 0},
- {-0.246603, 0.092177, 10.108313, 0},
- {-0.240617, 0.088585, 10.134649, 0},
- {-0.239420, 0.076614, 10.125072, 0},
- {-0.248997, 0.070629, 10.128663, 0},
- {-0.243011, 0.073023, 10.128663, 0},
- {-0.243011, 0.084994, 10.115496, 0},
- {-0.243011, 0.087388, 10.141831, 0},
- {-0.237026, 0.070629, 10.144226, 0},
- {-0.247800, 0.081403, 10.113101, 0},
- {-0.234632, 0.096965, 10.133451, 0},
- {-0.258574, 0.069432, 10.132255, 0},
- {-0.258574, 0.077812, 10.116693, 0},
- {-0.243011, 0.079009, 10.135846, 0},
- {-0.253785, 0.082600, 10.102327, 0},
- {-0.240617, 0.075417, 10.144226, 0},
- {-0.247800, 0.074220, 10.123875, 0},
- {-0.256179, 0.079009, 10.120284, 0},
- {-0.254982, 0.077812, 10.141831, 0},
- {-0.257377, 0.076614, 10.143028, 0},
- {-0.250194, 0.086191, 10.137043, 0},
- {-0.238223, 0.081403, 10.116693, 0},
- {-0.238223, 0.084994, 10.139438, 0},
- {-0.247800, 0.080206, 10.126269, 0},
- {-0.263362, 0.074220, 10.131058, 0},
- {-0.260968, 0.077812, 10.123875, 0},
- {-0.238223, 0.059855, 10.128663, 0},
- {-0.245406, 0.062249, 10.134649, 0},
- {-0.257377, 0.080206, 10.131058, 0},
- {-0.244208, 0.083797, 10.131058, 0},
- {-0.232237, 0.080206, 10.134649, 0},
- {-0.244208, 0.076614, 10.119086, 0},
- {-0.241814, 0.073023, 10.141831, 0},
- {-0.257377, 0.067038, 10.138240, 0},
- {-0.241814, 0.086191, 10.133451, 0},
- {-0.246603, 0.079009, 10.133451, 0},
- {-0.248997, 0.067038, 10.125072, 0},
- {-0.239420, 0.082600, 10.122678, 0},
- {-0.244208, 0.084994, 10.129861, 0},
- {-0.233435, 0.073023, 10.147817, 0},
- {-0.250194, 0.069432, 10.133451, 0},
- {-0.254982, 0.070629, 10.146620, 0},
- {-0.231040, 0.083797, 10.117889, 0},
- {-0.245406, 0.081403, 10.119086, 0},
- {-0.256179, 0.093374, 10.131058, 0},
- {-0.241814, 0.084994, 10.138240, 0},
- {-0.252588, 0.073023, 10.137043, 0},
- {-0.251391, 0.081403, 10.126269, 0},
- {-0.235829, 0.069432, 10.137043, 0},
- {-0.247800, 0.080206, 10.132255, 0},
- {-0.238223, 0.064643, 10.144226, 0},
- {-0.234632, 0.076614, 10.127466, 0},
- {-0.245406, 0.069432, 10.137043, 0},
- {-0.241814, 0.082600, 10.116693, 0},
- {-0.233435, 0.101754, 10.132255, 0},
- {-0.240617, 0.086191, 10.132255, 0},
- {-0.235829, 0.081403, 10.120284, 0},
- {-0.239420, 0.076614, 10.128663, 0},
- {-0.251391, 0.079009, 10.117889, 0},
- {-0.256179, 0.081403, 10.149014, 0},
- {-0.238223, 0.079009, 10.105919, 0},
- {-0.234632, 0.079009, 10.125072, 0},
- {-0.254982, 0.071826, 10.115496, 0},
- {-0.263362, 0.082600, 10.151408, 0},
- {-0.243011, 0.075417, 10.109509, 0},
- {-0.222661, 0.073023, 10.129861, 0},
- {-0.246603, 0.074220, 10.133451, 0},
- {-0.248997, 0.086191, 10.129861, 0},
- {-0.252588, 0.086191, 10.149014, 0},
- {-0.238223, 0.071826, 10.104721, 0},
- {-0.237026, 0.071826, 10.135846, 0},
- {-0.243011, 0.086191, 10.111904, 0},
- {-0.244208, 0.093374, 10.141831, 0},
- {-0.253785, 0.063446, 10.123875, 0},
- {-0.244208, 0.083797, 10.134649, 0},
- {-0.244208, 0.090980, 10.128663, 0},
- {-0.258574, 0.065841, 10.134649, 0},
- {-0.256179, 0.070629, 10.128663, 0},
- {-0.243011, 0.071826, 10.137043, 0},
- {-0.225055, 0.074220, 10.134649, 0},
- {-0.245406, 0.069432, 10.116693, 0},
- {-0.237026, 0.077812, 10.133451, 0},
- {-0.245406, 0.073023, 10.104721, 0},
- {-0.253785, 0.081403, 10.159788, 0},
- {-0.245406, 0.086191, 10.113101, 0},
- {-0.243011, 0.081403, 10.126269, 0},
- {-0.241814, 0.065841, 10.108313, 0},
- {-0.240617, 0.057461, 10.131058, 0},
- {-0.241814, 0.065841, 10.144226, 0},
- {-0.237026, 0.073023, 10.128663, 0},
- {-0.250194, 0.090980, 10.145423, 0},
- {-0.254982, 0.070629, 10.119086, 0},
- {-0.244208, 0.063446, 10.131058, 0},
- {-0.235829, 0.077812, 10.121481, 0},
- {-0.248997, 0.076614, 10.137043, 0},
- {-0.262165, 0.076614, 10.123875, 0},
- {-0.250194, 0.064643, 10.119086, 0},
- {-0.239420, 0.077812, 10.116693, 0},
- {-0.245406, 0.080206, 10.128663, 0},
- {-0.243011, 0.084994, 10.123875, 0},
- {-0.244208, 0.077812, 10.125072, 0},
- {-0.237026, 0.089783, 10.122678, 0},
- {-0.235829, 0.065841, 10.137043, 0},
- {-0.245406, 0.065841, 10.150211, 0},
- {-0.252588, 0.074220, 10.111904, 0},
- {-0.241814, 0.068235, 10.146620, 0},
- {-0.229843, 0.069432, 10.120284, 0},
- {-0.240617, 0.079009, 10.131058, 0},
- {-0.240617, 0.084994, 10.095144, 0},
- {-0.239420, 0.067038, 10.133451, 0},
- {-0.247800, 0.083797, 10.128663, 0},
- {-0.252588, 0.075417, 10.135846, 0},
- {-0.252588, 0.068235, 10.131058, 0},
- {-0.243011, 0.087388, 10.102327, 0},
- {-0.247800, 0.088585, 10.132255, 0},
- {-0.243011, 0.086191, 10.127466, 0},
- {-0.229843, 0.080206, 10.123875, 0},
- {-0.245406, 0.073023, 10.134649, 0},
- {-0.233435, 0.081403, 10.132255, 0},
- {-0.245406, 0.082600, 10.126269, 0},
- {-0.233435, 0.073023, 10.137043, 0},
- {-0.235829, 0.070629, 10.140635, 0},
- {-0.241814, 0.076614, 10.121481, 0},
- {-0.244208, 0.069432, 10.123875, 0},
- {-0.252588, 0.075417, 10.140635, 0},
- {-0.253785, 0.080206, 10.133451, 0},
- {-0.237026, 0.075417, 10.121481, 0},
- {-0.227449, 0.065841, 10.129861, 0},
- {-0.245406, 0.077812, 10.131058, 0},
- {-0.229843, 0.094571, 10.129861, 0},
- {-0.237026, 0.068235, 10.105919, 0},
- {-0.260968, 0.073023, 10.120284, 0},
- {-0.241814, 0.076614, 10.131058, 0},
- {-0.250194, 0.077812, 10.126269, 0},
- {-0.254982, 0.068235, 10.135846, 0},
- {-0.240617, 0.071826, 10.108313, 0},
- {-0.258574, 0.083797, 10.125072, 0},
- {-0.254982, 0.081403, 10.132255, 0},
- {-0.251391, 0.079009, 10.135846, 0},
- {-0.245406, 0.069432, 10.121481, 0},
- {-0.232237, 0.069432, 10.122678, 0},
- {-0.234632, 0.083797, 10.131058, 0},
- {-0.234632, 0.089783, 10.129861, 0},
- {-0.238223, 0.079009, 10.127466, 0},
- {-0.246603, 0.083797, 10.121481, 0},
- {-0.247800, 0.074220, 10.121481, 0},
- {-0.247800, 0.075417, 10.117889, 0},
- {-0.235829, 0.065841, 10.129861, 0},
- {-0.241814, 0.075417, 10.111904, 0},
- {-0.239420, 0.081403, 10.129861, 0},
- {-0.247800, 0.087388, 10.128663, 0},
- {-0.243011, 0.079009, 10.126269, 0},
- {-0.245406, 0.067038, 10.137043, 0},
- {-0.257377, 0.059855, 10.122678, 0},
- {-0.250194, 0.068235, 10.147817, 0},
- {-0.243011, 0.074220, 10.129861, 0},
- {-0.237026, 0.086191, 10.129861, 0},
- {-0.246603, 0.107739, 10.131058, 0},
- {-0.241814, 0.082600, 10.141831, 0},
- {-0.245406, 0.064643, 10.119086, 0},
- {-0.258574, 0.075417, 10.129861, 0},
- {-0.237026, 0.071826, 10.123875, 0},
- {-0.243011, 0.075417, 10.101130, 0},
- {-0.253785, 0.083797, 10.125072, 0},
- {-0.241814, 0.081403, 10.119086, 0},
- {-0.234632, 0.089783, 10.137043, 0},
- {-0.245406, 0.070629, 10.132255, 0},
- {-0.251391, 0.067038, 10.131058, 0},
- {-0.250194, 0.069432, 10.139438, 0},
- {-0.237026, 0.086191, 10.123875, 0},
- {-0.235829, 0.086191, 10.147817, 0},
- {-0.248997, 0.074220, 10.123875, 0},
- {-0.251391, 0.079009, 10.114298, 0},
- {-0.246603, 0.081403, 10.122678, 0},
- {-0.235829, 0.079009, 10.119086, 0},
- {-0.240617, 0.087388, 10.127466, 0},
- {-0.239420, 0.077812, 10.133451, 0},
- {-0.247800, 0.087388, 10.108313, 0},
- {-0.245406, 0.087388, 10.111904, 0},
- {-0.237026, 0.073023, 10.147817, 0},
- {-0.241814, 0.079009, 10.135846, 0},
- {-0.241814, 0.074220, 10.121481, 0},
- {-0.258574, 0.063446, 10.146620, 0},
- {-0.243011, 0.079009, 10.123875, 0},
- {-0.225055, 0.073023, 10.122678, 0},
- {-0.234632, 0.075417, 10.119086, 0},
- {-0.246603, 0.068235, 10.134649, 0},
- {-0.235829, 0.071826, 10.141831, 0},
- {-0.234632, 0.069432, 10.137043, 0},
- {-0.244208, 0.064643, 10.126269, 0},
- {-0.239420, 0.068235, 10.125072, 0},
- {-0.246603, 0.087388, 10.131058, 0},
- {-0.241814, 0.071826, 10.128663, 0},
- {-0.241814, 0.083797, 10.140635, 0},
- {-0.252588, 0.070629, 10.119086, 0},
- {-0.243011, 0.070629, 10.117889, 0},
- {-0.265756, 0.077812, 10.125072, 0},
- {-0.248997, 0.083797, 10.129861, 0},
- {-0.248997, 0.082600, 10.122678, 0},
- {-0.247800, 0.083797, 10.133451, 0},
- {-0.260968, 0.086191, 10.141831, 0},
- {-0.244208, 0.075417, 10.132255, 0},
- {-0.232237, 0.080206, 10.135846, 0},
- {-0.244208, 0.077812, 10.131058, 0},
- {-0.239420, 0.077812, 10.143028, 0},
- {-0.238223, 0.077812, 10.127466, 0},
- {-0.235829, 0.089783, 10.140635, 0},
- {-0.239420, 0.070629, 10.111904, 0},
- {-0.253785, 0.064643, 10.129861, 0},
- {-0.250194, 0.065841, 10.127466, 0},
- {-0.251391, 0.073023, 10.110707, 0},
- {-0.240617, 0.069432, 10.098736, 0},
- {-0.246603, 0.074220, 10.122678, 0},
- {-0.243011, 0.077812, 10.141831, 0},
- {-0.243011, 0.074220, 10.131058, 0},
- {-0.247800, 0.081403, 10.125072, 0},
- {-0.256179, 0.057461, 10.134649, 0},
- {-0.243011, 0.068235, 10.144226, 0},
- {-0.228646, 0.095768, 10.125072, 0},
- {-0.250194, 0.083797, 10.135846, 0},
- {-0.246603, 0.062249, 10.122678, 0},
- {-0.245406, 0.073023, 10.119086, 0},
- {-0.246603, 0.081403, 10.122678, 0},
- {-0.246603, 0.080206, 10.129861, 0},
- {-0.231040, 0.067038, 10.116693, 0},
- {-0.228646, 0.074220, 10.129861, 0},
- {-0.235829, 0.073023, 10.134649, 0},
- {-0.246603, 0.093374, 10.123875, 0},
- {-0.252588, 0.080206, 10.127466, 0},
- {-0.233435, 0.061052, 10.133451, 0},
- {-0.243011, 0.070629, 10.137043, 0},
- {-0.250194, 0.077812, 10.108313, 0},
- {-0.235829, 0.083797, 10.121481, 0},
- {-0.247800, 0.081403, 10.141831, 0},
- {-0.252588, 0.081403, 10.131058, 0},
- {-0.243011, 0.080206, 10.126269, 0},
- {-0.235829, 0.070629, 10.109509, 0},
- {-0.237026, 0.073023, 10.135846, 0},
- {-0.237026, 0.074220, 10.123875, 0},
- {-0.253785, 0.089783, 10.117889, 0},
- {-0.248997, 0.087388, 10.123875, 0},
- {-0.228646, 0.073023, 10.128663, 0},
- {-0.233435, 0.073023, 10.137043, 0},
- {-0.247800, 0.080206, 10.123875, 0},
- {-0.254982, 0.074220, 10.132255, 0},
- {-0.234632, 0.081403, 10.113101, 0},
- {-0.241814, 0.074220, 10.149014, 0},
- {-0.244208, 0.064643, 10.119086, 0},
- {-0.235829, 0.069432, 10.121481, 0},
- {-0.237026, 0.071826, 10.123875, 0},
- {-0.241814, 0.065841, 10.134649, 0},
- {-0.237026, 0.065841, 10.153803, 0},
- {-0.239420, 0.077812, 10.135846, 0},
- {-0.244208, 0.073023, 10.125072, 0},
- {-0.246603, 0.065841, 10.117889, 0},
- {-0.237026, 0.073023, 10.129861, 0},
- {-0.254982, 0.080206, 10.111904, 0},
- {-0.241814, 0.076614, 10.140635, 0},
- {-0.243011, 0.057461, 10.123875, 0},
- {-0.241814, 0.081403, 10.139438, 0},
- {-0.246603, 0.070629, 10.131058, 0},
- {-0.251391, 0.075417, 10.147817, 0},
- {-0.251391, 0.070629, 10.120284, 0},
- {-0.234632, 0.086191, 10.137043, 0},
- {-0.235829, 0.079009, 10.119086, 0},
- {-0.235829, 0.086191, 10.119086, 0},
- {-0.234632, 0.069432, 10.121481, 0},
- {-0.246603, 0.069432, 10.126269, 0},
- {-0.245406, 0.083797, 10.145423, 0},
- {-0.245406, 0.077812, 10.116693, 0},
- {-0.240617, 0.079009, 10.144226, 0},
- {-0.237026, 0.073023, 10.134649, 0},
- {-0.238223, 0.077812, 10.140635, 0},
- {-0.227449, 0.082600, 10.127466, 0},
- {-0.233435, 0.092177, 10.122678, 0},
- {-0.246603, 0.083797, 10.140635, 0},
- {-0.229843, 0.065841, 10.134649, 0},
- {-0.227449, 0.080206, 10.138240, 0},
- {-0.243011, 0.077812, 10.138240, 0},
- {-0.240617, 0.076614, 10.119086, 0},
- {-0.241814, 0.073023, 10.125072, 0},
- {-0.240617, 0.071826, 10.123875, 0},
- {-0.250194, 0.079009, 10.117889, 0},
- {-0.243011, 0.080206, 10.145423, 0},
- {-0.252588, 0.081403, 10.119086, 0},
- {-0.240617, 0.068235, 10.132255, 0},
- {-0.244208, 0.065841, 10.114298, 0},
- {-0.235829, 0.073023, 10.125072, 0},
- {-0.248997, 0.076614, 10.117889, 0},
- {-0.250194, 0.059855, 10.121481, 0},
- {-0.239420, 0.095768, 10.147817, 0},
- {-0.262165, 0.081403, 10.116693, 0},
- {-0.253785, 0.065841, 10.149014, 0},
- {-0.244208, 0.067038, 10.115496, 0},
- {-0.238223, 0.074220, 10.122678, 0},
- {-0.235829, 0.075417, 10.149014, 0},
- {-0.243011, 0.062249, 10.144226, 0},
- {-0.244208, 0.073023, 10.123875, 0},
- {-0.239420, 0.084994, 10.132255, 0},
- {-0.238223, 0.074220, 10.120284, 0},
- {-0.256179, 0.063446, 10.137043, 0},
- {-0.243011, 0.061052, 10.117889, 0},
- {-0.235829, 0.064643, 10.119086, 0},
- {-0.235829, 0.079009, 10.133451, 0},
- {-0.237026, 0.082600, 10.119086, 0},
- {-0.238223, 0.079009, 10.139438, 0},
- {-0.247800, 0.065841, 10.117889, 0},
- {-0.243011, 0.069432, 10.158591, 0},
- {-0.246603, 0.080206, 10.122678, 0},
- {-0.256179, 0.083797, 10.141831, 0},
- {-0.235829, 0.092177, 10.108313, 0},
- {-0.237026, 0.061052, 10.132255, 0},
- {-0.237026, 0.058658, 10.156197, 0},
- {-0.244208, 0.059855, 10.117889, 0},
- {-0.237026, 0.087388, 10.144226, 0},
- {-0.257377, 0.094571, 10.110707, 0},
- {-0.256179, 0.080206, 10.132255, 0},
- {-0.243011, 0.089783, 10.133451, 0},
- {-0.238223, 0.080206, 10.133451, 0},
- {-0.240617, 0.067038, 10.114298, 0},
- {-0.246603, 0.064643, 10.133451, 0},
- {-0.245406, 0.075417, 10.128663, 0},
- {-0.240617, 0.071826, 10.122678, 0},
- {-0.229843, 0.068235, 10.126269, 0},
- {-0.240617, 0.081403, 10.123875, 0},
- {-0.244208, 0.079009, 10.138240, 0},
- {-0.237026, 0.065841, 10.145423, 0},
- {-0.239420, 0.069432, 10.133451, 0},
- {-0.253785, 0.076614, 10.127466, 0},
- {-0.256179, 0.082600, 10.125072, 0},
- {-0.232237, 0.081403, 10.113101, 0},
- {-0.239420, 0.065841, 10.139438, 0},
- {-0.241814, 0.084994, 10.128663, 0},
- {-0.252588, 0.071826, 10.122678, 0},
- {-0.243011, 0.067038, 10.157393, 0},
- {-0.251391, 0.081403, 10.134649, 0},
- {-0.251391, 0.083797, 10.127466, 0},
- {-0.265756, 0.074220, 10.115496, 0},
- {-0.245406, 0.062249, 10.150211, 0},
- {-0.241814, 0.070629, 10.117889, 0},
- {-0.257377, 0.083797, 10.120284, 0},
- {-0.239420, 0.081403, 10.121481, 0},
- {-0.247800, 0.068235, 10.135846, 0},
- {-0.243011, 0.071826, 10.129861, 0},
- {-0.235829, 0.082600, 10.128663, 0},
- {-0.247800, 0.073023, 10.145423, 0},
- {-0.258574, 0.065841, 10.123875, 0},
- {-0.233435, 0.069432, 10.122678, 0},
- {-0.245406, 0.076614, 10.120284, 0},
- {-0.247800, 0.089783, 10.131058, 0},
- {-0.244208, 0.090980, 10.114298, 0},
- {-0.247800, 0.089783, 10.143028, 0},
- {-0.229843, 0.073023, 10.119086, 0},
- {-0.240617, 0.082600, 10.134649, 0},
- {-0.244208, 0.095768, 10.125072, 0},
- {-0.241814, 0.083797, 10.145423, 0},
- {-0.250194, 0.068235, 10.139438, 0},
- {-0.248997, 0.075417, 10.113101, 0},
- {-0.250194, 0.076614, 10.128663, 0},
- {-0.247800, 0.081403, 10.114298, 0},
- {-0.247800, 0.075417, 10.123875, 0},
- {-0.248997, 0.095768, 10.145423, 0},
- {-0.245406, 0.088585, 10.143028, 0},
- {-0.238223, 0.084994, 10.113101, 0},
- {-0.240617, 0.071826, 10.126269, 0},
- {-0.240617, 0.067038, 10.140635, 0},
- {-0.245406, 0.071826, 10.138240, 0},
- {-0.254982, 0.073023, 10.128663, 0},
- {-0.245406, 0.077812, 10.145423, 0},
- {-0.250194, 0.070629, 10.127466, 0},
- {-0.243011, 0.073023, 10.137043, 0},
- {-0.245406, 0.067038, 10.117889, 0},
- {-0.243011, 0.071826, 10.151408, 0},
- {-0.252588, 0.081403, 10.128663, 0},
- {-0.233435, 0.074220, 10.110707, 0},
- {-0.243011, 0.074220, 10.126269, 0},
- {-0.239420, 0.089783, 10.143028, 0},
- {-0.237026, 0.086191, 10.123875, 0},
- {-0.243011, 0.064643, 10.129861, 0},
- {-0.234632, 0.077812, 10.133451, 0},
- {-0.250194, 0.086191, 10.133451, 0},
- {-0.241814, 0.074220, 10.125072, 0},
- {-0.243011, 0.086191, 10.122678, 0},
- {-0.234632, 0.076614, 10.121481, 0},
- {-0.251391, 0.082600, 10.135846, 0},
- {-0.251391, 0.084994, 10.133451, 0},
- {-0.245406, 0.063446, 10.117889, 0},
- {-0.253785, 0.079009, 10.122678, 0},
- {-0.243011, 0.074220, 10.129861, 0},
- {-0.233435, 0.069432, 10.127466, 0},
- {-0.251391, 0.077812, 10.126269, 0},
- {-0.245406, 0.079009, 10.120284, 0},
- {-0.247800, 0.068235, 10.128663, 0},
- {-0.244208, 0.069432, 10.133451, 0},
- {-0.238223, 0.074220, 10.146620, 0},
- {-0.241814, 0.080206, 10.120284, 0},
- {-0.248997, 0.071826, 10.107116, 0},
- {-0.240617, 0.073023, 10.123875, 0},
- {-0.239420, 0.063446, 10.135846, 0},
- {-0.245406, 0.068235, 10.117889, 0},
- {-0.248997, 0.088585, 10.105919, 0},
- {-0.248997, 0.067038, 10.138240, 0},
- {-0.247800, 0.074220, 10.128663, 0},
- {-0.237026, 0.079009, 10.138240, 0},
- {-0.243011, 0.092177, 10.140635, 0},
- {-0.235829, 0.082600, 10.128663, 0},
- {-0.240617, 0.079009, 10.116693, 0},
- {-0.248997, 0.087388, 10.114298, 0},
- {-0.238223, 0.079009, 10.120284, 0},
- {-0.241814, 0.087388, 10.128663, 0},
- {-0.250194, 0.063446, 10.129861, 0},
- {-0.245406, 0.071826, 10.128663, 0},
- {-0.251391, 0.073023, 10.123875, 0},
- {-0.258574, 0.084994, 10.137043, 0},
- {-0.246603, 0.077812, 10.140635, 0},
- {-0.244208, 0.070629, 10.111904, 0},
- {-0.252588, 0.075417, 10.143028, 0},
- {-0.248997, 0.069432, 10.117889, 0},
- {-0.243011, 0.073023, 10.129861, 0},
- {-0.238223, 0.079009, 10.143028, 0},
- {-0.238223, 0.080206, 10.114298, 0},
- {-0.241814, 0.074220, 10.132255, 0},
- {-0.240617, 0.065841, 10.132255, 0},
- {-0.247800, 0.069432, 10.134649, 0},
- {-0.251391, 0.075417, 10.132255, 0},
- {-0.238223, 0.086191, 10.115496, 0},
- {-0.245406, 0.076614, 10.139438, 0},
- {-0.240617, 0.073023, 10.123875, 0},
- {-0.238223, 0.071826, 10.137043, 0},
- {-0.245406, 0.076614, 10.135846, 0},
- {-0.251391, 0.081403, 10.133451, 0},
- {-0.251391, 0.086191, 10.134649, 0},
- {-0.248997, 0.079009, 10.115496, 0},
- {-0.256179, 0.067038, 10.133451, 0},
- {-0.246603, 0.068235, 10.121481, 0},
- {-0.244208, 0.082600, 10.135846, 0},
- {-0.250194, 0.079009, 10.122678, 0},
- {-0.252588, 0.079009, 10.120284, 0},
- {-0.243011, 0.083797, 10.127466, 0},
- {-0.243011, 0.071826, 10.119086, 0},
- {-0.251391, 0.081403, 10.128663, 0},
- {-0.252588, 0.065841, 10.122678, 0},
- {-0.240617, 0.079009, 10.131058, 0},
- {-0.253785, 0.082600, 10.121481, 0},
- {-0.256179, 0.071826, 10.140635, 0},
- {-0.263362, 0.070629, 10.123875, 0},
- {-0.248997, 0.074220, 10.123875, 0},
- {-0.235829, 0.064643, 10.125072, 0},
- {-0.238223, 0.082600, 10.125072, 0},
- {-0.238223, 0.077812, 10.108313, 0},
- {-0.231040, 0.071826, 10.117889, 0},
- {-0.250194, 0.093374, 10.122678, 0},
- {-0.241814, 0.080206, 10.123875, 0},
- {-0.258574, 0.073023, 10.117889, 0},
- {-0.248997, 0.071826, 10.127466, 0},
- {-0.246603, 0.067038, 10.146620, 0},
- {-0.248997, 0.074220, 10.126269, 0},
- {-0.248997, 0.071826, 10.133451, 0},
- {-0.247800, 0.080206, 10.133451, 0},
- {-0.239420, 0.076614, 10.138240, 0},
- {-0.248997, 0.081403, 10.127466, 0},
- {-0.248997, 0.076614, 10.137043, 0},
- {-0.248997, 0.080206, 10.123875, 0},
- {-0.239420, 0.067038, 10.141831, 0},
- {-0.235829, 0.083797, 10.119086, 0},
- {-0.247800, 0.069432, 10.134649, 0},
- {-0.237026, 0.087388, 10.137043, 0},
- {-0.246603, 0.073023, 10.131058, 0},
- {-0.251391, 0.083797, 10.135846, 0},
- {-0.247800, 0.071826, 10.121481, 0},
- {-0.246603, 0.076614, 10.128663, 0},
- {-0.251391, 0.082600, 10.114298, 0},
- {-0.254982, 0.082600, 10.134649, 0},
- {-0.237026, 0.084994, 10.117889, 0},
- {-0.229843, 0.077812, 10.119086, 0},
- {-0.246603, 0.070629, 10.125072, 0},
- {-0.235829, 0.076614, 10.140635, 0},
- {-0.245406, 0.061052, 10.122678, 0},
- {-0.240617, 0.076614, 10.119086, 0},
- {-0.259771, 0.088585, 10.126269, 0},
- {-0.241814, 0.077812, 10.139438, 0},
- {-0.244208, 0.075417, 10.116693, 0},
- {-0.239420, 0.067038, 10.109509, 0},
- {-0.241814, 0.083797, 10.134649, 0},
- {-0.244208, 0.067038, 10.125072, 0},
- {-0.244208, 0.073023, 10.149014, 0},
- {-0.243011, 0.084994, 10.116693, 0},
- {-0.231040, 0.076614, 10.123875, 0},
- {-0.247800, 0.089783, 10.120284, 0},
- {-0.246603, 0.077812, 10.122678, 0},
- {-0.262165, 0.077812, 10.120284, 0},
- {-0.231040, 0.070629, 10.115496, 0},
- {-0.243011, 0.077812, 10.149014, 0},
- {-0.248997, 0.090980, 10.119086, 0},
- {-0.250194, 0.090980, 10.132255, 0},
- {-0.238223, 0.074220, 10.120284, 0},
- {-0.228646, 0.080206, 10.140635, 0},
- {-0.245406, 0.075417, 10.113101, 0},
- {-0.233435, 0.089783, 10.131058, 0},
- {-0.244208, 0.081403, 10.117889, 0},
- {-0.246603, 0.063446, 10.141831, 0},
- {-0.235829, 0.090980, 10.143028, 0},
- {-0.233435, 0.081403, 10.125072, 0},
- {-0.251391, 0.077812, 10.127466, 0},
- {-0.238223, 0.081403, 10.125072, 0},
- {-0.235829, 0.074220, 10.132255, 0},
- {-0.244208, 0.064643, 10.119086, 0},
- {-0.256179, 0.071826, 10.143028, 0},
- {-0.240617, 0.082600, 10.110707, 0},
- {-0.248997, 0.071826, 10.137043, 0},
- {-0.251391, 0.076614, 10.125072, 0},
- {-0.228646, 0.082600, 10.134649, 0},
- {-0.233435, 0.082600, 10.111904, 0},
- {-0.246603, 0.068235, 10.119086, 0},
- {-0.235829, 0.067038, 10.143028, 0},
- {-0.241814, 0.079009, 10.126269, 0},
- {-0.238223, 0.095768, 10.125072, 0},
- {-0.243011, 0.065841, 10.105919, 0},
- {-0.256179, 0.081403, 10.132255, 0},
- {-0.256179, 0.073023, 10.110707, 0},
- {-0.246603, 0.079009, 10.145423, 0},
- {-0.231040, 0.069432, 10.122678, 0},
- {-0.234632, 0.065841, 10.139438, 0},
- {-0.232237, 0.094571, 10.126269, 0},
- {-0.243011, 0.081403, 10.149014, 0},
- {-0.256179, 0.083797, 10.132255, 0},
- {-0.246603, 0.073023, 10.127466, 0},
- {-0.244208, 0.067038, 10.131058, 0},
- {-0.244208, 0.082600, 10.133451, 0},
- {-0.239420, 0.088585, 10.137043, 0},
- {-0.234632, 0.069432, 10.123875, 0},
- {-0.241814, 0.069432, 10.137043, 0},
- {-0.241814, 0.083797, 10.120284, 0},
- {-0.243011, 0.075417, 10.134649, 0},
- {-0.250194, 0.075417, 10.132255, 0},
- {-0.240617, 0.076614, 10.126269, 0},
- {-0.265756, 0.083797, 10.137043, 0},
- {-0.258574, 0.079009, 10.116693, 0},
- {-0.237026, 0.069432, 10.122678, 0},
- {-0.248997, 0.073023, 10.121481, 0},
- {-0.256179, 0.080206, 10.123875, 0},
- {-0.248997, 0.067038, 10.122678, 0},
- {-0.237026, 0.083797, 10.143028, 0},
- {-0.238223, 0.080206, 10.114298, 0},
- {-0.253785, 0.074220, 10.129861, 0},
- {-0.250194, 0.075417, 10.129861, 0},
- {-0.254982, 0.081403, 10.151408, 0},
- {-0.250194, 0.070629, 10.135846, 0},
- {-0.247800, 0.075417, 10.120284, 0},
- {-0.241814, 0.064643, 10.139438, 0},
- {-0.246603, 0.071826, 10.138240, 0},
- {-0.243011, 0.079009, 10.152605, 0},
- {-0.241814, 0.080206, 10.127466, 0},
- {-0.251391, 0.070629, 10.129861, 0},
- {-0.243011, 0.081403, 10.139438, 0},
- {-0.251391, 0.070629, 10.129861, 0},
- {-0.251391, 0.076614, 10.122678, 0},
- {-0.252588, 0.079009, 10.133451, 0},
- {-0.254982, 0.073023, 10.128663, 0},
- {-0.232237, 0.067038, 10.113101, 0},
- {-0.239420, 0.088585, 10.120284, 0},
- {-0.245406, 0.080206, 10.113101, 0},
- {-0.238223, 0.075417, 10.131058, 0},
- {-0.244208, 0.065841, 10.109509, 0},
- {-0.235829, 0.068235, 10.141831, 0},
- {-0.251391, 0.081403, 10.121481, 0},
- {-0.250194, 0.077812, 10.119086, 0},
- {-0.241814, 0.071826, 10.126269, 0},
- {-0.233435, 0.069432, 10.135846, 0},
- {-0.239420, 0.076614, 10.131058, 0},
- {-0.239420, 0.088585, 10.107116, 0},
- {-0.234632, 0.084994, 10.126269, 0},
- {-0.247800, 0.077812, 10.128663, 0},
- {-0.246603, 0.083797, 10.137043, 0},
- {-0.240617, 0.087388, 10.127466, 0},
- {-0.256179, 0.070629, 10.117889, 0},
- {-0.243011, 0.077812, 10.121481, 0},
- {-0.243011, 0.083797, 10.133451, 0},
- {-0.252588, 0.087388, 10.125072, 0},
- {-0.256179, 0.073023, 10.127466, 0},
- {-0.239420, 0.057461, 10.128663, 0},
- {-0.243011, 0.070629, 10.117889, 0},
- {-0.252588, 0.074220, 10.138240, 0},
- {-0.243011, 0.073023, 10.127466, 0},
- {-0.238223, 0.082600, 10.133451, 0},
- {-0.235829, 0.074220, 10.143028, 0},
- {-0.248997, 0.065841, 10.153803, 0},
- {-0.240617, 0.081403, 10.107116, 0},
- {-0.241814, 0.087388, 10.123875, 0},
- {-0.241814, 0.070629, 10.141831, 0},
- {-0.238223, 0.074220, 10.113101, 0},
- {-0.251391, 0.079009, 10.129861, 0},
- {-0.253785, 0.082600, 10.108313, 0},
- {-0.254982, 0.075417, 10.121481, 0},
- {-0.247800, 0.057461, 10.133451, 0},
- {-0.243011, 0.058658, 10.128663, 0},
- {-0.244208, 0.080206, 10.120284, 0},
- {-0.231040, 0.079009, 10.109509, 0},
- {-0.256179, 0.070629, 10.120284, 0},
- {-0.251391, 0.082600, 10.143028, 0},
- {-0.233435, 0.068235, 10.128663, 0},
- {-0.241814, 0.068235, 10.129861, 0},
- {-0.235829, 0.083797, 10.111904, 0},
- {-0.238223, 0.067038, 10.139438, 0},
- {-0.260968, 0.063446, 10.128663, 0},
- {-0.231040, 0.084994, 10.140635, 0},
- {-0.237026, 0.082600, 10.134649, 0},
- {-0.246603, 0.070629, 10.144226, 0},
- {-0.246603, 0.080206, 10.125072, 0},
- {-0.244208, 0.087388, 10.122678, 0},
- {-0.234632, 0.069432, 10.111904, 0},
- {-0.252588, 0.065841, 10.121481, 0},
- {-0.245406, 0.071826, 10.128663, 0},
- {-0.243011, 0.075417, 10.129861, 0},
- {-0.238223, 0.068235, 10.139438, 0},
- {-0.256179, 0.076614, 10.126269, 0},
- {-0.246603, 0.083797, 10.131058, 0},
- {-0.248997, 0.080206, 10.116693, 0},
- {-0.241814, 0.082600, 10.123875, 0},
- {-0.262165, 0.075417, 10.113101, 0},
- {-0.240617, 0.079009, 10.134649, 0},
- {-0.244208, 0.077812, 10.121481, 0},
- {-0.246603, 0.068235, 10.141831, 0},
- {-0.252588, 0.075417, 10.120284, 0},
- {-0.247800, 0.084994, 10.104721, 0},
- {-0.241814, 0.086191, 10.126269, 0},
- {-0.237026, 0.082600, 10.117889, 0},
- {-0.243011, 0.070629, 10.117889, 0},
- {-0.239420, 0.070629, 10.135846, 0},
- {-0.237026, 0.065841, 10.120284, 0},
- {-0.237026, 0.061052, 10.125072, 0},
- {-0.235829, 0.061052, 10.114298, 0},
- {-0.252588, 0.074220, 10.137043, 0},
- {-0.253785, 0.086191, 10.119086, 0},
- {-0.252588, 0.089783, 10.129861, 0},
- {-0.245406, 0.084994, 10.126269, 0},
- {-0.232237, 0.076614, 10.120284, 0},
- {-0.252588, 0.082600, 10.119086, 0},
- {-0.251391, 0.064643, 10.132255, 0},
- {-0.227449, 0.076614, 10.149014, 0},
- {-0.259771, 0.083797, 10.131058, 0},
- {-0.248997, 0.075417, 10.127466, 0},
- {-0.244208, 0.071826, 10.133451, 0},
- {-0.243011, 0.070629, 10.132255, 0},
- {-0.228646, 0.076614, 10.128663, 0},
- {-0.241814, 0.089783, 10.138240, 0},
- {-0.252588, 0.086191, 10.122678, 0},
- {-0.254982, 0.068235, 10.133451, 0},
- {-0.250194, 0.071826, 10.150211, 0},
- {-0.235829, 0.084994, 10.140635, 0},
- {-0.234632, 0.087388, 10.139438, 0},
- {-0.245406, 0.077812, 10.105919, 0},
- {-0.250194, 0.080206, 10.107116, 0},
- {-0.240617, 0.092177, 10.132255, 0},
- {-0.243011, 0.077812, 10.133451, 0},
- {-0.248997, 0.062249, 10.128663, 0},
- {-0.245406, 0.068235, 10.125072, 0},
- {-0.250194, 0.064643, 10.129861, 0},
- {-0.248997, 0.082600, 10.126269, 0},
- {-0.252588, 0.073023, 10.141831, 0},
- {-0.250194, 0.076614, 10.127466, 0},
- {-0.251391, 0.077812, 10.121481, 0},
- {-0.250194, 0.069432, 10.134649, 0},
- {-0.232237, 0.065841, 10.131058, 0},
- {-0.233435, 0.081403, 10.131058, 0},
- {-0.241814, 0.074220, 10.111904, 0},
- {-0.248997, 0.064643, 10.135846, 0},
- {-0.239420, 0.081403, 10.143028, 0},
- {-0.239420, 0.077812, 10.138240, 0},
- {-0.237026, 0.074220, 10.110707, 0},
- {-0.235829, 0.081403, 10.121481, 0},
- {-0.247800, 0.063446, 10.129861, 0},
- {-0.235829, 0.068235, 10.121481, 0},
- {-0.238223, 0.064643, 10.123875, 0},
- {-0.246603, 0.070629, 10.132255, 0},
- {-0.264559, 0.073023, 10.145423, 0},
- {-0.247800, 0.065841, 10.116693, 0},
- {-0.247800, 0.084994, 10.125072, 0},
- {-0.225055, 0.080206, 10.115496, 0},
- {-0.233435, 0.064643, 10.135846, 0},
- {-0.247800, 0.069432, 10.131058, 0},
- {-0.234632, 0.081403, 10.125072, 0},
- {-0.246603, 0.081403, 10.128663, 0},
- {-0.235829, 0.086191, 10.117889, 0},
- {-0.233435, 0.077812, 10.122678, 0},
- {-0.256179, 0.049081, 10.128663, 0},
- {-0.243011, 0.083797, 10.138240, 0},
- {-0.239420, 0.087388, 10.129861, 0},
- {-0.238223, 0.068235, 10.131058, 0},
- {-0.234632, 0.068235, 10.129861, 0},
- {-0.250194, 0.080206, 10.135846, 0},
- {-0.246603, 0.062249, 10.131058, 0},
- {-0.243011, 0.076614, 10.134649, 0},
- {-0.246603, 0.093374, 10.128663, 0},
- {-0.251391, 0.065841, 10.126269, 0},
- {-0.235829, 0.069432, 10.135846, 0},
- {-0.243011, 0.081403, 10.120284, 0},
- {-0.245406, 0.086191, 10.129861, 0},
- {-0.234632, 0.073023, 10.110707, 0},
- {-0.244208, 0.083797, 10.140635, 0},
- {-0.247800, 0.069432, 10.141831, 0},
- {-0.240617, 0.076614, 10.149014, 0},
- {-0.243011, 0.081403, 10.122678, 0},
- {-0.237026, 0.071826, 10.120284, 0},
- {-0.234632, 0.073023, 10.120284, 0},
- {-0.237026, 0.077812, 10.131058, 0},
- {-0.244208, 0.080206, 10.152605, 0},
- {-0.250194, 0.076614, 10.135846, 0},
- {-0.253785, 0.069432, 10.131058, 0},
- {-0.260968, 0.073023, 10.141831, 0},
- {-0.247800, 0.070629, 10.134649, 0},
- {-0.257377, 0.068235, 10.125072, 0},
- {-0.243011, 0.073023, 10.121481, 0},
- {-0.235829, 0.082600, 10.127466, 0},
- {-0.237026, 0.070629, 10.139438, 0},
- {-0.227449, 0.081403, 10.127466, 0},
- {-0.239420, 0.080206, 10.141831, 0},
- {-0.251391, 0.069432, 10.129861, 0},
- {-0.238223, 0.069432, 10.121481, 0},
- {-0.237026, 0.069432, 10.126269, 0},
- {-0.250194, 0.077812, 10.114298, 0},
- {-0.237026, 0.094571, 10.116693, 0},
- {-0.253785, 0.084994, 10.143028, 0},
- {-0.263362, 0.071826, 10.123875, 0},
- {-0.246603, 0.064643, 10.126269, 0},
- {-0.240617, 0.059855, 10.131058, 0},
- {-0.247800, 0.070629, 10.139438, 0},
- {-0.240617, 0.082600, 10.132255, 0},
- {-0.234632, 0.073023, 10.111904, 0},
- {-0.240617, 0.062249, 10.131058, 0},
- {-0.238223, 0.080206, 10.129861, 0},
- {-0.243011, 0.076614, 10.123875, 0},
- {-0.246603, 0.080206, 10.125072, 0},
- {-0.235829, 0.079009, 10.127466, 0},
- {-0.243011, 0.076614, 10.110707, 0},
- {-0.246603, 0.065841, 10.128663, 0},
- {-0.246603, 0.076614, 10.133451, 0},
- {-0.253785, 0.080206, 10.123875, 0},
- {-0.241814, 0.073023, 10.119086, 0},
- {-0.250194, 0.075417, 10.120284, 0},
- {-0.235829, 0.079009, 10.143028, 0},
- {-0.241814, 0.071826, 10.135846, 0},
- {-0.254982, 0.077812, 10.125072, 0},
- {-0.238223, 0.077812, 10.122678, 0},
- {-0.235829, 0.071826, 10.132255, 0},
- {-0.238223, 0.084994, 10.120284, 0},
- {-0.253785, 0.075417, 10.146620, 0},
- {-0.254982, 0.069432, 10.141831, 0},
- {-0.240617, 0.087388, 10.126269, 0},
- {-0.251391, 0.088585, 10.115496, 0},
- {-0.256179, 0.065841, 10.129861, 0},
- {-0.243011, 0.069432, 10.127466, 0},
- {-0.246603, 0.063446, 10.134649, 0},
- {-0.246603, 0.073023, 10.128663, 0},
- {-0.240617, 0.068235, 10.119086, 0},
- {-0.257377, 0.069432, 10.143028, 0},
- {-0.245406, 0.081403, 10.128663, 0},
- {-0.252588, 0.075417, 10.120284, 0},
- {-0.241814, 0.068235, 10.111904, 0},
- {-0.238223, 0.075417, 10.141831, 0},
- {-0.240617, 0.071826, 10.111904, 0},
- {-0.247800, 0.067038, 10.126269, 0},
- {-0.247800, 0.068235, 10.134649, 0},
- {-0.238223, 0.084994, 10.139438, 0},
- {-0.237026, 0.090980, 10.141831, 0},
- {-0.245406, 0.068235, 10.109509, 0},
- {-0.256179, 0.076614, 10.143028, 0},
- {-0.237026, 0.080206, 10.116693, 0},
- {-0.228646, 0.079009, 10.134649, 0},
- {-0.247800, 0.071826, 10.121481, 0},
- {-0.241814, 0.075417, 10.129861, 0},
- {-0.228646, 0.076614, 10.152605, 0},
- {-0.238223, 0.087388, 10.125072, 0},
- {-0.239420, 0.075417, 10.128663, 0},
- {-0.247800, 0.074220, 10.114298, 0},
- {-0.219069, 0.080206, 10.126269, 0},
- {-0.234632, 0.082600, 10.109509, 0},
- {-0.244208, 0.063446, 10.127466, 0},
- {-0.247800, 0.068235, 10.134649, 0},
- {-0.245406, 0.069432, 10.139438, 0},
- {-0.251391, 0.086191, 10.128663, 0},
- {-0.244208, 0.065841, 10.127466, 0},
- {-0.246603, 0.070629, 10.125072, 0},
- {-0.240617, 0.081403, 10.125072, 0},
- {-0.232237, 0.063446, 10.141831, 0},
- {-0.247800, 0.065841, 10.126269, 0},
- {-0.235829, 0.086191, 10.133451, 0},
- {-0.245406, 0.096965, 10.121481, 0},
- {-0.239420, 0.090980, 10.121481, 0},
- {-0.248997, 0.077812, 10.125072, 0},
- {-0.231040, 0.067038, 10.126269, 0},
- {-0.245406, 0.081403, 10.125072, 0},
- {-0.231040, 0.074220, 10.145423, 0},
- {-0.253785, 0.067038, 10.115496, 0},
- {-0.246603, 0.065841, 10.110707, 0},
- {-0.245406, 0.069432, 10.131058, 0},
- {-0.232237, 0.076614, 10.113101, 0},
- {-0.243011, 0.075417, 10.121481, 0},
- {-0.243011, 0.079009, 10.132255, 0},
- {-0.238223, 0.079009, 10.123875, 0},
- {-0.245406, 0.069432, 10.122678, 0},
- {-0.247800, 0.075417, 10.126269, 0},
- {-0.239420, 0.079009, 10.139438, 0},
- {-0.244208, 0.083797, 10.105919, 0},
- {-0.245406, 0.071826, 10.109509, 0},
- {-0.233435, 0.076614, 10.128663, 0},
- {-0.243011, 0.088585, 10.131058, 0},
- {-0.252588, 0.069432, 10.117889, 0},
- {-0.248997, 0.090980, 10.119086, 0},
- {-0.241814, 0.074220, 10.129861, 0},
- {-0.253785, 0.068235, 10.135846, 0},
- {-0.240617, 0.074220, 10.125072, 0},
- {-0.246603, 0.076614, 10.131058, 0},
- {-0.238223, 0.081403, 10.117889, 0},
- {-0.246603, 0.074220, 10.127466, 0},
- {-0.250194, 0.070629, 10.133451, 0},
- {-0.248997, 0.073023, 10.132255, 0},
- {-0.250194, 0.077812, 10.122678, 0},
- {-0.259771, 0.077812, 10.123875, 0},
- {-0.234632, 0.079009, 10.123875, 0},
- {-0.241814, 0.073023, 10.120284, 0},
- {-0.251391, 0.063446, 10.146620, 0},
- {-0.250194, 0.074220, 10.113101, 0},
- {-0.256179, 0.082600, 10.119086, 0},
- {-0.257377, 0.080206, 10.132255, 0},
- {-0.245406, 0.090980, 10.127466, 0},
- {-0.243011, 0.075417, 10.133451, 0},
- {-0.239420, 0.088585, 10.125072, 0},
- {-0.241814, 0.079009, 10.127466, 0},
- {-0.251391, 0.070629, 10.137043, 0},
- {-0.235829, 0.081403, 10.110707, 0},
- {-0.248997, 0.075417, 10.141831, 0},
- {-0.231040, 0.087388, 10.125072, 0},
- {-0.247800, 0.068235, 10.127466, 0},
- {-0.252588, 0.086191, 10.119086, 0},
- {-0.240617, 0.071826, 10.127466, 0},
- {-0.243011, 0.081403, 10.144226, 0},
- {-0.243011, 0.083797, 10.126269, 0},
- {-0.251391, 0.074220, 10.127466, 0},
- {-0.239420, 0.084994, 10.125072, 0},
- {-0.231040, 0.069432, 10.113101, 0},
- {-0.246603, 0.069432, 10.138240, 0},
- {-0.243011, 0.075417, 10.132255, 0},
- {-0.243011, 0.084994, 10.113101, 0},
- {-0.253785, 0.082600, 10.120284, 0},
- {-0.247800, 0.070629, 10.125072, 0},
- {-0.244208, 0.079009, 10.113101, 0},
- {-0.260968, 0.073023, 10.127466, 0},
- {-0.239420, 0.063446, 10.128663, 0},
- {-0.234632, 0.082600, 10.122678, 0},
- {-0.240617, 0.079009, 10.132255, 0},
- {-0.251391, 0.069432, 10.133451, 0},
- {-0.252588, 0.073023, 10.131058, 0},
- {-0.239420, 0.059855, 10.121481, 0},
- {-0.238223, 0.079009, 10.122678, 0},
- {-0.229843, 0.070629, 10.115496, 0},
- {-0.246603, 0.074220, 10.128663, 0},
- {-0.235829, 0.079009, 10.121481, 0},
- {-0.237026, 0.076614, 10.146620, 0},
- {-0.244208, 0.077812, 10.117889, 0},
- {-0.258574, 0.070629, 10.133451, 0},
- {-0.259771, 0.077812, 10.119086, 0},
- {-0.246603, 0.083797, 10.133451, 0},
- {-0.241814, 0.076614, 10.127466, 0},
- {-0.253785, 0.077812, 10.116693, 0},
- {-0.256179, 0.075417, 10.123875, 0},
- {-0.254982, 0.074220, 10.120284, 0},
- {-0.252588, 0.070629, 10.114298, 0},
- {-0.256179, 0.074220, 10.128663, 0},
- {-0.237026, 0.071826, 10.139438, 0},
- {-0.235829, 0.069432, 10.108313, 0},
- {-0.250194, 0.074220, 10.116693, 0},
- {-0.241814, 0.073023, 10.131058, 0},
- {-0.234632, 0.075417, 10.147817, 0},
- {-0.238223, 0.067038, 10.111904, 0},
- {-0.251391, 0.071826, 10.128663, 0},
- {-0.239420, 0.087388, 10.134649, 0},
- {-0.237026, 0.082600, 10.128663, 0},
- {-0.240617, 0.089783, 10.133451, 0},
- {-0.245406, 0.081403, 10.119086, 0},
- {-0.241814, 0.080206, 10.128663, 0},
- {-0.235829, 0.062249, 10.140635, 0},
- {-0.235829, 0.065841, 10.128663, 0},
- {-0.237026, 0.092177, 10.128663, 0},
- {-0.244208, 0.082600, 10.122678, 0},
- {-0.247800, 0.065841, 10.127466, 0},
- {-0.243011, 0.070629, 10.113101, 0},
- {-0.238223, 0.068235, 10.123875, 0},
- {-0.241814, 0.077812, 10.107116, 0},
- {-0.238223, 0.088585, 10.132255, 0},
- {-0.234632, 0.067038, 10.127466, 0},
- {-0.243011, 0.075417, 10.117889, 0},
- {-0.240617, 0.077812, 10.132255, 0},
- {-0.240617, 0.079009, 10.120284, 0},
- {-0.239420, 0.074220, 10.125072, 0},
- {-0.233435, 0.071826, 10.132255, 0},
- {-0.241814, 0.083797, 10.126269, 0},
- {-0.258574, 0.089783, 10.127466, 0},
- {-0.234632, 0.081403, 10.131058, 0},
- {-0.252588, 0.071826, 10.137043, 0},
- {-0.240617, 0.064643, 10.127466, 0},
- {-0.248997, 0.070629, 10.133451, 0},
- {-0.246603, 0.087388, 10.132255, 0},
- {-0.250194, 0.075417, 10.132255, 0},
- {-0.244208, 0.073023, 10.126269, 0},
- {-0.241814, 0.079009, 10.120284, 0},
- {-0.251391, 0.083797, 10.128663, 0},
- {-0.234632, 0.080206, 10.145423, 0},
- {-0.250194, 0.074220, 10.140635, 0},
- {-0.247800, 0.062249, 10.116693, 0},
- {-0.243011, 0.077812, 10.125072, 0},
- {-0.247800, 0.064643, 10.126269, 0},
- {-0.244208, 0.071826, 10.145423, 0},
- {-0.253785, 0.070629, 10.123875, 0},
- {-0.237026, 0.077812, 10.133451, 0},
- {-0.246603, 0.082600, 10.117889, 0},
- {-0.245406, 0.086191, 10.121481, 0},
- {-0.235829, 0.073023, 10.117889, 0},
- {-0.243011, 0.075417, 10.134649, 0},
- {-0.239420, 0.087388, 10.139438, 0},
- {-0.227449, 0.084994, 10.135846, 0},
- {-0.240617, 0.083797, 10.133451, 0},
- {-0.243011, 0.073023, 10.117889, 0},
- {-0.228646, 0.082600, 10.144226, 0},
- {-0.240617, 0.068235, 10.104721, 0},
- {-0.241814, 0.059855, 10.127466, 0},
- {-0.243011, 0.081403, 10.116693, 0},
- {-0.238223, 0.080206, 10.147817, 0},
- {-0.244208, 0.076614, 10.119086, 0},
- {-0.241814, 0.073023, 10.119086, 0},
- {-0.251391, 0.075417, 10.131058, 0},
- {-0.244208, 0.071826, 10.127466, 0},
- {-0.233435, 0.082600, 10.146620, 0},
- {-0.250194, 0.070629, 10.120284, 0},
- {-0.248997, 0.067038, 10.135846, 0},
- {-0.233435, 0.077812, 10.109509, 0},
- {-0.243011, 0.083797, 10.133451, 0},
- {-0.251391, 0.069432, 10.111904, 0},
- {-0.234632, 0.076614, 10.138240, 0},
- {-0.241814, 0.086191, 10.120284, 0},
- {-0.239420, 0.068235, 10.128663, 0},
- {-0.229843, 0.071826, 10.140635, 0},
- {-0.245406, 0.082600, 10.115496, 0},
- {-0.234632, 0.076614, 10.143028, 0},
- {-0.246603, 0.068235, 10.119086, 0},
- {-0.250194, 0.064643, 10.132255, 0},
- {-0.237026, 0.082600, 10.129861, 0},
- {-0.256179, 0.089783, 10.138240, 0},
- {-0.239420, 0.076614, 10.121481, 0},
- {-0.238223, 0.069432, 10.133451, 0},
- {-0.247800, 0.067038, 10.135846, 0},
- {-0.250194, 0.070629, 10.131058, 0},
- {-0.243011, 0.080206, 10.141831, 0},
- {-0.244208, 0.064643, 10.122678, 0},
- {-0.238223, 0.070629, 10.134649, 0},
- {-0.229843, 0.070629, 10.113101, 0},
- {-0.254982, 0.087388, 10.137043, 0},
- {-0.259771, 0.081403, 10.128663, 0},
- {-0.241814, 0.074220, 10.129861, 0},
- {-0.247800, 0.065841, 10.126269, 0},
- {-0.253785, 0.063446, 10.122678, 0},
- {-0.256179, 0.076614, 10.129861, 0},
- {-0.250194, 0.083797, 10.123875, 0},
- {-0.239420, 0.073023, 10.129861, 0},
- {-0.253785, 0.084994, 10.109509, 0},
- {-0.238223, 0.071826, 10.151408, 0},
- {-0.245406, 0.068235, 10.110707, 0},
- {-0.246603, 0.064643, 10.127466, 0},
- {-0.232237, 0.077812, 10.113101, 0},
- {-0.247800, 0.064643, 10.132255, 0},
- {-0.254982, 0.080206, 10.137043, 0},
- {-0.248997, 0.080206, 10.138240, 0},
- {-0.243011, 0.081403, 10.123875, 0},
- {-0.237026, 0.087388, 10.127466, 0},
- {-0.234632, 0.070629, 10.129861, 0},
- {-0.235829, 0.073023, 10.121481, 0},
- {-0.244208, 0.073023, 10.127466, 0},
- {-0.237026, 0.067038, 10.138240, 0},
- {-0.248997, 0.067038, 10.119086, 0},
- {-0.253785, 0.079009, 10.129861, 0},
- {-0.239420, 0.068235, 10.129861, 0},
- {-0.252588, 0.071826, 10.122678, 0},
- {-0.243011, 0.076614, 10.134649, 0},
- {-0.234632, 0.075417, 10.117889, 0},
- {-0.235829, 0.070629, 10.115496, 0},
- {-0.247800, 0.083797, 10.123875, 0},
- {-0.241814, 0.089783, 10.123875, 0},
- {-0.234632, 0.087388, 10.133451, 0},
- {-0.239420, 0.073023, 10.116693, 0},
- {-0.241814, 0.087388, 10.122678, 0},
- {-0.243011, 0.077812, 10.126269, 0},
- {-0.247800, 0.076614, 10.129861, 0},
- {-0.244208, 0.082600, 10.140635, 0},
- {-0.241814, 0.079009, 10.150211, 0},
- {-0.237026, 0.065841, 10.144226, 0},
- {-0.234632, 0.081403, 10.133451, 0},
- {-0.231040, 0.081403, 10.121481, 0},
- {-0.248997, 0.071826, 10.143028, 0},
- {-0.257377, 0.063446, 10.119086, 0},
- {-0.245406, 0.087388, 10.141831, 0},
- {-0.246603, 0.082600, 10.137043, 0},
- {-0.227449, 0.080206, 10.128663, 0},
- {-0.244208, 0.082600, 10.120284, 0},
- {-0.245406, 0.087388, 10.139438, 0},
- {-0.237026, 0.061052, 10.137043, 0},
- {-0.240617, 0.061052, 10.132255, 0},
- {-0.239420, 0.076614, 10.132255, 0},
- {-0.244208, 0.083797, 10.131058, 0},
- {-0.227449, 0.077812, 10.137043, 0},
- {-0.240617, 0.089783, 10.144226, 0},
- {-0.238223, 0.083797, 10.121481, 0},
- {-0.260968, 0.068235, 10.119086, 0},
- {-0.243011, 0.070629, 10.155000, 0},
- {-0.248997, 0.079009, 10.117889, 0},
- {-0.252588, 0.076614, 10.111904, 0},
- {-0.237026, 0.084994, 10.134649, 0},
- {-0.248997, 0.069432, 10.128663, 0},
- {-0.235829, 0.082600, 10.126269, 0},
- {-0.245406, 0.069432, 10.150211, 0},
- {-0.253785, 0.090980, 10.125072, 0},
- {-0.247800, 0.077812, 10.119086, 0},
- {-0.248997, 0.074220, 10.117889, 0},
- {-0.239420, 0.080206, 10.122678, 0},
- {-0.239420, 0.087388, 10.127466, 0},
- {-0.244208, 0.074220, 10.128663, 0},
- {-0.229843, 0.068235, 10.123875, 0},
- {-0.247800, 0.080206, 10.127466, 0},
- {-0.241814, 0.071826, 10.119086, 0},
- {-0.235829, 0.086191, 10.121481, 0},
- {-0.234632, 0.084994, 10.127466, 0},
- {-0.237026, 0.073023, 10.131058, 0},
- {-0.243011, 0.074220, 10.123875, 0},
- {-0.259771, 0.084994, 10.146620, 0},
- {-0.241814, 0.071826, 10.122678, 0},
- {-0.232237, 0.077812, 10.132255, 0},
- {-0.239420, 0.076614, 10.133451, 0},
- {-0.244208, 0.076614, 10.128663, 0},
- {-0.241814, 0.081403, 10.153803, 0},
- {-0.246603, 0.069432, 10.114298, 0},
- {-0.247800, 0.067038, 10.128663, 0},
- {-0.239420, 0.077812, 10.132255, 0},
- {-0.248997, 0.064643, 10.133451, 0},
- {-0.231040, 0.075417, 10.120284, 0},
- {-0.235829, 0.070629, 10.109509, 0},
- {-0.248997, 0.079009, 10.121481, 0},
- {-0.239420, 0.094571, 10.128663, 0},
- {-0.254982, 0.083797, 10.134649, 0},
- {-0.240617, 0.079009, 10.117889, 0},
- {-0.244208, 0.065841, 10.122678, 0},
- {-0.238223, 0.070629, 10.116693, 0},
- {-0.244208, 0.081403, 10.131058, 0},
- {-0.239420, 0.071826, 10.135846, 0},
- {-0.231040, 0.070629, 10.139438, 0},
- {-0.240617, 0.070629, 10.125072, 0},
- {-0.235829, 0.079009, 10.127466, 0},
- {-0.235829, 0.077812, 10.126269, 0},
- {-0.241814, 0.071826, 10.127466, 0},
- {-0.243011, 0.068235, 10.131058, 0},
- {-0.240617, 0.076614, 10.129861, 0},
- {-0.231040, 0.070629, 10.127466, 0},
- {-0.229843, 0.076614, 10.129861, 0},
- {-0.235829, 0.071826, 10.128663, 0},
- {-0.235829, 0.068235, 10.131058, 0},
- {-0.246603, 0.074220, 10.122678, 0},
- {-0.232237, 0.075417, 10.126269, 0},
- {-0.233435, 0.075417, 10.116693, 0},
- {-0.227449, 0.069432, 10.131058, 0},
- {-0.233435, 0.069432, 10.133451, 0},
- {-0.243011, 0.076614, 10.125072, 0},
- {-0.243011, 0.079009, 10.111904, 0},
- {-0.245406, 0.080206, 10.137043, 0},
- {-0.244208, 0.083797, 10.133451, 0},
- {-0.247800, 0.071826, 10.131058, 0},
- {-0.239420, 0.063446, 10.114298, 0},
- {-0.234632, 0.070629, 10.119086, 0},
- {-0.238223, 0.070629, 10.151408, 0},
- {-0.247800, 0.075417, 10.134649, 0},
- {-0.241814, 0.075417, 10.137043, 0},
- {-0.240617, 0.067038, 10.121481, 0},
- {-0.243011, 0.063446, 10.137043, 0},
- {-0.229843, 0.068235, 10.132255, 0},
- {-0.241814, 0.075417, 10.122678, 0},
- {-0.246603, 0.086191, 10.119086, 0},
- {-0.235829, 0.081403, 10.126269, 0},
- {-0.229843, 0.081403, 10.138240, 0},
- {-0.234632, 0.075417, 10.120284, 0},
- {-0.237026, 0.080206, 10.133451, 0},
- {-0.232237, 0.074220, 10.114298, 0},
- {-0.245406, 0.069432, 10.128663, 0},
- {-0.241814, 0.064643, 10.134649, 0},
- {-0.239420, 0.086191, 10.133451, 0},
- {-0.238223, 0.086191, 10.144226, 0},
- {-0.248997, 0.063446, 10.131058, 0},
- {-0.229843, 0.065841, 10.137043, 0},
- {-0.239420, 0.084994, 10.110707, 0},
- {-0.231040, 0.083797, 10.141831, 0},
- {-0.245406, 0.073023, 10.128663, 0},
- {-0.245406, 0.071826, 10.129861, 0},
- {-0.238223, 0.071826, 10.120284, 0},
- {-0.247800, 0.081403, 10.137043, 0},
- {-0.264559, 0.069432, 10.135846, 0},
- {-0.247800, 0.070629, 10.131058, 0},
- {-0.240617, 0.082600, 10.134649, 0},
- {-0.246603, 0.075417, 10.126269, 0},
- {-0.238223, 0.071826, 10.152605, 0},
- {-0.235829, 0.063446, 10.132255, 0},
- {-0.251391, 0.065841, 10.120284, 0},
- {-0.243011, 0.068235, 10.131058, 0},
- {-0.222661, 0.067038, 10.134649, 0},
- {-0.239420, 0.081403, 10.128663, 0},
- {-0.240617, 0.083797, 10.138240, 0},
- {-0.223858, 0.068235, 10.122678, 0},
- {-0.238223, 0.065841, 10.140635, 0},
- {-0.237026, 0.081403, 10.134649, 0},
- {-0.240617, 0.079009, 10.123875, 0},
- {-0.238223, 0.073023, 10.133451, 0},
- {-0.246603, 0.067038, 10.117889, 0},
- {-0.243011, 0.061052, 10.135846, 0},
- {-0.239420, 0.075417, 10.116693, 0},
- {-0.260968, 0.065841, 10.123875, 0},
- {-0.247800, 0.064643, 10.117889, 0},
- {-0.248997, 0.093374, 10.140635, 0},
- {-0.244208, 0.080206, 10.144226, 0},
- {-0.258574, 0.077812, 10.113101, 0},
- {-0.250194, 0.069432, 10.126269, 0},
- {-0.238223, 0.073023, 10.102327, 0},
- {-0.240617, 0.070629, 10.135846, 0},
- {-0.247800, 0.063446, 10.121481, 0},
- {-0.268150, 0.088585, 10.135846, 0},
- {-0.246603, 0.075417, 10.119086, 0},
- {-0.233435, 0.071826, 10.131058, 0},
- {-0.245406, 0.071826, 10.128663, 0},
- {-0.244208, 0.094571, 10.128663, 0},
- {-0.234632, 0.080206, 10.123875, 0},
- {-0.240617, 0.081403, 10.109509, 0},
- {-0.240617, 0.069432, 10.128663, 0},
- {-0.237026, 0.069432, 10.122678, 0},
- {-0.234632, 0.071826, 10.137043, 0},
- {-0.239420, 0.076614, 10.139438, 0},
- {-0.244208, 0.088585, 10.117889, 0},
- {-0.259771, 0.087388, 10.134649, 0},
- {-0.252588, 0.077812, 10.134649, 0},
- {-0.241814, 0.073023, 10.117889, 0},
- {-0.243011, 0.080206, 10.128663, 0},
- {-0.241814, 0.086191, 10.119086, 0},
- {-0.244208, 0.073023, 10.115496, 0},
- {-0.239420, 0.080206, 10.123875, 0},
- {-0.248997, 0.070629, 10.137043, 0},
- {-0.240617, 0.076614, 10.119086, 0},
- {-0.233435, 0.070629, 10.128663, 0},
- {-0.235829, 0.075417, 10.121481, 0},
- {-0.240617, 0.090980, 10.127466, 0},
- {-0.252588, 0.067038, 10.114298, 0},
- {-0.229843, 0.077812, 10.123875, 0},
- {-0.248997, 0.084994, 10.137043, 0},
- {-0.245406, 0.070629, 10.110707, 0},
- {-0.239420, 0.061052, 10.131058, 0},
- {-0.241814, 0.077812, 10.132255, 0},
- {-0.239420, 0.081403, 10.126269, 0},
- {-0.235829, 0.069432, 10.127466, 0},
- {-0.243011, 0.076614, 10.134649, 0},
- {-0.252588, 0.077812, 10.132255, 0},
- {-0.237026, 0.077812, 10.138240, 0},
- {-0.246603, 0.073023, 10.127466, 0},
- {-0.241814, 0.063446, 10.129861, 0},
- {-0.234632, 0.071826, 10.126269, 0},
- {-0.248997, 0.081403, 10.113101, 0},
- {-0.244208, 0.084994, 10.114298, 0},
- {-0.232237, 0.077812, 10.132255, 0},
- {-0.234632, 0.084994, 10.128663, 0},
- {-0.244208, 0.088585, 10.108313, 0},
- {-0.253785, 0.070629, 10.141831, 0},
- {-0.247800, 0.071826, 10.121481, 0},
- {-0.244208, 0.070629, 10.128663, 0},
- {-0.244208, 0.079009, 10.116693, 0},
- {-0.239420, 0.074220, 10.113101, 0},
- {-0.239420, 0.079009, 10.127466, 0},
- {-0.251391, 0.071826, 10.133451, 0},
- {-0.247800, 0.076614, 10.133451, 0},
- {-0.254982, 0.088585, 10.137043, 0},
- {-0.250194, 0.081403, 10.137043, 0},
- {-0.257377, 0.077812, 10.117889, 0},
- {-0.237026, 0.079009, 10.123875, 0},
- {-0.235829, 0.073023, 10.121481, 0},
- {-0.262165, 0.082600, 10.123875, 0},
- {-0.248997, 0.073023, 10.113101, 0},
- {-0.241814, 0.076614, 10.114298, 0},
- {-0.251391, 0.073023, 10.131058, 0},
- {-0.248997, 0.075417, 10.141831, 0},
- {-0.237026, 0.074220, 10.132255, 0},
- {-0.253785, 0.084994, 10.122678, 0},
- {-0.247800, 0.079009, 10.133451, 0},
- {-0.246603, 0.082600, 10.109509, 0},
- {-0.252588, 0.094571, 10.122678, 0},
- {-0.246603, 0.073023, 10.125072, 0},
- {-0.250194, 0.057461, 10.115496, 0},
- {-0.250194, 0.071826, 10.122678, 0},
- {-0.251391, 0.076614, 10.127466, 0},
- {-0.240617, 0.079009, 10.126269, 0},
- {-0.259771, 0.073023, 10.115496, 0},
- {-0.246603, 0.074220, 10.135846, 0},
- {-0.253785, 0.077812, 10.119086, 0},
- {-0.244208, 0.077812, 10.128663, 0},
- {-0.241814, 0.069432, 10.128663, 0},
- {-0.244208, 0.081403, 10.126269, 0},
- {-0.246603, 0.086191, 10.128663, 0},
- {-0.252588, 0.084994, 10.132255, 0},
- {-0.247800, 0.076614, 10.128663, 0},
- {-0.240617, 0.063446, 10.126269, 0},
- {-0.235829, 0.069432, 10.127466, 0},
- {-0.240617, 0.087388, 10.129861, 0},
- {-0.251391, 0.063446, 10.128663, 0},
- {-0.252588, 0.077812, 10.135846, 0},
- {-0.254982, 0.082600, 10.138240, 0},
- {-0.244208, 0.081403, 10.128663, 0},
- {-0.241814, 0.086191, 10.117889, 0},
- {-0.254982, 0.069432, 10.149014, 0},
- {-0.248997, 0.068235, 10.131058, 0},
- {-0.252588, 0.063446, 10.122678, 0},
- {-0.240617, 0.079009, 10.152605, 0},
- {-0.240617, 0.088585, 10.107116, 0},
- {-0.248997, 0.076614, 10.138240, 0},
- {-0.251391, 0.075417, 10.119086, 0},
- {-0.225055, 0.079009, 10.138240, 0},
- {-0.239420, 0.077812, 10.150211, 0},
- {-0.250194, 0.055067, 10.137043, 0},
- {-0.257377, 0.082600, 10.125072, 0},
- {-0.243011, 0.075417, 10.119086, 0},
- {-0.244208, 0.064643, 10.119086, 0},
- {-0.246603, 0.080206, 10.117889, 0},
- {-0.232237, 0.079009, 10.158591, 0},
- {-0.247800, 0.071826, 10.120284, 0},
- {-0.245406, 0.075417, 10.137043, 0},
- {-0.240617, 0.069432, 10.117889, 0},
- {-0.246603, 0.080206, 10.134649, 0},
- {-0.248997, 0.087388, 10.109509, 0},
- {-0.252588, 0.081403, 10.132255, 0},
- {-0.250194, 0.069432, 10.123875, 0},
- {-0.257377, 0.073023, 10.131058, 0},
- {-0.241814, 0.068235, 10.109509, 0},
- {-0.243011, 0.080206, 10.108313, 0},
- {-0.238223, 0.074220, 10.139438, 0},
- {-0.245406, 0.075417, 10.122678, 0},
- {-0.250194, 0.069432, 10.137043, 0},
- {-0.245406, 0.069432, 10.116693, 0},
- {-0.235829, 0.070629, 10.158591, 0},
- {-0.247800, 0.082600, 10.117889, 0},
- {-0.247800, 0.077812, 10.137043, 0},
- {-0.243011, 0.080206, 10.134649, 0},
- {-0.263362, 0.081403, 10.110707, 0},
- {-0.247800, 0.079009, 10.127466, 0},
- {-0.248997, 0.071826, 10.131058, 0},
- {-0.248997, 0.075417, 10.144226, 0},
- {-0.239420, 0.077812, 10.117889, 0},
- {-0.248997, 0.071826, 10.139438, 0},
- {-0.254982, 0.083797, 10.120284, 0},
- {-0.238223, 0.075417, 10.131058, 0},
- {-0.235829, 0.084994, 10.105919, 0},
- {-0.245406, 0.080206, 10.133451, 0},
- {-0.247800, 0.075417, 10.131058, 0},
- {-0.235829, 0.079009, 10.120284, 0},
- {-0.247800, 0.070629, 10.133451, 0},
- {-0.253785, 0.064643, 10.110707, 0},
- {-0.240617, 0.071826, 10.120284, 0},
- {-0.248997, 0.079009, 10.101130, 0},
- {-0.243011, 0.079009, 10.141831, 0},
- {-0.244208, 0.077812, 10.134649, 0},
- {-0.245406, 0.081403, 10.140635, 0},
- {-0.253785, 0.070629, 10.110707, 0},
- {-0.254982, 0.058658, 10.129861, 0},
- {-0.239420, 0.083797, 10.137043, 0},
- {-0.232237, 0.081403, 10.125072, 0},
- {-0.243011, 0.068235, 10.139438, 0},
- {-0.243011, 0.063446, 10.123875, 0},
- {-0.232237, 0.074220, 10.140635, 0},
- {-0.241814, 0.077812, 10.116693, 0},
- {-0.247800, 0.074220, 10.139438, 0},
- {-0.245406, 0.077812, 10.127466, 0},
- {-0.233435, 0.073023, 10.132255, 0},
- {-0.243011, 0.074220, 10.121481, 0},
- {-0.246603, 0.059855, 10.125072, 0},
- {-0.246603, 0.070629, 10.120284, 0},
- {-0.241814, 0.087388, 10.133451, 0},
- {-0.245406, 0.061052, 10.128663, 0},
- {-0.248997, 0.079009, 10.111904, 0},
- {-0.237026, 0.077812, 10.135846, 0},
- {-0.240617, 0.083797, 10.108313, 0},
- {-0.237026, 0.075417, 10.141831, 0},
- {-0.243011, 0.061052, 10.132255, 0},
- {-0.234632, 0.073023, 10.133451, 0},
- {-0.251391, 0.073023, 10.137043, 0},
- {-0.237026, 0.083797, 10.135846, 0},
- {-0.231040, 0.077812, 10.117889, 0},
- {-0.237026, 0.061052, 10.140635, 0},
- {-0.243011, 0.071826, 10.127466, 0},
- {-0.235829, 0.081403, 10.131058, 0},
- {-0.241814, 0.076614, 10.123875, 0},
- {-0.258574, 0.081403, 10.127466, 0},
- {-0.241814, 0.063446, 10.127466, 0},
- {-0.254982, 0.071826, 10.139438, 0},
- {-0.244208, 0.077812, 10.117889, 0},
- {-0.240617, 0.077812, 10.134649, 0},
- {-0.258574, 0.075417, 10.128663, 0},
- {-0.245406, 0.069432, 10.131058, 0},
- {-0.245406, 0.074220, 10.126269, 0},
- {-0.248997, 0.075417, 10.137043, 0},
- {-0.248997, 0.082600, 10.137043, 0},
- {-0.245406, 0.084994, 10.115496, 0},
- {-0.244208, 0.073023, 10.126269, 0},
- {-0.234632, 0.067038, 10.126269, 0},
- {-0.238223, 0.064643, 10.127466, 0},
- {-0.263362, 0.065841, 10.123875, 0},
- {-0.257377, 0.081403, 10.126269, 0},
- {-0.237026, 0.082600, 10.105919, 0},
- {-0.253785, 0.083797, 10.119086, 0},
- {-0.234632, 0.073023, 10.125072, 0},
- {-0.243011, 0.062249, 10.122678, 0},
- {-0.251391, 0.076614, 10.119086, 0},
- {-0.258574, 0.071826, 10.139438, 0},
- {-0.250194, 0.071826, 10.140635, 0},
- {-0.251391, 0.086191, 10.140635, 0},
- {-0.248997, 0.077812, 10.121481, 0},
- {-0.244208, 0.083797, 10.126269, 0},
- {-0.241814, 0.083797, 10.133451, 0},
- {-0.246603, 0.070629, 10.119086, 0},
- {-0.241814, 0.067038, 10.146620, 0},
- {-0.247800, 0.079009, 10.109509, 0},
- {-0.256179, 0.069432, 10.146620, 0},
- {-0.247800, 0.073023, 10.126269, 0},
- {-0.245406, 0.070629, 10.113101, 0},
- {-0.234632, 0.084994, 10.126269, 0},
- {-0.228646, 0.068235, 10.129861, 0},
- {-0.246603, 0.062249, 10.143028, 0},
- {-0.245406, 0.084994, 10.122678, 0},
- {-0.244208, 0.067038, 10.143028, 0},
- {-0.241814, 0.080206, 10.138240, 0},
- {-0.243011, 0.083797, 10.135846, 0},
- {-0.238223, 0.069432, 10.139438, 0},
- {-0.235829, 0.081403, 10.121481, 0},
- {-0.241814, 0.081403, 10.119086, 0},
- {-0.241814, 0.068235, 10.146620, 0},
- {-0.246603, 0.093374, 10.107116, 0},
- {-0.247800, 0.088585, 10.135846, 0},
- {-0.258574, 0.069432, 10.101130, 0},
- {-0.252588, 0.074220, 10.135846, 0},
- {-0.240617, 0.058658, 10.127466, 0},
- {-0.263362, 0.073023, 10.138240, 0},
- {-0.244208, 0.081403, 10.135846, 0},
- {-0.248997, 0.086191, 10.127466, 0},
- {-0.251391, 0.074220, 10.133451, 0},
- {-0.241814, 0.068235, 10.129861, 0},
- {-0.247800, 0.075417, 10.144226, 0},
- {-0.248997, 0.086191, 10.113101, 0},
- {-0.239420, 0.080206, 10.153803, 0},
- {-0.239420, 0.059855, 10.117889, 0},
- {-0.244208, 0.073023, 10.139438, 0},
- {-0.245406, 0.082600, 10.120284, 0},
- {-0.238223, 0.086191, 10.133451, 0},
- {-0.246603, 0.079009, 10.123875, 0},
- {-0.247800, 0.074220, 10.131058, 0},
- {-0.252588, 0.084994, 10.120284, 0},
- {-0.245406, 0.075417, 10.125072, 0},
- {-0.240617, 0.069432, 10.135846, 0},
- {-0.245406, 0.076614, 10.121481, 0},
- {-0.231040, 0.068235, 10.132255, 0},
- {-0.233435, 0.076614, 10.134649, 0},
- {-0.239420, 0.082600, 10.127466, 0},
- {-0.253785, 0.076614, 10.104721, 0},
- {-0.247800, 0.089783, 10.133451, 0},
- {-0.238223, 0.076614, 10.134649, 0},
- {-0.240617, 0.073023, 10.105919, 0},
- {-0.243011, 0.067038, 10.146620, 0},
- {-0.246603, 0.067038, 10.135846, 0},
- {-0.250194, 0.080206, 10.146620, 0},
- {-0.252588, 0.062249, 10.125072, 0},
- {-0.234632, 0.074220, 10.127466, 0},
- {-0.239420, 0.069432, 10.149014, 0},
- {-0.243011, 0.069432, 10.126269, 0},
- {-0.240617, 0.071826, 10.109509, 0},
- {-0.258574, 0.067038, 10.121481, 0},
- {-0.258574, 0.079009, 10.137043, 0},
- {-0.248997, 0.083797, 10.114298, 0},
- {-0.228646, 0.077812, 10.123875, 0},
- {-0.248997, 0.061052, 10.128663, 0},
- {-0.253785, 0.080206, 10.140635, 0},
- {-0.250194, 0.077812, 10.119086, 0},
- {-0.250194, 0.080206, 10.134649, 0},
- {-0.254982, 0.079009, 10.104721, 0},
- {-0.251391, 0.076614, 10.125072, 0},
- {-0.244208, 0.069432, 10.109509, 0},
- {-0.251391, 0.075417, 10.131058, 0},
- {-0.246603, 0.074220, 10.135846, 0},
- {-0.247800, 0.077812, 10.133451, 0},
- {-0.243011, 0.095768, 10.119086, 0},
- {-0.252588, 0.079009, 10.103524, 0},
- {-0.248997, 0.080206, 10.119086, 0},
- {-0.250194, 0.087388, 10.122678, 0},
- {-0.244208, 0.071826, 10.143028, 0},
- {-0.228646, 0.079009, 10.104721, 0},
- {-0.235829, 0.087388, 10.125072, 0},
- {-0.241814, 0.070629, 10.105919, 0},
- {-0.251391, 0.081403, 10.140635, 0},
- {-0.235829, 0.074220, 10.117889, 0},
- {-0.244208, 0.076614, 10.134649, 0},
- {-0.248997, 0.074220, 10.108313, 0},
- {-0.240617, 0.089783, 10.123875, 0},
- {-0.254982, 0.074220, 10.146620, 0},
- {-0.252588, 0.079009, 10.120284, 0},
- {-0.246603, 0.087388, 10.133451, 0},
- {-0.246603, 0.074220, 10.116693, 0},
- {-0.235829, 0.074220, 10.138240, 0},
- {-0.239420, 0.076614, 10.111904, 0},
- {-0.253785, 0.065841, 10.132255, 0},
- {-0.246603, 0.074220, 10.117889, 0},
- {-0.251391, 0.084994, 10.121481, 0},
- {-0.260968, 0.087388, 10.131058, 0},
- {-0.246603, 0.084994, 10.123875, 0},
- {-0.247800, 0.087388, 10.119086, 0},
- {-0.238223, 0.070629, 10.125072, 0},
- {-0.248997, 0.075417, 10.137043, 0},
- {-0.240617, 0.081403, 10.126269, 0},
- {-0.225055, 0.075417, 10.117889, 0},
- {-0.245406, 0.061052, 10.099933, 0},
- {-0.229843, 0.071826, 10.133451, 0},
- {-0.239420, 0.088585, 10.158591, 0},
- {-0.251391, 0.079009, 10.111904, 0},
- {-0.234632, 0.070629, 10.151408, 0},
- {-0.232237, 0.068235, 10.127466, 0},
- {-0.238223, 0.083797, 10.125072, 0},
- {-0.240617, 0.083797, 10.104721, 0},
- {-0.234632, 0.084994, 10.127466, 0},
- {-0.243011, 0.068235, 10.098736, 0},
- {-0.251391, 0.075417, 10.146620, 0},
- {-0.257377, 0.082600, 10.117889, 0},
- {-0.234632, 0.076614, 10.119086, 0},
- {-0.244208, 0.080206, 10.132255, 0},
- {-0.232237, 0.080206, 10.139438, 0},
- {-0.235829, 0.083797, 10.134649, 0},
- {-0.240617, 0.083797, 10.107116, 0},
- {-0.239420, 0.087388, 10.134649, 0},
- {-0.248997, 0.074220, 10.125072, 0},
- {-0.247800, 0.064643, 10.150211, 0},
- {-0.243011, 0.076614, 10.111904, 0},
- {-0.247800, 0.069432, 10.139438, 0},
- {-0.240617, 0.076614, 10.132255, 0},
- {-0.240617, 0.076614, 10.129861, 0},
- {-0.235829, 0.065841, 10.105919, 0},
- {-0.252588, 0.080206, 10.113101, 0},
- {-0.251391, 0.077812, 10.149014, 0},
- {-0.241814, 0.082600, 10.056837, 0},
- {-0.243011, 0.084994, 10.199292, 0},
- {-0.253785, 0.077812, 10.098736, 0},
- {-0.229843, 0.063446, 10.103524, 0},
- {-0.250194, 0.069432, 10.183730, 0},
- {-0.240617, 0.086191, 10.067612, 0},
- {-0.246603, 0.070629, 10.201687, 0},
- {-0.263362, 0.067038, 10.071202, 0},
- {-0.245406, 0.059855, 10.166970, 0},
- {-0.239420, 0.065841, 10.092751, 0},
- {-0.238223, 0.068235, 10.139438, 0},
- {-0.243011, 0.074220, 10.116693, 0},
- {-0.240617, 0.081403, 10.122678, 0},
- {-0.251391, 0.067038, 10.119086, 0},
- {-0.240617, 0.075417, 10.113101, 0},
- {-0.250194, 0.059855, 10.137043, 0},
- {-0.244208, 0.062249, 10.129861, 0},
- {-0.229843, 0.083797, 10.117889, 0},
- {-0.246603, 0.076614, 10.123875, 0},
- {-0.234632, 0.087388, 10.140635, 0},
- {-0.254982, 0.079009, 10.119086, 0},
- {-0.237026, 0.074220, 10.157393, 0},
- {-0.247800, 0.088585, 10.115496, 0},
- {-0.251391, 0.087388, 10.144226, 0},
- {-0.238223, 0.071826, 10.116693, 0},
- {-0.233435, 0.069432, 10.137043, 0},
- {-0.231040, 0.081403, 10.119086, 0},
- {-0.244208, 0.079009, 10.116693, 0},
- {-0.245406, 0.073023, 10.147817, 0},
- {-0.250194, 0.071826, 10.113101, 0},
- {-0.238223, 0.077812, 10.135846, 0},
- {-0.240617, 0.077812, 10.105919, 0},
- {-0.239420, 0.076614, 10.145423, 0},
- {-0.232237, 0.070629, 10.102327, 0},
- {-0.241814, 0.080206, 10.119086, 0},
- {-0.237026, 0.068235, 10.111904, 0},
- {-0.260968, 0.082600, 10.137043, 0},
- {-0.240617, 0.089783, 10.139438, 0},
- {-0.238223, 0.077812, 10.128663, 0},
- {-0.240617, 0.075417, 10.138240, 0},
- {-0.247800, 0.075417, 10.129861, 0},
- {-0.251391, 0.075417, 10.143028, 0},
- {-0.254982, 0.076614, 10.128663, 0},
- {-0.251391, 0.070629, 10.157393, 0},
- {-0.253785, 0.086191, 10.134649, 0},
- {-0.248997, 0.079009, 10.126269, 0},
- {-0.244208, 0.087388, 10.117889, 0},
- {-0.254982, 0.080206, 10.125072, 0},
- {-0.244208, 0.071826, 10.122678, 0},
- {-0.248997, 0.087388, 10.111904, 0},
- {-0.246603, 0.075417, 10.133451, 0},
- {-0.252588, 0.071826, 10.099933, 0},
- {-0.245406, 0.082600, 10.132255, 0},
- {-0.246603, 0.086191, 10.129861, 0},
- {-0.227449, 0.067038, 10.151408, 0},
- {-0.235829, 0.079009, 10.109509, 0},
- {-0.239420, 0.080206, 10.137043, 0},
- {-0.241814, 0.084994, 10.121481, 0},
- {-0.251391, 0.081403, 10.116693, 0},
- {-0.260968, 0.073023, 10.141831, 0},
- {-0.245406, 0.073023, 10.122678, 0},
- {-0.252588, 0.083797, 10.139438, 0},
- {-0.243011, 0.080206, 10.122678, 0},
- {-0.239420, 0.077812, 10.138240, 0},
- {-0.241814, 0.068235, 10.113101, 0},
- {-0.244208, 0.074220, 10.133451, 0},
- {-0.257377, 0.079009, 10.128663, 0},
- {-0.253785, 0.074220, 10.125072, 0},
- {-0.238223, 0.062249, 10.132255, 0},
- {-0.243011, 0.068235, 10.119086, 0},
- {-0.240617, 0.074220, 10.132255, 0},
- {-0.272939, 0.076614, 10.116693, 0},
- {-0.234632, 0.075417, 10.138240, 0},
- {-0.241814, 0.073023, 10.085567, 0},
- {-0.246603, 0.075417, 10.163380, 0},
- {-0.248997, 0.058658, 10.093947, 0},
- {-0.243011, 0.070629, 10.146620, 0},
- {-0.238223, 0.074220, 10.110707, 0},
- {-0.252588, 0.065841, 10.141831, 0},
- {-0.229843, 0.074220, 10.137043, 0},
- {-0.248997, 0.076614, 10.099933, 0},
- {-0.229843, 0.081403, 10.157393, 0},
- {-0.243011, 0.082600, 10.074794, 0},
- {-0.250194, 0.071826, 10.164577, 0},
- {-0.263362, 0.076614, 10.103524, 0},
- {-0.260968, 0.094571, 10.138240, 0},
- {-0.240617, 0.077812, 10.116693, 0},
- {-0.239420, 0.081403, 10.109509, 0},
- {-0.253785, 0.086191, 10.135846, 0},
- {-0.247800, 0.076614, 10.093947, 0},
- {-0.256179, 0.068235, 10.158591, 0},
- {-0.253785, 0.079009, 10.090356, 0},
- {-0.239420, 0.076614, 10.151408, 0},
- {-0.244208, 0.082600, 10.115496, 0},
- {-0.244208, 0.081403, 10.134649, 0},
- {-0.254982, 0.088585, 10.122678, 0},
- {-0.252588, 0.069432, 10.120284, 0},
- {-0.247800, 0.077812, 10.137043, 0},
- {-0.250194, 0.076614, 10.117889, 0},
- {-0.238223, 0.077812, 10.121481, 0},
- {-0.245406, 0.065841, 10.186124, 0},
- {-0.233435, 0.065841, 10.046063, 0},
- {-0.237026, 0.094571, 10.243585, 0},
- {-0.231040, 0.093374, 10.014939, 0},
- {-0.243011, 0.084994, 10.223234, 0},
- {-0.256179, 0.064643, 9.987406, 0},
- {-0.250194, 0.098162, 10.247176, 0},
- {-0.229843, 0.073023, 9.891638, 0},
- {-0.268150, 0.062249, 10.406390, 0},
- {-0.247800, 0.073023, 9.883258, 0},
- {-0.237026, 0.076614, 10.360901, 0},
- {-0.247800, 0.081403, 9.975434, 0},
- {-0.225055, 0.080206, 10.178942, 0},
- {-0.263362, 0.071826, 10.163380, 0},
- {-0.237026, 0.076614, 10.062823, 0},
- {-0.265756, 0.075417, 10.214854, 0},
- {-0.234632, 0.083797, 10.053246, 0},
- {-0.254982, 0.071826, 10.210066, 0},
- {-0.241814, 0.076614, 10.001771, 0},
- {-0.221464, 0.117316, 10.239994, 0},
- {-0.269348, 0.076614, 10.064020, 0},
- {-0.220266, 0.092177, 10.166970, 0},
- {-0.252588, 0.075417, 10.111904, 0},
- {-0.232237, 0.068235, 10.122678, 0},
- {-0.259771, 0.075417, 10.110707, 0},
- {-0.246603, 0.095768, 10.137043, 0},
- {-0.235829, 0.076614, 10.138240, 0},
- {-0.256179, 0.071826, 10.102327, 0},
- {-0.229843, 0.089783, 10.175350, 0},
- {-0.260968, 0.082600, 10.089159, 0},
- {-0.225055, 0.086191, 10.169365, 0},
- {-0.262165, 0.087388, 10.103524, 0},
- {-0.234632, 0.077812, 10.149014, 0},
- {-0.241814, 0.070629, 10.079582, 0},
- {-0.256179, 0.077812, 10.163380, 0},
- {-0.226252, 0.068235, 10.096342, 0},
- {-0.253785, 0.080206, 10.117889, 0},
- {-0.244208, 0.077812, 10.163380, 0},
- {-0.269348, 0.076614, 10.097539, 0},
- {-0.238223, 0.069432, 10.169365, 0},
- {-0.254982, 0.068235, 10.096342, 0},
- {-0.231040, 0.061052, 10.159788, 0},
- {-0.248997, 0.075417, 10.079582, 0},
- {-0.258574, 0.071826, 10.162182, 0},
- {-0.232237, 0.079009, 10.102327, 0},
- {-0.256179, 0.100556, 10.138240, 0},
- {-0.232237, 0.084994, 10.116693, 0},
- {-0.235829, 0.080206, 10.110707, 0},
- {-0.225055, 0.065841, 10.129861, 0},
- {-0.217872, 0.082600, 10.090356, 0},
- {-0.244208, 0.081403, 10.157393, 0},
+ { -6.536166, 0.264559, 7.560884, 0 },
+ { -6.253651, 0.108936, 8.167813, 0 },
+ { -5.890929, -0.029928, 8.061272, 0 },
+ { -5.833468, -0.045490, 8.250414, 0 },
+ { -5.932828, 0.038307, 8.573630, 0 },
+ { -5.995077, 0.104148, 8.634683, 0 },
+ { -6.080071, 0.181959, 8.317451, 0 },
+ { -6.069297, 0.177171, 8.151054, 0 },
+ { -5.978318, 0.113724, 8.407233, 0 },
+ { -5.895718, 0.033519, 8.592784, 0 },
+ { -5.828680, -0.022745, 8.299495, 0 },
+ { -5.768825, -0.070629, 7.958321, 0 },
+ { -5.770022, -0.089783, 8.028950, 0 },
+ { -5.832272, -0.074220, 8.360547, 0 },
+ { -5.880156, -0.067038, 8.488636, 0 },
+ { -5.987895, -0.017957, 8.342590, 0 },
+ { -6.148306, 0.014365, 8.317451, 0 },
+ { -6.337448, 0.102951, 8.492228, 0 },
+ { -6.411668, 0.148440, 8.571237, 0 },
+ { -6.341039, 0.099359, 8.250414, 0 },
+ { -6.232103, 0.067038, 7.899663, 0 },
+ { -6.172248, 0.100556, 8.152251, 0 },
+ { -6.095634, 0.111330, 8.632288, 0 },
+ { -6.033384, 0.126893, 8.614332, 0 },
+ { -5.936419, 0.131681, 8.136689, 0 },
+ { -5.931631, 0.205901, 7.739252, 0 },
+ { -5.986697, 0.271742, 7.870933, 0 },
+ { -6.040567, 0.250194, 8.099579, 0 },
+ { -6.077677, 0.244208, 8.191755, 0 },
+ { -6.071692, 0.277727, 8.146266, 0 },
+ { -5.953178, 0.292092, 8.025358, 0 },
+ { -5.847834, 0.330400, 7.942759, 0 },
+ { -5.776008, 0.392649, 8.036133, 0 },
+ { -5.680240, 0.417788, 7.892480, 0 },
+ { -5.617990, 0.458489, 7.609965, 0 },
+ { -5.550953, 0.496797, 7.418429, 0 },
+ { -5.301956, 0.369904, 8.050498, 0 },
+ { -5.276817, 0.290895, 9.167392, 0 },
+ { -5.890929, 0.215478, 9.044091, 0 },
+ { -6.495465, 0.108936, 9.111129, 0 },
+ { -6.545743, -0.049081, 9.390053, 0 },
+ { -5.966347, -0.161609, 9.362519, 0 },
+ { -5.325898, -0.117316, 8.969871, 0 },
+ { -5.263649, 0.105345, 8.404840, 0 },
+ { -5.620385, 0.336385, 8.085214, 0 },
+ { -5.886141, 0.472855, 8.037330, 0 },
+ { -5.704182, 0.427365, 8.032541, 0 },
+ { -5.359417, 0.301669, 7.813472, 0 },
+ { -5.331883, 0.329203, 7.632710, 0 },
+ { -5.483915, 0.433350, 7.621936, 0 },
+ { -5.862199, 0.703895, 8.079228, 0 },
+ { -5.808330, 0.616507, 9.142253, 0 },
+ { -5.513843, 0.481234, 9.751576, 0 },
+ { -5.365402, 0.470460, 9.706087, 0 },
+ { -5.378571, 0.440533, 9.333789, 0 },
+ { -5.637144, 0.565031, 8.905227, 0 },
+ { -5.776008, 0.560243, 8.019373, 0 },
+ { -5.779599, 0.676362, 7.132322, 0 },
+ { -5.549756, 0.760159, 7.116760, 0 },
+ { -5.303153, 0.730231, 7.817063, 0 },
+ { -5.206188, 0.831985, 8.506593, 0 },
+ { -5.151122, 0.725443, 8.941140, 0 },
+ { -5.292379, 0.556652, 9.176969, 0 },
+ { -5.622779, 0.563834, 9.362519, 0 },
+ { -5.481521, 0.433350, 9.410403, 0 },
+ { -5.045777, -0.074220, 9.109931, 0 },
+ { -5.035003, -0.328005, 8.900438, 0 },
+ { -5.307941, -0.389058, 9.000996, 0 },
+ { -5.561727, -0.269348, 9.169786, 0 },
+ { -5.603625, 0.213084, 9.216474, 0 },
+ { -5.357023, 0.697909, 9.339774, 0 },
+ { -5.081690, 0.764947, 9.429557, 0 },
+ { -5.063733, 0.520739, 9.349351, 0 },
+ { -5.212173, 0.463278, 9.210487, 0 },
+ { -5.079296, 0.622492, 9.057259, 0 },
+ { -4.827904, 0.758961, 8.755589, 0 },
+ { -4.689041, 0.723048, 8.749604, 0 },
+ { -4.681858, 0.731428, 9.129085, 0 },
+ { -4.598061, 0.723048, 9.536098, 0 },
+ { -4.378992, 0.730231, 9.668977, 0 },
+ { -4.214989, 0.672770, 9.102749, 0 },
+ { -4.241325, 0.641646, 8.643063, 0 },
+ { -4.289209, 0.708683, 8.941140, 0 },
+ { -4.304772, 0.984016, 9.394841, 0 },
+ { -4.106053, 0.980425, 9.239218, 0 },
+ { -3.926488, 0.615309, 8.754393, 0 },
+ { -4.012679, 0.414197, 8.646653, 0 },
+ { -4.191047, 0.730231, 9.080004, 0 },
+ { -4.211398, 1.057039, 9.763548, 0 },
+ { -4.055775, 0.944512, 9.933537, 0 },
+ { -3.976766, 0.493205, 9.303862, 0 },
+ { -4.319137, 0.397437, 8.835795, 0 },
+ { -4.368218, 0.577002, 9.014163, 0 },
+ { -4.213792, 0.700303, 9.281116, 0 },
+ { -4.164711, 0.563834, 9.527719, 0 },
+ { -4.132390, 0.458489, 9.472652, 0 },
+ { -4.106053, 0.392649, 9.238021, 0 },
+ { -4.090491, 0.524330, 9.093172, 0 },
+ { -4.052184, 0.738611, 9.153027, 0 },
+ { -4.015073, 0.524330, 9.047682, 0 },
+ { -4.149149, 0.454898, 8.930367, 0 },
+ { -4.250902, 0.724246, 9.131479, 0 },
+ { -4.231749, 0.701501, 9.166195, 0 },
+ { -4.356247, 0.757764, 9.208094, 0 },
+ { -4.443635, 0.785298, 9.235627, 0 },
+ { -4.355050, 0.804451, 9.149436, 0 },
+ { -4.307166, 0.567425, 9.187743, 0 },
+ { -4.550177, 0.476446, 9.249992, 0 },
+ { -4.790794, 0.457292, 9.175772, 0 },
+ { -4.935644, 0.417788, 9.200911, 0 },
+ { -4.940432, 0.588973, 9.419980, 0 },
+ { -4.709392, 0.357933, 9.624684, 0 },
+ { -4.763261, 0.093374, 9.773125, 0 },
+ { -5.021835, 0.171185, 9.756365, 0 },
+ { -5.087675, 0.294487, 9.680948, 0 },
+ { -4.916490, 0.357933, 9.610319, 0 },
+ { -4.729742, 0.360327, 9.296679, 0 },
+ { -4.635171, 0.266953, 8.780728, 0 },
+ { -4.843467, 0.410605, 8.383291, 0 },
+ { -4.898533, 0.500388, 8.177390, 0 },
+ { -4.692632, 0.489614, 8.313860, 0 },
+ { -4.566936, 0.451307, 8.595179, 0 },
+ { -4.624397, 0.457292, 8.774743, 0 },
+ { -4.781218, 0.441730, 8.777138, 0 },
+ { -4.916490, 0.410605, 8.816642, 0 },
+ { -5.014652, 0.482431, 8.795094, 0 },
+ { -4.830298, 0.306458, 8.991419, 0 },
+ { -5.154713, 0.448913, 8.974659, 0 },
+ { -5.114011, 0.424971, 8.789108, 0 },
+ { -4.894942, 0.238223, 8.692143, 0 },
+ { -4.979936, 0.184353, 8.980644, 0 },
+ { -5.267240, 0.381875, 9.326607, 0 },
+ { -5.289985, 0.413000, 9.498989, 0 },
+ { -5.128376, 0.320823, 9.273934, 0 },
+ { -4.978739, 0.312443, 8.930367, 0 },
+ { -5.054156, 0.391452, 8.816642, 0 },
+ { -5.224144, 0.409408, 8.898045, 0 },
+ { -5.287591, 0.392649, 8.862131, 0 },
+ { -5.182246, 0.426168, 8.808262, 0 },
+ { -5.039791, 0.471657, 8.797488, 0 },
+ { -4.969162, 0.490811, 8.793897, 0 },
+ { -5.032609, 0.511162, 8.804670, 0 },
+ { -5.021835, 0.465672, 8.822627, 0 },
+ { -4.967965, 0.496797, 8.820233, 0 },
+ { -4.969162, 0.571017, 8.796291, 0 },
+ { -4.904519, 0.560243, 8.785517, 0 },
+ { -4.750093, 0.547075, 8.775940, 0 },
+ { -4.687844, 0.500388, 8.554477, 0 },
+ { -4.741713, 0.487220, 8.224077, 0 },
+ { -4.880577, 0.569820, 8.147463, 0 },
+ { -4.959586, 0.610521, 8.506593, 0 },
+ { -4.977542, 0.555454, 8.856146, 0 },
+ { -4.910504, 0.424971, 8.870511, 0 },
+ { -4.947615, 0.316034, 8.845372, 0 },
+ { -5.177458, 0.336385, 9.156618, 0 },
+ { -5.345052, 0.371101, 9.455894, 0 },
+ { -5.370191, 0.402226, 9.381673, 0 },
+ { -5.357023, 0.372298, 9.232036, 0 },
+ { -5.309139, 0.289698, 9.148238, 0 },
+ { -5.236115, 0.247800, 9.085989, 0 },
+ { -5.159501, 0.211887, 9.010572, 0 },
+ { -5.081690, 0.173579, 8.878891, 0 },
+ { -5.049368, 0.208295, 8.710100, 0 },
+ { -5.026623, 0.229843, 8.664610, 0 },
+ { -5.032609, 0.237026, 8.772349, 0 },
+ { -4.967965, 0.233435, 8.868117, 0 },
+ { -4.844664, 0.164003, 8.799882, 0 },
+ { -4.906913, 0.155623, 8.500607, 0 },
+ { -5.141545, 0.264559, 8.359349, 0 },
+ { -5.264846, 0.310049, 8.640668, 0 },
+ { -5.348643, 0.306458, 8.961491, 0 },
+ { -5.366600, 0.301669, 8.968674, 0 },
+ { -5.404907, 0.298078, 8.802277, 0 },
+ { -5.386950, 0.259771, 8.801080, 0 },
+ { -5.335475, 0.208295, 8.759181, 0 },
+ { -5.300759, 0.174777, 8.723268, 0 },
+ { -5.237313, 0.147243, 8.762773, 0 },
+ { -5.303153, 0.185551, 8.772349, 0 },
+ { -5.394133, 0.204704, 8.888468, 0 },
+ { -5.383359, 0.167594, 8.965082, 0 },
+ { -5.257663, 0.110133, 8.893256, 0 },
+ { -5.116405, 0.039504, 8.738831, 0 },
+ { -5.194217, 0.044293, 8.644259, 0 },
+ { -5.336672, 0.111330, 8.772349, 0 },
+ { -5.389344, 0.132878, 8.972264, 0 },
+ { -5.400118, 0.136469, 8.959097, 0 },
+ { -5.455185, 0.185551, 8.850161, 0 },
+ { -5.519828, 0.210690, 8.804670, 0 },
+ { -5.555741, 0.210690, 8.898045, 0 },
+ { -5.507857, 0.222661, 8.835795, 0 },
+ { -5.402513, 0.205901, 8.598769, 0 },
+ { -5.368994, 0.257377, 8.353364, 0 },
+ { -5.437228, 0.366313, 8.394066, 0 },
+ { -5.401315, 0.345962, 8.656230, 0 },
+ { -5.341460, 0.350750, 8.723268, 0 },
+ { -5.272028, 0.362721, 8.585602, 0 },
+ { -5.282803, 0.387860, 8.337802, 0 },
+ { -5.285197, 0.420182, 8.268370, 0 },
+ { -5.250481, 0.415394, 8.337802, 0 },
+ { -5.185837, 0.379481, 8.416810, 0 },
+ { -5.161895, 0.356736, 8.468286, 0 },
+ { -5.203794, 0.344765, 8.577222, 0 },
+ { -5.272028, 0.306458, 8.719677, 0 },
+ { -5.315124, 0.271742, 8.868117, 0 },
+ { -5.337869, 0.296881, 8.939943, 0 },
+ { -5.376176, 0.299275, 8.894453, 0 },
+ { -5.442017, 0.318429, 8.793897, 0 },
+ { -5.452791, 0.331597, 8.714889, 0 },
+ { -5.412089, 0.289698, 8.700523, 0 },
+ { -5.406104, 0.251391, 8.773546, 0 },
+ { -5.368994, 0.252588, 8.866920, 0 },
+ { -5.323504, 0.240617, 8.942337, 0 },
+ { -5.333081, 0.231040, 9.015361, 0 },
+ { -5.377373, 0.231040, 8.980644, 0 },
+ { -5.450397, 0.292092, 8.865723, 0 },
+ { -5.483915, 0.336385, 8.750801, 0 },
+ { -5.474339, 0.355539, 8.653836, 0 },
+ { -5.404907, 0.342371, 8.593981, 0 },
+ { -5.243298, 0.234632, 8.598769, 0 },
+ { -5.164289, 0.198719, 8.635880, 0 },
+ { -5.214568, 0.248997, 8.646653, 0 },
+ { -5.316321, 0.288501, 8.589192, 0 },
+ { -5.452791, 0.343568, 8.579616, 0 },
+ { -5.509054, 0.366313, 8.670595, 0 },
+ { -5.474339, 0.319626, 8.686158, 0 },
+ { -5.384556, 0.275333, 8.689749, 0 },
+ { -5.365402, 0.268150, 8.750801, 0 },
+ { -5.437228, 0.357933, 8.748407, 0 },
+ { -5.470747, 0.402226, 8.730451, 0 },
+ { -5.386950, 0.362721, 8.672990, 0 },
+ { -5.339066, 0.363918, 8.700523, 0 },
+ { -5.295970, 0.398634, 8.793897, 0 },
+ { -5.307941, 0.413000, 8.899241, 0 },
+ { -5.295970, 0.392649, 8.924380, 0 },
+ { -5.287591, 0.405817, 8.936352, 0 },
+ { -5.269634, 0.417788, 8.896848, 0 },
+ { -5.342658, 0.471657, 8.640668, 0 },
+ { -5.464762, 0.557849, 8.434767, 0 },
+ { -5.467156, 0.575805, 8.456315, 0 },
+ { -5.443214, 0.561440, 8.497016, 0 },
+ { -5.440820, 0.574608, 8.524549, 0 },
+ { -5.438426, 0.598550, 8.480257, 0 },
+ { -5.348643, 0.553060, 8.530535, 0 },
+ { -5.238510, 0.509965, 8.638274, 0 },
+ { -5.155910, 0.445321, 8.657428, 0 },
+ { -5.111617, 0.395043, 8.583207, 0 },
+ { -5.115209, 0.365116, 8.610741, 0 },
+ { -5.176260, 0.344765, 8.625106, 0 },
+ { -5.254072, 0.373495, 8.711297, 0 },
+ { -5.267240, 0.379481, 8.808262, 0 },
+ { -5.238510, 0.329203, 8.795094, 0 },
+ { -5.266043, 0.282516, 8.694537, 0 },
+ { -5.410892, 0.308852, 8.599967, 0 },
+ { -5.538982, 0.337582, 8.520958, 0 },
+ { -5.544967, 0.344765, 8.590390, 0 },
+ { -5.458776, 0.276530, 8.730451, 0 },
+ { -5.408498, 0.211887, 8.729254, 0 },
+ { -5.450397, 0.195127, 8.633486, 0 },
+ { -5.509054, 0.216675, 8.659822, 0 },
+ { -5.483915, 0.190339, 8.823824, 0 },
+ { -5.430046, 0.169988, 9.004586, 0 },
+ { -5.392936, 0.186748, 9.078807, 0 },
+ { -5.406104, 0.197522, 9.024938, 0 },
+ { -5.462368, 0.269348, 8.857343, 0 },
+ { -5.462368, 0.290895, 8.724465, 0 },
+ { -5.409695, 0.284910, 8.667005, 0 },
+ { -5.389344, 0.288501, 8.643063, 0 },
+ { -5.354629, 0.284910, 8.577222, 0 },
+ { -5.329489, 0.287304, 8.591587, 0 },
+ { -5.280408, 0.282516, 8.658625, 0 },
+ { -5.206188, 0.225055, 8.695735, 0 },
+ { -5.169078, 0.235829, 8.741224, 0 },
+ { -5.181049, 0.256179, 8.693340, 0 },
+ { -5.245692, 0.262165, 8.619121, 0 },
+ { -5.334278, 0.257377, 8.613134, 0 },
+ { -5.388147, 0.248997, 8.681370, 0 },
+ { -5.376176, 0.240617, 8.742421, 0 },
+ { -5.360614, 0.199916, 8.707705, 0 },
+ { -5.443214, 0.190339, 8.631091, 0 },
+ { -5.489901, 0.172382, 8.549688, 0 },
+ { -5.524617, 0.192733, 8.529338, 0 },
+ { -5.518631, 0.189142, 8.562857, 0 },
+ { -5.479127, 0.158017, 8.555674, 0 },
+ { -5.499477, 0.140061, 8.599967, 0 },
+ { -5.519828, 0.130484, 8.643063, 0 },
+ { -5.493492, 0.090980, 8.652639, 0 },
+ { -5.458776, 0.074220, 8.610741, 0 },
+ { -5.483915, 0.107739, 8.635880, 0 },
+ { -5.445608, 0.087388, 8.746013, 0 },
+ { -5.422863, 0.052672, 8.787911, 0 },
+ { -5.402513, 0.032322, 8.768758, 0 },
+ { -5.373782, -0.007183, 8.802277, 0 },
+ { -5.371388, -0.031125, 8.772349, 0 },
+ { -5.416878, -0.052672, 8.682567, 0 },
+ { -5.614399, -0.032322, 8.693340, 0 },
+ { -5.582078, 0.015562, 8.038527, 0 },
+ { -5.532996, -0.019154, 8.003811, 1 },
+ { -5.451593, -0.088585, 8.389277, 0 },
+ { -5.433637, -0.120907, 8.461103, 0 },
+ { -5.456382, -0.082600, 8.352167, 0 },
+ { -5.480324, -0.110133, 8.429978, 0 },
+ { -5.503069, -0.126893, 8.602361, 0 },
+ { -5.524617, -0.173579, 8.689749, 0 },
+ { -5.519828, -0.161609, 8.710100, 0 },
+ { -5.448002, -0.165200, 8.803473, 0 },
+ { -5.337869, -0.209493, 8.835795, 0 },
+ { -5.226539, -0.217872, 8.792700, 0 },
+ { -5.204991, -0.144849, 8.779531, 0 },
+ { -5.155910, -0.038307, 8.741224, 0 },
+ { -5.038594, 0.025139, 8.692143, 0 },
+ { -4.826707, 0.129287, 8.741224, 0 },
+ { -4.588484, 0.221464, 9.275131, 0 },
+ { -4.413708, 0.146046, 9.674962, 0 },
+ { -4.571725, 0.420182, 9.512156, 0 },
+ { -4.693829, 0.806845, 9.115917, 0 },
+ { -4.513067, 1.146822, 8.775940, 0 },
+ { -3.907335, 0.906205, 8.744816, 0 },
+ { -3.440465, 0.709880, 8.558068, 0 },
+ { -3.076547, 0.870292, 8.097184, 0 },
+ { -2.567780, 0.849941, 7.629118, 0 },
+ { -0.930147, -0.430956, 9.020149, 0 },
+ { 0.472855, -1.265335, 13.321329, 0 },
+ { -0.475249, -0.396240, 11.602294, 0 },
+ { -2.302023, 0.135272, 10.661373, 0 },
+ { -2.796426, -0.083797, 11.195279, 0 },
+ { -2.404974, -0.368707, 10.447092, 0 },
+ { -1.205480, -0.381875, 9.781505, 0 },
+ { -0.250194, 0.064643, 9.928748, 0 },
+ { -0.004788, 0.374692, 9.695313, 0 },
+ { 0.256179, -0.470460, 8.904030, 0 },
+ { 0.268150, -0.964863, 8.276750, 0 },
+ { 0.314837, -0.756567, 8.742421, 0 },
+ { 0.496797, -0.694318, 9.910791, 0 },
+ { 0.828393, -0.748188, 10.779886, 0 },
+ { 0.738611, -0.306458, 11.670528, 0 },
+ { 0.616507, -0.045490, 11.973394, 0 },
+ { 0.690727, -0.164003, 11.194082, 0 },
+ { 0.632069, -0.343568, 10.463851, 0 },
+ { 0.422576, 0.026336, 10.319002, 0 },
+ { 0.520739, 0.468066, 10.074794, 0 },
+ { 0.845153, 0.277727, 9.525325, 0 },
+ { 1.058236, -0.199916, 9.085989, 0 },
+ { 1.198297, -0.499191, 9.630670, 0 },
+ { 1.109712, -0.314837, 10.516523, 0 },
+ { 1.086967, 0.258574, 10.805025, 0 },
+ { 1.313219, 0.523133, 10.685315, 0 },
+ { 1.334767, 0.202310, 10.316608, 0 },
+ { 1.298854, -0.199916, 9.993391, 0 },
+ { 1.471236, -0.282516, 10.037683, 0 },
+ { 1.620873, 0.053870, 9.892835, 0 },
+ { 1.553836, 0.363918, 9.296679, 0 },
+ { 1.425746, 0.114922, 8.937549, 0 },
+ { 1.545456, -0.174777, 9.566027, 0 },
+ { 1.985989, 0.075417, 10.395617, 0 },
+ { 2.272096, 0.312443, 10.295060, 0 },
+ { 2.181116, 0.196324, 9.525325, 0 },
+ { 1.965638, 0.197522, 9.500186, 0 },
+ { 2.054224, -0.038307, 9.800658, 0 },
+ { 1.924937, 0.196324, 9.728832, 0 },
+ { 2.146400, 0.402226, 9.747986, 0 },
+ { 2.321177, 0.282516, 9.983814, 0 },
+ { 2.279279, 0.118513, 7.716507, 0 },
+ { 2.229000, -0.113724, 9.612713, 0 },
+ { 2.345119, 0.343568, 11.982971, 0 },
+ { 2.196679, 0.189142, 9.917974, 0 },
+ { 2.218226, -0.119710, 9.633064, 0 },
+ { 2.020705, 0.239420, 9.703692, 0 },
+ { 1.997960, 0.318429, 9.247598, 0 },
+ { 1.975215, 0.132878, 8.886073, 0 },
+ { 1.841140, 0.253785, 8.754393, 0 },
+ { 1.507149, 0.458489, 8.775940, 0 },
+ { 1.295262, 0.497994, 9.170983, 0 },
+ { 1.291671, 0.102951, 9.712072, 0 },
+ { 1.267729, 0.034716, 9.686934, 0 },
+ { 1.474827, -0.047884, 9.932339, 0 },
+ { 1.121683, -0.041899, 10.319002, 0 },
+ { 0.475249, 0.349553, 11.362873, 0 },
+ { 0.029928, 0.153229, 13.443434, 0 },
+ { 1.442506, -0.270545, 12.089513, 0 },
+ { 0.821211, 0.186748, 10.431530, 0 },
+ { 0.302866, 0.573411, 9.538493, 0 },
+ { 0.973242, -0.051475, 8.095987, 0 },
+ { 1.428140, -1.648407, 7.060496, 0 },
+ { 1.292868, -2.129641, 8.062469, 0 },
+ { 0.068235, 0.414197, 8.157040, 0 },
+ { -1.018732, 1.418563, 9.985011, 0 },
+ { -1.479616, 1.746569, 18.444918, 0 },
+ { 0.362721, 0.951695, 11.461036, 0 },
+ { 0.283713, -0.120907, 8.001416, 0 },
+ { -0.320823, 0.131681, 11.031277, 0 },
+ { -0.141258, 0.141258, 9.783898, 0 },
+ { -0.098162, 0.118513, 10.248373, 0 },
+ { -0.278924, 0.311246, 9.223656, 0 },
+ { -0.034716, 0.162806, 9.734818, 0 },
+ { -0.282516, -0.306458, 12.023673, 0 },
+ { -0.219069, 0.069432, 9.692919, 0 },
+ { -0.235829, 0.088585, 10.111904, 0 },
+ { -0.243011, 0.071826, 10.181335, 0 },
+ { -0.237026, 0.084994, 10.177745, 0 },
+ { -0.246603, 0.079009, 10.078385, 0 },
+ { -0.222661, 0.083797, 10.192110, 0 },
+ { -0.252588, 0.067038, 10.103524, 0 },
+ { -0.226252, 0.084994, 10.156197, 0 },
+ { -0.265756, 0.071826, 10.116693, 0 },
+ { -0.235829, 0.083797, 10.168168, 0 },
+ { -0.251391, 0.083797, 10.108313, 0 },
+ { -0.248997, 0.083797, 10.155000, 0 },
+ { -0.228646, 0.083797, 10.122678, 0 },
+ { -0.266953, 0.067038, 10.104721, 0 },
+ { -0.233435, 0.074220, 10.141831, 0 },
+ { -0.259771, 0.080206, 10.107116, 0 },
+ { -0.245406, 0.080206, 10.166970, 0 },
+ { -0.256179, 0.075417, 10.099933, 0 },
+ { -0.243011, 0.070629, 10.153803, 0 },
+ { -0.256179, 0.073023, 10.090356, 0 },
+ { -0.258574, 0.077812, 10.200489, 0 },
+ { -0.253785, 0.063446, 10.095144, 0 },
+ { -0.245406, 0.073023, 10.135846, 0 },
+ { -0.251391, 0.082600, 10.134649, 0 },
+ { -0.251391, 0.068235, 10.116693, 0 },
+ { -0.247800, 0.079009, 10.164577, 0 },
+ { -0.244208, 0.075417, 10.115496, 0 },
+ { -0.238223, 0.073023, 10.137043, 0 },
+ { -0.251391, 0.077812, 10.078385, 0 },
+ { -0.235829, 0.077812, 10.131058, 0 },
+ { -0.250194, 0.087388, 10.123875, 0 },
+ { -0.250194, 0.079009, 10.147817, 0 },
+ { -0.254982, 0.064643, 10.110707, 0 },
+ { -0.256179, 0.083797, 10.151408, 0 },
+ { -0.237026, 0.079009, 10.103524, 0 },
+ { -0.256179, 0.079009, 10.137043, 0 },
+ { -0.246603, 0.081403, 10.139438, 0 },
+ { -0.243011, 0.077812, 10.115496, 0 },
+ { -0.254982, 0.063446, 10.159788, 0 },
+ { -0.248997, 0.089783, 10.092751, 0 },
+ { -0.251391, 0.074220, 10.164577, 0 },
+ { -0.246603, 0.079009, 10.117889, 0 },
+ { -0.247800, 0.086191, 10.145423, 0 },
+ { -0.247800, 0.088585, 10.123875, 0 },
+ { -0.254982, 0.075417, 10.122678, 0 },
+ { -0.250194, 0.080206, 10.147817, 0 },
+ { -0.251391, 0.068235, 10.113101, 0 },
+ { -0.246603, 0.074220, 10.147817, 0 },
+ { -0.243011, 0.068235, 10.104721, 0 },
+ { -0.245406, 0.063446, 10.143028, 0 },
+ { -0.250194, 0.075417, 10.121481, 0 },
+ { -0.252588, 0.079009, 10.141831, 0 },
+ { -0.245406, 0.071826, 10.129861, 0 },
+ { -0.240617, 0.079009, 10.135846, 0 },
+ { -0.240617, 0.069432, 10.141831, 0 },
+ { -0.245406, 0.079009, 10.121481, 0 },
+ { -0.252588, 0.069432, 10.160985, 0 },
+ { -0.258574, 0.067038, 10.121481, 0 },
+ { -0.260968, 0.067038, 10.140635, 0 },
+ { -0.250194, 0.068235, 10.127466, 0 },
+ { -0.239420, 0.074220, 10.129861, 0 },
+ { -0.250194, 0.065841, 10.131058, 0 },
+ { -0.245406, 0.074220, 10.128663, 0 },
+ { -0.247800, 0.088585, 10.133451, 0 },
+ { -0.245406, 0.082600, 10.105919, 0 },
+ { -0.251391, 0.067038, 10.133451, 0 },
+ { -0.241814, 0.075417, 10.121481, 0 },
+ { -0.247800, 0.075417, 10.140635, 0 },
+ { -0.254982, 0.080206, 10.132255, 0 },
+ { -0.237026, 0.074220, 10.137043, 0 },
+ { -0.251391, 0.082600, 10.135846, 0 },
+ { -0.247800, 0.095768, 10.135846, 0 },
+ { -0.244208, 0.075417, 10.115496, 0 },
+ { -0.245406, 0.074220, 10.138240, 0 },
+ { -0.239420, 0.080206, 10.137043, 0 },
+ { -0.257377, 0.073023, 10.128663, 0 },
+ { -0.253785, 0.081403, 10.134649, 0 },
+ { -0.256179, 0.061052, 10.137043, 0 },
+ { -0.243011, 0.082600, 10.129861, 0 },
+ { -0.246603, 0.080206, 10.116693, 0 },
+ { -0.240617, 0.080206, 10.120284, 0 },
+ { -0.251391, 0.069432, 10.109509, 0 },
+ { -0.247800, 0.073023, 10.144226, 0 },
+ { -0.248997, 0.077812, 10.110707, 0 },
+ { -0.256179, 0.065841, 10.134649, 0 },
+ { -0.246603, 0.071826, 10.111904, 0 },
+ { -0.265756, 0.075417, 10.123875, 0 },
+ { -0.245406, 0.084994, 10.131058, 0 },
+ { -0.251391, 0.073023, 10.114298, 0 },
+ { -0.247800, 0.090980, 10.145423, 0 },
+ { -0.263362, 0.088585, 10.121481, 0 },
+ { -0.258574, 0.074220, 10.149014, 0 },
+ { -0.252588, 0.069432, 10.114298, 0 },
+ { -0.259771, 0.074220, 10.121481, 0 },
+ { -0.251391, 0.068235, 10.137043, 0 },
+ { -0.245406, 0.074220, 10.131058, 0 },
+ { -0.244208, 0.074220, 10.121481, 0 },
+ { -0.253785, 0.070629, 10.108313, 0 },
+ { -0.256179, 0.077812, 10.144226, 0 },
+ { -0.241814, 0.058658, 10.104721, 0 },
+ { -0.244208, 0.069432, 10.133451, 0 },
+ { -0.241814, 0.081403, 10.113101, 0 },
+ { -0.253785, 0.080206, 10.110707, 0 },
+ { -0.257377, 0.086191, 10.121481, 0 },
+ { -0.252588, 0.080206, 10.129861, 0 },
+ { -0.246603, 0.081403, 10.121481, 0 },
+ { -0.245406, 0.086191, 10.123875, 0 },
+ { -0.251391, 0.076614, 10.153803, 0 },
+ { -0.246603, 0.068235, 10.120284, 0 },
+ { -0.234632, 0.090980, 10.134649, 0 },
+ { -0.253785, 0.080206, 10.098736, 0 },
+ { -0.256179, 0.093374, 10.135846, 0 },
+ { -0.259771, 0.076614, 10.126269, 0 },
+ { -0.240617, 0.074220, 10.147817, 0 },
+ { -0.256179, 0.068235, 10.119086, 0 },
+ { -0.254982, 0.073023, 10.120284, 0 },
+ { -0.250194, 0.082600, 10.143028, 0 },
+ { -0.250194, 0.076614, 10.115496, 0 },
+ { -0.247800, 0.068235, 10.145423, 0 },
+ { -0.241814, 0.077812, 10.122678, 0 },
+ { -0.245406, 0.079009, 10.138240, 0 },
+ { -0.266953, 0.083797, 10.111904, 0 },
+ { -0.254982, 0.074220, 10.116693, 0 },
+ { -0.248997, 0.090980, 10.138240, 0 },
+ { -0.262165, 0.083797, 10.123875, 0 },
+ { -0.245406, 0.081403, 10.128663, 0 },
+ { -0.252588, 0.065841, 10.103524, 0 },
+ { -0.248997, 0.089783, 10.128663, 0 },
+ { -0.250194, 0.070629, 10.108313, 0 },
+ { -0.248997, 0.068235, 10.147817, 0 },
+ { -0.251391, 0.083797, 10.125072, 0 },
+ { -0.258574, 0.070629, 10.125072, 0 },
+ { -0.259771, 0.058658, 10.125072, 0 },
+ { -0.246603, 0.070629, 10.120284, 0 },
+ { -0.243011, 0.064643, 10.128663, 0 },
+ { -0.263362, 0.073023, 10.134649, 0 },
+ { -0.246603, 0.076614, 10.140635, 0 },
+ { -0.246603, 0.084994, 10.122678, 0 },
+ { -0.241814, 0.068235, 10.131058, 0 },
+ { -0.243011, 0.073023, 10.115496, 0 },
+ { -0.252588, 0.074220, 10.157393, 0 },
+ { -0.264559, 0.076614, 10.105919, 0 },
+ { -0.254982, 0.069432, 10.135846, 0 },
+ { -0.234632, 0.075417, 10.126269, 0 },
+ { -0.239420, 0.080206, 10.120284, 0 },
+ { -0.251391, 0.087388, 10.146620, 0 },
+ { -0.238223, 0.069432, 10.126269, 0 },
+ { -0.247800, 0.065841, 10.127466, 0 },
+ { -0.253785, 0.069432, 10.113101, 0 },
+ { -0.252588, 0.079009, 10.144226, 0 },
+ { -0.254982, 0.074220, 10.123875, 0 },
+ { -0.247800, 0.061052, 10.134649, 0 },
+ { -0.248997, 0.067038, 10.119086, 0 },
+ { -0.247800, 0.077812, 10.123875, 0 },
+ { -0.253785, 0.079009, 10.134649, 0 },
+ { -0.246603, 0.084994, 10.111904, 0 },
+ { -0.253785, 0.087388, 10.139438, 0 },
+ { -0.256179, 0.082600, 10.097539, 0 },
+ { -0.240617, 0.087388, 10.149014, 0 },
+ { -0.252588, 0.059855, 10.108313, 0 },
+ { -0.235829, 0.082600, 10.129861, 0 },
+ { -0.247800, 0.094571, 10.127466, 0 },
+ { -0.248997, 0.082600, 10.122678, 0 },
+ { -0.240617, 0.084994, 10.131058, 0 },
+ { -0.253785, 0.077812, 10.116693, 0 },
+ { -0.258574, 0.086191, 10.133451, 0 },
+ { -0.247800, 0.071826, 10.128663, 0 },
+ { -0.247800, 0.074220, 10.132255, 0 },
+ { -0.254982, 0.071826, 10.120284, 0 },
+ { -0.253785, 0.080206, 10.140635, 0 },
+ { -0.269348, 0.076614, 10.132255, 0 },
+ { -0.253785, 0.082600, 10.131058, 0 },
+ { -0.244208, 0.089783, 10.140635, 0 },
+ { -0.247800, 0.073023, 10.110707, 0 },
+ { -0.252588, 0.070629, 10.129861, 0 },
+ { -0.257377, 0.071826, 10.125072, 0 },
+ { -0.252588, 0.074220, 10.117889, 0 },
+ { -0.254982, 0.068235, 10.128663, 0 },
+ { -0.259771, 0.058658, 10.134649, 0 },
+ { -0.252588, 0.070629, 10.119086, 0 },
+ { -0.243011, 0.089783, 10.146620, 0 },
+ { -0.240617, 0.075417, 10.128663, 0 },
+ { -0.254982, 0.063446, 10.145423, 0 },
+ { -0.272939, 0.081403, 10.127466, 0 },
+ { -0.241814, 0.075417, 10.127466, 0 },
+ { -0.233435, 0.073023, 10.125072, 0 },
+ { -0.248997, 0.080206, 10.132255, 0 },
+ { -0.241814, 0.074220, 10.134649, 0 },
+ { -0.266953, 0.068235, 10.133451, 0 },
+ { -0.245406, 0.069432, 10.127466, 0 },
+ { -0.247800, 0.087388, 10.131058, 0 },
+ { -0.247800, 0.082600, 10.129861, 0 },
+ { -0.257377, 0.070629, 10.137043, 0 },
+ { -0.247800, 0.074220, 10.131058, 0 },
+ { -0.252588, 0.086191, 10.114298, 0 },
+ { -0.247800, 0.089783, 10.135846, 0 },
+ { -0.256179, 0.073023, 10.131058, 0 },
+ { -0.257377, 0.080206, 10.133451, 0 },
+ { -0.245406, 0.069432, 10.125072, 0 },
+ { -0.250194, 0.061052, 10.126269, 0 },
+ { -0.252588, 0.079009, 10.135846, 0 },
+ { -0.250194, 0.073023, 10.128663, 0 },
+ { -0.237026, 0.075417, 10.155000, 0 },
+ { -0.247800, 0.079009, 10.140635, 0 },
+ { -0.251391, 0.069432, 10.151408, 0 },
+ { -0.244208, 0.075417, 10.127466, 0 },
+ { -0.252588, 0.071826, 10.111904, 0 },
+ { -0.257377, 0.077812, 10.138240, 0 },
+ { -0.241814, 0.069432, 10.122678, 0 },
+ { -0.253785, 0.071826, 10.139438, 0 },
+ { -0.256179, 0.077812, 10.119086, 0 },
+ { -0.262165, 0.077812, 10.133451, 0 },
+ { -0.252588, 0.061052, 10.132255, 0 },
+ { -0.250194, 0.077812, 10.119086, 0 },
+ { -0.253785, 0.081403, 10.132255, 0 },
+ { -0.253785, 0.079009, 10.117889, 0 },
+ { -0.252588, 0.064643, 10.129861, 0 },
+ { -0.247800, 0.073023, 10.117889, 0 },
+ { -0.253785, 0.065841, 10.126269, 0 },
+ { -0.256179, 0.069432, 10.128663, 0 },
+ { -0.250194, 0.080206, 10.128663, 0 },
+ { -0.257377, 0.084994, 10.107116, 0 },
+ { -0.254982, 0.080206, 10.137043, 0 },
+ { -0.259771, 0.076614, 10.137043, 0 },
+ { -0.265756, 0.063446, 10.132255, 0 },
+ { -0.251391, 0.056264, 10.120284, 0 },
+ { -0.247800, 0.067038, 10.132255, 0 },
+ { -0.247800, 0.074220, 10.126269, 0 },
+ { -0.247800, 0.070629, 10.127466, 0 },
+ { -0.239420, 0.081403, 10.143028, 0 },
+ { -0.254982, 0.081403, 10.129861, 0 },
+ { -0.259771, 0.088585, 10.138240, 0 },
+ { -0.246603, 0.080206, 10.108313, 0 },
+ { -0.252588, 0.086191, 10.125072, 0 },
+ { -0.247800, 0.071826, 10.132255, 0 },
+ { -0.240617, 0.073023, 10.126269, 0 },
+ { -0.256179, 0.075417, 10.134649, 0 },
+ { -0.254982, 0.081403, 10.117889, 0 },
+ { -0.250194, 0.070629, 10.133451, 0 },
+ { -0.254982, 0.064643, 10.137043, 0 },
+ { -0.254982, 0.075417, 10.147817, 0 },
+ { -0.240617, 0.077812, 10.122678, 0 },
+ { -0.239420, 0.083797, 10.153803, 0 },
+ { -0.258574, 0.070629, 10.131058, 0 },
+ { -0.256179, 0.077812, 10.133451, 0 },
+ { -0.265756, 0.080206, 10.143028, 0 },
+ { -0.256179, 0.070629, 10.138240, 0 },
+ { -0.250194, 0.067038, 10.129861, 0 },
+ { -0.245406, 0.071826, 10.126269, 0 },
+ { -0.259771, 0.073023, 10.135846, 0 },
+ { -0.251391, 0.061052, 10.121481, 0 },
+ { -0.254982, 0.075417, 10.150211, 0 },
+ { -0.247800, 0.081403, 10.137043, 0 },
+ { -0.248997, 0.084994, 10.126269, 0 },
+ { -0.257377, 0.082600, 10.135846, 0 },
+ { -0.257377, 0.073023, 10.110707, 0 },
+ { -0.251391, 0.077812, 10.138240, 0 },
+ { -0.238223, 0.064643, 10.116693, 0 },
+ { -0.239420, 0.075417, 10.138240, 0 },
+ { -0.260968, 0.071826, 10.132255, 0 },
+ { -0.253785, 0.094571, 10.132255, 0 },
+ { -0.248997, 0.081403, 10.127466, 0 },
+ { -0.245406, 0.073023, 10.150211, 0 },
+ { -0.252588, 0.080206, 10.120284, 0 },
+ { -0.247800, 0.075417, 10.122678, 0 },
+ { -0.246603, 0.069432, 10.122678, 0 },
+ { -0.246603, 0.090980, 10.119086, 0 },
+ { -0.253785, 0.076614, 10.139438, 0 },
+ { -0.253785, 0.063446, 10.127466, 0 },
+ { -0.248997, 0.094571, 10.146620, 0 },
+ { -0.257377, 0.079009, 10.115496, 0 },
+ { -0.247800, 0.068235, 10.122678, 0 },
+ { -0.244208, 0.080206, 10.117889, 0 },
+ { -0.257377, 0.099359, 10.134649, 0 },
+ { -0.257377, 0.089783, 10.111904, 0 },
+ { -0.247800, 0.073023, 10.133451, 0 },
+ { -0.238223, 0.070629, 10.120284, 0 },
+ { -0.256179, 0.073023, 10.125072, 0 },
+ { -0.257377, 0.063446, 10.144226, 0 },
+ { -0.259771, 0.081403, 10.122678, 0 },
+ { -0.251391, 0.079009, 10.123875, 0 },
+ { -0.256179, 0.068235, 10.122678, 0 },
+ { -0.252588, 0.065841, 10.128663, 0 },
+ { -0.239420, 0.074220, 10.122678, 0 },
+ { -0.247800, 0.073023, 10.138240, 0 },
+ { -0.245406, 0.076614, 10.111904, 0 },
+ { -0.252588, 0.076614, 10.125072, 0 },
+ { -0.259771, 0.059855, 10.122678, 0 },
+ { -0.262165, 0.067038, 10.137043, 0 },
+ { -0.248997, 0.073023, 10.127466, 0 },
+ { -0.248997, 0.076614, 10.132255, 0 },
+ { -0.244208, 0.080206, 10.115496, 0 },
+ { -0.245406, 0.055067, 10.140635, 0 },
+ { -0.251391, 0.059855, 10.135846, 0 },
+ { -0.246603, 0.073023, 10.111904, 0 },
+ { -0.248997, 0.081403, 10.123875, 0 },
+ { -0.248997, 0.070629, 10.126269, 0 },
+ { -0.251391, 0.075417, 10.129861, 0 },
+ { -0.239420, 0.071826, 10.139438, 0 },
+ { -0.244208, 0.076614, 10.109509, 0 },
+ { -0.263362, 0.082600, 10.135846, 0 },
+ { -0.252588, 0.071826, 10.127466, 0 },
+ { -0.241814, 0.067038, 10.122678, 0 },
+ { -0.252588, 0.079009, 10.125072, 0 },
+ { -0.260968, 0.084994, 10.125072, 0 },
+ { -0.245406, 0.080206, 10.119086, 0 },
+ { -0.241814, 0.071826, 10.126269, 0 },
+ { -0.251391, 0.075417, 10.135846, 0 },
+ { -0.254982, 0.068235, 10.127466, 0 },
+ { -0.260968, 0.074220, 10.127466, 0 },
+ { -0.247800, 0.076614, 10.122678, 0 },
+ { -0.258574, 0.067038, 10.114298, 0 },
+ { -0.258574, 0.073023, 10.122678, 0 },
+ { -0.257377, 0.058658, 10.145423, 0 },
+ { -0.254982, 0.063446, 10.127466, 0 },
+ { -0.245406, 0.068235, 10.135846, 0 },
+ { -0.247800, 0.071826, 10.135846, 0 },
+ { -0.256179, 0.068235, 10.138240, 0 },
+ { -0.257377, 0.074220, 10.113101, 0 },
+ { -0.244208, 0.081403, 10.139438, 0 },
+ { -0.241814, 0.061052, 10.131058, 0 },
+ { -0.257377, 0.073023, 10.116693, 0 },
+ { -0.256179, 0.083797, 10.129861, 0 },
+ { -0.240617, 0.084994, 10.121481, 0 },
+ { -0.239420, 0.073023, 10.135846, 0 },
+ { -0.252588, 0.074220, 10.132255, 0 },
+ { -0.252588, 0.077812, 10.127466, 0 },
+ { -0.251391, 0.082600, 10.140635, 0 },
+ { -0.256179, 0.077812, 10.129861, 0 },
+ { -0.254982, 0.064643, 10.117889, 0 },
+ { -0.263362, 0.065841, 10.122678, 0 },
+ { -0.252588, 0.079009, 10.135846, 0 },
+ { -0.248997, 0.075417, 10.127466, 0 },
+ { -0.238223, 0.079009, 10.133451, 0 },
+ { -0.244208, 0.080206, 10.133451, 0 },
+ { -0.254982, 0.076614, 10.150211, 0 },
+ { -0.264559, 0.068235, 10.141831, 0 },
+ { -0.246603, 0.077812, 10.132255, 0 },
+ { -0.262165, 0.070629, 10.134649, 0 },
+ { -0.258574, 0.062249, 10.129861, 0 },
+ { -0.259771, 0.071826, 10.133451, 0 },
+ { -0.243011, 0.086191, 10.125072, 0 },
+ { -0.250194, 0.074220, 10.125072, 0 },
+ { -0.260968, 0.059855, 10.101130, 0 },
+ { -0.252588, 0.063446, 10.129861, 0 },
+ { -0.251391, 0.079009, 10.128663, 0 },
+ { -0.252588, 0.069432, 10.138240, 0 },
+ { -0.246603, 0.074220, 10.141831, 0 },
+ { -0.250194, 0.080206, 10.117889, 0 },
+ { -0.256179, 0.068235, 10.131058, 0 },
+ { -0.258574, 0.058658, 10.110707, 0 },
+ { -0.244208, 0.073023, 10.137043, 0 },
+ { -0.260968, 0.076614, 10.117889, 0 },
+ { -0.245406, 0.081403, 10.119086, 0 },
+ { -0.243011, 0.077812, 10.135846, 0 },
+ { -0.256179, 0.069432, 10.131058, 0 },
+ { -0.245406, 0.079009, 10.121481, 0 },
+ { -0.250194, 0.086191, 10.129861, 0 },
+ { -0.245406, 0.089783, 10.132255, 0 },
+ { -0.241814, 0.077812, 10.147817, 0 },
+ { -0.244208, 0.076614, 10.133451, 0 },
+ { -0.263362, 0.075417, 10.096342, 0 },
+ { -0.250194, 0.058658, 10.134649, 0 },
+ { -0.231040, 0.068235, 10.117889, 0 },
+ { -0.250194, 0.069432, 10.144226, 0 },
+ { -0.263362, 0.073023, 10.117889, 0 },
+ { -0.241814, 0.071826, 10.133451, 0 },
+ { -0.240617, 0.073023, 10.131058, 0 },
+ { -0.237026, 0.082600, 10.116693, 0 },
+ { -0.239420, 0.080206, 10.138240, 0 },
+ { -0.259771, 0.079009, 10.139438, 0 },
+ { -0.266953, 0.071826, 10.140635, 0 },
+ { -0.251391, 0.071826, 10.107116, 0 },
+ { -0.258574, 0.073023, 10.132255, 0 },
+ { -0.243011, 0.090980, 10.132255, 0 },
+ { -0.234632, 0.064643, 10.129861, 0 },
+ { -0.250194, 0.059855, 10.134649, 0 },
+ { -0.238223, 0.081403, 10.140635, 0 },
+ { -0.243011, 0.077812, 10.131058, 0 },
+ { -0.247800, 0.069432, 10.143028, 0 },
+ { -0.247800, 0.067038, 10.135846, 0 },
+ { -0.243011, 0.065841, 10.128663, 0 },
+ { -0.253785, 0.077812, 10.129861, 0 },
+ { -0.244208, 0.080206, 10.107116, 0 },
+ { -0.244208, 0.074220, 10.143028, 0 },
+ { -0.253785, 0.080206, 10.119086, 0 },
+ { -0.247800, 0.070629, 10.139438, 0 },
+ { -0.243011, 0.082600, 10.125072, 0 },
+ { -0.257377, 0.075417, 10.150211, 0 },
+ { -0.263362, 0.077812, 10.152605, 0 },
+ { -0.263362, 0.081403, 10.135846, 0 },
+ { -0.250194, 0.075417, 10.139438, 0 },
+ { -0.248997, 0.077812, 10.131058, 0 },
+ { -0.247800, 0.074220, 10.127466, 0 },
+ { -0.243011, 0.069432, 10.122678, 0 },
+ { -0.251391, 0.079009, 10.133451, 0 },
+ { -0.252588, 0.061052, 10.126269, 0 },
+ { -0.265756, 0.081403, 10.128663, 0 },
+ { -0.244208, 0.064643, 10.122678, 0 },
+ { -0.256179, 0.065841, 10.123875, 0 },
+ { -0.263362, 0.076614, 10.125072, 0 },
+ { -0.252588, 0.079009, 10.126269, 0 },
+ { -0.252588, 0.070629, 10.115496, 0 },
+ { -0.254982, 0.073023, 10.115496, 0 },
+ { -0.234632, 0.070629, 10.123875, 0 },
+ { -0.237026, 0.076614, 10.121481, 0 },
+ { -0.256179, 0.070629, 10.134649, 0 },
+ { -0.268150, 0.073023, 10.129861, 0 },
+ { -0.244208, 0.075417, 10.121481, 0 },
+ { -0.253785, 0.080206, 10.126269, 0 },
+ { -0.259771, 0.075417, 10.120284, 0 },
+ { -0.263362, 0.070629, 10.115496, 0 },
+ { -0.247800, 0.075417, 10.126269, 0 },
+ { -0.243011, 0.068235, 10.152605, 0 },
+ { -0.247800, 0.069432, 10.125072, 0 },
+ { -0.257377, 0.083797, 10.129861, 0 },
+ { -0.247800, 0.075417, 10.129861, 0 },
+ { -0.247800, 0.076614, 10.115496, 0 },
+ { -0.247800, 0.071826, 10.131058, 0 },
+ { -0.258574, 0.083797, 10.125072, 0 },
+ { -0.250194, 0.095768, 10.132255, 0 },
+ { -0.266953, 0.076614, 10.123875, 0 },
+ { -0.256179, 0.079009, 10.152605, 0 },
+ { -0.251391, 0.073023, 10.126269, 0 },
+ { -0.248997, 0.068235, 10.128663, 0 },
+ { -0.243011, 0.073023, 10.134649, 0 },
+ { -0.258574, 0.071826, 10.137043, 0 },
+ { -0.253785, 0.061052, 10.119086, 0 },
+ { -0.250194, 0.073023, 10.138240, 0 },
+ { -0.241814, 0.070629, 10.113101, 0 },
+ { -0.250194, 0.079009, 10.141831, 0 },
+ { -0.237026, 0.070629, 10.128663, 0 },
+ { -0.240617, 0.083797, 10.120284, 0 },
+ { -0.259771, 0.073023, 10.144226, 0 },
+ { -0.232237, 0.068235, 10.122678, 0 },
+ { -0.246603, 0.065841, 10.133451, 0 },
+ { -0.258574, 0.079009, 10.109509, 0 },
+ { -0.245406, 0.075417, 10.131058, 0 },
+ { -0.240617, 0.076614, 10.127466, 0 },
+ { -0.246603, 0.074220, 10.115496, 0 },
+ { -0.247800, 0.068235, 10.129861, 0 },
+ { -0.252588, 0.073023, 10.145423, 0 },
+ { -0.252588, 0.069432, 10.132255, 0 },
+ { -0.248997, 0.062249, 10.110707, 0 },
+ { -0.257377, 0.073023, 10.146620, 0 },
+ { -0.247800, 0.077812, 10.133451, 0 },
+ { -0.233435, 0.075417, 10.123875, 0 },
+ { -0.259771, 0.080206, 10.117889, 0 },
+ { -0.252588, 0.071826, 10.131058, 0 },
+ { -0.257377, 0.077812, 10.128663, 0 },
+ { -0.244208, 0.065841, 10.138240, 0 },
+ { -0.245406, 0.076614, 10.132255, 0 },
+ { -0.259771, 0.074220, 10.134649, 0 },
+ { -0.251391, 0.073023, 10.133451, 0 },
+ { -0.238223, 0.063446, 10.127466, 0 },
+ { -0.246603, 0.052672, 10.128663, 0 },
+ { -0.260968, 0.069432, 10.125072, 0 },
+ { -0.251391, 0.087388, 10.104721, 0 },
+ { -0.243011, 0.074220, 10.120284, 0 },
+ { -0.259771, 0.069432, 10.149014, 0 },
+ { -0.252588, 0.083797, 10.139438, 0 },
+ { -0.252588, 0.070629, 10.134649, 0 },
+ { -0.244208, 0.071826, 10.134649, 0 },
+ { -0.244208, 0.080206, 10.122678, 0 },
+ { -0.263362, 0.076614, 10.126269, 0 },
+ { -0.243011, 0.076614, 10.113101, 0 },
+ { -0.250194, 0.084994, 10.133451, 0 },
+ { -0.247800, 0.081403, 10.151408, 0 },
+ { -0.247800, 0.082600, 10.123875, 0 },
+ { -0.240617, 0.080206, 10.133451, 0 },
+ { -0.254982, 0.074220, 10.135846, 0 },
+ { -0.260968, 0.076614, 10.123875, 0 },
+ { -0.251391, 0.069432, 10.127466, 0 },
+ { -0.251391, 0.080206, 10.140635, 0 },
+ { -0.248997, 0.065841, 10.129861, 0 },
+ { -0.245406, 0.081403, 10.137043, 0 },
+ { -0.248997, 0.096965, 10.128663, 0 },
+ { -0.264559, 0.069432, 10.149014, 0 },
+ { -0.254982, 0.071826, 10.114298, 0 },
+ { -0.257377, 0.071826, 10.140635, 0 },
+ { -0.254982, 0.077812, 10.128663, 0 },
+ { -0.256179, 0.083797, 10.126269, 0 },
+ { -0.254982, 0.063446, 10.143028, 0 },
+ { -0.247800, 0.058658, 10.133451, 0 },
+ { -0.251391, 0.068235, 10.137043, 0 },
+ { -0.245406, 0.080206, 10.102327, 0 },
+ { -0.243011, 0.070629, 10.129861, 0 },
+ { -0.253785, 0.073023, 10.111904, 0 },
+ { -0.251391, 0.076614, 10.145423, 0 },
+ { -0.247800, 0.075417, 10.133451, 0 },
+ { -0.248997, 0.065841, 10.139438, 0 },
+ { -0.248997, 0.063446, 10.125072, 0 },
+ { -0.252588, 0.070629, 10.102327, 0 },
+ { -0.246603, 0.083797, 10.113101, 0 },
+ { -0.237026, 0.074220, 10.116693, 0 },
+ { -0.240617, 0.073023, 10.138240, 0 },
+ { -0.235829, 0.076614, 10.116693, 0 },
+ { -0.247800, 0.073023, 10.141831, 0 },
+ { -0.258574, 0.075417, 10.134649, 0 },
+ { -0.253785, 0.081403, 10.126269, 0 },
+ { -0.250194, 0.082600, 10.121481, 0 },
+ { -0.250194, 0.088585, 10.149014, 0 },
+ { -0.253785, 0.069432, 10.126269, 0 },
+ { -0.252588, 0.083797, 10.128663, 0 },
+ { -0.245406, 0.058658, 10.133451, 0 },
+ { -0.258574, 0.087388, 10.119086, 0 },
+ { -0.253785, 0.064643, 10.131058, 0 },
+ { -0.248997, 0.067038, 10.128663, 0 },
+ { -0.248997, 0.075417, 10.155000, 0 },
+ { -0.251391, 0.079009, 10.132255, 0 },
+ { -0.253785, 0.087388, 10.131058, 0 },
+ { -0.240617, 0.088585, 10.113101, 0 },
+ { -0.247800, 0.077812, 10.134649, 0 },
+ { -0.247800, 0.077812, 10.122678, 0 },
+ { -0.263362, 0.086191, 10.131058, 0 },
+ { -0.243011, 0.084994, 10.129861, 0 },
+ { -0.243011, 0.077812, 10.113101, 0 },
+ { -0.252588, 0.077812, 10.125072, 0 },
+ { -0.248997, 0.076614, 10.096342, 0 },
+ { -0.241814, 0.070629, 10.158591, 0 },
+ { -0.257377, 0.075417, 10.117889, 0 },
+ { -0.250194, 0.076614, 10.131058, 0 },
+ { -0.250194, 0.071826, 10.135846, 0 },
+ { -0.253785, 0.069432, 10.115496, 0 },
+ { -0.248997, 0.069432, 10.144226, 0 },
+ { -0.246603, 0.068235, 10.110707, 0 },
+ { -0.260968, 0.075417, 10.151408, 0 },
+ { -0.246603, 0.074220, 10.113101, 0 },
+ { -0.254982, 0.076614, 10.122678, 0 },
+ { -0.250194, 0.063446, 10.116693, 0 },
+ { -0.233435, 0.077812, 10.134649, 0 },
+ { -0.245406, 0.079009, 10.135846, 0 },
+ { -0.250194, 0.079009, 10.119086, 0 },
+ { -0.264559, 0.086191, 10.109509, 0 },
+ { -0.252588, 0.090980, 10.126269, 0 },
+ { -0.250194, 0.082600, 10.147817, 0 },
+ { -0.238223, 0.070629, 10.125072, 0 },
+ { -0.245406, 0.082600, 10.139438, 0 },
+ { -0.239420, 0.082600, 10.131058, 0 },
+ { -0.251391, 0.087388, 10.147817, 0 },
+ { -0.257377, 0.073023, 10.128663, 0 },
+ { -0.251391, 0.081403, 10.144226, 0 },
+ { -0.254982, 0.086191, 10.120284, 0 },
+ { -0.253785, 0.080206, 10.146620, 0 },
+ { -0.256179, 0.077812, 10.149014, 0 },
+ { -0.248997, 0.083797, 10.128663, 0 },
+ { -0.251391, 0.071826, 10.125072, 0 },
+ { -0.244208, 0.068235, 10.113101, 0 },
+ { -0.252588, 0.070629, 10.132255, 0 },
+ { -0.258574, 0.064643, 10.116693, 0 },
+ { -0.246603, 0.074220, 10.135846, 0 },
+ { -0.247800, 0.070629, 10.123875, 0 },
+ { -0.239420, 0.081403, 10.144226, 0 },
+ { -0.247800, 0.075417, 10.121481, 0 },
+ { -0.259771, 0.073023, 10.103524, 0 },
+ { -0.248997, 0.073023, 10.129861, 0 },
+ { -0.241814, 0.071826, 10.134649, 0 },
+ { -0.235829, 0.079009, 10.127466, 0 },
+ { -0.244208, 0.095768, 10.122678, 0 },
+ { -0.227449, 0.065841, 10.147817, 0 },
+ { -0.251391, 0.074220, 10.135846, 0 },
+ { -0.251391, 0.074220, 10.137043, 0 },
+ { -0.253785, 0.077812, 10.125072, 0 },
+ { -0.259771, 0.071826, 10.135846, 0 },
+ { -0.227449, 0.067038, 10.122678, 0 },
+ { -0.235829, 0.065841, 10.127466, 0 },
+ { -0.251391, 0.076614, 10.128663, 0 },
+ { -0.238223, 0.058658, 10.128663, 0 },
+ { -0.238223, 0.074220, 10.126269, 0 },
+ { -0.246603, 0.084994, 10.140635, 0 },
+ { -0.258574, 0.071826, 10.132255, 0 },
+ { -0.252588, 0.074220, 10.122678, 0 },
+ { -0.245406, 0.076614, 10.121481, 0 },
+ { -0.244208, 0.074220, 10.134649, 0 },
+ { -0.248997, 0.069432, 10.122678, 0 },
+ { -0.246603, 0.077812, 10.127466, 0 },
+ { -0.256179, 0.083797, 10.133451, 0 },
+ { -0.247800, 0.086191, 10.135846, 0 },
+ { -0.248997, 0.076614, 10.144226, 0 },
+ { -0.253785, 0.073023, 10.120284, 0 },
+ { -0.256179, 0.071826, 10.140635, 0 },
+ { -0.254982, 0.083797, 10.123875, 0 },
+ { -0.247800, 0.076614, 10.131058, 0 },
+ { -0.259771, 0.077812, 10.117889, 0 },
+ { -0.243011, 0.069432, 10.132255, 0 },
+ { -0.250194, 0.075417, 10.120284, 0 },
+ { -0.247800, 0.086191, 10.128663, 0 },
+ { -0.241814, 0.065841, 10.150211, 0 },
+ { -0.250194, 0.075417, 10.128663, 0 },
+ { -0.234632, 0.079009, 10.103524, 0 },
+ { -0.266953, 0.073023, 10.127466, 0 },
+ { -0.237026, 0.080206, 10.119086, 0 },
+ { -0.254982, 0.075417, 10.151408, 0 },
+ { -0.248997, 0.063446, 10.129861, 0 },
+ { -0.254982, 0.071826, 10.135846, 0 },
+ { -0.246603, 0.075417, 10.125072, 0 },
+ { -0.237026, 0.069432, 10.126269, 0 },
+ { -0.243011, 0.070629, 10.146620, 0 },
+ { -0.244208, 0.082600, 10.137043, 0 },
+ { -0.263362, 0.071826, 10.138240, 0 },
+ { -0.250194, 0.074220, 10.149014, 0 },
+ { -0.250194, 0.070629, 10.137043, 0 },
+ { -0.253785, 0.080206, 10.122678, 0 },
+ { -0.247800, 0.080206, 10.131058, 0 },
+ { -0.237026, 0.082600, 10.134649, 0 },
+ { -0.243011, 0.079009, 10.129861, 0 },
+ { -0.246603, 0.071826, 10.117889, 0 },
+ { -0.256179, 0.074220, 10.135846, 0 },
+ { -0.250194, 0.075417, 10.128663, 0 },
+ { -0.247800, 0.074220, 10.120284, 0 },
+ { -0.251391, 0.065841, 10.141831, 0 },
+ { -0.248997, 0.062249, 10.115496, 0 },
+ { -0.260968, 0.068235, 10.141831, 0 },
+ { -0.248997, 0.079009, 10.141831, 0 },
+ { -0.247800, 0.075417, 10.156197, 0 },
+ { -0.246603, 0.070629, 10.132255, 0 },
+ { -0.252588, 0.082600, 10.116693, 0 },
+ { -0.252588, 0.074220, 10.122678, 0 },
+ { -0.262165, 0.071826, 10.123875, 0 },
+ { -0.251391, 0.067038, 10.121481, 0 },
+ { -0.239420, 0.081403, 10.113101, 0 },
+ { -0.247800, 0.084994, 10.132255, 0 },
+ { -0.252588, 0.075417, 10.138240, 0 },
+ { -0.246603, 0.075417, 10.125072, 0 },
+ { -0.246603, 0.076614, 10.109509, 0 },
+ { -0.253785, 0.074220, 10.125072, 0 },
+ { -0.251391, 0.081403, 10.139438, 0 },
+ { -0.243011, 0.073023, 10.114298, 0 },
+ { -0.253785, 0.065841, 10.107116, 0 },
+ { -0.243011, 0.080206, 10.121481, 0 },
+ { -0.253785, 0.069432, 10.129861, 0 },
+ { -0.256179, 0.068235, 10.121481, 0 },
+ { -0.246603, 0.068235, 10.121481, 0 },
+ { -0.254982, 0.075417, 10.121481, 0 },
+ { -0.241814, 0.074220, 10.120284, 0 },
+ { -0.258574, 0.073023, 10.127466, 0 },
+ { -0.235829, 0.074220, 10.128663, 0 },
+ { -0.247800, 0.071826, 10.120284, 0 },
+ { -0.258574, 0.073023, 10.119086, 0 },
+ { -0.256179, 0.082600, 10.125072, 0 },
+ { -0.243011, 0.081403, 10.128663, 0 },
+ { -0.241814, 0.069432, 10.132255, 0 },
+ { -0.252588, 0.074220, 10.135846, 0 },
+ { -0.235829, 0.076614, 10.138240, 0 },
+ { -0.252588, 0.069432, 10.133451, 0 },
+ { -0.257377, 0.087388, 10.129861, 0 },
+ { -0.252588, 0.079009, 10.120284, 0 },
+ { -0.245406, 0.077812, 10.132255, 0 },
+ { -0.244208, 0.077812, 10.105919, 0 },
+ { -0.252588, 0.064643, 10.128663, 0 },
+ { -0.257377, 0.080206, 10.122678, 0 },
+ { -0.227449, 0.075417, 10.122678, 0 },
+ { -0.256179, 0.076614, 10.139438, 0 },
+ { -0.250194, 0.068235, 10.134649, 0 },
+ { -0.244208, 0.080206, 10.145423, 0 },
+ { -0.244208, 0.075417, 10.117889, 0 },
+ { -0.245406, 0.071826, 10.137043, 0 },
+ { -0.251391, 0.069432, 10.132255, 0 },
+ { -0.252588, 0.065841, 10.127466, 0 },
+ { -0.252588, 0.087388, 10.135846, 0 },
+ { -0.250194, 0.083797, 10.140635, 0 },
+ { -0.265756, 0.083797, 10.127466, 0 },
+ { -0.251391, 0.081403, 10.116693, 0 },
+ { -0.243011, 0.073023, 10.131058, 0 },
+ { -0.256179, 0.079009, 10.132255, 0 },
+ { -0.256179, 0.079009, 10.135846, 0 },
+ { -0.259771, 0.080206, 10.139438, 0 },
+ { -0.248997, 0.069432, 10.134649, 0 },
+ { -0.247800, 0.076614, 10.109509, 0 },
+ { -0.251391, 0.069432, 10.140635, 0 },
+ { -0.248997, 0.065841, 10.129861, 0 },
+ { -0.256179, 0.084994, 10.119086, 0 },
+ { -0.253785, 0.082600, 10.111904, 0 },
+ { -0.251391, 0.079009, 10.134649, 0 },
+ { -0.258574, 0.077812, 10.125072, 0 },
+ { -0.254982, 0.062249, 10.108313, 0 },
+ { -0.272939, 0.080206, 10.151408, 0 },
+ { -0.260968, 0.082600, 10.113101, 0 },
+ { -0.244208, 0.086191, 10.123875, 0 },
+ { -0.247800, 0.079009, 10.116693, 0 },
+ { -0.247800, 0.075417, 10.141831, 0 },
+ { -0.259771, 0.076614, 10.120284, 0 },
+ { -0.239420, 0.081403, 10.134649, 0 },
+ { -0.253785, 0.080206, 10.121481, 0 },
+ { -0.262165, 0.074220, 10.119086, 0 },
+ { -0.253785, 0.069432, 10.127466, 0 },
+ { -0.262165, 0.069432, 10.104721, 0 },
+ { -0.252588, 0.084994, 10.120284, 0 },
+ { -0.251391, 0.063446, 10.113101, 0 },
+ { -0.263362, 0.074220, 10.121481, 0 },
+ { -0.259771, 0.068235, 10.135846, 0 },
+ { -0.250194, 0.070629, 10.138240, 0 },
+ { -0.258574, 0.077812, 10.132255, 0 },
+ { -0.252588, 0.067038, 10.135846, 0 },
+ { -0.251391, 0.064643, 10.128663, 0 },
+ { -0.243011, 0.082600, 10.134649, 0 },
+ { -0.238223, 0.084994, 10.144226, 0 },
+ { -0.260968, 0.084994, 10.123875, 0 },
+ { -0.254982, 0.075417, 10.137043, 0 },
+ { -0.259771, 0.075417, 10.111904, 0 },
+ { -0.251391, 0.084994, 10.143028, 0 },
+ { -0.245406, 0.079009, 10.117889, 0 },
+ { -0.252588, 0.074220, 10.149014, 0 },
+ { -0.254982, 0.062249, 10.132255, 0 },
+ { -0.241814, 0.062249, 10.116693, 0 },
+ { -0.247800, 0.074220, 10.151408, 0 },
+ { -0.240617, 0.081403, 10.115496, 0 },
+ { -0.247800, 0.067038, 10.139438, 0 },
+ { -0.250194, 0.079009, 10.126269, 0 },
+ { -0.237026, 0.087388, 10.150211, 0 },
+ { -0.238223, 0.073023, 10.134649, 0 },
+ { -0.241814, 0.080206, 10.140635, 0 },
+ { -0.248997, 0.075417, 10.122678, 0 },
+ { -0.254982, 0.081403, 10.123875, 0 },
+ { -0.257377, 0.067038, 10.138240, 0 },
+ { -0.247800, 0.076614, 10.128663, 0 },
+ { -0.256179, 0.076614, 10.145423, 0 },
+ { -0.241814, 0.080206, 10.132255, 0 },
+ { -0.238223, 0.067038, 10.137043, 0 },
+ { -0.257377, 0.064643, 10.119086, 0 },
+ { -0.243011, 0.081403, 10.129861, 0 },
+ { -0.248997, 0.081403, 10.115496, 0 },
+ { -0.258574, 0.062249, 10.133451, 0 },
+ { -0.247800, 0.070629, 10.119086, 0 },
+ { -0.252588, 0.074220, 10.129861, 0 },
+ { -0.246603, 0.070629, 10.133451, 0 },
+ { -0.245406, 0.073023, 10.102327, 0 },
+ { -0.252588, 0.080206, 10.139438, 0 },
+ { -0.247800, 0.068235, 10.113101, 0 },
+ { -0.254982, 0.074220, 10.126269, 0 },
+ { -0.251391, 0.079009, 10.120284, 0 },
+ { -0.251391, 0.089783, 10.137043, 0 },
+ { -0.252588, 0.065841, 10.127466, 0 },
+ { -0.251391, 0.068235, 10.120284, 0 },
+ { -0.257377, 0.067038, 10.127466, 0 },
+ { -0.241814, 0.081403, 10.128663, 0 },
+ { -0.241814, 0.081403, 10.135846, 0 },
+ { -0.247800, 0.071826, 10.135846, 0 },
+ { -0.250194, 0.070629, 10.138240, 0 },
+ { -0.252588, 0.084994, 10.131058, 0 },
+ { -0.245406, 0.083797, 10.139438, 0 },
+ { -0.244208, 0.075417, 10.123875, 0 },
+ { -0.259771, 0.077812, 10.137043, 0 },
+ { -0.248997, 0.071826, 10.123875, 0 },
+ { -0.246603, 0.086191, 10.152605, 0 },
+ { -0.241814, 0.069432, 10.132255, 0 },
+ { -0.243011, 0.064643, 10.129861, 0 },
+ { -0.245406, 0.073023, 10.129861, 0 },
+ { -0.251391, 0.076614, 10.116693, 0 },
+ { -0.264559, 0.068235, 10.139438, 0 },
+ { -0.247800, 0.073023, 10.105919, 0 },
+ { -0.244208, 0.077812, 10.145423, 0 },
+ { -0.250194, 0.077812, 10.137043, 0 },
+ { -0.252588, 0.064643, 10.126269, 0 },
+ { -0.252588, 0.079009, 10.125072, 0 },
+ { -0.239420, 0.084994, 10.126269, 0 },
+ { -0.246603, 0.067038, 10.137043, 0 },
+ { -0.252588, 0.077812, 10.114298, 0 },
+ { -0.266953, 0.062249, 10.131058, 0 },
+ { -0.264559, 0.076614, 10.114298, 0 },
+ { -0.250194, 0.071826, 10.135846, 0 },
+ { -0.250194, 0.087388, 10.134649, 0 },
+ { -0.246603, 0.082600, 10.147817, 0 },
+ { -0.245406, 0.065841, 10.131058, 0 },
+ { -0.258574, 0.070629, 10.139438, 0 },
+ { -0.251391, 0.081403, 10.111904, 0 },
+ { -0.246603, 0.080206, 10.132255, 0 },
+ { -0.235829, 0.074220, 10.117889, 0 },
+ { -0.243011, 0.075417, 10.123875, 0 },
+ { -0.241814, 0.065841, 10.139438, 0 },
+ { -0.241814, 0.077812, 10.119086, 0 },
+ { -0.247800, 0.084994, 10.153803, 0 },
+ { -0.266953, 0.081403, 10.116693, 0 },
+ { -0.243011, 0.083797, 10.137043, 0 },
+ { -0.257377, 0.074220, 10.109509, 0 },
+ { -0.252588, 0.074220, 10.126269, 0 },
+ { -0.247800, 0.076614, 10.127466, 0 },
+ { -0.243011, 0.068235, 10.111904, 0 },
+ { -0.259771, 0.077812, 10.132255, 0 },
+ { -0.253785, 0.092177, 10.103524, 0 },
+ { -0.243011, 0.086191, 10.123875, 0 },
+ { -0.232237, 0.069432, 10.134649, 0 },
+ { -0.233435, 0.076614, 10.129861, 0 },
+ { -0.257377, 0.068235, 10.114298, 0 },
+ { -0.250194, 0.074220, 10.127466, 0 },
+ { -0.245406, 0.077812, 10.131058, 0 },
+ { -0.251391, 0.077812, 10.123875, 0 },
+ { -0.245406, 0.074220, 10.123875, 0 },
+ { -0.245406, 0.069432, 10.122678, 0 },
+ { -0.254982, 0.071826, 10.119086, 0 },
+ { -0.257377, 0.064643, 10.116693, 0 },
+ { -0.256179, 0.079009, 10.128663, 0 },
+ { -0.241814, 0.062249, 10.098736, 0 },
+ { -0.248997, 0.067038, 10.144226, 0 },
+ { -0.237026, 0.083797, 10.145423, 0 },
+ { -0.253785, 0.076614, 10.120284, 0 },
+ { -0.251391, 0.065841, 10.113101, 0 },
+ { -0.248997, 0.067038, 10.104721, 0 },
+ { -0.244208, 0.073023, 10.134649, 0 },
+ { -0.259771, 0.069432, 10.134649, 0 },
+ { -0.244208, 0.084994, 10.141831, 0 },
+ { -0.257377, 0.076614, 10.126269, 0 },
+ { -0.246603, 0.073023, 10.137043, 0 },
+ { -0.247800, 0.073023, 10.111904, 0 },
+ { -0.243011, 0.073023, 10.144226, 0 },
+ { -0.251391, 0.080206, 10.129861, 0 },
+ { -0.244208, 0.076614, 10.126269, 0 },
+ { -0.246603, 0.069432, 10.135846, 0 },
+ { -0.250194, 0.073023, 10.131058, 0 },
+ { -0.250194, 0.069432, 10.122678, 0 },
+ { -0.238223, 0.073023, 10.133451, 0 },
+ { -0.229843, 0.063446, 10.121481, 0 },
+ { -0.235829, 0.084994, 10.115496, 0 },
+ { -0.243011, 0.077812, 10.122678, 0 },
+ { -0.238223, 0.067038, 10.116693, 0 },
+ { -0.245406, 0.069432, 10.137043, 0 },
+ { -0.258574, 0.081403, 10.122678, 0 },
+ { -0.239420, 0.083797, 10.149014, 0 },
+ { -0.240617, 0.075417, 10.123875, 0 },
+ { -0.251391, 0.067038, 10.153803, 0 },
+ { -0.240617, 0.075417, 10.145423, 0 },
+ { -0.231040, 0.083797, 10.129861, 0 },
+ { -0.247800, 0.090980, 10.155000, 0 },
+ { -0.247800, 0.077812, 10.125072, 0 },
+ { -0.253785, 0.084994, 10.131058, 0 },
+ { -0.257377, 0.073023, 10.108313, 0 },
+ { -0.248997, 0.080206, 10.123875, 0 },
+ { -0.244208, 0.073023, 10.113101, 0 },
+ { -0.237026, 0.080206, 10.121481, 0 },
+ { -0.248997, 0.055067, 10.127466, 0 },
+ { -0.256179, 0.073023, 10.137043, 0 },
+ { -0.260968, 0.081403, 10.131058, 0 },
+ { -0.251391, 0.069432, 10.125072, 0 },
+ { -0.252588, 0.074220, 10.115496, 0 },
+ { -0.250194, 0.086191, 10.122678, 0 },
+ { -0.235829, 0.076614, 10.119086, 0 },
+ { -0.258574, 0.079009, 10.127466, 0 },
+ { -0.247800, 0.076614, 10.139438, 0 },
+ { -0.247800, 0.079009, 10.126269, 0 },
+ { -0.237026, 0.088585, 10.134649, 0 },
+ { -0.240617, 0.073023, 10.120284, 0 },
+ { -0.244208, 0.073023, 10.125072, 0 },
+ { -0.243011, 0.076614, 10.115496, 0 },
+ { -0.238223, 0.080206, 10.122678, 0 },
+ { -0.239420, 0.067038, 10.122678, 0 },
+ { -0.253785, 0.081403, 10.119086, 0 },
+ { -0.246603, 0.080206, 10.125072, 0 },
+ { -0.251391, 0.082600, 10.126269, 0 },
+ { -0.238223, 0.073023, 10.132255, 0 },
+ { -0.252588, 0.075417, 10.133451, 0 },
+ { -0.254982, 0.061052, 10.140635, 0 },
+ { -0.253785, 0.065841, 10.117889, 0 },
+ { -0.235829, 0.071826, 10.143028, 0 },
+ { -0.245406, 0.083797, 10.122678, 0 },
+ { -0.256179, 0.088585, 10.129861, 0 },
+ { -0.259771, 0.077812, 10.121481, 0 },
+ { -0.238223, 0.067038, 10.125072, 0 },
+ { -0.247800, 0.073023, 10.140635, 0 },
+ { -0.248997, 0.073023, 10.111904, 0 },
+ { -0.245406, 0.075417, 10.145423, 0 },
+ { -0.268150, 0.075417, 10.102327, 0 },
+ { -0.246603, 0.080206, 10.129861, 0 },
+ { -0.251391, 0.080206, 10.126269, 0 },
+ { -0.251391, 0.071826, 10.134649, 0 },
+ { -0.262165, 0.076614, 10.143028, 0 },
+ { -0.247800, 0.070629, 10.121481, 0 },
+ { -0.238223, 0.083797, 10.135846, 0 },
+ { -0.251391, 0.069432, 10.111904, 0 },
+ { -0.256179, 0.082600, 10.139438, 0 },
+ { -0.262165, 0.083797, 10.128663, 0 },
+ { -0.251391, 0.079009, 10.122678, 0 },
+ { -0.245406, 0.077812, 10.125072, 0 },
+ { -0.239420, 0.074220, 10.125072, 0 },
+ { -0.258574, 0.076614, 10.127466, 0 },
+ { -0.256179, 0.088585, 10.126269, 0 },
+ { -0.246603, 0.080206, 10.111904, 0 },
+ { -0.241814, 0.084994, 10.133451, 0 },
+ { -0.235829, 0.079009, 10.141831, 0 },
+ { -0.263362, 0.073023, 10.138240, 0 },
+ { -0.251391, 0.069432, 10.134649, 0 },
+ { -0.245406, 0.069432, 10.127466, 0 },
+ { -0.250194, 0.074220, 10.133451, 0 },
+ { -0.251391, 0.068235, 10.131058, 0 },
+ { -0.254982, 0.070629, 10.128663, 0 },
+ { -0.240617, 0.083797, 10.111904, 0 },
+ { -0.245406, 0.075417, 10.122678, 0 },
+ { -0.245406, 0.084994, 10.119086, 0 },
+ { -0.248997, 0.079009, 10.098736, 0 },
+ { -0.240617, 0.070629, 10.127466, 0 },
+ { -0.244208, 0.079009, 10.145423, 0 },
+ { -0.264559, 0.079009, 10.120284, 0 },
+ { -0.244208, 0.077812, 10.119086, 0 },
+ { -0.237026, 0.080206, 10.107116, 0 },
+ { -0.235829, 0.086191, 10.128663, 0 },
+ { -0.245406, 0.081403, 10.133451, 0 },
+ { -0.247800, 0.077812, 10.138240, 0 },
+ { -0.251391, 0.080206, 10.125072, 0 },
+ { -0.257377, 0.068235, 10.147817, 0 },
+ { -0.263362, 0.076614, 10.121481, 0 },
+ { -0.268150, 0.073023, 10.116693, 0 },
+ { -0.247800, 0.071826, 10.122678, 0 },
+ { -0.260968, 0.073023, 10.134649, 0 },
+ { -0.254982, 0.074220, 10.116693, 0 },
+ { -0.246603, 0.086191, 10.131058, 0 },
+ { -0.248997, 0.079009, 10.125072, 0 },
+ { -0.252588, 0.067038, 10.132255, 0 },
+ { -0.254982, 0.063446, 10.123875, 0 },
+ { -0.256179, 0.067038, 10.116693, 0 },
+ { -0.259771, 0.083797, 10.125072, 0 },
+ { -0.264559, 0.069432, 10.131058, 0 },
+ { -0.243011, 0.074220, 10.143028, 0 },
+ { -0.254982, 0.081403, 10.128663, 0 },
+ { -0.253785, 0.065841, 10.143028, 0 },
+ { -0.260968, 0.075417, 10.131058, 0 },
+ { -0.265756, 0.090980, 10.128663, 0 },
+ { -0.244208, 0.088585, 10.146620, 0 },
+ { -0.246603, 0.082600, 10.114298, 0 },
+ { -0.256179, 0.077812, 10.133451, 0 },
+ { -0.250194, 0.064643, 10.117889, 0 },
+ { -0.254982, 0.075417, 10.117889, 0 },
+ { -0.266953, 0.065841, 10.113101, 0 },
+ { -0.253785, 0.073023, 10.128663, 0 },
+ { -0.259771, 0.082600, 10.138240, 0 },
+ { -0.247800, 0.071826, 10.145423, 0 },
+ { -0.243011, 0.074220, 10.122678, 0 },
+ { -0.257377, 0.083797, 10.140635, 0 },
+ { -0.232237, 0.087388, 10.117889, 0 },
+ { -0.244208, 0.076614, 10.125072, 0 },
+ { -0.248997, 0.067038, 10.128663, 0 },
+ { -0.256179, 0.062249, 10.115496, 0 },
+ { -0.263362, 0.071826, 10.141831, 0 },
+ { -0.246603, 0.075417, 10.107116, 0 },
+ { -0.244208, 0.081403, 10.137043, 0 },
+ { -0.254982, 0.083797, 10.123875, 0 },
+ { -0.243011, 0.092177, 10.132255, 0 },
+ { -0.260968, 0.077812, 10.131058, 0 },
+ { -0.256179, 0.073023, 10.119086, 0 },
+ { -0.239420, 0.082600, 10.132255, 0 },
+ { -0.251391, 0.073023, 10.117889, 0 },
+ { -0.254982, 0.071826, 10.134649, 0 },
+ { -0.259771, 0.080206, 10.120284, 0 },
+ { -0.246603, 0.069432, 10.133451, 0 },
+ { -0.250194, 0.061052, 10.126269, 0 },
+ { -0.256179, 0.063446, 10.109509, 0 },
+ { -0.251391, 0.087388, 10.120284, 0 },
+ { -0.246603, 0.069432, 10.132255, 0 },
+ { -0.244208, 0.077812, 10.133451, 0 },
+ { -0.257377, 0.069432, 10.126269, 0 },
+ { -0.247800, 0.075417, 10.133451, 0 },
+ { -0.246603, 0.071826, 10.117889, 0 },
+ { -0.245406, 0.093374, 10.135846, 0 },
+ { -0.254982, 0.082600, 10.105919, 0 },
+ { -0.247800, 0.076614, 10.143028, 0 },
+ { -0.246603, 0.076614, 10.126269, 0 },
+ { -0.243011, 0.067038, 10.127466, 0 },
+ { -0.253785, 0.064643, 10.119086, 0 },
+ { -0.248997, 0.079009, 10.127466, 0 },
+ { -0.248997, 0.080206, 10.141831, 0 },
+ { -0.244208, 0.074220, 10.133451, 0 },
+ { -0.240617, 0.079009, 10.135846, 0 },
+ { -0.232237, 0.075417, 10.115496, 0 },
+ { -0.254982, 0.082600, 10.139438, 0 },
+ { -0.258574, 0.077812, 10.119086, 0 },
+ { -0.246603, 0.076614, 10.109509, 0 },
+ { -0.248997, 0.080206, 10.125072, 0 },
+ { -0.256179, 0.077812, 10.128663, 0 },
+ { -0.235829, 0.076614, 10.126269, 0 },
+ { -0.253785, 0.076614, 10.128663, 0 },
+ { -0.254982, 0.075417, 10.147817, 0 },
+ { -0.246603, 0.079009, 10.145423, 0 },
+ { -0.243011, 0.081403, 10.146620, 0 },
+ { -0.237026, 0.075417, 10.134649, 0 },
+ { -0.258574, 0.077812, 10.149014, 0 },
+ { -0.262165, 0.079009, 10.141831, 0 },
+ { -0.245406, 0.069432, 10.140635, 0 },
+ { -0.240617, 0.074220, 10.120284, 0 },
+ { -0.252588, 0.080206, 10.143028, 0 },
+ { -0.254982, 0.084994, 10.135846, 0 },
+ { -0.248997, 0.067038, 10.131058, 0 },
+ { -0.234632, 0.070629, 10.133451, 0 },
+ { -0.246603, 0.067038, 10.132255, 0 },
+ { -0.246603, 0.070629, 10.143028, 0 },
+ { -0.245406, 0.079009, 10.135846, 0 },
+ { -0.253785, 0.077812, 10.144226, 0 },
+ { -0.248997, 0.076614, 10.127466, 0 },
+ { -0.227449, 0.093374, 10.119086, 0 },
+ { -0.257377, 0.073023, 10.125072, 0 },
+ { -0.254982, 0.057461, 10.133451, 0 },
+ { -0.247800, 0.069432, 10.122678, 0 },
+ { -0.252588, 0.075417, 10.125072, 0 },
+ { -0.262165, 0.088585, 10.125072, 0 },
+ { -0.253785, 0.080206, 10.127466, 0 },
+ { -0.252588, 0.070629, 10.137043, 0 },
+ { -0.254982, 0.068235, 10.113101, 0 },
+ { -0.244208, 0.076614, 10.132255, 0 },
+ { -0.244208, 0.074220, 10.129861, 0 },
+ { -0.244208, 0.073023, 10.141831, 0 },
+ { -0.239420, 0.080206, 10.108313, 0 },
+ { -0.241814, 0.087388, 10.122678, 0 },
+ { -0.253785, 0.093374, 10.122678, 0 },
+ { -0.252588, 0.070629, 10.133451, 0 },
+ { -0.244208, 0.073023, 10.147817, 0 },
+ { -0.245406, 0.076614, 10.122678, 0 },
+ { -0.254982, 0.087388, 10.132255, 0 },
+ { -0.241814, 0.065841, 10.125072, 0 },
+ { -0.231040, 0.068235, 10.123875, 0 },
+ { -0.238223, 0.081403, 10.117889, 0 },
+ { -0.241814, 0.083797, 10.139438, 0 },
+ { -0.240617, 0.045490, 10.119086, 0 },
+ { -0.262165, 0.069432, 10.125072, 0 },
+ { -0.259771, 0.081403, 10.126269, 0 },
+ { -0.248997, 0.068235, 10.129861, 0 },
+ { -0.238223, 0.071826, 10.131058, 0 },
+ { -0.237026, 0.087388, 10.117889, 0 },
+ { -0.253785, 0.076614, 10.123875, 0 },
+ { -0.260968, 0.077812, 10.120284, 0 },
+ { -0.246603, 0.073023, 10.126269, 0 },
+ { -0.256179, 0.082600, 10.119086, 0 },
+ { -0.252588, 0.067038, 10.139438, 0 },
+ { -0.260968, 0.073023, 10.127466, 0 },
+ { -0.235829, 0.086191, 10.121481, 0 },
+ { -0.244208, 0.088585, 10.131058, 0 },
+ { -0.245406, 0.073023, 10.143028, 0 },
+ { -0.243011, 0.079009, 10.139438, 0 },
+ { -0.253785, 0.077812, 10.120284, 0 },
+ { -0.252588, 0.068235, 10.123875, 0 },
+ { -0.246603, 0.069432, 10.132255, 0 },
+ { -0.237026, 0.070629, 10.139438, 0 },
+ { -0.244208, 0.068235, 10.120284, 0 },
+ { -0.247800, 0.079009, 10.134649, 0 },
+ { -0.256179, 0.084994, 10.150211, 0 },
+ { -0.246603, 0.070629, 10.126269, 0 },
+ { -0.246603, 0.065841, 10.131058, 0 },
+ { -0.262165, 0.068235, 10.126269, 0 },
+ { -0.244208, 0.069432, 10.125072, 0 },
+ { -0.245406, 0.081403, 10.114298, 0 },
+ { -0.257377, 0.070629, 10.133451, 0 },
+ { -0.247800, 0.079009, 10.109509, 0 },
+ { -0.245406, 0.071826, 10.125072, 0 },
+ { -0.237026, 0.069432, 10.139438, 0 },
+ { -0.244208, 0.081403, 10.145423, 0 },
+ { -0.246603, 0.075417, 10.129861, 0 },
+ { -0.262165, 0.082600, 10.128663, 0 },
+ { -0.246603, 0.083797, 10.147817, 0 },
+ { -0.243011, 0.079009, 10.128663, 0 },
+ { -0.251391, 0.069432, 10.133451, 0 },
+ { -0.253785, 0.070629, 10.122678, 0 },
+ { -0.248997, 0.075417, 10.139438, 0 },
+ { -0.256179, 0.080206, 10.104721, 0 },
+ { -0.263362, 0.081403, 10.127466, 0 },
+ { -0.247800, 0.068235, 10.140635, 0 },
+ { -0.251391, 0.062249, 10.138240, 0 },
+ { -0.245406, 0.087388, 10.133451, 0 },
+ { -0.254982, 0.075417, 10.122678, 0 },
+ { -0.240617, 0.071826, 10.135846, 0 },
+ { -0.258574, 0.068235, 10.114298, 0 },
+ { -0.250194, 0.077812, 10.137043, 0 },
+ { -0.238223, 0.070629, 10.121481, 0 },
+ { -0.244208, 0.080206, 10.126269, 0 },
+ { -0.246603, 0.071826, 10.119086, 0 },
+ { -0.258574, 0.068235, 10.147817, 0 },
+ { -0.252588, 0.058658, 10.121481, 0 },
+ { -0.258574, 0.073023, 10.122678, 0 },
+ { -0.244208, 0.075417, 10.144226, 0 },
+ { -0.241814, 0.075417, 10.120284, 0 },
+ { -0.257377, 0.063446, 10.129861, 0 },
+ { -0.260968, 0.075417, 10.091554, 0 },
+ { -0.260968, 0.086191, 10.149014, 0 },
+ { -0.243011, 0.084994, 10.095144, 0 },
+ { -0.246603, 0.081403, 10.141831, 0 },
+ { -0.243011, 0.068235, 10.138240, 0 },
+ { -0.252588, 0.084994, 10.131058, 0 },
+ { -0.257377, 0.077812, 10.141831, 0 },
+ { -0.247800, 0.071826, 10.113101, 0 },
+ { -0.258574, 0.073023, 10.151408, 0 },
+ { -0.256179, 0.067038, 10.119086, 0 },
+ { -0.264559, 0.070629, 10.131058, 0 },
+ { -0.266953, 0.079009, 10.107116, 0 },
+ { -0.245406, 0.077812, 10.137043, 0 },
+ { -0.256179, 0.076614, 10.128663, 0 },
+ { -0.252588, 0.068235, 10.135846, 0 },
+ { -0.257377, 0.069432, 10.133451, 0 },
+ { -0.258574, 0.062249, 10.133451, 0 },
+ { -0.268150, 0.092177, 10.128663, 0 },
+ { -0.257377, 0.076614, 10.139438, 0 },
+ { -0.240617, 0.076614, 10.115496, 0 },
+ { -0.248997, 0.075417, 10.129861, 0 },
+ { -0.251391, 0.075417, 10.135846, 0 },
+ { -0.263362, 0.062249, 10.092751, 0 },
+ { -0.245406, 0.079009, 10.135846, 0 },
+ { -0.248997, 0.077812, 10.114298, 0 },
+ { -0.245406, 0.090980, 10.143028, 0 },
+ { -0.246603, 0.081403, 10.125072, 0 },
+ { -0.243011, 0.059855, 10.127466, 0 },
+ { -0.248997, 0.068235, 10.145423, 0 },
+ { -0.245406, 0.070629, 10.132255, 0 },
+ { -0.240617, 0.068235, 10.139438, 0 },
+ { -0.241814, 0.069432, 10.115496, 0 },
+ { -0.250194, 0.082600, 10.137043, 0 },
+ { -0.250194, 0.073023, 10.128663, 0 },
+ { -0.241814, 0.086191, 10.144226, 0 },
+ { -0.254982, 0.070629, 10.121481, 0 },
+ { -0.244208, 0.082600, 10.131058, 0 },
+ { -0.244208, 0.086191, 10.126269, 0 },
+ { -0.251391, 0.086191, 10.138240, 0 },
+ { -0.256179, 0.073023, 10.123875, 0 },
+ { -0.247800, 0.080206, 10.127466, 0 },
+ { -0.239420, 0.087388, 10.145423, 0 },
+ { -0.247800, 0.056264, 10.145423, 0 },
+ { -0.239420, 0.063446, 10.143028, 0 },
+ { -0.259771, 0.067038, 10.111904, 0 },
+ { -0.245406, 0.079009, 10.135846, 0 },
+ { -0.254982, 0.074220, 10.121481, 0 },
+ { -0.257377, 0.070629, 10.141831, 0 },
+ { -0.243011, 0.068235, 10.141831, 0 },
+ { -0.254982, 0.071826, 10.140635, 0 },
+ { -0.231040, 0.068235, 10.126269, 0 },
+ { -0.240617, 0.074220, 10.119086, 0 },
+ { -0.244208, 0.070629, 10.123875, 0 },
+ { -0.248997, 0.067038, 10.132255, 0 },
+ { -0.252588, 0.071826, 10.135846, 0 },
+ { -0.250194, 0.074220, 10.108313, 0 },
+ { -0.252588, 0.071826, 10.137043, 0 },
+ { -0.253785, 0.074220, 10.117889, 0 },
+ { -0.246603, 0.069432, 10.123875, 0 },
+ { -0.250194, 0.065841, 10.132255, 0 },
+ { -0.240617, 0.062249, 10.153803, 0 },
+ { -0.250194, 0.069432, 10.122678, 0 },
+ { -0.248997, 0.073023, 10.114298, 0 },
+ { -0.251391, 0.075417, 10.131058, 0 },
+ { -0.239420, 0.065841, 10.134649, 0 },
+ { -0.244208, 0.077812, 10.146620, 0 },
+ { -0.253785, 0.089783, 10.102327, 0 },
+ { -0.248997, 0.073023, 10.123875, 0 },
+ { -0.252588, 0.074220, 10.109509, 0 },
+ { -0.248997, 0.086191, 10.144226, 0 },
+ { -0.240617, 0.073023, 10.135846, 0 },
+ { -0.245406, 0.063446, 10.111904, 0 },
+ { -0.253785, 0.057461, 10.120284, 0 },
+ { -0.257377, 0.074220, 10.120284, 0 },
+ { -0.262165, 0.070629, 10.153803, 0 },
+ { -0.260968, 0.071826, 10.128663, 0 },
+ { -0.251391, 0.070629, 10.138240, 0 },
+ { -0.246603, 0.075417, 10.119086, 0 },
+ { -0.247800, 0.069432, 10.120284, 0 },
+ { -0.268150, 0.074220, 10.134649, 0 },
+ { -0.241814, 0.082600, 10.143028, 0 },
+ { -0.245406, 0.082600, 10.143028, 0 },
+ { -0.259771, 0.074220, 10.125072, 0 },
+ { -0.263362, 0.069432, 10.132255, 0 },
+ { -0.248997, 0.076614, 10.111904, 0 },
+ { -0.254982, 0.071826, 10.128663, 0 },
+ { -0.238223, 0.079009, 10.101130, 0 },
+ { -0.246603, 0.075417, 10.149014, 0 },
+ { -0.262165, 0.061052, 10.116693, 0 },
+ { -0.245406, 0.071826, 10.135846, 0 },
+ { -0.241814, 0.090980, 10.120284, 0 },
+ { -0.247800, 0.082600, 10.133451, 0 },
+ { -0.260968, 0.064643, 10.149014, 0 },
+ { -0.241814, 0.069432, 10.127466, 0 },
+ { -0.246603, 0.073023, 10.128663, 0 },
+ { -0.259771, 0.068235, 10.083174, 0 },
+ { -0.254982, 0.086191, 10.129861, 0 },
+ { -0.251391, 0.070629, 10.111904, 0 },
+ { -0.250194, 0.064643, 10.128663, 0 },
+ { -0.244208, 0.080206, 10.114298, 0 },
+ { -0.234632, 0.075417, 10.128663, 0 },
+ { -0.247800, 0.080206, 10.132255, 0 },
+ { -0.247800, 0.071826, 10.135846, 0 },
+ { -0.240617, 0.063446, 10.133451, 0 },
+ { -0.253785, 0.070629, 10.128663, 0 },
+ { -0.251391, 0.075417, 10.131058, 0 },
+ { -0.252588, 0.074220, 10.116693, 0 },
+ { -0.248997, 0.071826, 10.129861, 0 },
+ { -0.251391, 0.087388, 10.108313, 0 },
+ { -0.248997, 0.083797, 10.137043, 0 },
+ { -0.257377, 0.068235, 10.132255, 0 },
+ { -0.256179, 0.065841, 10.141831, 0 },
+ { -0.239420, 0.076614, 10.132255, 0 },
+ { -0.251391, 0.073023, 10.127466, 0 },
+ { -0.252588, 0.073023, 10.138240, 0 },
+ { -0.253785, 0.070629, 10.119086, 0 },
+ { -0.247800, 0.069432, 10.119086, 0 },
+ { -0.246603, 0.067038, 10.123875, 0 },
+ { -0.246603, 0.077812, 10.146620, 0 },
+ { -0.246603, 0.083797, 10.123875, 0 },
+ { -0.246603, 0.083797, 10.143028, 0 },
+ { -0.241814, 0.071826, 10.110707, 0 },
+ { -0.248997, 0.077812, 10.134649, 0 },
+ { -0.251391, 0.074220, 10.143028, 0 },
+ { -0.243011, 0.082600, 10.133451, 0 },
+ { -0.251391, 0.079009, 10.111904, 0 },
+ { -0.251391, 0.081403, 10.122678, 0 },
+ { -0.247800, 0.080206, 10.144226, 0 },
+ { -0.247800, 0.092177, 10.114298, 0 },
+ { -0.244208, 0.073023, 10.134649, 0 },
+ { -0.245406, 0.081403, 10.126269, 0 },
+ { -0.250194, 0.073023, 10.144226, 0 },
+ { -0.243011, 0.079009, 10.133451, 0 },
+ { -0.260968, 0.077812, 10.122678, 0 },
+ { -0.252588, 0.090980, 10.122678, 0 },
+ { -0.268150, 0.073023, 10.128663, 0 },
+ { -0.256179, 0.075417, 10.123875, 0 },
+ { -0.248997, 0.063446, 10.104721, 0 },
+ { -0.245406, 0.090980, 10.128663, 0 },
+ { -0.253785, 0.087388, 10.115496, 0 },
+ { -0.239420, 0.073023, 10.138240, 0 },
+ { -0.238223, 0.059855, 10.119086, 0 },
+ { -0.248997, 0.070629, 10.125072, 0 },
+ { -0.250194, 0.081403, 10.131058, 0 },
+ { -0.248997, 0.093374, 10.132255, 0 },
+ { -0.253785, 0.092177, 10.128663, 0 },
+ { -0.251391, 0.071826, 10.134649, 0 },
+ { -0.233435, 0.074220, 10.129861, 0 },
+ { -0.241814, 0.079009, 10.103524, 0 },
+ { -0.253785, 0.070629, 10.153803, 0 },
+ { -0.260968, 0.069432, 10.144226, 0 },
+ { -0.250194, 0.065841, 10.123875, 0 },
+ { -0.262165, 0.092177, 10.125072, 0 },
+ { -0.252588, 0.088585, 10.151408, 0 },
+ { -0.253785, 0.087388, 10.132255, 0 },
+ { -0.244208, 0.062249, 10.137043, 0 },
+ { -0.256179, 0.065841, 10.110707, 0 },
+ { -0.244208, 0.075417, 10.117889, 0 },
+ { -0.240617, 0.082600, 10.132255, 0 },
+ { -0.248997, 0.074220, 10.115496, 0 },
+ { -0.250194, 0.079009, 10.141831, 0 },
+ { -0.246603, 0.077812, 10.119086, 0 },
+ { -0.252588, 0.074220, 10.117889, 0 },
+ { -0.257377, 0.075417, 10.120284, 0 },
+ { -0.250194, 0.077812, 10.117889, 0 },
+ { -0.239420, 0.081403, 10.143028, 0 },
+ { -0.237026, 0.076614, 10.137043, 0 },
+ { -0.240617, 0.077812, 10.149014, 0 },
+ { -0.270545, 0.071826, 10.131058, 0 },
+ { -0.262165, 0.068235, 10.122678, 0 },
+ { -0.259771, 0.067038, 10.114298, 0 },
+ { -0.246603, 0.082600, 10.121481, 0 },
+ { -0.254982, 0.076614, 10.127466, 0 },
+ { -0.244208, 0.063446, 10.122678, 0 },
+ { -0.246603, 0.074220, 10.121481, 0 },
+ { -0.253785, 0.086191, 10.127466, 0 },
+ { -0.253785, 0.079009, 10.131058, 0 },
+ { -0.245406, 0.071826, 10.132255, 0 },
+ { -0.248997, 0.074220, 10.132255, 0 },
+ { -0.260968, 0.055067, 10.121481, 0 },
+ { -0.243011, 0.070629, 10.122678, 0 },
+ { -0.252588, 0.070629, 10.132255, 0 },
+ { -0.243011, 0.077812, 10.143028, 0 },
+ { -0.246603, 0.077812, 10.132255, 0 },
+ { -0.253785, 0.082600, 10.131058, 0 },
+ { -0.256179, 0.068235, 10.137043, 0 },
+ { -0.243011, 0.088585, 10.121481, 0 },
+ { -0.239420, 0.065841, 10.133451, 0 },
+ { -0.252588, 0.063446, 10.122678, 0 },
+ { -0.252588, 0.082600, 10.141831, 0 },
+ { -0.238223, 0.083797, 10.122678, 0 },
+ { -0.251391, 0.076614, 10.140635, 0 },
+ { -0.265756, 0.081403, 10.135846, 0 },
+ { -0.252588, 0.076614, 10.141831, 0 },
+ { -0.246603, 0.079009, 10.131058, 0 },
+ { -0.250194, 0.077812, 10.126269, 0 },
+ { -0.240617, 0.079009, 10.146620, 0 },
+ { -0.247800, 0.089783, 10.132255, 0 },
+ { -0.259771, 0.089783, 10.111904, 0 },
+ { -0.266953, 0.084994, 10.141831, 0 },
+ { -0.244208, 0.087388, 10.147817, 0 },
+ { -0.235829, 0.067038, 10.127466, 0 },
+ { -0.245406, 0.069432, 10.129861, 0 },
+ { -0.250194, 0.083797, 10.108313, 0 },
+ { -0.240617, 0.084994, 10.146620, 0 },
+ { -0.256179, 0.077812, 10.121481, 0 },
+ { -0.250194, 0.076614, 10.151408, 0 },
+ { -0.248997, 0.073023, 10.128663, 0 },
+ { -0.252588, 0.068235, 10.140635, 0 },
+ { -0.252588, 0.074220, 10.147817, 0 },
+ { -0.253785, 0.083797, 10.139438, 0 },
+ { -0.243011, 0.069432, 10.114298, 0 },
+ { -0.235829, 0.059855, 10.122678, 0 },
+ { -0.253785, 0.076614, 10.145423, 0 },
+ { -0.245406, 0.077812, 10.115496, 0 },
+ { -0.252588, 0.065841, 10.139438, 0 },
+ { -0.248997, 0.092177, 10.132255, 0 },
+ { -0.256179, 0.088585, 10.150211, 0 },
+ { -0.250194, 0.082600, 10.134649, 0 },
+ { -0.244208, 0.069432, 10.137043, 0 },
+ { -0.254982, 0.076614, 10.127466, 0 },
+ { -0.253785, 0.063446, 10.135846, 0 },
+ { -0.258574, 0.080206, 10.145423, 0 },
+ { -0.232237, 0.074220, 10.126269, 0 },
+ { -0.241814, 0.080206, 10.131058, 0 },
+ { -0.240617, 0.075417, 10.116693, 0 },
+ { -0.253785, 0.068235, 10.132255, 0 },
+ { -0.241814, 0.083797, 10.139438, 0 },
+ { -0.245406, 0.084994, 10.129861, 0 },
+ { -0.245406, 0.079009, 10.165773, 0 },
+ { -0.238223, 0.079009, 10.101130, 0 },
+ { -0.247800, 0.081403, 10.138240, 0 },
+ { -0.244208, 0.070629, 10.126269, 0 },
+ { -0.253785, 0.082600, 10.149014, 0 },
+ { -0.235829, 0.079009, 10.115496, 0 },
+ { -0.239420, 0.070629, 10.114298, 0 },
+ { -0.251391, 0.086191, 10.128663, 0 },
+ { -0.241814, 0.075417, 10.119086, 0 },
+ { -0.241814, 0.074220, 10.165773, 0 },
+ { -0.233435, 0.075417, 10.101130, 0 },
+ { -0.254982, 0.087388, 10.135846, 0 },
+ { -0.232237, 0.074220, 10.129861, 0 },
+ { -0.233435, 0.076614, 10.123875, 0 },
+ { -0.258574, 0.093374, 10.137043, 0 },
+ { -0.243011, 0.074220, 10.137043, 0 },
+ { -0.244208, 0.083797, 10.145423, 0 },
+ { -0.252588, 0.087388, 10.137043, 0 },
+ { -0.251391, 0.077812, 10.120284, 0 },
+ { -0.235829, 0.067038, 10.117889, 0 },
+ { -0.240617, 0.075417, 10.125072, 0 },
+ { -0.253785, 0.086191, 10.127466, 0 },
+ { -0.256179, 0.080206, 10.126269, 0 },
+ { -0.254982, 0.071826, 10.132255, 0 },
+ { -0.235829, 0.074220, 10.128663, 0 },
+ { -0.252588, 0.079009, 10.117889, 0 },
+ { -0.245406, 0.081403, 10.123875, 0 },
+ { -0.246603, 0.073023, 10.127466, 0 },
+ { -0.252588, 0.063446, 10.159788, 0 },
+ { -0.247800, 0.079009, 10.147817, 0 },
+ { -0.258574, 0.079009, 10.131058, 0 },
+ { -0.269348, 0.075417, 10.134649, 0 },
+ { -0.248997, 0.083797, 10.107116, 0 },
+ { -0.244208, 0.081403, 10.139438, 0 },
+ { -0.259771, 0.070629, 10.133451, 0 },
+ { -0.257377, 0.063446, 10.128663, 0 },
+ { -0.254982, 0.071826, 10.121481, 0 },
+ { -0.252588, 0.088585, 10.137043, 0 },
+ { -0.251391, 0.083797, 10.135846, 0 },
+ { -0.253785, 0.086191, 10.134649, 0 },
+ { -0.252588, 0.073023, 10.115496, 0 },
+ { -0.254982, 0.075417, 10.145423, 0 },
+ { -0.250194, 0.076614, 10.137043, 0 },
+ { -0.248997, 0.070629, 10.135846, 0 },
+ { -0.259771, 0.073023, 10.137043, 0 },
+ { -0.245406, 0.088585, 10.120284, 0 },
+ { -0.254982, 0.074220, 10.151408, 0 },
+ { -0.252588, 0.074220, 10.103524, 0 },
+ { -0.258574, 0.070629, 10.146620, 0 },
+ { -0.251391, 0.080206, 10.121481, 0 },
+ { -0.241814, 0.070629, 10.131058, 0 },
+ { -0.246603, 0.071826, 10.116693, 0 },
+ { -0.248997, 0.067038, 10.135846, 0 },
+ { -0.251391, 0.070629, 10.132255, 0 },
+ { -0.250194, 0.081403, 10.132255, 0 },
+ { -0.254982, 0.074220, 10.134649, 0 },
+ { -0.243011, 0.081403, 10.131058, 0 },
+ { -0.237026, 0.089783, 10.128663, 0 },
+ { -0.243011, 0.077812, 10.125072, 0 },
+ { -0.244208, 0.074220, 10.131058, 0 },
+ { -0.243011, 0.086191, 10.121481, 0 },
+ { -0.250194, 0.079009, 10.135846, 0 },
+ { -0.247800, 0.061052, 10.132255, 0 },
+ { -0.258574, 0.063446, 10.122678, 0 },
+ { -0.245406, 0.076614, 10.114298, 0 },
+ { -0.238223, 0.082600, 10.101130, 0 },
+ { -0.264559, 0.057461, 10.119086, 0 },
+ { -0.248997, 0.077812, 10.126269, 0 },
+ { -0.237026, 0.094571, 10.127466, 0 },
+ { -0.256179, 0.071826, 10.116693, 0 },
+ { -0.248997, 0.080206, 10.135846, 0 },
+ { -0.259771, 0.067038, 10.128663, 0 },
+ { -0.246603, 0.074220, 10.134649, 0 },
+ { -0.244208, 0.083797, 10.131058, 0 },
+ { -0.233435, 0.075417, 10.129861, 0 },
+ { -0.241814, 0.074220, 10.128663, 0 },
+ { -0.238223, 0.080206, 10.105919, 0 },
+ { -0.241814, 0.084994, 10.131058, 0 },
+ { -0.254982, 0.076614, 10.129861, 0 },
+ { -0.258574, 0.079009, 10.117889, 0 },
+ { -0.251391, 0.069432, 10.135846, 0 },
+ { -0.243011, 0.082600, 10.135846, 0 },
+ { -0.243011, 0.073023, 10.121481, 0 },
+ { -0.250194, 0.074220, 10.140635, 0 },
+ { -0.251391, 0.069432, 10.119086, 0 },
+ { -0.258574, 0.074220, 10.117889, 0 },
+ { -0.260968, 0.069432, 10.138240, 0 },
+ { -0.260968, 0.080206, 10.133451, 0 },
+ { -0.238223, 0.080206, 10.140635, 0 },
+ { -0.248997, 0.075417, 10.103524, 0 },
+ { -0.259771, 0.069432, 10.144226, 0 },
+ { -0.252588, 0.076614, 10.095144, 0 },
+ { -0.254982, 0.068235, 10.146620, 0 },
+ { -0.256179, 0.079009, 10.143028, 0 },
+ { -0.246603, 0.090980, 10.139438, 0 },
+ { -0.251391, 0.079009, 10.131058, 0 },
+ { -0.253785, 0.077812, 10.119086, 0 },
+ { -0.256179, 0.076614, 10.157393, 0 },
+ { -0.246603, 0.067038, 10.121481, 0 },
+ { -0.237026, 0.081403, 10.159788, 0 },
+ { -0.250194, 0.082600, 10.125072, 0 },
+ { -0.248997, 0.077812, 10.117889, 0 },
+ { -0.237026, 0.074220, 10.121481, 0 },
+ { -0.237026, 0.062249, 10.138240, 0 },
+ { -0.247800, 0.070629, 10.126269, 0 },
+ { -0.245406, 0.073023, 10.138240, 0 },
+ { -0.245406, 0.065841, 10.134649, 0 },
+ { -0.240617, 0.083797, 10.137043, 0 },
+ { -0.244208, 0.063446, 10.137043, 0 },
+ { -0.260968, 0.080206, 10.123875, 0 },
+ { -0.245406, 0.083797, 10.137043, 0 },
+ { -0.237026, 0.068235, 10.122678, 0 },
+ { -0.250194, 0.070629, 10.137043, 0 },
+ { -0.248997, 0.073023, 10.128663, 0 },
+ { -0.239420, 0.073023, 10.127466, 0 },
+ { -0.256179, 0.069432, 10.123875, 0 },
+ { -0.244208, 0.064643, 10.141831, 0 },
+ { -0.246603, 0.062249, 10.114298, 0 },
+ { -0.260968, 0.076614, 10.108313, 0 },
+ { -0.257377, 0.069432, 10.135846, 0 },
+ { -0.265756, 0.074220, 10.123875, 0 },
+ { -0.254982, 0.065841, 10.145423, 0 },
+ { -0.248997, 0.070629, 10.123875, 0 },
+ { -0.241814, 0.079009, 10.137043, 0 },
+ { -0.251391, 0.095768, 10.141831, 0 },
+ { -0.244208, 0.071826, 10.111904, 0 },
+ { -0.243011, 0.075417, 10.132255, 0 },
+ { -0.246603, 0.090980, 10.131058, 0 },
+ { -0.252588, 0.071826, 10.135846, 0 },
+ { -0.248997, 0.065841, 10.120284, 0 },
+ { -0.248997, 0.082600, 10.116693, 0 },
+ { -0.263362, 0.075417, 10.138240, 0 },
+ { -0.247800, 0.061052, 10.129861, 0 },
+ { -0.250194, 0.059855, 10.132255, 0 },
+ { -0.251391, 0.069432, 10.152605, 0 },
+ { -0.247800, 0.068235, 10.129861, 0 },
+ { -0.240617, 0.062249, 10.138240, 0 },
+ { -0.264559, 0.070629, 10.120284, 0 },
+ { -0.253785, 0.071826, 10.151408, 0 },
+ { -0.246603, 0.074220, 10.125072, 0 },
+ { -0.256179, 0.070629, 10.160985, 0 },
+ { -0.247800, 0.061052, 10.131058, 0 },
+ { -0.246603, 0.070629, 10.125072, 0 },
+ { -0.258574, 0.086191, 10.135846, 0 },
+ { -0.253785, 0.077812, 10.120284, 0 },
+ { -0.235829, 0.074220, 10.133451, 0 },
+ { -0.239420, 0.083797, 10.122678, 0 },
+ { -0.258574, 0.071826, 10.139438, 0 },
+ { -0.259771, 0.084994, 10.110707, 0 },
+ { -0.243011, 0.077812, 10.131058, 0 },
+ { -0.240617, 0.077812, 10.134649, 0 },
+ { -0.244208, 0.059855, 10.128663, 0 },
+ { -0.239420, 0.068235, 10.122678, 0 },
+ { -0.258574, 0.076614, 10.119086, 0 },
+ { -0.258574, 0.075417, 10.147817, 0 },
+ { -0.248997, 0.062249, 10.117889, 0 },
+ { -0.248997, 0.076614, 10.135846, 0 },
+ { -0.241814, 0.076614, 10.109509, 0 },
+ { -0.257377, 0.068235, 10.144226, 0 },
+ { -0.264559, 0.064643, 10.096342, 0 },
+ { -0.241814, 0.068235, 10.139438, 0 },
+ { -0.250194, 0.088585, 10.114298, 0 },
+ { -0.259771, 0.079009, 10.159788, 0 },
+ { -0.247800, 0.071826, 10.138240, 0 },
+ { -0.245406, 0.073023, 10.117889, 0 },
+ { -0.246603, 0.070629, 10.137043, 0 },
+ { -0.248997, 0.069432, 10.108313, 0 },
+ { -0.254982, 0.077812, 10.144226, 0 },
+ { -0.254982, 0.088585, 10.108313, 0 },
+ { -0.245406, 0.082600, 10.135846, 0 },
+ { -0.245406, 0.095768, 10.125072, 0 },
+ { -0.232237, 0.083797, 10.133451, 0 },
+ { -0.243011, 0.069432, 10.089159, 0 },
+ { -0.237026, 0.082600, 10.152605, 0 },
+ { -0.241814, 0.065841, 10.116693, 0 },
+ { -0.262165, 0.067038, 10.138240, 0 },
+ { -0.262165, 0.081403, 10.150211, 0 },
+ { -0.257377, 0.079009, 10.109509, 0 },
+ { -0.257377, 0.084994, 10.131058, 0 },
+ { -0.238223, 0.090980, 10.107116, 0 },
+ { -0.231040, 0.093374, 10.151408, 0 },
+ { -0.250194, 0.069432, 10.108313, 0 },
+ { -0.244208, 0.067038, 10.166970, 0 },
+ { -0.244208, 0.074220, 10.105919, 0 },
+ { -0.247800, 0.076614, 10.145423, 0 },
+ { -0.237026, 0.071826, 10.122678, 0 },
+ { -0.244208, 0.070629, 10.127466, 0 },
+ { -0.243011, 0.074220, 10.119086, 0 },
+ { -0.246603, 0.073023, 10.121481, 0 },
+ { -0.245406, 0.084994, 10.129861, 0 },
+ { -0.237026, 0.082600, 10.128663, 0 },
+ { -0.229843, 0.074220, 10.127466, 0 },
+ { -0.250194, 0.076614, 10.116693, 0 },
+ { -0.240617, 0.074220, 10.138240, 0 },
+ { -0.240617, 0.074220, 10.117889, 0 },
+ { -0.245406, 0.075417, 10.126269, 0 },
+ { -0.241814, 0.077812, 10.129861, 0 },
+ { -0.251391, 0.081403, 10.139438, 0 },
+ { -0.227449, 0.075417, 10.127466, 0 },
+ { -0.239420, 0.079009, 10.119086, 0 },
+ { -0.238223, 0.087388, 10.120284, 0 },
+ { -0.243011, 0.057461, 10.122678, 0 },
+ { -0.250194, 0.056264, 10.145423, 0 },
+ { -0.233435, 0.075417, 10.119086, 0 },
+ { -0.237026, 0.061052, 10.137043, 0 },
+ { -0.240617, 0.084994, 10.123875, 0 },
+ { -0.245406, 0.088585, 10.151408, 0 },
+ { -0.234632, 0.081403, 10.128663, 0 },
+ { -0.240617, 0.086191, 10.123875, 0 },
+ { -0.237026, 0.080206, 10.119086, 0 },
+ { -0.234632, 0.067038, 10.134649, 0 },
+ { -0.241814, 0.070629, 10.138240, 0 },
+ { -0.248997, 0.065841, 10.134649, 0 },
+ { -0.238223, 0.081403, 10.143028, 0 },
+ { -0.243011, 0.079009, 10.121481, 0 },
+ { -0.240617, 0.079009, 10.128663, 0 },
+ { -0.251391, 0.069432, 10.131058, 0 },
+ { -0.244208, 0.063446, 10.138240, 0 },
+ { -0.240617, 0.058658, 10.117889, 0 },
+ { -0.239420, 0.081403, 10.145423, 0 },
+ { -0.245406, 0.080206, 10.114298, 0 },
+ { -0.240617, 0.075417, 10.127466, 0 },
+ { -0.243011, 0.077812, 10.127466, 0 },
+ { -0.250194, 0.065841, 10.119086, 0 },
+ { -0.232237, 0.064643, 10.120284, 0 },
+ { -0.239420, 0.065841, 10.131058, 0 },
+ { -0.251391, 0.071826, 10.143028, 0 },
+ { -0.246603, 0.080206, 10.125072, 0 },
+ { -0.238223, 0.075417, 10.123875, 0 },
+ { -0.245406, 0.081403, 10.132255, 0 },
+ { -0.241814, 0.083797, 10.117889, 0 },
+ { -0.251391, 0.070629, 10.135846, 0 },
+ { -0.262165, 0.075417, 10.120284, 0 },
+ { -0.251391, 0.086191, 10.145423, 0 },
+ { -0.239420, 0.087388, 10.131058, 0 },
+ { -0.246603, 0.077812, 10.126269, 0 },
+ { -0.246603, 0.073023, 10.135846, 0 },
+ { -0.264559, 0.079009, 10.120284, 0 },
+ { -0.264559, 0.074220, 10.125072, 0 },
+ { -0.229843, 0.067038, 10.127466, 0 },
+ { -0.231040, 0.077812, 10.131058, 0 },
+ { -0.245406, 0.075417, 10.128663, 0 },
+ { -0.240617, 0.071826, 10.116693, 0 },
+ { -0.234632, 0.081403, 10.128663, 0 },
+ { -0.228646, 0.063446, 10.132255, 0 },
+ { -0.227449, 0.057461, 10.139438, 0 },
+ { -0.251391, 0.075417, 10.120284, 0 },
+ { -0.231040, 0.092177, 10.122678, 0 },
+ { -0.240617, 0.077812, 10.137043, 0 },
+ { -0.252588, 0.075417, 10.132255, 0 },
+ { -0.248997, 0.077812, 10.120284, 0 },
+ { -0.248997, 0.080206, 10.117889, 0 },
+ { -0.252588, 0.063446, 10.113101, 0 },
+ { -0.247800, 0.069432, 10.133451, 0 },
+ { -0.246603, 0.092177, 10.108313, 0 },
+ { -0.240617, 0.088585, 10.134649, 0 },
+ { -0.239420, 0.076614, 10.125072, 0 },
+ { -0.248997, 0.070629, 10.128663, 0 },
+ { -0.243011, 0.073023, 10.128663, 0 },
+ { -0.243011, 0.084994, 10.115496, 0 },
+ { -0.243011, 0.087388, 10.141831, 0 },
+ { -0.237026, 0.070629, 10.144226, 0 },
+ { -0.247800, 0.081403, 10.113101, 0 },
+ { -0.234632, 0.096965, 10.133451, 0 },
+ { -0.258574, 0.069432, 10.132255, 0 },
+ { -0.258574, 0.077812, 10.116693, 0 },
+ { -0.243011, 0.079009, 10.135846, 0 },
+ { -0.253785, 0.082600, 10.102327, 0 },
+ { -0.240617, 0.075417, 10.144226, 0 },
+ { -0.247800, 0.074220, 10.123875, 0 },
+ { -0.256179, 0.079009, 10.120284, 0 },
+ { -0.254982, 0.077812, 10.141831, 0 },
+ { -0.257377, 0.076614, 10.143028, 0 },
+ { -0.250194, 0.086191, 10.137043, 0 },
+ { -0.238223, 0.081403, 10.116693, 0 },
+ { -0.238223, 0.084994, 10.139438, 0 },
+ { -0.247800, 0.080206, 10.126269, 0 },
+ { -0.263362, 0.074220, 10.131058, 0 },
+ { -0.260968, 0.077812, 10.123875, 0 },
+ { -0.238223, 0.059855, 10.128663, 0 },
+ { -0.245406, 0.062249, 10.134649, 0 },
+ { -0.257377, 0.080206, 10.131058, 0 },
+ { -0.244208, 0.083797, 10.131058, 0 },
+ { -0.232237, 0.080206, 10.134649, 0 },
+ { -0.244208, 0.076614, 10.119086, 0 },
+ { -0.241814, 0.073023, 10.141831, 0 },
+ { -0.257377, 0.067038, 10.138240, 0 },
+ { -0.241814, 0.086191, 10.133451, 0 },
+ { -0.246603, 0.079009, 10.133451, 0 },
+ { -0.248997, 0.067038, 10.125072, 0 },
+ { -0.239420, 0.082600, 10.122678, 0 },
+ { -0.244208, 0.084994, 10.129861, 0 },
+ { -0.233435, 0.073023, 10.147817, 0 },
+ { -0.250194, 0.069432, 10.133451, 0 },
+ { -0.254982, 0.070629, 10.146620, 0 },
+ { -0.231040, 0.083797, 10.117889, 0 },
+ { -0.245406, 0.081403, 10.119086, 0 },
+ { -0.256179, 0.093374, 10.131058, 0 },
+ { -0.241814, 0.084994, 10.138240, 0 },
+ { -0.252588, 0.073023, 10.137043, 0 },
+ { -0.251391, 0.081403, 10.126269, 0 },
+ { -0.235829, 0.069432, 10.137043, 0 },
+ { -0.247800, 0.080206, 10.132255, 0 },
+ { -0.238223, 0.064643, 10.144226, 0 },
+ { -0.234632, 0.076614, 10.127466, 0 },
+ { -0.245406, 0.069432, 10.137043, 0 },
+ { -0.241814, 0.082600, 10.116693, 0 },
+ { -0.233435, 0.101754, 10.132255, 0 },
+ { -0.240617, 0.086191, 10.132255, 0 },
+ { -0.235829, 0.081403, 10.120284, 0 },
+ { -0.239420, 0.076614, 10.128663, 0 },
+ { -0.251391, 0.079009, 10.117889, 0 },
+ { -0.256179, 0.081403, 10.149014, 0 },
+ { -0.238223, 0.079009, 10.105919, 0 },
+ { -0.234632, 0.079009, 10.125072, 0 },
+ { -0.254982, 0.071826, 10.115496, 0 },
+ { -0.263362, 0.082600, 10.151408, 0 },
+ { -0.243011, 0.075417, 10.109509, 0 },
+ { -0.222661, 0.073023, 10.129861, 0 },
+ { -0.246603, 0.074220, 10.133451, 0 },
+ { -0.248997, 0.086191, 10.129861, 0 },
+ { -0.252588, 0.086191, 10.149014, 0 },
+ { -0.238223, 0.071826, 10.104721, 0 },
+ { -0.237026, 0.071826, 10.135846, 0 },
+ { -0.243011, 0.086191, 10.111904, 0 },
+ { -0.244208, 0.093374, 10.141831, 0 },
+ { -0.253785, 0.063446, 10.123875, 0 },
+ { -0.244208, 0.083797, 10.134649, 0 },
+ { -0.244208, 0.090980, 10.128663, 0 },
+ { -0.258574, 0.065841, 10.134649, 0 },
+ { -0.256179, 0.070629, 10.128663, 0 },
+ { -0.243011, 0.071826, 10.137043, 0 },
+ { -0.225055, 0.074220, 10.134649, 0 },
+ { -0.245406, 0.069432, 10.116693, 0 },
+ { -0.237026, 0.077812, 10.133451, 0 },
+ { -0.245406, 0.073023, 10.104721, 0 },
+ { -0.253785, 0.081403, 10.159788, 0 },
+ { -0.245406, 0.086191, 10.113101, 0 },
+ { -0.243011, 0.081403, 10.126269, 0 },
+ { -0.241814, 0.065841, 10.108313, 0 },
+ { -0.240617, 0.057461, 10.131058, 0 },
+ { -0.241814, 0.065841, 10.144226, 0 },
+ { -0.237026, 0.073023, 10.128663, 0 },
+ { -0.250194, 0.090980, 10.145423, 0 },
+ { -0.254982, 0.070629, 10.119086, 0 },
+ { -0.244208, 0.063446, 10.131058, 0 },
+ { -0.235829, 0.077812, 10.121481, 0 },
+ { -0.248997, 0.076614, 10.137043, 0 },
+ { -0.262165, 0.076614, 10.123875, 0 },
+ { -0.250194, 0.064643, 10.119086, 0 },
+ { -0.239420, 0.077812, 10.116693, 0 },
+ { -0.245406, 0.080206, 10.128663, 0 },
+ { -0.243011, 0.084994, 10.123875, 0 },
+ { -0.244208, 0.077812, 10.125072, 0 },
+ { -0.237026, 0.089783, 10.122678, 0 },
+ { -0.235829, 0.065841, 10.137043, 0 },
+ { -0.245406, 0.065841, 10.150211, 0 },
+ { -0.252588, 0.074220, 10.111904, 0 },
+ { -0.241814, 0.068235, 10.146620, 0 },
+ { -0.229843, 0.069432, 10.120284, 0 },
+ { -0.240617, 0.079009, 10.131058, 0 },
+ { -0.240617, 0.084994, 10.095144, 0 },
+ { -0.239420, 0.067038, 10.133451, 0 },
+ { -0.247800, 0.083797, 10.128663, 0 },
+ { -0.252588, 0.075417, 10.135846, 0 },
+ { -0.252588, 0.068235, 10.131058, 0 },
+ { -0.243011, 0.087388, 10.102327, 0 },
+ { -0.247800, 0.088585, 10.132255, 0 },
+ { -0.243011, 0.086191, 10.127466, 0 },
+ { -0.229843, 0.080206, 10.123875, 0 },
+ { -0.245406, 0.073023, 10.134649, 0 },
+ { -0.233435, 0.081403, 10.132255, 0 },
+ { -0.245406, 0.082600, 10.126269, 0 },
+ { -0.233435, 0.073023, 10.137043, 0 },
+ { -0.235829, 0.070629, 10.140635, 0 },
+ { -0.241814, 0.076614, 10.121481, 0 },
+ { -0.244208, 0.069432, 10.123875, 0 },
+ { -0.252588, 0.075417, 10.140635, 0 },
+ { -0.253785, 0.080206, 10.133451, 0 },
+ { -0.237026, 0.075417, 10.121481, 0 },
+ { -0.227449, 0.065841, 10.129861, 0 },
+ { -0.245406, 0.077812, 10.131058, 0 },
+ { -0.229843, 0.094571, 10.129861, 0 },
+ { -0.237026, 0.068235, 10.105919, 0 },
+ { -0.260968, 0.073023, 10.120284, 0 },
+ { -0.241814, 0.076614, 10.131058, 0 },
+ { -0.250194, 0.077812, 10.126269, 0 },
+ { -0.254982, 0.068235, 10.135846, 0 },
+ { -0.240617, 0.071826, 10.108313, 0 },
+ { -0.258574, 0.083797, 10.125072, 0 },
+ { -0.254982, 0.081403, 10.132255, 0 },
+ { -0.251391, 0.079009, 10.135846, 0 },
+ { -0.245406, 0.069432, 10.121481, 0 },
+ { -0.232237, 0.069432, 10.122678, 0 },
+ { -0.234632, 0.083797, 10.131058, 0 },
+ { -0.234632, 0.089783, 10.129861, 0 },
+ { -0.238223, 0.079009, 10.127466, 0 },
+ { -0.246603, 0.083797, 10.121481, 0 },
+ { -0.247800, 0.074220, 10.121481, 0 },
+ { -0.247800, 0.075417, 10.117889, 0 },
+ { -0.235829, 0.065841, 10.129861, 0 },
+ { -0.241814, 0.075417, 10.111904, 0 },
+ { -0.239420, 0.081403, 10.129861, 0 },
+ { -0.247800, 0.087388, 10.128663, 0 },
+ { -0.243011, 0.079009, 10.126269, 0 },
+ { -0.245406, 0.067038, 10.137043, 0 },
+ { -0.257377, 0.059855, 10.122678, 0 },
+ { -0.250194, 0.068235, 10.147817, 0 },
+ { -0.243011, 0.074220, 10.129861, 0 },
+ { -0.237026, 0.086191, 10.129861, 0 },
+ { -0.246603, 0.107739, 10.131058, 0 },
+ { -0.241814, 0.082600, 10.141831, 0 },
+ { -0.245406, 0.064643, 10.119086, 0 },
+ { -0.258574, 0.075417, 10.129861, 0 },
+ { -0.237026, 0.071826, 10.123875, 0 },
+ { -0.243011, 0.075417, 10.101130, 0 },
+ { -0.253785, 0.083797, 10.125072, 0 },
+ { -0.241814, 0.081403, 10.119086, 0 },
+ { -0.234632, 0.089783, 10.137043, 0 },
+ { -0.245406, 0.070629, 10.132255, 0 },
+ { -0.251391, 0.067038, 10.131058, 0 },
+ { -0.250194, 0.069432, 10.139438, 0 },
+ { -0.237026, 0.086191, 10.123875, 0 },
+ { -0.235829, 0.086191, 10.147817, 0 },
+ { -0.248997, 0.074220, 10.123875, 0 },
+ { -0.251391, 0.079009, 10.114298, 0 },
+ { -0.246603, 0.081403, 10.122678, 0 },
+ { -0.235829, 0.079009, 10.119086, 0 },
+ { -0.240617, 0.087388, 10.127466, 0 },
+ { -0.239420, 0.077812, 10.133451, 0 },
+ { -0.247800, 0.087388, 10.108313, 0 },
+ { -0.245406, 0.087388, 10.111904, 0 },
+ { -0.237026, 0.073023, 10.147817, 0 },
+ { -0.241814, 0.079009, 10.135846, 0 },
+ { -0.241814, 0.074220, 10.121481, 0 },
+ { -0.258574, 0.063446, 10.146620, 0 },
+ { -0.243011, 0.079009, 10.123875, 0 },
+ { -0.225055, 0.073023, 10.122678, 0 },
+ { -0.234632, 0.075417, 10.119086, 0 },
+ { -0.246603, 0.068235, 10.134649, 0 },
+ { -0.235829, 0.071826, 10.141831, 0 },
+ { -0.234632, 0.069432, 10.137043, 0 },
+ { -0.244208, 0.064643, 10.126269, 0 },
+ { -0.239420, 0.068235, 10.125072, 0 },
+ { -0.246603, 0.087388, 10.131058, 0 },
+ { -0.241814, 0.071826, 10.128663, 0 },
+ { -0.241814, 0.083797, 10.140635, 0 },
+ { -0.252588, 0.070629, 10.119086, 0 },
+ { -0.243011, 0.070629, 10.117889, 0 },
+ { -0.265756, 0.077812, 10.125072, 0 },
+ { -0.248997, 0.083797, 10.129861, 0 },
+ { -0.248997, 0.082600, 10.122678, 0 },
+ { -0.247800, 0.083797, 10.133451, 0 },
+ { -0.260968, 0.086191, 10.141831, 0 },
+ { -0.244208, 0.075417, 10.132255, 0 },
+ { -0.232237, 0.080206, 10.135846, 0 },
+ { -0.244208, 0.077812, 10.131058, 0 },
+ { -0.239420, 0.077812, 10.143028, 0 },
+ { -0.238223, 0.077812, 10.127466, 0 },
+ { -0.235829, 0.089783, 10.140635, 0 },
+ { -0.239420, 0.070629, 10.111904, 0 },
+ { -0.253785, 0.064643, 10.129861, 0 },
+ { -0.250194, 0.065841, 10.127466, 0 },
+ { -0.251391, 0.073023, 10.110707, 0 },
+ { -0.240617, 0.069432, 10.098736, 0 },
+ { -0.246603, 0.074220, 10.122678, 0 },
+ { -0.243011, 0.077812, 10.141831, 0 },
+ { -0.243011, 0.074220, 10.131058, 0 },
+ { -0.247800, 0.081403, 10.125072, 0 },
+ { -0.256179, 0.057461, 10.134649, 0 },
+ { -0.243011, 0.068235, 10.144226, 0 },
+ { -0.228646, 0.095768, 10.125072, 0 },
+ { -0.250194, 0.083797, 10.135846, 0 },
+ { -0.246603, 0.062249, 10.122678, 0 },
+ { -0.245406, 0.073023, 10.119086, 0 },
+ { -0.246603, 0.081403, 10.122678, 0 },
+ { -0.246603, 0.080206, 10.129861, 0 },
+ { -0.231040, 0.067038, 10.116693, 0 },
+ { -0.228646, 0.074220, 10.129861, 0 },
+ { -0.235829, 0.073023, 10.134649, 0 },
+ { -0.246603, 0.093374, 10.123875, 0 },
+ { -0.252588, 0.080206, 10.127466, 0 },
+ { -0.233435, 0.061052, 10.133451, 0 },
+ { -0.243011, 0.070629, 10.137043, 0 },
+ { -0.250194, 0.077812, 10.108313, 0 },
+ { -0.235829, 0.083797, 10.121481, 0 },
+ { -0.247800, 0.081403, 10.141831, 0 },
+ { -0.252588, 0.081403, 10.131058, 0 },
+ { -0.243011, 0.080206, 10.126269, 0 },
+ { -0.235829, 0.070629, 10.109509, 0 },
+ { -0.237026, 0.073023, 10.135846, 0 },
+ { -0.237026, 0.074220, 10.123875, 0 },
+ { -0.253785, 0.089783, 10.117889, 0 },
+ { -0.248997, 0.087388, 10.123875, 0 },
+ { -0.228646, 0.073023, 10.128663, 0 },
+ { -0.233435, 0.073023, 10.137043, 0 },
+ { -0.247800, 0.080206, 10.123875, 0 },
+ { -0.254982, 0.074220, 10.132255, 0 },
+ { -0.234632, 0.081403, 10.113101, 0 },
+ { -0.241814, 0.074220, 10.149014, 0 },
+ { -0.244208, 0.064643, 10.119086, 0 },
+ { -0.235829, 0.069432, 10.121481, 0 },
+ { -0.237026, 0.071826, 10.123875, 0 },
+ { -0.241814, 0.065841, 10.134649, 0 },
+ { -0.237026, 0.065841, 10.153803, 0 },
+ { -0.239420, 0.077812, 10.135846, 0 },
+ { -0.244208, 0.073023, 10.125072, 0 },
+ { -0.246603, 0.065841, 10.117889, 0 },
+ { -0.237026, 0.073023, 10.129861, 0 },
+ { -0.254982, 0.080206, 10.111904, 0 },
+ { -0.241814, 0.076614, 10.140635, 0 },
+ { -0.243011, 0.057461, 10.123875, 0 },
+ { -0.241814, 0.081403, 10.139438, 0 },
+ { -0.246603, 0.070629, 10.131058, 0 },
+ { -0.251391, 0.075417, 10.147817, 0 },
+ { -0.251391, 0.070629, 10.120284, 0 },
+ { -0.234632, 0.086191, 10.137043, 0 },
+ { -0.235829, 0.079009, 10.119086, 0 },
+ { -0.235829, 0.086191, 10.119086, 0 },
+ { -0.234632, 0.069432, 10.121481, 0 },
+ { -0.246603, 0.069432, 10.126269, 0 },
+ { -0.245406, 0.083797, 10.145423, 0 },
+ { -0.245406, 0.077812, 10.116693, 0 },
+ { -0.240617, 0.079009, 10.144226, 0 },
+ { -0.237026, 0.073023, 10.134649, 0 },
+ { -0.238223, 0.077812, 10.140635, 0 },
+ { -0.227449, 0.082600, 10.127466, 0 },
+ { -0.233435, 0.092177, 10.122678, 0 },
+ { -0.246603, 0.083797, 10.140635, 0 },
+ { -0.229843, 0.065841, 10.134649, 0 },
+ { -0.227449, 0.080206, 10.138240, 0 },
+ { -0.243011, 0.077812, 10.138240, 0 },
+ { -0.240617, 0.076614, 10.119086, 0 },
+ { -0.241814, 0.073023, 10.125072, 0 },
+ { -0.240617, 0.071826, 10.123875, 0 },
+ { -0.250194, 0.079009, 10.117889, 0 },
+ { -0.243011, 0.080206, 10.145423, 0 },
+ { -0.252588, 0.081403, 10.119086, 0 },
+ { -0.240617, 0.068235, 10.132255, 0 },
+ { -0.244208, 0.065841, 10.114298, 0 },
+ { -0.235829, 0.073023, 10.125072, 0 },
+ { -0.248997, 0.076614, 10.117889, 0 },
+ { -0.250194, 0.059855, 10.121481, 0 },
+ { -0.239420, 0.095768, 10.147817, 0 },
+ { -0.262165, 0.081403, 10.116693, 0 },
+ { -0.253785, 0.065841, 10.149014, 0 },
+ { -0.244208, 0.067038, 10.115496, 0 },
+ { -0.238223, 0.074220, 10.122678, 0 },
+ { -0.235829, 0.075417, 10.149014, 0 },
+ { -0.243011, 0.062249, 10.144226, 0 },
+ { -0.244208, 0.073023, 10.123875, 0 },
+ { -0.239420, 0.084994, 10.132255, 0 },
+ { -0.238223, 0.074220, 10.120284, 0 },
+ { -0.256179, 0.063446, 10.137043, 0 },
+ { -0.243011, 0.061052, 10.117889, 0 },
+ { -0.235829, 0.064643, 10.119086, 0 },
+ { -0.235829, 0.079009, 10.133451, 0 },
+ { -0.237026, 0.082600, 10.119086, 0 },
+ { -0.238223, 0.079009, 10.139438, 0 },
+ { -0.247800, 0.065841, 10.117889, 0 },
+ { -0.243011, 0.069432, 10.158591, 0 },
+ { -0.246603, 0.080206, 10.122678, 0 },
+ { -0.256179, 0.083797, 10.141831, 0 },
+ { -0.235829, 0.092177, 10.108313, 0 },
+ { -0.237026, 0.061052, 10.132255, 0 },
+ { -0.237026, 0.058658, 10.156197, 0 },
+ { -0.244208, 0.059855, 10.117889, 0 },
+ { -0.237026, 0.087388, 10.144226, 0 },
+ { -0.257377, 0.094571, 10.110707, 0 },
+ { -0.256179, 0.080206, 10.132255, 0 },
+ { -0.243011, 0.089783, 10.133451, 0 },
+ { -0.238223, 0.080206, 10.133451, 0 },
+ { -0.240617, 0.067038, 10.114298, 0 },
+ { -0.246603, 0.064643, 10.133451, 0 },
+ { -0.245406, 0.075417, 10.128663, 0 },
+ { -0.240617, 0.071826, 10.122678, 0 },
+ { -0.229843, 0.068235, 10.126269, 0 },
+ { -0.240617, 0.081403, 10.123875, 0 },
+ { -0.244208, 0.079009, 10.138240, 0 },
+ { -0.237026, 0.065841, 10.145423, 0 },
+ { -0.239420, 0.069432, 10.133451, 0 },
+ { -0.253785, 0.076614, 10.127466, 0 },
+ { -0.256179, 0.082600, 10.125072, 0 },
+ { -0.232237, 0.081403, 10.113101, 0 },
+ { -0.239420, 0.065841, 10.139438, 0 },
+ { -0.241814, 0.084994, 10.128663, 0 },
+ { -0.252588, 0.071826, 10.122678, 0 },
+ { -0.243011, 0.067038, 10.157393, 0 },
+ { -0.251391, 0.081403, 10.134649, 0 },
+ { -0.251391, 0.083797, 10.127466, 0 },
+ { -0.265756, 0.074220, 10.115496, 0 },
+ { -0.245406, 0.062249, 10.150211, 0 },
+ { -0.241814, 0.070629, 10.117889, 0 },
+ { -0.257377, 0.083797, 10.120284, 0 },
+ { -0.239420, 0.081403, 10.121481, 0 },
+ { -0.247800, 0.068235, 10.135846, 0 },
+ { -0.243011, 0.071826, 10.129861, 0 },
+ { -0.235829, 0.082600, 10.128663, 0 },
+ { -0.247800, 0.073023, 10.145423, 0 },
+ { -0.258574, 0.065841, 10.123875, 0 },
+ { -0.233435, 0.069432, 10.122678, 0 },
+ { -0.245406, 0.076614, 10.120284, 0 },
+ { -0.247800, 0.089783, 10.131058, 0 },
+ { -0.244208, 0.090980, 10.114298, 0 },
+ { -0.247800, 0.089783, 10.143028, 0 },
+ { -0.229843, 0.073023, 10.119086, 0 },
+ { -0.240617, 0.082600, 10.134649, 0 },
+ { -0.244208, 0.095768, 10.125072, 0 },
+ { -0.241814, 0.083797, 10.145423, 0 },
+ { -0.250194, 0.068235, 10.139438, 0 },
+ { -0.248997, 0.075417, 10.113101, 0 },
+ { -0.250194, 0.076614, 10.128663, 0 },
+ { -0.247800, 0.081403, 10.114298, 0 },
+ { -0.247800, 0.075417, 10.123875, 0 },
+ { -0.248997, 0.095768, 10.145423, 0 },
+ { -0.245406, 0.088585, 10.143028, 0 },
+ { -0.238223, 0.084994, 10.113101, 0 },
+ { -0.240617, 0.071826, 10.126269, 0 },
+ { -0.240617, 0.067038, 10.140635, 0 },
+ { -0.245406, 0.071826, 10.138240, 0 },
+ { -0.254982, 0.073023, 10.128663, 0 },
+ { -0.245406, 0.077812, 10.145423, 0 },
+ { -0.250194, 0.070629, 10.127466, 0 },
+ { -0.243011, 0.073023, 10.137043, 0 },
+ { -0.245406, 0.067038, 10.117889, 0 },
+ { -0.243011, 0.071826, 10.151408, 0 },
+ { -0.252588, 0.081403, 10.128663, 0 },
+ { -0.233435, 0.074220, 10.110707, 0 },
+ { -0.243011, 0.074220, 10.126269, 0 },
+ { -0.239420, 0.089783, 10.143028, 0 },
+ { -0.237026, 0.086191, 10.123875, 0 },
+ { -0.243011, 0.064643, 10.129861, 0 },
+ { -0.234632, 0.077812, 10.133451, 0 },
+ { -0.250194, 0.086191, 10.133451, 0 },
+ { -0.241814, 0.074220, 10.125072, 0 },
+ { -0.243011, 0.086191, 10.122678, 0 },
+ { -0.234632, 0.076614, 10.121481, 0 },
+ { -0.251391, 0.082600, 10.135846, 0 },
+ { -0.251391, 0.084994, 10.133451, 0 },
+ { -0.245406, 0.063446, 10.117889, 0 },
+ { -0.253785, 0.079009, 10.122678, 0 },
+ { -0.243011, 0.074220, 10.129861, 0 },
+ { -0.233435, 0.069432, 10.127466, 0 },
+ { -0.251391, 0.077812, 10.126269, 0 },
+ { -0.245406, 0.079009, 10.120284, 0 },
+ { -0.247800, 0.068235, 10.128663, 0 },
+ { -0.244208, 0.069432, 10.133451, 0 },
+ { -0.238223, 0.074220, 10.146620, 0 },
+ { -0.241814, 0.080206, 10.120284, 0 },
+ { -0.248997, 0.071826, 10.107116, 0 },
+ { -0.240617, 0.073023, 10.123875, 0 },
+ { -0.239420, 0.063446, 10.135846, 0 },
+ { -0.245406, 0.068235, 10.117889, 0 },
+ { -0.248997, 0.088585, 10.105919, 0 },
+ { -0.248997, 0.067038, 10.138240, 0 },
+ { -0.247800, 0.074220, 10.128663, 0 },
+ { -0.237026, 0.079009, 10.138240, 0 },
+ { -0.243011, 0.092177, 10.140635, 0 },
+ { -0.235829, 0.082600, 10.128663, 0 },
+ { -0.240617, 0.079009, 10.116693, 0 },
+ { -0.248997, 0.087388, 10.114298, 0 },
+ { -0.238223, 0.079009, 10.120284, 0 },
+ { -0.241814, 0.087388, 10.128663, 0 },
+ { -0.250194, 0.063446, 10.129861, 0 },
+ { -0.245406, 0.071826, 10.128663, 0 },
+ { -0.251391, 0.073023, 10.123875, 0 },
+ { -0.258574, 0.084994, 10.137043, 0 },
+ { -0.246603, 0.077812, 10.140635, 0 },
+ { -0.244208, 0.070629, 10.111904, 0 },
+ { -0.252588, 0.075417, 10.143028, 0 },
+ { -0.248997, 0.069432, 10.117889, 0 },
+ { -0.243011, 0.073023, 10.129861, 0 },
+ { -0.238223, 0.079009, 10.143028, 0 },
+ { -0.238223, 0.080206, 10.114298, 0 },
+ { -0.241814, 0.074220, 10.132255, 0 },
+ { -0.240617, 0.065841, 10.132255, 0 },
+ { -0.247800, 0.069432, 10.134649, 0 },
+ { -0.251391, 0.075417, 10.132255, 0 },
+ { -0.238223, 0.086191, 10.115496, 0 },
+ { -0.245406, 0.076614, 10.139438, 0 },
+ { -0.240617, 0.073023, 10.123875, 0 },
+ { -0.238223, 0.071826, 10.137043, 0 },
+ { -0.245406, 0.076614, 10.135846, 0 },
+ { -0.251391, 0.081403, 10.133451, 0 },
+ { -0.251391, 0.086191, 10.134649, 0 },
+ { -0.248997, 0.079009, 10.115496, 0 },
+ { -0.256179, 0.067038, 10.133451, 0 },
+ { -0.246603, 0.068235, 10.121481, 0 },
+ { -0.244208, 0.082600, 10.135846, 0 },
+ { -0.250194, 0.079009, 10.122678, 0 },
+ { -0.252588, 0.079009, 10.120284, 0 },
+ { -0.243011, 0.083797, 10.127466, 0 },
+ { -0.243011, 0.071826, 10.119086, 0 },
+ { -0.251391, 0.081403, 10.128663, 0 },
+ { -0.252588, 0.065841, 10.122678, 0 },
+ { -0.240617, 0.079009, 10.131058, 0 },
+ { -0.253785, 0.082600, 10.121481, 0 },
+ { -0.256179, 0.071826, 10.140635, 0 },
+ { -0.263362, 0.070629, 10.123875, 0 },
+ { -0.248997, 0.074220, 10.123875, 0 },
+ { -0.235829, 0.064643, 10.125072, 0 },
+ { -0.238223, 0.082600, 10.125072, 0 },
+ { -0.238223, 0.077812, 10.108313, 0 },
+ { -0.231040, 0.071826, 10.117889, 0 },
+ { -0.250194, 0.093374, 10.122678, 0 },
+ { -0.241814, 0.080206, 10.123875, 0 },
+ { -0.258574, 0.073023, 10.117889, 0 },
+ { -0.248997, 0.071826, 10.127466, 0 },
+ { -0.246603, 0.067038, 10.146620, 0 },
+ { -0.248997, 0.074220, 10.126269, 0 },
+ { -0.248997, 0.071826, 10.133451, 0 },
+ { -0.247800, 0.080206, 10.133451, 0 },
+ { -0.239420, 0.076614, 10.138240, 0 },
+ { -0.248997, 0.081403, 10.127466, 0 },
+ { -0.248997, 0.076614, 10.137043, 0 },
+ { -0.248997, 0.080206, 10.123875, 0 },
+ { -0.239420, 0.067038, 10.141831, 0 },
+ { -0.235829, 0.083797, 10.119086, 0 },
+ { -0.247800, 0.069432, 10.134649, 0 },
+ { -0.237026, 0.087388, 10.137043, 0 },
+ { -0.246603, 0.073023, 10.131058, 0 },
+ { -0.251391, 0.083797, 10.135846, 0 },
+ { -0.247800, 0.071826, 10.121481, 0 },
+ { -0.246603, 0.076614, 10.128663, 0 },
+ { -0.251391, 0.082600, 10.114298, 0 },
+ { -0.254982, 0.082600, 10.134649, 0 },
+ { -0.237026, 0.084994, 10.117889, 0 },
+ { -0.229843, 0.077812, 10.119086, 0 },
+ { -0.246603, 0.070629, 10.125072, 0 },
+ { -0.235829, 0.076614, 10.140635, 0 },
+ { -0.245406, 0.061052, 10.122678, 0 },
+ { -0.240617, 0.076614, 10.119086, 0 },
+ { -0.259771, 0.088585, 10.126269, 0 },
+ { -0.241814, 0.077812, 10.139438, 0 },
+ { -0.244208, 0.075417, 10.116693, 0 },
+ { -0.239420, 0.067038, 10.109509, 0 },
+ { -0.241814, 0.083797, 10.134649, 0 },
+ { -0.244208, 0.067038, 10.125072, 0 },
+ { -0.244208, 0.073023, 10.149014, 0 },
+ { -0.243011, 0.084994, 10.116693, 0 },
+ { -0.231040, 0.076614, 10.123875, 0 },
+ { -0.247800, 0.089783, 10.120284, 0 },
+ { -0.246603, 0.077812, 10.122678, 0 },
+ { -0.262165, 0.077812, 10.120284, 0 },
+ { -0.231040, 0.070629, 10.115496, 0 },
+ { -0.243011, 0.077812, 10.149014, 0 },
+ { -0.248997, 0.090980, 10.119086, 0 },
+ { -0.250194, 0.090980, 10.132255, 0 },
+ { -0.238223, 0.074220, 10.120284, 0 },
+ { -0.228646, 0.080206, 10.140635, 0 },
+ { -0.245406, 0.075417, 10.113101, 0 },
+ { -0.233435, 0.089783, 10.131058, 0 },
+ { -0.244208, 0.081403, 10.117889, 0 },
+ { -0.246603, 0.063446, 10.141831, 0 },
+ { -0.235829, 0.090980, 10.143028, 0 },
+ { -0.233435, 0.081403, 10.125072, 0 },
+ { -0.251391, 0.077812, 10.127466, 0 },
+ { -0.238223, 0.081403, 10.125072, 0 },
+ { -0.235829, 0.074220, 10.132255, 0 },
+ { -0.244208, 0.064643, 10.119086, 0 },
+ { -0.256179, 0.071826, 10.143028, 0 },
+ { -0.240617, 0.082600, 10.110707, 0 },
+ { -0.248997, 0.071826, 10.137043, 0 },
+ { -0.251391, 0.076614, 10.125072, 0 },
+ { -0.228646, 0.082600, 10.134649, 0 },
+ { -0.233435, 0.082600, 10.111904, 0 },
+ { -0.246603, 0.068235, 10.119086, 0 },
+ { -0.235829, 0.067038, 10.143028, 0 },
+ { -0.241814, 0.079009, 10.126269, 0 },
+ { -0.238223, 0.095768, 10.125072, 0 },
+ { -0.243011, 0.065841, 10.105919, 0 },
+ { -0.256179, 0.081403, 10.132255, 0 },
+ { -0.256179, 0.073023, 10.110707, 0 },
+ { -0.246603, 0.079009, 10.145423, 0 },
+ { -0.231040, 0.069432, 10.122678, 0 },
+ { -0.234632, 0.065841, 10.139438, 0 },
+ { -0.232237, 0.094571, 10.126269, 0 },
+ { -0.243011, 0.081403, 10.149014, 0 },
+ { -0.256179, 0.083797, 10.132255, 0 },
+ { -0.246603, 0.073023, 10.127466, 0 },
+ { -0.244208, 0.067038, 10.131058, 0 },
+ { -0.244208, 0.082600, 10.133451, 0 },
+ { -0.239420, 0.088585, 10.137043, 0 },
+ { -0.234632, 0.069432, 10.123875, 0 },
+ { -0.241814, 0.069432, 10.137043, 0 },
+ { -0.241814, 0.083797, 10.120284, 0 },
+ { -0.243011, 0.075417, 10.134649, 0 },
+ { -0.250194, 0.075417, 10.132255, 0 },
+ { -0.240617, 0.076614, 10.126269, 0 },
+ { -0.265756, 0.083797, 10.137043, 0 },
+ { -0.258574, 0.079009, 10.116693, 0 },
+ { -0.237026, 0.069432, 10.122678, 0 },
+ { -0.248997, 0.073023, 10.121481, 0 },
+ { -0.256179, 0.080206, 10.123875, 0 },
+ { -0.248997, 0.067038, 10.122678, 0 },
+ { -0.237026, 0.083797, 10.143028, 0 },
+ { -0.238223, 0.080206, 10.114298, 0 },
+ { -0.253785, 0.074220, 10.129861, 0 },
+ { -0.250194, 0.075417, 10.129861, 0 },
+ { -0.254982, 0.081403, 10.151408, 0 },
+ { -0.250194, 0.070629, 10.135846, 0 },
+ { -0.247800, 0.075417, 10.120284, 0 },
+ { -0.241814, 0.064643, 10.139438, 0 },
+ { -0.246603, 0.071826, 10.138240, 0 },
+ { -0.243011, 0.079009, 10.152605, 0 },
+ { -0.241814, 0.080206, 10.127466, 0 },
+ { -0.251391, 0.070629, 10.129861, 0 },
+ { -0.243011, 0.081403, 10.139438, 0 },
+ { -0.251391, 0.070629, 10.129861, 0 },
+ { -0.251391, 0.076614, 10.122678, 0 },
+ { -0.252588, 0.079009, 10.133451, 0 },
+ { -0.254982, 0.073023, 10.128663, 0 },
+ { -0.232237, 0.067038, 10.113101, 0 },
+ { -0.239420, 0.088585, 10.120284, 0 },
+ { -0.245406, 0.080206, 10.113101, 0 },
+ { -0.238223, 0.075417, 10.131058, 0 },
+ { -0.244208, 0.065841, 10.109509, 0 },
+ { -0.235829, 0.068235, 10.141831, 0 },
+ { -0.251391, 0.081403, 10.121481, 0 },
+ { -0.250194, 0.077812, 10.119086, 0 },
+ { -0.241814, 0.071826, 10.126269, 0 },
+ { -0.233435, 0.069432, 10.135846, 0 },
+ { -0.239420, 0.076614, 10.131058, 0 },
+ { -0.239420, 0.088585, 10.107116, 0 },
+ { -0.234632, 0.084994, 10.126269, 0 },
+ { -0.247800, 0.077812, 10.128663, 0 },
+ { -0.246603, 0.083797, 10.137043, 0 },
+ { -0.240617, 0.087388, 10.127466, 0 },
+ { -0.256179, 0.070629, 10.117889, 0 },
+ { -0.243011, 0.077812, 10.121481, 0 },
+ { -0.243011, 0.083797, 10.133451, 0 },
+ { -0.252588, 0.087388, 10.125072, 0 },
+ { -0.256179, 0.073023, 10.127466, 0 },
+ { -0.239420, 0.057461, 10.128663, 0 },
+ { -0.243011, 0.070629, 10.117889, 0 },
+ { -0.252588, 0.074220, 10.138240, 0 },
+ { -0.243011, 0.073023, 10.127466, 0 },
+ { -0.238223, 0.082600, 10.133451, 0 },
+ { -0.235829, 0.074220, 10.143028, 0 },
+ { -0.248997, 0.065841, 10.153803, 0 },
+ { -0.240617, 0.081403, 10.107116, 0 },
+ { -0.241814, 0.087388, 10.123875, 0 },
+ { -0.241814, 0.070629, 10.141831, 0 },
+ { -0.238223, 0.074220, 10.113101, 0 },
+ { -0.251391, 0.079009, 10.129861, 0 },
+ { -0.253785, 0.082600, 10.108313, 0 },
+ { -0.254982, 0.075417, 10.121481, 0 },
+ { -0.247800, 0.057461, 10.133451, 0 },
+ { -0.243011, 0.058658, 10.128663, 0 },
+ { -0.244208, 0.080206, 10.120284, 0 },
+ { -0.231040, 0.079009, 10.109509, 0 },
+ { -0.256179, 0.070629, 10.120284, 0 },
+ { -0.251391, 0.082600, 10.143028, 0 },
+ { -0.233435, 0.068235, 10.128663, 0 },
+ { -0.241814, 0.068235, 10.129861, 0 },
+ { -0.235829, 0.083797, 10.111904, 0 },
+ { -0.238223, 0.067038, 10.139438, 0 },
+ { -0.260968, 0.063446, 10.128663, 0 },
+ { -0.231040, 0.084994, 10.140635, 0 },
+ { -0.237026, 0.082600, 10.134649, 0 },
+ { -0.246603, 0.070629, 10.144226, 0 },
+ { -0.246603, 0.080206, 10.125072, 0 },
+ { -0.244208, 0.087388, 10.122678, 0 },
+ { -0.234632, 0.069432, 10.111904, 0 },
+ { -0.252588, 0.065841, 10.121481, 0 },
+ { -0.245406, 0.071826, 10.128663, 0 },
+ { -0.243011, 0.075417, 10.129861, 0 },
+ { -0.238223, 0.068235, 10.139438, 0 },
+ { -0.256179, 0.076614, 10.126269, 0 },
+ { -0.246603, 0.083797, 10.131058, 0 },
+ { -0.248997, 0.080206, 10.116693, 0 },
+ { -0.241814, 0.082600, 10.123875, 0 },
+ { -0.262165, 0.075417, 10.113101, 0 },
+ { -0.240617, 0.079009, 10.134649, 0 },
+ { -0.244208, 0.077812, 10.121481, 0 },
+ { -0.246603, 0.068235, 10.141831, 0 },
+ { -0.252588, 0.075417, 10.120284, 0 },
+ { -0.247800, 0.084994, 10.104721, 0 },
+ { -0.241814, 0.086191, 10.126269, 0 },
+ { -0.237026, 0.082600, 10.117889, 0 },
+ { -0.243011, 0.070629, 10.117889, 0 },
+ { -0.239420, 0.070629, 10.135846, 0 },
+ { -0.237026, 0.065841, 10.120284, 0 },
+ { -0.237026, 0.061052, 10.125072, 0 },
+ { -0.235829, 0.061052, 10.114298, 0 },
+ { -0.252588, 0.074220, 10.137043, 0 },
+ { -0.253785, 0.086191, 10.119086, 0 },
+ { -0.252588, 0.089783, 10.129861, 0 },
+ { -0.245406, 0.084994, 10.126269, 0 },
+ { -0.232237, 0.076614, 10.120284, 0 },
+ { -0.252588, 0.082600, 10.119086, 0 },
+ { -0.251391, 0.064643, 10.132255, 0 },
+ { -0.227449, 0.076614, 10.149014, 0 },
+ { -0.259771, 0.083797, 10.131058, 0 },
+ { -0.248997, 0.075417, 10.127466, 0 },
+ { -0.244208, 0.071826, 10.133451, 0 },
+ { -0.243011, 0.070629, 10.132255, 0 },
+ { -0.228646, 0.076614, 10.128663, 0 },
+ { -0.241814, 0.089783, 10.138240, 0 },
+ { -0.252588, 0.086191, 10.122678, 0 },
+ { -0.254982, 0.068235, 10.133451, 0 },
+ { -0.250194, 0.071826, 10.150211, 0 },
+ { -0.235829, 0.084994, 10.140635, 0 },
+ { -0.234632, 0.087388, 10.139438, 0 },
+ { -0.245406, 0.077812, 10.105919, 0 },
+ { -0.250194, 0.080206, 10.107116, 0 },
+ { -0.240617, 0.092177, 10.132255, 0 },
+ { -0.243011, 0.077812, 10.133451, 0 },
+ { -0.248997, 0.062249, 10.128663, 0 },
+ { -0.245406, 0.068235, 10.125072, 0 },
+ { -0.250194, 0.064643, 10.129861, 0 },
+ { -0.248997, 0.082600, 10.126269, 0 },
+ { -0.252588, 0.073023, 10.141831, 0 },
+ { -0.250194, 0.076614, 10.127466, 0 },
+ { -0.251391, 0.077812, 10.121481, 0 },
+ { -0.250194, 0.069432, 10.134649, 0 },
+ { -0.232237, 0.065841, 10.131058, 0 },
+ { -0.233435, 0.081403, 10.131058, 0 },
+ { -0.241814, 0.074220, 10.111904, 0 },
+ { -0.248997, 0.064643, 10.135846, 0 },
+ { -0.239420, 0.081403, 10.143028, 0 },
+ { -0.239420, 0.077812, 10.138240, 0 },
+ { -0.237026, 0.074220, 10.110707, 0 },
+ { -0.235829, 0.081403, 10.121481, 0 },
+ { -0.247800, 0.063446, 10.129861, 0 },
+ { -0.235829, 0.068235, 10.121481, 0 },
+ { -0.238223, 0.064643, 10.123875, 0 },
+ { -0.246603, 0.070629, 10.132255, 0 },
+ { -0.264559, 0.073023, 10.145423, 0 },
+ { -0.247800, 0.065841, 10.116693, 0 },
+ { -0.247800, 0.084994, 10.125072, 0 },
+ { -0.225055, 0.080206, 10.115496, 0 },
+ { -0.233435, 0.064643, 10.135846, 0 },
+ { -0.247800, 0.069432, 10.131058, 0 },
+ { -0.234632, 0.081403, 10.125072, 0 },
+ { -0.246603, 0.081403, 10.128663, 0 },
+ { -0.235829, 0.086191, 10.117889, 0 },
+ { -0.233435, 0.077812, 10.122678, 0 },
+ { -0.256179, 0.049081, 10.128663, 0 },
+ { -0.243011, 0.083797, 10.138240, 0 },
+ { -0.239420, 0.087388, 10.129861, 0 },
+ { -0.238223, 0.068235, 10.131058, 0 },
+ { -0.234632, 0.068235, 10.129861, 0 },
+ { -0.250194, 0.080206, 10.135846, 0 },
+ { -0.246603, 0.062249, 10.131058, 0 },
+ { -0.243011, 0.076614, 10.134649, 0 },
+ { -0.246603, 0.093374, 10.128663, 0 },
+ { -0.251391, 0.065841, 10.126269, 0 },
+ { -0.235829, 0.069432, 10.135846, 0 },
+ { -0.243011, 0.081403, 10.120284, 0 },
+ { -0.245406, 0.086191, 10.129861, 0 },
+ { -0.234632, 0.073023, 10.110707, 0 },
+ { -0.244208, 0.083797, 10.140635, 0 },
+ { -0.247800, 0.069432, 10.141831, 0 },
+ { -0.240617, 0.076614, 10.149014, 0 },
+ { -0.243011, 0.081403, 10.122678, 0 },
+ { -0.237026, 0.071826, 10.120284, 0 },
+ { -0.234632, 0.073023, 10.120284, 0 },
+ { -0.237026, 0.077812, 10.131058, 0 },
+ { -0.244208, 0.080206, 10.152605, 0 },
+ { -0.250194, 0.076614, 10.135846, 0 },
+ { -0.253785, 0.069432, 10.131058, 0 },
+ { -0.260968, 0.073023, 10.141831, 0 },
+ { -0.247800, 0.070629, 10.134649, 0 },
+ { -0.257377, 0.068235, 10.125072, 0 },
+ { -0.243011, 0.073023, 10.121481, 0 },
+ { -0.235829, 0.082600, 10.127466, 0 },
+ { -0.237026, 0.070629, 10.139438, 0 },
+ { -0.227449, 0.081403, 10.127466, 0 },
+ { -0.239420, 0.080206, 10.141831, 0 },
+ { -0.251391, 0.069432, 10.129861, 0 },
+ { -0.238223, 0.069432, 10.121481, 0 },
+ { -0.237026, 0.069432, 10.126269, 0 },
+ { -0.250194, 0.077812, 10.114298, 0 },
+ { -0.237026, 0.094571, 10.116693, 0 },
+ { -0.253785, 0.084994, 10.143028, 0 },
+ { -0.263362, 0.071826, 10.123875, 0 },
+ { -0.246603, 0.064643, 10.126269, 0 },
+ { -0.240617, 0.059855, 10.131058, 0 },
+ { -0.247800, 0.070629, 10.139438, 0 },
+ { -0.240617, 0.082600, 10.132255, 0 },
+ { -0.234632, 0.073023, 10.111904, 0 },
+ { -0.240617, 0.062249, 10.131058, 0 },
+ { -0.238223, 0.080206, 10.129861, 0 },
+ { -0.243011, 0.076614, 10.123875, 0 },
+ { -0.246603, 0.080206, 10.125072, 0 },
+ { -0.235829, 0.079009, 10.127466, 0 },
+ { -0.243011, 0.076614, 10.110707, 0 },
+ { -0.246603, 0.065841, 10.128663, 0 },
+ { -0.246603, 0.076614, 10.133451, 0 },
+ { -0.253785, 0.080206, 10.123875, 0 },
+ { -0.241814, 0.073023, 10.119086, 0 },
+ { -0.250194, 0.075417, 10.120284, 0 },
+ { -0.235829, 0.079009, 10.143028, 0 },
+ { -0.241814, 0.071826, 10.135846, 0 },
+ { -0.254982, 0.077812, 10.125072, 0 },
+ { -0.238223, 0.077812, 10.122678, 0 },
+ { -0.235829, 0.071826, 10.132255, 0 },
+ { -0.238223, 0.084994, 10.120284, 0 },
+ { -0.253785, 0.075417, 10.146620, 0 },
+ { -0.254982, 0.069432, 10.141831, 0 },
+ { -0.240617, 0.087388, 10.126269, 0 },
+ { -0.251391, 0.088585, 10.115496, 0 },
+ { -0.256179, 0.065841, 10.129861, 0 },
+ { -0.243011, 0.069432, 10.127466, 0 },
+ { -0.246603, 0.063446, 10.134649, 0 },
+ { -0.246603, 0.073023, 10.128663, 0 },
+ { -0.240617, 0.068235, 10.119086, 0 },
+ { -0.257377, 0.069432, 10.143028, 0 },
+ { -0.245406, 0.081403, 10.128663, 0 },
+ { -0.252588, 0.075417, 10.120284, 0 },
+ { -0.241814, 0.068235, 10.111904, 0 },
+ { -0.238223, 0.075417, 10.141831, 0 },
+ { -0.240617, 0.071826, 10.111904, 0 },
+ { -0.247800, 0.067038, 10.126269, 0 },
+ { -0.247800, 0.068235, 10.134649, 0 },
+ { -0.238223, 0.084994, 10.139438, 0 },
+ { -0.237026, 0.090980, 10.141831, 0 },
+ { -0.245406, 0.068235, 10.109509, 0 },
+ { -0.256179, 0.076614, 10.143028, 0 },
+ { -0.237026, 0.080206, 10.116693, 0 },
+ { -0.228646, 0.079009, 10.134649, 0 },
+ { -0.247800, 0.071826, 10.121481, 0 },
+ { -0.241814, 0.075417, 10.129861, 0 },
+ { -0.228646, 0.076614, 10.152605, 0 },
+ { -0.238223, 0.087388, 10.125072, 0 },
+ { -0.239420, 0.075417, 10.128663, 0 },
+ { -0.247800, 0.074220, 10.114298, 0 },
+ { -0.219069, 0.080206, 10.126269, 0 },
+ { -0.234632, 0.082600, 10.109509, 0 },
+ { -0.244208, 0.063446, 10.127466, 0 },
+ { -0.247800, 0.068235, 10.134649, 0 },
+ { -0.245406, 0.069432, 10.139438, 0 },
+ { -0.251391, 0.086191, 10.128663, 0 },
+ { -0.244208, 0.065841, 10.127466, 0 },
+ { -0.246603, 0.070629, 10.125072, 0 },
+ { -0.240617, 0.081403, 10.125072, 0 },
+ { -0.232237, 0.063446, 10.141831, 0 },
+ { -0.247800, 0.065841, 10.126269, 0 },
+ { -0.235829, 0.086191, 10.133451, 0 },
+ { -0.245406, 0.096965, 10.121481, 0 },
+ { -0.239420, 0.090980, 10.121481, 0 },
+ { -0.248997, 0.077812, 10.125072, 0 },
+ { -0.231040, 0.067038, 10.126269, 0 },
+ { -0.245406, 0.081403, 10.125072, 0 },
+ { -0.231040, 0.074220, 10.145423, 0 },
+ { -0.253785, 0.067038, 10.115496, 0 },
+ { -0.246603, 0.065841, 10.110707, 0 },
+ { -0.245406, 0.069432, 10.131058, 0 },
+ { -0.232237, 0.076614, 10.113101, 0 },
+ { -0.243011, 0.075417, 10.121481, 0 },
+ { -0.243011, 0.079009, 10.132255, 0 },
+ { -0.238223, 0.079009, 10.123875, 0 },
+ { -0.245406, 0.069432, 10.122678, 0 },
+ { -0.247800, 0.075417, 10.126269, 0 },
+ { -0.239420, 0.079009, 10.139438, 0 },
+ { -0.244208, 0.083797, 10.105919, 0 },
+ { -0.245406, 0.071826, 10.109509, 0 },
+ { -0.233435, 0.076614, 10.128663, 0 },
+ { -0.243011, 0.088585, 10.131058, 0 },
+ { -0.252588, 0.069432, 10.117889, 0 },
+ { -0.248997, 0.090980, 10.119086, 0 },
+ { -0.241814, 0.074220, 10.129861, 0 },
+ { -0.253785, 0.068235, 10.135846, 0 },
+ { -0.240617, 0.074220, 10.125072, 0 },
+ { -0.246603, 0.076614, 10.131058, 0 },
+ { -0.238223, 0.081403, 10.117889, 0 },
+ { -0.246603, 0.074220, 10.127466, 0 },
+ { -0.250194, 0.070629, 10.133451, 0 },
+ { -0.248997, 0.073023, 10.132255, 0 },
+ { -0.250194, 0.077812, 10.122678, 0 },
+ { -0.259771, 0.077812, 10.123875, 0 },
+ { -0.234632, 0.079009, 10.123875, 0 },
+ { -0.241814, 0.073023, 10.120284, 0 },
+ { -0.251391, 0.063446, 10.146620, 0 },
+ { -0.250194, 0.074220, 10.113101, 0 },
+ { -0.256179, 0.082600, 10.119086, 0 },
+ { -0.257377, 0.080206, 10.132255, 0 },
+ { -0.245406, 0.090980, 10.127466, 0 },
+ { -0.243011, 0.075417, 10.133451, 0 },
+ { -0.239420, 0.088585, 10.125072, 0 },
+ { -0.241814, 0.079009, 10.127466, 0 },
+ { -0.251391, 0.070629, 10.137043, 0 },
+ { -0.235829, 0.081403, 10.110707, 0 },
+ { -0.248997, 0.075417, 10.141831, 0 },
+ { -0.231040, 0.087388, 10.125072, 0 },
+ { -0.247800, 0.068235, 10.127466, 0 },
+ { -0.252588, 0.086191, 10.119086, 0 },
+ { -0.240617, 0.071826, 10.127466, 0 },
+ { -0.243011, 0.081403, 10.144226, 0 },
+ { -0.243011, 0.083797, 10.126269, 0 },
+ { -0.251391, 0.074220, 10.127466, 0 },
+ { -0.239420, 0.084994, 10.125072, 0 },
+ { -0.231040, 0.069432, 10.113101, 0 },
+ { -0.246603, 0.069432, 10.138240, 0 },
+ { -0.243011, 0.075417, 10.132255, 0 },
+ { -0.243011, 0.084994, 10.113101, 0 },
+ { -0.253785, 0.082600, 10.120284, 0 },
+ { -0.247800, 0.070629, 10.125072, 0 },
+ { -0.244208, 0.079009, 10.113101, 0 },
+ { -0.260968, 0.073023, 10.127466, 0 },
+ { -0.239420, 0.063446, 10.128663, 0 },
+ { -0.234632, 0.082600, 10.122678, 0 },
+ { -0.240617, 0.079009, 10.132255, 0 },
+ { -0.251391, 0.069432, 10.133451, 0 },
+ { -0.252588, 0.073023, 10.131058, 0 },
+ { -0.239420, 0.059855, 10.121481, 0 },
+ { -0.238223, 0.079009, 10.122678, 0 },
+ { -0.229843, 0.070629, 10.115496, 0 },
+ { -0.246603, 0.074220, 10.128663, 0 },
+ { -0.235829, 0.079009, 10.121481, 0 },
+ { -0.237026, 0.076614, 10.146620, 0 },
+ { -0.244208, 0.077812, 10.117889, 0 },
+ { -0.258574, 0.070629, 10.133451, 0 },
+ { -0.259771, 0.077812, 10.119086, 0 },
+ { -0.246603, 0.083797, 10.133451, 0 },
+ { -0.241814, 0.076614, 10.127466, 0 },
+ { -0.253785, 0.077812, 10.116693, 0 },
+ { -0.256179, 0.075417, 10.123875, 0 },
+ { -0.254982, 0.074220, 10.120284, 0 },
+ { -0.252588, 0.070629, 10.114298, 0 },
+ { -0.256179, 0.074220, 10.128663, 0 },
+ { -0.237026, 0.071826, 10.139438, 0 },
+ { -0.235829, 0.069432, 10.108313, 0 },
+ { -0.250194, 0.074220, 10.116693, 0 },
+ { -0.241814, 0.073023, 10.131058, 0 },
+ { -0.234632, 0.075417, 10.147817, 0 },
+ { -0.238223, 0.067038, 10.111904, 0 },
+ { -0.251391, 0.071826, 10.128663, 0 },
+ { -0.239420, 0.087388, 10.134649, 0 },
+ { -0.237026, 0.082600, 10.128663, 0 },
+ { -0.240617, 0.089783, 10.133451, 0 },
+ { -0.245406, 0.081403, 10.119086, 0 },
+ { -0.241814, 0.080206, 10.128663, 0 },
+ { -0.235829, 0.062249, 10.140635, 0 },
+ { -0.235829, 0.065841, 10.128663, 0 },
+ { -0.237026, 0.092177, 10.128663, 0 },
+ { -0.244208, 0.082600, 10.122678, 0 },
+ { -0.247800, 0.065841, 10.127466, 0 },
+ { -0.243011, 0.070629, 10.113101, 0 },
+ { -0.238223, 0.068235, 10.123875, 0 },
+ { -0.241814, 0.077812, 10.107116, 0 },
+ { -0.238223, 0.088585, 10.132255, 0 },
+ { -0.234632, 0.067038, 10.127466, 0 },
+ { -0.243011, 0.075417, 10.117889, 0 },
+ { -0.240617, 0.077812, 10.132255, 0 },
+ { -0.240617, 0.079009, 10.120284, 0 },
+ { -0.239420, 0.074220, 10.125072, 0 },
+ { -0.233435, 0.071826, 10.132255, 0 },
+ { -0.241814, 0.083797, 10.126269, 0 },
+ { -0.258574, 0.089783, 10.127466, 0 },
+ { -0.234632, 0.081403, 10.131058, 0 },
+ { -0.252588, 0.071826, 10.137043, 0 },
+ { -0.240617, 0.064643, 10.127466, 0 },
+ { -0.248997, 0.070629, 10.133451, 0 },
+ { -0.246603, 0.087388, 10.132255, 0 },
+ { -0.250194, 0.075417, 10.132255, 0 },
+ { -0.244208, 0.073023, 10.126269, 0 },
+ { -0.241814, 0.079009, 10.120284, 0 },
+ { -0.251391, 0.083797, 10.128663, 0 },
+ { -0.234632, 0.080206, 10.145423, 0 },
+ { -0.250194, 0.074220, 10.140635, 0 },
+ { -0.247800, 0.062249, 10.116693, 0 },
+ { -0.243011, 0.077812, 10.125072, 0 },
+ { -0.247800, 0.064643, 10.126269, 0 },
+ { -0.244208, 0.071826, 10.145423, 0 },
+ { -0.253785, 0.070629, 10.123875, 0 },
+ { -0.237026, 0.077812, 10.133451, 0 },
+ { -0.246603, 0.082600, 10.117889, 0 },
+ { -0.245406, 0.086191, 10.121481, 0 },
+ { -0.235829, 0.073023, 10.117889, 0 },
+ { -0.243011, 0.075417, 10.134649, 0 },
+ { -0.239420, 0.087388, 10.139438, 0 },
+ { -0.227449, 0.084994, 10.135846, 0 },
+ { -0.240617, 0.083797, 10.133451, 0 },
+ { -0.243011, 0.073023, 10.117889, 0 },
+ { -0.228646, 0.082600, 10.144226, 0 },
+ { -0.240617, 0.068235, 10.104721, 0 },
+ { -0.241814, 0.059855, 10.127466, 0 },
+ { -0.243011, 0.081403, 10.116693, 0 },
+ { -0.238223, 0.080206, 10.147817, 0 },
+ { -0.244208, 0.076614, 10.119086, 0 },
+ { -0.241814, 0.073023, 10.119086, 0 },
+ { -0.251391, 0.075417, 10.131058, 0 },
+ { -0.244208, 0.071826, 10.127466, 0 },
+ { -0.233435, 0.082600, 10.146620, 0 },
+ { -0.250194, 0.070629, 10.120284, 0 },
+ { -0.248997, 0.067038, 10.135846, 0 },
+ { -0.233435, 0.077812, 10.109509, 0 },
+ { -0.243011, 0.083797, 10.133451, 0 },
+ { -0.251391, 0.069432, 10.111904, 0 },
+ { -0.234632, 0.076614, 10.138240, 0 },
+ { -0.241814, 0.086191, 10.120284, 0 },
+ { -0.239420, 0.068235, 10.128663, 0 },
+ { -0.229843, 0.071826, 10.140635, 0 },
+ { -0.245406, 0.082600, 10.115496, 0 },
+ { -0.234632, 0.076614, 10.143028, 0 },
+ { -0.246603, 0.068235, 10.119086, 0 },
+ { -0.250194, 0.064643, 10.132255, 0 },
+ { -0.237026, 0.082600, 10.129861, 0 },
+ { -0.256179, 0.089783, 10.138240, 0 },
+ { -0.239420, 0.076614, 10.121481, 0 },
+ { -0.238223, 0.069432, 10.133451, 0 },
+ { -0.247800, 0.067038, 10.135846, 0 },
+ { -0.250194, 0.070629, 10.131058, 0 },
+ { -0.243011, 0.080206, 10.141831, 0 },
+ { -0.244208, 0.064643, 10.122678, 0 },
+ { -0.238223, 0.070629, 10.134649, 0 },
+ { -0.229843, 0.070629, 10.113101, 0 },
+ { -0.254982, 0.087388, 10.137043, 0 },
+ { -0.259771, 0.081403, 10.128663, 0 },
+ { -0.241814, 0.074220, 10.129861, 0 },
+ { -0.247800, 0.065841, 10.126269, 0 },
+ { -0.253785, 0.063446, 10.122678, 0 },
+ { -0.256179, 0.076614, 10.129861, 0 },
+ { -0.250194, 0.083797, 10.123875, 0 },
+ { -0.239420, 0.073023, 10.129861, 0 },
+ { -0.253785, 0.084994, 10.109509, 0 },
+ { -0.238223, 0.071826, 10.151408, 0 },
+ { -0.245406, 0.068235, 10.110707, 0 },
+ { -0.246603, 0.064643, 10.127466, 0 },
+ { -0.232237, 0.077812, 10.113101, 0 },
+ { -0.247800, 0.064643, 10.132255, 0 },
+ { -0.254982, 0.080206, 10.137043, 0 },
+ { -0.248997, 0.080206, 10.138240, 0 },
+ { -0.243011, 0.081403, 10.123875, 0 },
+ { -0.237026, 0.087388, 10.127466, 0 },
+ { -0.234632, 0.070629, 10.129861, 0 },
+ { -0.235829, 0.073023, 10.121481, 0 },
+ { -0.244208, 0.073023, 10.127466, 0 },
+ { -0.237026, 0.067038, 10.138240, 0 },
+ { -0.248997, 0.067038, 10.119086, 0 },
+ { -0.253785, 0.079009, 10.129861, 0 },
+ { -0.239420, 0.068235, 10.129861, 0 },
+ { -0.252588, 0.071826, 10.122678, 0 },
+ { -0.243011, 0.076614, 10.134649, 0 },
+ { -0.234632, 0.075417, 10.117889, 0 },
+ { -0.235829, 0.070629, 10.115496, 0 },
+ { -0.247800, 0.083797, 10.123875, 0 },
+ { -0.241814, 0.089783, 10.123875, 0 },
+ { -0.234632, 0.087388, 10.133451, 0 },
+ { -0.239420, 0.073023, 10.116693, 0 },
+ { -0.241814, 0.087388, 10.122678, 0 },
+ { -0.243011, 0.077812, 10.126269, 0 },
+ { -0.247800, 0.076614, 10.129861, 0 },
+ { -0.244208, 0.082600, 10.140635, 0 },
+ { -0.241814, 0.079009, 10.150211, 0 },
+ { -0.237026, 0.065841, 10.144226, 0 },
+ { -0.234632, 0.081403, 10.133451, 0 },
+ { -0.231040, 0.081403, 10.121481, 0 },
+ { -0.248997, 0.071826, 10.143028, 0 },
+ { -0.257377, 0.063446, 10.119086, 0 },
+ { -0.245406, 0.087388, 10.141831, 0 },
+ { -0.246603, 0.082600, 10.137043, 0 },
+ { -0.227449, 0.080206, 10.128663, 0 },
+ { -0.244208, 0.082600, 10.120284, 0 },
+ { -0.245406, 0.087388, 10.139438, 0 },
+ { -0.237026, 0.061052, 10.137043, 0 },
+ { -0.240617, 0.061052, 10.132255, 0 },
+ { -0.239420, 0.076614, 10.132255, 0 },
+ { -0.244208, 0.083797, 10.131058, 0 },
+ { -0.227449, 0.077812, 10.137043, 0 },
+ { -0.240617, 0.089783, 10.144226, 0 },
+ { -0.238223, 0.083797, 10.121481, 0 },
+ { -0.260968, 0.068235, 10.119086, 0 },
+ { -0.243011, 0.070629, 10.155000, 0 },
+ { -0.248997, 0.079009, 10.117889, 0 },
+ { -0.252588, 0.076614, 10.111904, 0 },
+ { -0.237026, 0.084994, 10.134649, 0 },
+ { -0.248997, 0.069432, 10.128663, 0 },
+ { -0.235829, 0.082600, 10.126269, 0 },
+ { -0.245406, 0.069432, 10.150211, 0 },
+ { -0.253785, 0.090980, 10.125072, 0 },
+ { -0.247800, 0.077812, 10.119086, 0 },
+ { -0.248997, 0.074220, 10.117889, 0 },
+ { -0.239420, 0.080206, 10.122678, 0 },
+ { -0.239420, 0.087388, 10.127466, 0 },
+ { -0.244208, 0.074220, 10.128663, 0 },
+ { -0.229843, 0.068235, 10.123875, 0 },
+ { -0.247800, 0.080206, 10.127466, 0 },
+ { -0.241814, 0.071826, 10.119086, 0 },
+ { -0.235829, 0.086191, 10.121481, 0 },
+ { -0.234632, 0.084994, 10.127466, 0 },
+ { -0.237026, 0.073023, 10.131058, 0 },
+ { -0.243011, 0.074220, 10.123875, 0 },
+ { -0.259771, 0.084994, 10.146620, 0 },
+ { -0.241814, 0.071826, 10.122678, 0 },
+ { -0.232237, 0.077812, 10.132255, 0 },
+ { -0.239420, 0.076614, 10.133451, 0 },
+ { -0.244208, 0.076614, 10.128663, 0 },
+ { -0.241814, 0.081403, 10.153803, 0 },
+ { -0.246603, 0.069432, 10.114298, 0 },
+ { -0.247800, 0.067038, 10.128663, 0 },
+ { -0.239420, 0.077812, 10.132255, 0 },
+ { -0.248997, 0.064643, 10.133451, 0 },
+ { -0.231040, 0.075417, 10.120284, 0 },
+ { -0.235829, 0.070629, 10.109509, 0 },
+ { -0.248997, 0.079009, 10.121481, 0 },
+ { -0.239420, 0.094571, 10.128663, 0 },
+ { -0.254982, 0.083797, 10.134649, 0 },
+ { -0.240617, 0.079009, 10.117889, 0 },
+ { -0.244208, 0.065841, 10.122678, 0 },
+ { -0.238223, 0.070629, 10.116693, 0 },
+ { -0.244208, 0.081403, 10.131058, 0 },
+ { -0.239420, 0.071826, 10.135846, 0 },
+ { -0.231040, 0.070629, 10.139438, 0 },
+ { -0.240617, 0.070629, 10.125072, 0 },
+ { -0.235829, 0.079009, 10.127466, 0 },
+ { -0.235829, 0.077812, 10.126269, 0 },
+ { -0.241814, 0.071826, 10.127466, 0 },
+ { -0.243011, 0.068235, 10.131058, 0 },
+ { -0.240617, 0.076614, 10.129861, 0 },
+ { -0.231040, 0.070629, 10.127466, 0 },
+ { -0.229843, 0.076614, 10.129861, 0 },
+ { -0.235829, 0.071826, 10.128663, 0 },
+ { -0.235829, 0.068235, 10.131058, 0 },
+ { -0.246603, 0.074220, 10.122678, 0 },
+ { -0.232237, 0.075417, 10.126269, 0 },
+ { -0.233435, 0.075417, 10.116693, 0 },
+ { -0.227449, 0.069432, 10.131058, 0 },
+ { -0.233435, 0.069432, 10.133451, 0 },
+ { -0.243011, 0.076614, 10.125072, 0 },
+ { -0.243011, 0.079009, 10.111904, 0 },
+ { -0.245406, 0.080206, 10.137043, 0 },
+ { -0.244208, 0.083797, 10.133451, 0 },
+ { -0.247800, 0.071826, 10.131058, 0 },
+ { -0.239420, 0.063446, 10.114298, 0 },
+ { -0.234632, 0.070629, 10.119086, 0 },
+ { -0.238223, 0.070629, 10.151408, 0 },
+ { -0.247800, 0.075417, 10.134649, 0 },
+ { -0.241814, 0.075417, 10.137043, 0 },
+ { -0.240617, 0.067038, 10.121481, 0 },
+ { -0.243011, 0.063446, 10.137043, 0 },
+ { -0.229843, 0.068235, 10.132255, 0 },
+ { -0.241814, 0.075417, 10.122678, 0 },
+ { -0.246603, 0.086191, 10.119086, 0 },
+ { -0.235829, 0.081403, 10.126269, 0 },
+ { -0.229843, 0.081403, 10.138240, 0 },
+ { -0.234632, 0.075417, 10.120284, 0 },
+ { -0.237026, 0.080206, 10.133451, 0 },
+ { -0.232237, 0.074220, 10.114298, 0 },
+ { -0.245406, 0.069432, 10.128663, 0 },
+ { -0.241814, 0.064643, 10.134649, 0 },
+ { -0.239420, 0.086191, 10.133451, 0 },
+ { -0.238223, 0.086191, 10.144226, 0 },
+ { -0.248997, 0.063446, 10.131058, 0 },
+ { -0.229843, 0.065841, 10.137043, 0 },
+ { -0.239420, 0.084994, 10.110707, 0 },
+ { -0.231040, 0.083797, 10.141831, 0 },
+ { -0.245406, 0.073023, 10.128663, 0 },
+ { -0.245406, 0.071826, 10.129861, 0 },
+ { -0.238223, 0.071826, 10.120284, 0 },
+ { -0.247800, 0.081403, 10.137043, 0 },
+ { -0.264559, 0.069432, 10.135846, 0 },
+ { -0.247800, 0.070629, 10.131058, 0 },
+ { -0.240617, 0.082600, 10.134649, 0 },
+ { -0.246603, 0.075417, 10.126269, 0 },
+ { -0.238223, 0.071826, 10.152605, 0 },
+ { -0.235829, 0.063446, 10.132255, 0 },
+ { -0.251391, 0.065841, 10.120284, 0 },
+ { -0.243011, 0.068235, 10.131058, 0 },
+ { -0.222661, 0.067038, 10.134649, 0 },
+ { -0.239420, 0.081403, 10.128663, 0 },
+ { -0.240617, 0.083797, 10.138240, 0 },
+ { -0.223858, 0.068235, 10.122678, 0 },
+ { -0.238223, 0.065841, 10.140635, 0 },
+ { -0.237026, 0.081403, 10.134649, 0 },
+ { -0.240617, 0.079009, 10.123875, 0 },
+ { -0.238223, 0.073023, 10.133451, 0 },
+ { -0.246603, 0.067038, 10.117889, 0 },
+ { -0.243011, 0.061052, 10.135846, 0 },
+ { -0.239420, 0.075417, 10.116693, 0 },
+ { -0.260968, 0.065841, 10.123875, 0 },
+ { -0.247800, 0.064643, 10.117889, 0 },
+ { -0.248997, 0.093374, 10.140635, 0 },
+ { -0.244208, 0.080206, 10.144226, 0 },
+ { -0.258574, 0.077812, 10.113101, 0 },
+ { -0.250194, 0.069432, 10.126269, 0 },
+ { -0.238223, 0.073023, 10.102327, 0 },
+ { -0.240617, 0.070629, 10.135846, 0 },
+ { -0.247800, 0.063446, 10.121481, 0 },
+ { -0.268150, 0.088585, 10.135846, 0 },
+ { -0.246603, 0.075417, 10.119086, 0 },
+ { -0.233435, 0.071826, 10.131058, 0 },
+ { -0.245406, 0.071826, 10.128663, 0 },
+ { -0.244208, 0.094571, 10.128663, 0 },
+ { -0.234632, 0.080206, 10.123875, 0 },
+ { -0.240617, 0.081403, 10.109509, 0 },
+ { -0.240617, 0.069432, 10.128663, 0 },
+ { -0.237026, 0.069432, 10.122678, 0 },
+ { -0.234632, 0.071826, 10.137043, 0 },
+ { -0.239420, 0.076614, 10.139438, 0 },
+ { -0.244208, 0.088585, 10.117889, 0 },
+ { -0.259771, 0.087388, 10.134649, 0 },
+ { -0.252588, 0.077812, 10.134649, 0 },
+ { -0.241814, 0.073023, 10.117889, 0 },
+ { -0.243011, 0.080206, 10.128663, 0 },
+ { -0.241814, 0.086191, 10.119086, 0 },
+ { -0.244208, 0.073023, 10.115496, 0 },
+ { -0.239420, 0.080206, 10.123875, 0 },
+ { -0.248997, 0.070629, 10.137043, 0 },
+ { -0.240617, 0.076614, 10.119086, 0 },
+ { -0.233435, 0.070629, 10.128663, 0 },
+ { -0.235829, 0.075417, 10.121481, 0 },
+ { -0.240617, 0.090980, 10.127466, 0 },
+ { -0.252588, 0.067038, 10.114298, 0 },
+ { -0.229843, 0.077812, 10.123875, 0 },
+ { -0.248997, 0.084994, 10.137043, 0 },
+ { -0.245406, 0.070629, 10.110707, 0 },
+ { -0.239420, 0.061052, 10.131058, 0 },
+ { -0.241814, 0.077812, 10.132255, 0 },
+ { -0.239420, 0.081403, 10.126269, 0 },
+ { -0.235829, 0.069432, 10.127466, 0 },
+ { -0.243011, 0.076614, 10.134649, 0 },
+ { -0.252588, 0.077812, 10.132255, 0 },
+ { -0.237026, 0.077812, 10.138240, 0 },
+ { -0.246603, 0.073023, 10.127466, 0 },
+ { -0.241814, 0.063446, 10.129861, 0 },
+ { -0.234632, 0.071826, 10.126269, 0 },
+ { -0.248997, 0.081403, 10.113101, 0 },
+ { -0.244208, 0.084994, 10.114298, 0 },
+ { -0.232237, 0.077812, 10.132255, 0 },
+ { -0.234632, 0.084994, 10.128663, 0 },
+ { -0.244208, 0.088585, 10.108313, 0 },
+ { -0.253785, 0.070629, 10.141831, 0 },
+ { -0.247800, 0.071826, 10.121481, 0 },
+ { -0.244208, 0.070629, 10.128663, 0 },
+ { -0.244208, 0.079009, 10.116693, 0 },
+ { -0.239420, 0.074220, 10.113101, 0 },
+ { -0.239420, 0.079009, 10.127466, 0 },
+ { -0.251391, 0.071826, 10.133451, 0 },
+ { -0.247800, 0.076614, 10.133451, 0 },
+ { -0.254982, 0.088585, 10.137043, 0 },
+ { -0.250194, 0.081403, 10.137043, 0 },
+ { -0.257377, 0.077812, 10.117889, 0 },
+ { -0.237026, 0.079009, 10.123875, 0 },
+ { -0.235829, 0.073023, 10.121481, 0 },
+ { -0.262165, 0.082600, 10.123875, 0 },
+ { -0.248997, 0.073023, 10.113101, 0 },
+ { -0.241814, 0.076614, 10.114298, 0 },
+ { -0.251391, 0.073023, 10.131058, 0 },
+ { -0.248997, 0.075417, 10.141831, 0 },
+ { -0.237026, 0.074220, 10.132255, 0 },
+ { -0.253785, 0.084994, 10.122678, 0 },
+ { -0.247800, 0.079009, 10.133451, 0 },
+ { -0.246603, 0.082600, 10.109509, 0 },
+ { -0.252588, 0.094571, 10.122678, 0 },
+ { -0.246603, 0.073023, 10.125072, 0 },
+ { -0.250194, 0.057461, 10.115496, 0 },
+ { -0.250194, 0.071826, 10.122678, 0 },
+ { -0.251391, 0.076614, 10.127466, 0 },
+ { -0.240617, 0.079009, 10.126269, 0 },
+ { -0.259771, 0.073023, 10.115496, 0 },
+ { -0.246603, 0.074220, 10.135846, 0 },
+ { -0.253785, 0.077812, 10.119086, 0 },
+ { -0.244208, 0.077812, 10.128663, 0 },
+ { -0.241814, 0.069432, 10.128663, 0 },
+ { -0.244208, 0.081403, 10.126269, 0 },
+ { -0.246603, 0.086191, 10.128663, 0 },
+ { -0.252588, 0.084994, 10.132255, 0 },
+ { -0.247800, 0.076614, 10.128663, 0 },
+ { -0.240617, 0.063446, 10.126269, 0 },
+ { -0.235829, 0.069432, 10.127466, 0 },
+ { -0.240617, 0.087388, 10.129861, 0 },
+ { -0.251391, 0.063446, 10.128663, 0 },
+ { -0.252588, 0.077812, 10.135846, 0 },
+ { -0.254982, 0.082600, 10.138240, 0 },
+ { -0.244208, 0.081403, 10.128663, 0 },
+ { -0.241814, 0.086191, 10.117889, 0 },
+ { -0.254982, 0.069432, 10.149014, 0 },
+ { -0.248997, 0.068235, 10.131058, 0 },
+ { -0.252588, 0.063446, 10.122678, 0 },
+ { -0.240617, 0.079009, 10.152605, 0 },
+ { -0.240617, 0.088585, 10.107116, 0 },
+ { -0.248997, 0.076614, 10.138240, 0 },
+ { -0.251391, 0.075417, 10.119086, 0 },
+ { -0.225055, 0.079009, 10.138240, 0 },
+ { -0.239420, 0.077812, 10.150211, 0 },
+ { -0.250194, 0.055067, 10.137043, 0 },
+ { -0.257377, 0.082600, 10.125072, 0 },
+ { -0.243011, 0.075417, 10.119086, 0 },
+ { -0.244208, 0.064643, 10.119086, 0 },
+ { -0.246603, 0.080206, 10.117889, 0 },
+ { -0.232237, 0.079009, 10.158591, 0 },
+ { -0.247800, 0.071826, 10.120284, 0 },
+ { -0.245406, 0.075417, 10.137043, 0 },
+ { -0.240617, 0.069432, 10.117889, 0 },
+ { -0.246603, 0.080206, 10.134649, 0 },
+ { -0.248997, 0.087388, 10.109509, 0 },
+ { -0.252588, 0.081403, 10.132255, 0 },
+ { -0.250194, 0.069432, 10.123875, 0 },
+ { -0.257377, 0.073023, 10.131058, 0 },
+ { -0.241814, 0.068235, 10.109509, 0 },
+ { -0.243011, 0.080206, 10.108313, 0 },
+ { -0.238223, 0.074220, 10.139438, 0 },
+ { -0.245406, 0.075417, 10.122678, 0 },
+ { -0.250194, 0.069432, 10.137043, 0 },
+ { -0.245406, 0.069432, 10.116693, 0 },
+ { -0.235829, 0.070629, 10.158591, 0 },
+ { -0.247800, 0.082600, 10.117889, 0 },
+ { -0.247800, 0.077812, 10.137043, 0 },
+ { -0.243011, 0.080206, 10.134649, 0 },
+ { -0.263362, 0.081403, 10.110707, 0 },
+ { -0.247800, 0.079009, 10.127466, 0 },
+ { -0.248997, 0.071826, 10.131058, 0 },
+ { -0.248997, 0.075417, 10.144226, 0 },
+ { -0.239420, 0.077812, 10.117889, 0 },
+ { -0.248997, 0.071826, 10.139438, 0 },
+ { -0.254982, 0.083797, 10.120284, 0 },
+ { -0.238223, 0.075417, 10.131058, 0 },
+ { -0.235829, 0.084994, 10.105919, 0 },
+ { -0.245406, 0.080206, 10.133451, 0 },
+ { -0.247800, 0.075417, 10.131058, 0 },
+ { -0.235829, 0.079009, 10.120284, 0 },
+ { -0.247800, 0.070629, 10.133451, 0 },
+ { -0.253785, 0.064643, 10.110707, 0 },
+ { -0.240617, 0.071826, 10.120284, 0 },
+ { -0.248997, 0.079009, 10.101130, 0 },
+ { -0.243011, 0.079009, 10.141831, 0 },
+ { -0.244208, 0.077812, 10.134649, 0 },
+ { -0.245406, 0.081403, 10.140635, 0 },
+ { -0.253785, 0.070629, 10.110707, 0 },
+ { -0.254982, 0.058658, 10.129861, 0 },
+ { -0.239420, 0.083797, 10.137043, 0 },
+ { -0.232237, 0.081403, 10.125072, 0 },
+ { -0.243011, 0.068235, 10.139438, 0 },
+ { -0.243011, 0.063446, 10.123875, 0 },
+ { -0.232237, 0.074220, 10.140635, 0 },
+ { -0.241814, 0.077812, 10.116693, 0 },
+ { -0.247800, 0.074220, 10.139438, 0 },
+ { -0.245406, 0.077812, 10.127466, 0 },
+ { -0.233435, 0.073023, 10.132255, 0 },
+ { -0.243011, 0.074220, 10.121481, 0 },
+ { -0.246603, 0.059855, 10.125072, 0 },
+ { -0.246603, 0.070629, 10.120284, 0 },
+ { -0.241814, 0.087388, 10.133451, 0 },
+ { -0.245406, 0.061052, 10.128663, 0 },
+ { -0.248997, 0.079009, 10.111904, 0 },
+ { -0.237026, 0.077812, 10.135846, 0 },
+ { -0.240617, 0.083797, 10.108313, 0 },
+ { -0.237026, 0.075417, 10.141831, 0 },
+ { -0.243011, 0.061052, 10.132255, 0 },
+ { -0.234632, 0.073023, 10.133451, 0 },
+ { -0.251391, 0.073023, 10.137043, 0 },
+ { -0.237026, 0.083797, 10.135846, 0 },
+ { -0.231040, 0.077812, 10.117889, 0 },
+ { -0.237026, 0.061052, 10.140635, 0 },
+ { -0.243011, 0.071826, 10.127466, 0 },
+ { -0.235829, 0.081403, 10.131058, 0 },
+ { -0.241814, 0.076614, 10.123875, 0 },
+ { -0.258574, 0.081403, 10.127466, 0 },
+ { -0.241814, 0.063446, 10.127466, 0 },
+ { -0.254982, 0.071826, 10.139438, 0 },
+ { -0.244208, 0.077812, 10.117889, 0 },
+ { -0.240617, 0.077812, 10.134649, 0 },
+ { -0.258574, 0.075417, 10.128663, 0 },
+ { -0.245406, 0.069432, 10.131058, 0 },
+ { -0.245406, 0.074220, 10.126269, 0 },
+ { -0.248997, 0.075417, 10.137043, 0 },
+ { -0.248997, 0.082600, 10.137043, 0 },
+ { -0.245406, 0.084994, 10.115496, 0 },
+ { -0.244208, 0.073023, 10.126269, 0 },
+ { -0.234632, 0.067038, 10.126269, 0 },
+ { -0.238223, 0.064643, 10.127466, 0 },
+ { -0.263362, 0.065841, 10.123875, 0 },
+ { -0.257377, 0.081403, 10.126269, 0 },
+ { -0.237026, 0.082600, 10.105919, 0 },
+ { -0.253785, 0.083797, 10.119086, 0 },
+ { -0.234632, 0.073023, 10.125072, 0 },
+ { -0.243011, 0.062249, 10.122678, 0 },
+ { -0.251391, 0.076614, 10.119086, 0 },
+ { -0.258574, 0.071826, 10.139438, 0 },
+ { -0.250194, 0.071826, 10.140635, 0 },
+ { -0.251391, 0.086191, 10.140635, 0 },
+ { -0.248997, 0.077812, 10.121481, 0 },
+ { -0.244208, 0.083797, 10.126269, 0 },
+ { -0.241814, 0.083797, 10.133451, 0 },
+ { -0.246603, 0.070629, 10.119086, 0 },
+ { -0.241814, 0.067038, 10.146620, 0 },
+ { -0.247800, 0.079009, 10.109509, 0 },
+ { -0.256179, 0.069432, 10.146620, 0 },
+ { -0.247800, 0.073023, 10.126269, 0 },
+ { -0.245406, 0.070629, 10.113101, 0 },
+ { -0.234632, 0.084994, 10.126269, 0 },
+ { -0.228646, 0.068235, 10.129861, 0 },
+ { -0.246603, 0.062249, 10.143028, 0 },
+ { -0.245406, 0.084994, 10.122678, 0 },
+ { -0.244208, 0.067038, 10.143028, 0 },
+ { -0.241814, 0.080206, 10.138240, 0 },
+ { -0.243011, 0.083797, 10.135846, 0 },
+ { -0.238223, 0.069432, 10.139438, 0 },
+ { -0.235829, 0.081403, 10.121481, 0 },
+ { -0.241814, 0.081403, 10.119086, 0 },
+ { -0.241814, 0.068235, 10.146620, 0 },
+ { -0.246603, 0.093374, 10.107116, 0 },
+ { -0.247800, 0.088585, 10.135846, 0 },
+ { -0.258574, 0.069432, 10.101130, 0 },
+ { -0.252588, 0.074220, 10.135846, 0 },
+ { -0.240617, 0.058658, 10.127466, 0 },
+ { -0.263362, 0.073023, 10.138240, 0 },
+ { -0.244208, 0.081403, 10.135846, 0 },
+ { -0.248997, 0.086191, 10.127466, 0 },
+ { -0.251391, 0.074220, 10.133451, 0 },
+ { -0.241814, 0.068235, 10.129861, 0 },
+ { -0.247800, 0.075417, 10.144226, 0 },
+ { -0.248997, 0.086191, 10.113101, 0 },
+ { -0.239420, 0.080206, 10.153803, 0 },
+ { -0.239420, 0.059855, 10.117889, 0 },
+ { -0.244208, 0.073023, 10.139438, 0 },
+ { -0.245406, 0.082600, 10.120284, 0 },
+ { -0.238223, 0.086191, 10.133451, 0 },
+ { -0.246603, 0.079009, 10.123875, 0 },
+ { -0.247800, 0.074220, 10.131058, 0 },
+ { -0.252588, 0.084994, 10.120284, 0 },
+ { -0.245406, 0.075417, 10.125072, 0 },
+ { -0.240617, 0.069432, 10.135846, 0 },
+ { -0.245406, 0.076614, 10.121481, 0 },
+ { -0.231040, 0.068235, 10.132255, 0 },
+ { -0.233435, 0.076614, 10.134649, 0 },
+ { -0.239420, 0.082600, 10.127466, 0 },
+ { -0.253785, 0.076614, 10.104721, 0 },
+ { -0.247800, 0.089783, 10.133451, 0 },
+ { -0.238223, 0.076614, 10.134649, 0 },
+ { -0.240617, 0.073023, 10.105919, 0 },
+ { -0.243011, 0.067038, 10.146620, 0 },
+ { -0.246603, 0.067038, 10.135846, 0 },
+ { -0.250194, 0.080206, 10.146620, 0 },
+ { -0.252588, 0.062249, 10.125072, 0 },
+ { -0.234632, 0.074220, 10.127466, 0 },
+ { -0.239420, 0.069432, 10.149014, 0 },
+ { -0.243011, 0.069432, 10.126269, 0 },
+ { -0.240617, 0.071826, 10.109509, 0 },
+ { -0.258574, 0.067038, 10.121481, 0 },
+ { -0.258574, 0.079009, 10.137043, 0 },
+ { -0.248997, 0.083797, 10.114298, 0 },
+ { -0.228646, 0.077812, 10.123875, 0 },
+ { -0.248997, 0.061052, 10.128663, 0 },
+ { -0.253785, 0.080206, 10.140635, 0 },
+ { -0.250194, 0.077812, 10.119086, 0 },
+ { -0.250194, 0.080206, 10.134649, 0 },
+ { -0.254982, 0.079009, 10.104721, 0 },
+ { -0.251391, 0.076614, 10.125072, 0 },
+ { -0.244208, 0.069432, 10.109509, 0 },
+ { -0.251391, 0.075417, 10.131058, 0 },
+ { -0.246603, 0.074220, 10.135846, 0 },
+ { -0.247800, 0.077812, 10.133451, 0 },
+ { -0.243011, 0.095768, 10.119086, 0 },
+ { -0.252588, 0.079009, 10.103524, 0 },
+ { -0.248997, 0.080206, 10.119086, 0 },
+ { -0.250194, 0.087388, 10.122678, 0 },
+ { -0.244208, 0.071826, 10.143028, 0 },
+ { -0.228646, 0.079009, 10.104721, 0 },
+ { -0.235829, 0.087388, 10.125072, 0 },
+ { -0.241814, 0.070629, 10.105919, 0 },
+ { -0.251391, 0.081403, 10.140635, 0 },
+ { -0.235829, 0.074220, 10.117889, 0 },
+ { -0.244208, 0.076614, 10.134649, 0 },
+ { -0.248997, 0.074220, 10.108313, 0 },
+ { -0.240617, 0.089783, 10.123875, 0 },
+ { -0.254982, 0.074220, 10.146620, 0 },
+ { -0.252588, 0.079009, 10.120284, 0 },
+ { -0.246603, 0.087388, 10.133451, 0 },
+ { -0.246603, 0.074220, 10.116693, 0 },
+ { -0.235829, 0.074220, 10.138240, 0 },
+ { -0.239420, 0.076614, 10.111904, 0 },
+ { -0.253785, 0.065841, 10.132255, 0 },
+ { -0.246603, 0.074220, 10.117889, 0 },
+ { -0.251391, 0.084994, 10.121481, 0 },
+ { -0.260968, 0.087388, 10.131058, 0 },
+ { -0.246603, 0.084994, 10.123875, 0 },
+ { -0.247800, 0.087388, 10.119086, 0 },
+ { -0.238223, 0.070629, 10.125072, 0 },
+ { -0.248997, 0.075417, 10.137043, 0 },
+ { -0.240617, 0.081403, 10.126269, 0 },
+ { -0.225055, 0.075417, 10.117889, 0 },
+ { -0.245406, 0.061052, 10.099933, 0 },
+ { -0.229843, 0.071826, 10.133451, 0 },
+ { -0.239420, 0.088585, 10.158591, 0 },
+ { -0.251391, 0.079009, 10.111904, 0 },
+ { -0.234632, 0.070629, 10.151408, 0 },
+ { -0.232237, 0.068235, 10.127466, 0 },
+ { -0.238223, 0.083797, 10.125072, 0 },
+ { -0.240617, 0.083797, 10.104721, 0 },
+ { -0.234632, 0.084994, 10.127466, 0 },
+ { -0.243011, 0.068235, 10.098736, 0 },
+ { -0.251391, 0.075417, 10.146620, 0 },
+ { -0.257377, 0.082600, 10.117889, 0 },
+ { -0.234632, 0.076614, 10.119086, 0 },
+ { -0.244208, 0.080206, 10.132255, 0 },
+ { -0.232237, 0.080206, 10.139438, 0 },
+ { -0.235829, 0.083797, 10.134649, 0 },
+ { -0.240617, 0.083797, 10.107116, 0 },
+ { -0.239420, 0.087388, 10.134649, 0 },
+ { -0.248997, 0.074220, 10.125072, 0 },
+ { -0.247800, 0.064643, 10.150211, 0 },
+ { -0.243011, 0.076614, 10.111904, 0 },
+ { -0.247800, 0.069432, 10.139438, 0 },
+ { -0.240617, 0.076614, 10.132255, 0 },
+ { -0.240617, 0.076614, 10.129861, 0 },
+ { -0.235829, 0.065841, 10.105919, 0 },
+ { -0.252588, 0.080206, 10.113101, 0 },
+ { -0.251391, 0.077812, 10.149014, 0 },
+ { -0.241814, 0.082600, 10.056837, 0 },
+ { -0.243011, 0.084994, 10.199292, 0 },
+ { -0.253785, 0.077812, 10.098736, 0 },
+ { -0.229843, 0.063446, 10.103524, 0 },
+ { -0.250194, 0.069432, 10.183730, 0 },
+ { -0.240617, 0.086191, 10.067612, 0 },
+ { -0.246603, 0.070629, 10.201687, 0 },
+ { -0.263362, 0.067038, 10.071202, 0 },
+ { -0.245406, 0.059855, 10.166970, 0 },
+ { -0.239420, 0.065841, 10.092751, 0 },
+ { -0.238223, 0.068235, 10.139438, 0 },
+ { -0.243011, 0.074220, 10.116693, 0 },
+ { -0.240617, 0.081403, 10.122678, 0 },
+ { -0.251391, 0.067038, 10.119086, 0 },
+ { -0.240617, 0.075417, 10.113101, 0 },
+ { -0.250194, 0.059855, 10.137043, 0 },
+ { -0.244208, 0.062249, 10.129861, 0 },
+ { -0.229843, 0.083797, 10.117889, 0 },
+ { -0.246603, 0.076614, 10.123875, 0 },
+ { -0.234632, 0.087388, 10.140635, 0 },
+ { -0.254982, 0.079009, 10.119086, 0 },
+ { -0.237026, 0.074220, 10.157393, 0 },
+ { -0.247800, 0.088585, 10.115496, 0 },
+ { -0.251391, 0.087388, 10.144226, 0 },
+ { -0.238223, 0.071826, 10.116693, 0 },
+ { -0.233435, 0.069432, 10.137043, 0 },
+ { -0.231040, 0.081403, 10.119086, 0 },
+ { -0.244208, 0.079009, 10.116693, 0 },
+ { -0.245406, 0.073023, 10.147817, 0 },
+ { -0.250194, 0.071826, 10.113101, 0 },
+ { -0.238223, 0.077812, 10.135846, 0 },
+ { -0.240617, 0.077812, 10.105919, 0 },
+ { -0.239420, 0.076614, 10.145423, 0 },
+ { -0.232237, 0.070629, 10.102327, 0 },
+ { -0.241814, 0.080206, 10.119086, 0 },
+ { -0.237026, 0.068235, 10.111904, 0 },
+ { -0.260968, 0.082600, 10.137043, 0 },
+ { -0.240617, 0.089783, 10.139438, 0 },
+ { -0.238223, 0.077812, 10.128663, 0 },
+ { -0.240617, 0.075417, 10.138240, 0 },
+ { -0.247800, 0.075417, 10.129861, 0 },
+ { -0.251391, 0.075417, 10.143028, 0 },
+ { -0.254982, 0.076614, 10.128663, 0 },
+ { -0.251391, 0.070629, 10.157393, 0 },
+ { -0.253785, 0.086191, 10.134649, 0 },
+ { -0.248997, 0.079009, 10.126269, 0 },
+ { -0.244208, 0.087388, 10.117889, 0 },
+ { -0.254982, 0.080206, 10.125072, 0 },
+ { -0.244208, 0.071826, 10.122678, 0 },
+ { -0.248997, 0.087388, 10.111904, 0 },
+ { -0.246603, 0.075417, 10.133451, 0 },
+ { -0.252588, 0.071826, 10.099933, 0 },
+ { -0.245406, 0.082600, 10.132255, 0 },
+ { -0.246603, 0.086191, 10.129861, 0 },
+ { -0.227449, 0.067038, 10.151408, 0 },
+ { -0.235829, 0.079009, 10.109509, 0 },
+ { -0.239420, 0.080206, 10.137043, 0 },
+ { -0.241814, 0.084994, 10.121481, 0 },
+ { -0.251391, 0.081403, 10.116693, 0 },
+ { -0.260968, 0.073023, 10.141831, 0 },
+ { -0.245406, 0.073023, 10.122678, 0 },
+ { -0.252588, 0.083797, 10.139438, 0 },
+ { -0.243011, 0.080206, 10.122678, 0 },
+ { -0.239420, 0.077812, 10.138240, 0 },
+ { -0.241814, 0.068235, 10.113101, 0 },
+ { -0.244208, 0.074220, 10.133451, 0 },
+ { -0.257377, 0.079009, 10.128663, 0 },
+ { -0.253785, 0.074220, 10.125072, 0 },
+ { -0.238223, 0.062249, 10.132255, 0 },
+ { -0.243011, 0.068235, 10.119086, 0 },
+ { -0.240617, 0.074220, 10.132255, 0 },
+ { -0.272939, 0.076614, 10.116693, 0 },
+ { -0.234632, 0.075417, 10.138240, 0 },
+ { -0.241814, 0.073023, 10.085567, 0 },
+ { -0.246603, 0.075417, 10.163380, 0 },
+ { -0.248997, 0.058658, 10.093947, 0 },
+ { -0.243011, 0.070629, 10.146620, 0 },
+ { -0.238223, 0.074220, 10.110707, 0 },
+ { -0.252588, 0.065841, 10.141831, 0 },
+ { -0.229843, 0.074220, 10.137043, 0 },
+ { -0.248997, 0.076614, 10.099933, 0 },
+ { -0.229843, 0.081403, 10.157393, 0 },
+ { -0.243011, 0.082600, 10.074794, 0 },
+ { -0.250194, 0.071826, 10.164577, 0 },
+ { -0.263362, 0.076614, 10.103524, 0 },
+ { -0.260968, 0.094571, 10.138240, 0 },
+ { -0.240617, 0.077812, 10.116693, 0 },
+ { -0.239420, 0.081403, 10.109509, 0 },
+ { -0.253785, 0.086191, 10.135846, 0 },
+ { -0.247800, 0.076614, 10.093947, 0 },
+ { -0.256179, 0.068235, 10.158591, 0 },
+ { -0.253785, 0.079009, 10.090356, 0 },
+ { -0.239420, 0.076614, 10.151408, 0 },
+ { -0.244208, 0.082600, 10.115496, 0 },
+ { -0.244208, 0.081403, 10.134649, 0 },
+ { -0.254982, 0.088585, 10.122678, 0 },
+ { -0.252588, 0.069432, 10.120284, 0 },
+ { -0.247800, 0.077812, 10.137043, 0 },
+ { -0.250194, 0.076614, 10.117889, 0 },
+ { -0.238223, 0.077812, 10.121481, 0 },
+ { -0.245406, 0.065841, 10.186124, 0 },
+ { -0.233435, 0.065841, 10.046063, 0 },
+ { -0.237026, 0.094571, 10.243585, 0 },
+ { -0.231040, 0.093374, 10.014939, 0 },
+ { -0.243011, 0.084994, 10.223234, 0 },
+ { -0.256179, 0.064643, 9.987406, 0 },
+ { -0.250194, 0.098162, 10.247176, 0 },
+ { -0.229843, 0.073023, 9.891638, 0 },
+ { -0.268150, 0.062249, 10.406390, 0 },
+ { -0.247800, 0.073023, 9.883258, 0 },
+ { -0.237026, 0.076614, 10.360901, 0 },
+ { -0.247800, 0.081403, 9.975434, 0 },
+ { -0.225055, 0.080206, 10.178942, 0 },
+ { -0.263362, 0.071826, 10.163380, 0 },
+ { -0.237026, 0.076614, 10.062823, 0 },
+ { -0.265756, 0.075417, 10.214854, 0 },
+ { -0.234632, 0.083797, 10.053246, 0 },
+ { -0.254982, 0.071826, 10.210066, 0 },
+ { -0.241814, 0.076614, 10.001771, 0 },
+ { -0.221464, 0.117316, 10.239994, 0 },
+ { -0.269348, 0.076614, 10.064020, 0 },
+ { -0.220266, 0.092177, 10.166970, 0 },
+ { -0.252588, 0.075417, 10.111904, 0 },
+ { -0.232237, 0.068235, 10.122678, 0 },
+ { -0.259771, 0.075417, 10.110707, 0 },
+ { -0.246603, 0.095768, 10.137043, 0 },
+ { -0.235829, 0.076614, 10.138240, 0 },
+ { -0.256179, 0.071826, 10.102327, 0 },
+ { -0.229843, 0.089783, 10.175350, 0 },
+ { -0.260968, 0.082600, 10.089159, 0 },
+ { -0.225055, 0.086191, 10.169365, 0 },
+ { -0.262165, 0.087388, 10.103524, 0 },
+ { -0.234632, 0.077812, 10.149014, 0 },
+ { -0.241814, 0.070629, 10.079582, 0 },
+ { -0.256179, 0.077812, 10.163380, 0 },
+ { -0.226252, 0.068235, 10.096342, 0 },
+ { -0.253785, 0.080206, 10.117889, 0 },
+ { -0.244208, 0.077812, 10.163380, 0 },
+ { -0.269348, 0.076614, 10.097539, 0 },
+ { -0.238223, 0.069432, 10.169365, 0 },
+ { -0.254982, 0.068235, 10.096342, 0 },
+ { -0.231040, 0.061052, 10.159788, 0 },
+ { -0.248997, 0.075417, 10.079582, 0 },
+ { -0.258574, 0.071826, 10.162182, 0 },
+ { -0.232237, 0.079009, 10.102327, 0 },
+ { -0.256179, 0.100556, 10.138240, 0 },
+ { -0.232237, 0.084994, 10.116693, 0 },
+ { -0.235829, 0.080206, 10.110707, 0 },
+ { -0.225055, 0.065841, 10.129861, 0 },
+ { -0.217872, 0.082600, 10.090356, 0 },
+ { -0.244208, 0.081403, 10.157393, 0 },
};
const size_t kBodyDetectOnOffTestDataLength =
diff --git a/test/body_detection_test_data.h b/test/body_detection_test_data.h
index 4c22c3236f..913701455b 100644
--- a/test/body_detection_test_data.h
+++ b/test/body_detection_test_data.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/build.mk b/test/build.mk
index fac9544ca4..9ab2cf0f7a 100644
--- a/test/build.mk
+++ b/test/build.mk
@@ -1,10 +1,18 @@
# -*- makefile -*-
-# Copyright 2013 The Chromium OS Authors. All rights reserved.
+# Copyright 2013 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Device test binaries
-test-list-y ?= flash_write_protect pingpong timer_calib timer_dos timer_jump mutex utils utils_str
+test-list-y ?= flash_write_protect \
+ pingpong \
+ stdlib \
+ timer_calib \
+ timer_dos \
+ timer_jump \
+ mutex \
+ utils \
+ utils_str
#disable: powerdemo
# Emulator tests
@@ -25,6 +33,7 @@ test-list-host += cec
test-list-host += charge_manager
test-list-host += charge_manager_drp_charging
test-list-host += charge_ramp
+test-list-host += chipset
test-list-host += compile_time_macros
test-list-host += console_edit
test-list-host += crc
@@ -66,6 +75,7 @@ test-list-host += motion_lid
test-list-host += motion_sense_fifo
test-list-host += mutex
test-list-host += newton_fit
+test-list-host += nvidia_gpu
test-list-host += online_calibration
test-list-host += online_calibration_spoof
test-list-host += pingpong
@@ -82,6 +92,10 @@ test-list-host += sha256_unrolled
test-list-host += shmalloc
test-list-host += static_if
test-list-host += static_if_error
+# TODO(b/237823627): When building for the host, we're linking against the
+# toolchain's C standard library, so these tests are actually testing the
+# toolchain's C standard library.
+test-list-host += stdlib
test-list-host += system
test-list-host += thermal
test-list-host += timer_dos
@@ -157,10 +171,12 @@ cec-y=cec.o
charge_manager-y=charge_manager.o fake_usbc.o
charge_manager_drp_charging-y=charge_manager.o fake_usbc.o
charge_ramp-y+=charge_ramp.o
+chipset-y+=chipset.o
compile_time_macros-y=compile_time_macros.o
console_edit-y=console_edit.o
cortexm_fpu-y=cortexm_fpu.o
crc-y=crc.o
+debug-y=debug.o
entropy-y=entropy.o
extpwr_gpio-y=extpwr_gpio.o
fan-y=fan.o
@@ -191,6 +207,7 @@ motion_angle-y=motion_angle.o motion_angle_data_literals.o motion_common.o
motion_angle_tablet-y=motion_angle_tablet.o motion_angle_data_literals_tablet.o motion_common.o
motion_lid-y=motion_lid.o
motion_sense_fifo-y=motion_sense_fifo.o
+nvidia_gpu-y=nvidia_gpu.o
online_calibration-y=online_calibration.o
online_calibration_spoof-y=online_calibration_spoof.o gyro_cal_init_for_test.o
rgb_keyboard-y=rgb_keyboard.o
@@ -216,6 +233,7 @@ sha256-y=sha256.o
sha256_unrolled-y=sha256.o
shmalloc-y=shmalloc.o
static_if-y=static_if.o
+stdlib-y=stdlib.o
stm32f_rtc-y=stm32f_rtc.o
stress-y=stress.o
system-y=system.o
diff --git a/test/button.c b/test/button.c
index e457eaa786..c1acba7048 100644
--- a/test/button.c
+++ b/test/button.c
@@ -1,9 +1,9 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* Test non-keyboard buttons.
-*
+ *
* Using GPIOS and buttons[] defined in board/host/board.c
* Volume down is active low with a debounce time of 30 mSec.
* Volume up is active high with a debounce time of 60 mSec.
@@ -272,7 +272,7 @@ static void button_test_init(void)
button_state[i] = UNCHANGED;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/button.tasklist b/test/button.tasklist
index 5a8fb1bfbe..e2f8671c60 100644
--- a/test/button.tasklist
+++ b/test/button.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/cbi.c b/test/cbi.c
index 0ef2129377..ce01545644 100644
--- a/test/cbi.c
+++ b/test/cbi.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -129,7 +129,7 @@ DECLARE_EC_TEST(test_not_found)
DECLARE_EC_TEST(test_too_large)
{
- uint8_t buf[CBI_IMAGE_SIZE-1];
+ uint8_t buf[CBI_IMAGE_SIZE - 1];
const int tag = 0xff;
/* Data too large */
@@ -162,12 +162,12 @@ DECLARE_EC_TEST(test_all_tags)
zassert_equal(cbi_set_board_info(CBI_TAG_SKU_ID, &d8, sizeof(d8)),
EC_SUCCESS, NULL);
count++;
- zassert_equal(cbi_set_board_info(CBI_TAG_DRAM_PART_NUM,
- string, sizeof(string)),
+ zassert_equal(cbi_set_board_info(CBI_TAG_DRAM_PART_NUM, string,
+ sizeof(string)),
EC_SUCCESS, NULL);
count++;
- zassert_equal(cbi_set_board_info(CBI_TAG_OEM_NAME,
- string, sizeof(string)),
+ zassert_equal(cbi_set_board_info(CBI_TAG_OEM_NAME, string,
+ sizeof(string)),
EC_SUCCESS, NULL);
count++;
zassert_equal(cbi_set_board_info(CBI_TAG_MODEL_ID, &d8, sizeof(d8)),
@@ -176,8 +176,7 @@ DECLARE_EC_TEST(test_all_tags)
zassert_equal(cbi_set_board_info(CBI_TAG_FW_CONFIG, &d8, sizeof(d8)),
EC_SUCCESS, NULL);
count++;
- zassert_equal(cbi_set_board_info(CBI_TAG_PCB_SUPPLIER, &d8,
- sizeof(d8)),
+ zassert_equal(cbi_set_board_info(CBI_TAG_PCB_SUPPLIER, &d8, sizeof(d8)),
EC_SUCCESS, NULL);
count++;
zassert_equal(cbi_set_board_info(CBI_TAG_SSFC, &d8, sizeof(d8)),
@@ -186,6 +185,10 @@ DECLARE_EC_TEST(test_all_tags)
zassert_equal(cbi_set_board_info(CBI_TAG_REWORK_ID, &d8, sizeof(d8)),
EC_SUCCESS, NULL);
count++;
+ zassert_equal(cbi_set_board_info(CBI_TAG_FACTORY_CALIBRATION_DATA, &d8,
+ sizeof(d8)),
+ EC_SUCCESS, NULL);
+ count++;
/* Read out all */
zassert_equal(cbi_get_board_version(&d32), EC_SUCCESS, NULL);
@@ -220,6 +223,8 @@ DECLARE_EC_TEST(test_all_tags)
zassert_equal(d32, d8, "0x%x, 0x%x", d32, d8);
zassert_equal(cbi_get_ssfc(&d32), EC_SUCCESS, NULL);
zassert_equal(d32, d8, "0x%x, 0x%x", d32, d8);
+ zassert_equal(cbi_get_factory_calibration_data(&d32), EC_SUCCESS, NULL);
+ zassert_equal(d32, d8, "0x%x, 0x%x", d32, d8);
zassert_equal(cbi_get_rework_id(&d64), EC_SUCCESS, NULL);
/* This should be zassert_equal, but for EC test fmt is always "0x%x"
* which will generate compilation error.
@@ -250,7 +255,7 @@ DECLARE_EC_TEST(test_bad_crc)
zassert_equal(cbi_set_board_info(tag, &d8, sizeof(d8)), EC_SUCCESS,
NULL);
i2c_read8(I2C_PORT_EEPROM, I2C_ADDR_EEPROM_FLAGS,
- offsetof(struct cbi_header, crc), &crc);
+ offsetof(struct cbi_header, crc), &crc);
i2c_write8(I2C_PORT_EEPROM, I2C_ADDR_EEPROM_FLAGS,
offsetof(struct cbi_header, crc), ++crc);
cbi_invalidate_cache();
@@ -263,24 +268,21 @@ DECLARE_EC_TEST(test_bad_crc)
TEST_SUITE(test_suite_cbi)
{
- ztest_test_suite(test_cbi,
- ztest_unit_test_setup_teardown(test_uint8, test_setup,
- test_teardown),
- ztest_unit_test_setup_teardown(test_uint32, test_setup,
- test_teardown),
- ztest_unit_test_setup_teardown(test_string, test_setup,
- test_teardown),
- ztest_unit_test_setup_teardown(test_not_found,
- test_setup,
- test_teardown),
- ztest_unit_test_setup_teardown(test_too_large,
- test_setup,
- test_teardown),
- ztest_unit_test_setup_teardown(test_all_tags,
- test_setup,
- test_teardown),
- ztest_unit_test_setup_teardown(test_bad_crc,
- test_setup,
- test_teardown));
+ ztest_test_suite(
+ test_cbi,
+ ztest_unit_test_setup_teardown(test_uint8, test_setup,
+ test_teardown),
+ ztest_unit_test_setup_teardown(test_uint32, test_setup,
+ test_teardown),
+ ztest_unit_test_setup_teardown(test_string, test_setup,
+ test_teardown),
+ ztest_unit_test_setup_teardown(test_not_found, test_setup,
+ test_teardown),
+ ztest_unit_test_setup_teardown(test_too_large, test_setup,
+ test_teardown),
+ ztest_unit_test_setup_teardown(test_all_tags, test_setup,
+ test_teardown),
+ ztest_unit_test_setup_teardown(test_bad_crc, test_setup,
+ test_teardown));
ztest_run_test_suite(test_cbi);
}
diff --git a/test/cbi.tasklist b/test/cbi.tasklist
index 52c0d390ef..08d31e0102 100644
--- a/test/cbi.tasklist
+++ b/test/cbi.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/cbi_wp.c b/test/cbi_wp.c
index 7bdfa4b0c8..625447dcb3 100644
--- a/test/cbi_wp.c
+++ b/test/cbi_wp.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -49,8 +49,7 @@ DECLARE_EC_TEST(test_wp)
TEST_SUITE(test_suite_cbi_wp)
{
ztest_test_suite(test_cbi_wp,
- ztest_unit_test_setup_teardown(test_wp,
- test_setup,
+ ztest_unit_test_setup_teardown(test_wp, test_setup,
test_teardown));
ztest_run_test_suite(test_cbi_wp);
}
diff --git a/test/cbi_wp.tasklist b/test/cbi_wp.tasklist
index e54ea001bd..cd866d90e1 100644
--- a/test/cbi_wp.tasklist
+++ b/test/cbi_wp.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/cec.c b/test/cec.c
index 9377e4fcd3..7718b7b705 100644
--- a/test/cec.c
+++ b/test/cec.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -18,7 +18,6 @@ struct overflow_msg {
BUILD_ASSERT(offsetof(struct overflow_msg, overflow_detector) ==
offsetof(struct cec_msg_transfer, buf) + MAX_CEC_MSG_LEN);
-
struct overflow_queue {
struct cec_rx_queue queue;
uint8_t overflow_detector[CEC_RX_BUFFER_SIZE];
@@ -35,7 +34,7 @@ static int test_msg_overflow(void)
int i;
/* Overwrite the buffer by 1 byte */
- for (i = 0; i < (MAX_CEC_MSG_LEN+1)*8; i++) {
+ for (i = 0; i < (MAX_CEC_MSG_LEN + 1) * 8; i++) {
cec_transfer_set_bit(&overflow_msg.transfer, 1);
cec_transfer_inc_bit(&overflow_msg.transfer);
}
@@ -60,8 +59,6 @@ static int test_msg_overflow(void)
return EC_SUCCESS;
}
-
-
static int verify_no_queue_overflow(void)
{
int i;
@@ -73,11 +70,9 @@ static int verify_no_queue_overflow(void)
return EC_SUCCESS;
}
-
static void clear_queue(void)
{
memset(queue, 0, sizeof(struct cec_rx_queue));
-
}
static int fill_queue(uint8_t *msg, int msg_size)
@@ -92,12 +87,12 @@ static int fill_queue(uint8_t *msg, int msg_size)
*/
clear_queue();
- for (i = 0; i < (CEC_RX_BUFFER_SIZE - 1)/(msg_size + 1); i++)
+ for (i = 0; i < (CEC_RX_BUFFER_SIZE - 1) / (msg_size + 1); i++)
TEST_ASSERT(cec_rx_queue_push(queue, msg, msg_size) == 0);
/* Now the queue should be full */
TEST_ASSERT(cec_rx_queue_push(queue, msg, msg_size) ==
- EC_ERROR_OVERFLOW);
+ EC_ERROR_OVERFLOW);
/* Verify nothing was written outside of the queue */
TEST_ASSERT(verify_no_queue_overflow() == EC_SUCCESS);
@@ -119,7 +114,7 @@ static int test_queue_overflow(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
queue = &overflow_queue.queue;
diff --git a/test/cec.tasklist b/test/cec.tasklist
index e7634958a9..df71bfc0f9 100644
--- a/test/cec.tasklist
+++ b/test/cec.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
diff --git a/test/charge_manager.c b/test/charge_manager.c
index 2a64ca3e98..9a27a419d0 100644
--- a/test/charge_manager.c
+++ b/test/charge_manager.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -18,16 +18,11 @@
/* Charge supplier priority: lower number indicates higher priority. */
const int supplier_priority[] = {
- [CHARGE_SUPPLIER_TEST1] = 0,
- [CHARGE_SUPPLIER_TEST2] = 1,
- [CHARGE_SUPPLIER_TEST3] = 1,
- [CHARGE_SUPPLIER_TEST4] = 1,
- [CHARGE_SUPPLIER_TEST5] = 3,
- [CHARGE_SUPPLIER_TEST6] = 3,
- [CHARGE_SUPPLIER_TEST7] = 5,
- [CHARGE_SUPPLIER_TEST8] = 6,
- [CHARGE_SUPPLIER_TEST9] = 6,
- [CHARGE_SUPPLIER_TEST10] = 7,
+ [CHARGE_SUPPLIER_TEST1] = 0, [CHARGE_SUPPLIER_TEST2] = 1,
+ [CHARGE_SUPPLIER_TEST3] = 1, [CHARGE_SUPPLIER_TEST4] = 1,
+ [CHARGE_SUPPLIER_TEST5] = 3, [CHARGE_SUPPLIER_TEST6] = 3,
+ [CHARGE_SUPPLIER_TEST7] = 5, [CHARGE_SUPPLIER_TEST8] = 6,
+ [CHARGE_SUPPLIER_TEST9] = 6, [CHARGE_SUPPLIER_TEST10] = 7,
};
BUILD_ASSERT((int)CHARGE_SUPPLIER_COUNT == (int)CHARGE_SUPPLIER_TEST_COUNT);
BUILD_ASSERT(ARRAY_SIZE(supplier_priority) == CHARGE_SUPPLIER_COUNT);
@@ -39,8 +34,8 @@ static int new_power_request[CONFIG_USB_PD_PORT_MAX_COUNT];
static enum pd_power_role power_role[CONFIG_USB_PD_PORT_MAX_COUNT];
/* Callback functions called by CM on state change */
-void board_set_charge_limit(int port, int supplier, int charge_ma,
- int max_ma, int charge_mv)
+void board_set_charge_limit(int port, int supplier, int charge_ma, int max_ma,
+ int charge_mv)
{
active_charge_limit = charge_ma;
}
@@ -156,8 +151,8 @@ static int test_initialization(void)
TEST_ASSERT(active_charge_port == CHARGE_PORT_NONE);
/* Update last pair and verify a charge port has been selected */
- charge_manager_update_charge(CHARGE_SUPPLIER_COUNT-1,
- board_get_usb_pd_port_count()-1,
+ charge_manager_update_charge(CHARGE_SUPPLIER_COUNT - 1,
+ board_get_usb_pd_port_count() - 1,
&charge);
wait_for_charge_manager_refresh();
TEST_ASSERT(active_charge_port != CHARGE_PORT_NONE);
@@ -787,7 +782,7 @@ static int test_unknown_dualrole_capability(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
@@ -801,5 +796,8 @@ void run_test(int argc, char **argv)
RUN_TEST(test_rejected_port);
RUN_TEST(test_unknown_dualrole_capability);
+ /* Some handlers are still running after the test ends. */
+ sleep(2);
+
test_print_result();
}
diff --git a/test/charge_manager.tasklist b/test/charge_manager.tasklist
index 1f6f139a63..8c05d700ee 100644
--- a/test/charge_manager.tasklist
+++ b/test/charge_manager.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/charge_manager_drp_charging.tasklist b/test/charge_manager_drp_charging.tasklist
index e39c934e44..7b9e5153c4 100644
--- a/test/charge_manager_drp_charging.tasklist
+++ b/test/charge_manager_drp_charging.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+/* Copyright 2015 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/charge_ramp.c b/test/charge_ramp.c
index 84cac57b8e..a4d53b31d6 100644
--- a/test/charge_ramp.c
+++ b/test/charge_ramp.c
@@ -1,4 +1,4 @@
-/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+/* Copyright 2015 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -19,7 +19,7 @@
#define TASK_EVENT_OVERCURRENT (1 << 0)
-#define RAMP_STABLE_DELAY (120*SECOND)
+#define RAMP_STABLE_DELAY (120 * SECOND)
/*
* Time to delay for detecting the charger type. This value follows
@@ -27,7 +27,7 @@
* CHARGE_DETECT_DELAY so we guarantee we wake up before the ramp
* has started.
*/
-#define CHARGE_DETECT_DELAY_TEST (CHARGE_DETECT_DELAY - 100*MSEC)
+#define CHARGE_DETECT_DELAY_TEST (CHARGE_DETECT_DELAY - 100 * MSEC)
static int system_load_current_ma;
static int vbus_low_current_ma = 500;
@@ -73,8 +73,8 @@ int board_is_vbus_too_low(int port, enum chg_ramp_vbus_state ramp_state)
vbus_low_current_ma;
}
-void board_set_charge_limit(int port, int supplier, int limit_ma,
- int max_ma, int max_mv)
+void board_set_charge_limit(int port, int supplier, int limit_ma, int max_ma,
+ int max_mv)
{
charge_limit_ma = limit_ma;
if (charge_limit_ma > overcurrent_current_ma)
@@ -96,9 +96,8 @@ static void plug_charger_with_ts(int supplier_type, int port, int min_current,
static void plug_charger(int supplier_type, int port, int min_current,
int vbus_low_current, int overcurrent_current)
{
- plug_charger_with_ts(supplier_type, port, min_current,
- vbus_low_current, overcurrent_current,
- get_time());
+ plug_charger_with_ts(supplier_type, port, min_current, vbus_low_current,
+ overcurrent_current, get_time());
}
static void unplug_charger(void)
@@ -137,7 +136,7 @@ static int test_no_ramp(void)
* the charge limit. This just needs at least transition to the
* CHG_RAMP_OVERCURRENT_DETECT state.
*/
- usleep(CHARGE_DETECT_DELAY_TEST + 200*MSEC);
+ usleep(CHARGE_DETECT_DELAY_TEST + 200 * MSEC);
/* That's right. Start at 500 mA */
TEST_ASSERT(charge_limit_ma == 500);
TEST_ASSERT(wait_stable_no_overcurrent());
@@ -442,14 +441,14 @@ static int test_equal_priority_overcurrent(void)
* switches to the other one.
*/
while (1) {
- plug_charger_with_ts(CHARGE_SUPPLIER_TEST4, 0, 500, 3000,
- 2000, oc_time);
+ plug_charger_with_ts(CHARGE_SUPPLIER_TEST4, 0, 500, 3000, 2000,
+ oc_time);
oc_time = get_time();
oc_time.val += 600 * MSEC;
if (wait_stable_no_overcurrent())
break;
- plug_charger_with_ts(CHARGE_SUPPLIER_TEST4, 1, 500, 3000,
- 2000, oc_time);
+ plug_charger_with_ts(CHARGE_SUPPLIER_TEST4, 1, 500, 3000, 2000,
+ oc_time);
oc_time = get_time();
oc_time.val += 600 * MSEC;
if (wait_stable_no_overcurrent())
@@ -497,7 +496,7 @@ static int test_ramp_limit(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/charge_ramp.tasklist b/test/charge_ramp.tasklist
index 1e18846c75..ff0b0b7fd0 100644
--- a/test/charge_ramp.tasklist
+++ b/test/charge_ramp.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+/* Copyright 2015 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/chipset.c b/test/chipset.c
new file mode 100644
index 0000000000..6c9031e3f0
--- /dev/null
+++ b/test/chipset.c
@@ -0,0 +1,32 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * Test chipset
+ */
+
+#define CONFIG_CMD_AP_RESET_LOG
+
+#include "chipset.h"
+#include "test_util.h"
+
+static int test_get_shutdown_reason(void)
+{
+ enum chipset_shutdown_reason reason = chipset_get_shutdown_reason();
+
+ TEST_ASSERT(reason == 0);
+ report_ap_reset(CHIPSET_SHUTDOWN_POWERFAIL);
+ reason = chipset_get_shutdown_reason();
+ TEST_ASSERT(reason == CHIPSET_SHUTDOWN_POWERFAIL);
+
+ return EC_SUCCESS;
+}
+
+void run_test(int argc, const char **argv)
+{
+ test_reset();
+
+ RUN_TEST(test_get_shutdown_reason);
+
+ test_print_result();
+}
diff --git a/test/chipset.tasklist b/test/chipset.tasklist
new file mode 100644
index 0000000000..45964224fe
--- /dev/null
+++ b/test/chipset.tasklist
@@ -0,0 +1,10 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * See CONFIG_TASK_LIST in config.h for details.
+ */
+#define CONFIG_TEST_TASK_LIST \
+ TASK_TEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE)
diff --git a/test/compile_time_macros.c b/test/compile_time_macros.c
index 7d4bee4aa6..544da9e0d8 100644
--- a/test/compile_time_macros.c
+++ b/test/compile_time_macros.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -9,10 +9,9 @@
#include "common.h"
#include "test_util.h"
-
static int test_BIT(void)
{
- TEST_EQ(BIT(0), 0x00000001U, "%u");
+ TEST_EQ(BIT(0), 0x00000001U, "%u");
TEST_EQ(BIT(25), 0x02000000U, "%u");
TEST_EQ(BIT(31), 0x80000000U, "%u");
@@ -21,7 +20,7 @@ static int test_BIT(void)
static int test_BIT_ULL(void)
{
- TEST_EQ(BIT_ULL(0), 0x0000000000000001ULL, "%Lu");
+ TEST_EQ(BIT_ULL(0), 0x0000000000000001ULL, "%Lu");
TEST_EQ(BIT_ULL(25), 0x0000000002000000ULL, "%Lu");
TEST_EQ(BIT_ULL(50), 0x0004000000000000ULL, "%Lu");
TEST_EQ(BIT_ULL(63), 0x8000000000000000ULL, "%Lu");
@@ -70,10 +69,10 @@ static int test_WRITE_BIT(void)
static int test_GENMASK(void)
{
- TEST_EQ(GENMASK(0, 0), 0x00000001U, "%u");
- TEST_EQ(GENMASK(31, 0), 0xFFFFFFFFU, "%u");
- TEST_EQ(GENMASK(4, 4), 0x00000010U, "%u");
- TEST_EQ(GENMASK(4, 0), 0x0000001FU, "%u");
+ TEST_EQ(GENMASK(0, 0), 0x00000001U, "%u");
+ TEST_EQ(GENMASK(31, 0), 0xFFFFFFFFU, "%u");
+ TEST_EQ(GENMASK(4, 4), 0x00000010U, "%u");
+ TEST_EQ(GENMASK(4, 0), 0x0000001FU, "%u");
TEST_EQ(GENMASK(21, 21), 0x00200000U, "%u");
TEST_EQ(GENMASK(31, 31), 0x80000000U, "%u");
@@ -82,11 +81,11 @@ static int test_GENMASK(void)
static int test_GENMASK_ULL(void)
{
- TEST_EQ(GENMASK_ULL(0, 0), 0x0000000000000001ULL, "%Lu");
- TEST_EQ(GENMASK_ULL(31, 0), 0x00000000FFFFFFFFULL, "%Lu");
- TEST_EQ(GENMASK_ULL(63, 0), 0xFFFFFFFFFFFFFFFFULL, "%Lu");
- TEST_EQ(GENMASK_ULL(4, 4), 0x0000000000000010ULL, "%Lu");
- TEST_EQ(GENMASK_ULL(4, 0), 0x000000000000001FULL, "%Lu");
+ TEST_EQ(GENMASK_ULL(0, 0), 0x0000000000000001ULL, "%Lu");
+ TEST_EQ(GENMASK_ULL(31, 0), 0x00000000FFFFFFFFULL, "%Lu");
+ TEST_EQ(GENMASK_ULL(63, 0), 0xFFFFFFFFFFFFFFFFULL, "%Lu");
+ TEST_EQ(GENMASK_ULL(4, 4), 0x0000000000000010ULL, "%Lu");
+ TEST_EQ(GENMASK_ULL(4, 0), 0x000000000000001FULL, "%Lu");
TEST_EQ(GENMASK_ULL(21, 21), 0x0000000000200000ULL, "%Lu");
TEST_EQ(GENMASK_ULL(31, 31), 0x0000000080000000ULL, "%Lu");
TEST_EQ(GENMASK_ULL(63, 63), 0x8000000000000000ULL, "%Lu");
@@ -106,7 +105,7 @@ test_static int test_IS_ARRAY(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/compile_time_macros.tasklist b/test/compile_time_macros.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/compile_time_macros.tasklist
+++ b/test/compile_time_macros.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/console_edit.c b/test/console_edit.c
index 8d0721c14e..3ffb79609a 100644
--- a/test/console_edit.c
+++ b/test/console_edit.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -10,18 +10,20 @@
#include "test_util.h"
#include "timer.h"
#include "util.h"
+#include "uart.h"
+#include "ec_commands.h"
static int cmd_1_call_cnt;
static int cmd_2_call_cnt;
-static int command_test_1(int argc, char **argv)
+static int command_test_1(int argc, const char **argv)
{
cmd_1_call_cnt++;
return EC_SUCCESS;
}
DECLARE_CONSOLE_COMMAND(test1, command_test_1, NULL, NULL);
-static int command_test_2(int argc, char **argv)
+static int command_test_2(int argc, const char **argv)
{
cmd_2_call_cnt++;
return EC_SUCCESS;
@@ -40,7 +42,7 @@ enum arrow_key_t {
static void arrow_key(enum arrow_key_t k, int repeat)
{
- static char seq[4] = {0x1B, '[', 0, 0};
+ static char seq[4] = { 0x1B, '[', 0, 0 };
seq[2] = 'A' + k;
while (repeat--)
UART_INJECT(seq);
@@ -63,7 +65,7 @@ static void end_key(void)
static void ctrl_key(char c)
{
- static char seq[2] = {0, 0};
+ static char seq[2] = { 0, 0 };
seq[0] = c - '@';
UART_INJECT(seq);
}
@@ -98,7 +100,8 @@ static int test_backspace(void)
cmd_1_call_cnt = 0;
UART_INJECT("testx\b1\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_insert_char(void)
@@ -108,7 +111,8 @@ static int test_insert_char(void)
arrow_key(ARROW_LEFT, 2);
UART_INJECT("s\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_delete_char(void)
@@ -118,7 +122,8 @@ static int test_delete_char(void)
arrow_key(ARROW_LEFT, 1);
UART_INJECT("\b\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_insert_delete_char(void)
@@ -130,7 +135,8 @@ static int test_insert_delete_char(void)
arrow_key(ARROW_RIGHT, 1);
UART_INJECT("s\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_home_end_key(void)
@@ -142,7 +148,8 @@ static int test_home_end_key(void)
end_key();
UART_INJECT("1\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_ctrl_k(void)
@@ -153,7 +160,8 @@ static int test_ctrl_k(void)
ctrl_key('K');
UART_INJECT("\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_history_up(void)
@@ -164,7 +172,8 @@ static int test_history_up(void)
arrow_key(ARROW_UP, 1);
UART_INJECT("\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 2);
+ TEST_ASSERT(cmd_1_call_cnt == 2);
+ return EC_SUCCESS;
}
static int test_history_up_up(void)
@@ -178,7 +187,8 @@ static int test_history_up_up(void)
arrow_key(ARROW_UP, 2);
UART_INJECT("\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 2 && cmd_2_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 2 && cmd_2_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_history_up_up_down(void)
@@ -193,7 +203,8 @@ static int test_history_up_up_down(void)
arrow_key(ARROW_DOWN, 1);
UART_INJECT("\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1 && cmd_2_call_cnt == 2);
+ TEST_ASSERT(cmd_1_call_cnt == 1 && cmd_2_call_cnt == 2);
+ return EC_SUCCESS;
}
static int test_history_edit(void)
@@ -205,7 +216,8 @@ static int test_history_edit(void)
arrow_key(ARROW_UP, 1);
UART_INJECT("\b2\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1 && cmd_2_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1 && cmd_2_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_history_stash(void)
@@ -219,13 +231,14 @@ static int test_history_stash(void)
arrow_key(ARROW_DOWN, 1);
UART_INJECT("2\n");
msleep(30);
- TEST_CHECK(cmd_1_call_cnt == 1 && cmd_2_call_cnt == 1);
+ TEST_ASSERT(cmd_1_call_cnt == 1 && cmd_2_call_cnt == 1);
+ return EC_SUCCESS;
}
static int test_history_list(void)
{
const char *exp_output = "history\n" /* Input command */
- "test3\n" /* Output 4 last commands */
+ "test3\n" /* Output 4 last commands */
"test4\n"
"test5\n"
"history\n"
@@ -258,8 +271,8 @@ static int test_output_channel(void)
cputs(CC_TASK, "shouldn't see this either\n");
cflush();
test_capture_console(0);
- TEST_ASSERT(compare_multiline_string(test_get_captured_console(),
- "") == 0);
+ TEST_ASSERT(compare_multiline_string(test_get_captured_console(), "") ==
+ 0);
UART_INJECT("chan restore\n");
msleep(30);
test_capture_console(1);
@@ -273,7 +286,35 @@ static int test_output_channel(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+/* This test is identical to console::buf_notify_null in
+ * zephyr/test/drivers/default/src/console.c. Please keep them in sync to
+ * verify that uart_console_read_buffer works identically in legacy EC and
+ * zephyr.
+ */
+static int test_buf_notify_null(void)
+{
+ char buffer[100];
+ uint16_t write_count;
+
+ /* Flush the console buffer before we start. */
+ TEST_ASSERT(uart_console_read_buffer_init() == 0);
+
+ /* Write a nul char to the buffer. */
+ cprintf(CC_SYSTEM, "ab%cc", 0);
+ cflush();
+
+ /* Check if the nul is present in the buffer. */
+ TEST_ASSERT(uart_console_read_buffer_init() == 0);
+ TEST_ASSERT(uart_console_read_buffer(CONSOLE_READ_RECENT, buffer,
+ sizeof(buffer),
+ &write_count) == 0);
+ TEST_ASSERT(strncmp(buffer, "abc", 4) == 0);
+ TEST_EQ(write_count, 4, "%d");
+
+ return EC_SUCCESS;
+}
+
+void run_test(int argc, const char **argv)
{
test_reset();
@@ -290,6 +331,7 @@ void run_test(int argc, char **argv)
RUN_TEST(test_history_stash);
RUN_TEST(test_history_list);
RUN_TEST(test_output_channel);
+ RUN_TEST(test_buf_notify_null);
test_print_result();
}
diff --git a/test/console_edit.tasklist b/test/console_edit.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/console_edit.tasklist
+++ b/test/console_edit.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/cortexm_fpu.c b/test/cortexm_fpu.c
index 8564e2a4ef..c27edbaf40 100644
--- a/test/cortexm_fpu.c
+++ b/test/cortexm_fpu.c
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -33,11 +33,7 @@ static float divf(float a, float b)
{
float result;
- asm volatile(
- "fdivs %0, %1, %2"
- : "=w"(result)
- : "w"(a), "w"(b)
- );
+ asm volatile("fdivs %0, %1, %2" : "=w"(result) : "w"(a), "w"(b));
return result;
}
@@ -162,7 +158,7 @@ test_static int test_cortexm_fpu_inexact(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/cortexm_fpu.tasklist b/test/cortexm_fpu.tasklist
index 7f9fb4dd8a..16313e9055 100644
--- a/test/cortexm_fpu.tasklist
+++ b/test/cortexm_fpu.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/crc.c b/test/crc.c
index e65be72ace..9943a7ac0c 100644
--- a/test/crc.c
+++ b/test/crc.c
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -37,7 +37,7 @@ static int test_8(void)
{
uint32_t crc;
const uint32_t input = 0xdeadbeef;
- const uint8_t *p = (const uint8_t *) &input;
+ const uint8_t *p = (const uint8_t *)&input;
int i;
crc32_init();
@@ -83,7 +83,7 @@ static int test_cros_crc8(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/crc.tasklist b/test/crc.tasklist
index f46a2eaa1d..bf2309064a 100644
--- a/test/crc.tasklist
+++ b/test/crc.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/debug.c b/test/debug.c
new file mode 100644
index 0000000000..2c637ab725
--- /dev/null
+++ b/test/debug.c
@@ -0,0 +1,47 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "common.h"
+#include "debug.h"
+#include "string.h"
+#include "test_util.h"
+
+static bool debugger_connected;
+
+static void print_usage(void)
+{
+ ccprintf("usage: runtest [debugger|no_debugger]\n");
+}
+
+test_static int test_debugger_is_connected(void)
+{
+ ccprintf("debugger_is_connected: %d\n", debugger_connected);
+ TEST_EQ(debugger_is_connected(), debugger_connected, "%d");
+ return EC_SUCCESS;
+}
+
+void run_test(int argc, const char **argv)
+{
+ test_reset();
+
+ if (argc < 2) {
+ print_usage();
+ test_fail();
+ return;
+ }
+
+ if (strncmp(argv[1], "debugger", sizeof("debugger")) == 0)
+ debugger_connected = true;
+ else if (strncmp(argv[1], "no_debugger", sizeof("no_debugger")) == 0) {
+ debugger_connected = false;
+ } else {
+ print_usage();
+ test_fail();
+ return;
+ }
+
+ RUN_TEST(test_debugger_is_connected);
+ test_print_result();
+}
diff --git a/test/debug.tasklist b/test/debug.tasklist
new file mode 100644
index 0000000000..959f62ef79
--- /dev/null
+++ b/test/debug.tasklist
@@ -0,0 +1,9 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * See CONFIG_TASK_LIST in config.h for details.
+ */
+#define CONFIG_TEST_TASK_LIST
diff --git a/test/entropy.c b/test/entropy.c
index fb066a6c5b..8fbdb9147f 100644
--- a/test/entropy.c
+++ b/test/entropy.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -26,10 +26,10 @@ uint32_t log2(int32_t val)
int val1 = 31 - __builtin_clz(val);
int val2 = 32 - __builtin_clz(val - 1);
- return log2_mult * (val1 + val2)/2;
+ return log2_mult * (val1 + val2) / 2;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
const int loopcount = 512;
@@ -52,7 +52,7 @@ void run_test(int argc, char **argv)
t1 = get_time();
if (i == 0)
ccprintf("Got %zd bytes in %" PRId64 " us\n",
- sizeof(buffer), t1.val - t0.val);
+ sizeof(buffer), t1.val - t0.val);
for (j = 0; j < sizeof(buffer); j++)
buckets[buffer[j]]++;
@@ -82,7 +82,7 @@ void run_test(int argc, char **argv)
ccprintf("\n");
ccprintf("Entropy: %u/1000 bits\n",
- entropy * 1000 / (log2_mult * totalcount));
+ entropy * 1000 / (log2_mult * totalcount));
/* We want at least 2 bits of entropy (out of a maximum of 8) */
if ((entropy / (log2_mult * totalcount)) >= 2)
diff --git a/test/entropy.tasklist b/test/entropy.tasklist
index 80072bb620..329f9a3d28 100644
--- a/test/entropy.tasklist
+++ b/test/entropy.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/extpwr_gpio.c b/test/extpwr_gpio.c
index d1f77c9167..8a17a9580c 100644
--- a/test/extpwr_gpio.c
+++ b/test/extpwr_gpio.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -51,7 +51,7 @@ static int test_hook(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/extpwr_gpio.tasklist b/test/extpwr_gpio.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/extpwr_gpio.tasklist
+++ b/test/extpwr_gpio.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/fake_battery.c b/test/fake_battery.c
index 4442300572..9dabbb31d9 100644
--- a/test/fake_battery.c
+++ b/test/fake_battery.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
diff --git a/test/fake_usbc.c b/test/fake_usbc.c
index 2cabb2dee0..1d9c42a97a 100644
--- a/test/fake_usbc.c
+++ b/test/fake_usbc.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -15,17 +15,20 @@ __overridable int pd_is_vbus_present(int port)
}
__overridable void pd_request_data_swap(int port)
-{}
+{
+}
__overridable void pd_request_power_swap(int port)
-{}
+{
+}
void pd_request_vconn_swap_off(int port)
-{}
+{
+}
void pd_request_vconn_swap_on(int port)
-{}
-
+{
+}
static enum pd_data_role data_role;
__overridable enum pd_data_role pd_get_data_role(int port)
@@ -68,10 +71,12 @@ int tc_check_vconn_swap(int port)
}
void tc_ctvpd_detected(int port)
-{}
+{
+}
void tc_disc_ident_complete(int port)
-{}
+{
+}
static int attached_snk;
int tc_is_attached_snk(int port)
@@ -91,28 +96,36 @@ int tc_is_vconn_src(int port)
}
void tc_hard_reset_request(int port)
-{}
+{
+}
void tc_hard_reset_complete(int port)
-{}
+{
+}
void tc_partner_dr_data(int port, int en)
-{}
+{
+}
void tc_partner_dr_power(int port, int en)
-{}
+{
+}
void tc_partner_unconstrainedpower(int port, int en)
-{}
+{
+}
void tc_partner_usb_comm(int port, int en)
-{}
+{
+}
void tc_pd_connection(int port, int en)
-{}
+{
+}
void tc_pr_swap_complete(int port, bool success)
-{}
+{
+}
void tc_prs_snk_src_assert_rp(int port)
{
@@ -127,16 +140,20 @@ void tc_prs_src_snk_assert_rd(int port)
}
void tc_src_power_off(int port)
-{}
+{
+}
void tc_set_timeout(int port, uint64_t timeout)
-{}
+{
+}
__overridable void tc_start_error_recovery(int port)
-{}
+{
+}
__overridable void tc_snk_power_off(int port)
-{}
+{
+}
__overridable void pe_invalidate_explicit_contract(int port)
{
@@ -148,7 +165,7 @@ __overridable enum pd_dual_role_states pd_get_dual_role(int port)
}
__overridable void pd_dev_get_rw_hash(int port, uint16_t *dev_id,
- uint8_t *rw_hash, uint32_t *current_image)
+ uint8_t *rw_hash, uint32_t *current_image)
{
}
@@ -185,7 +202,7 @@ enum idh_ptype get_usb_pd_mux_cable_type(int port)
return IDH_PTYPE_UNDEF;
}
-const uint32_t * const pd_get_src_caps(int port)
+const uint32_t *const pd_get_src_caps(int port)
{
return NULL;
}
@@ -200,8 +217,7 @@ uint8_t pd_get_src_cap_cnt(int port)
}
#endif
-#if !defined(CONFIG_USB_DRP_ACC_TRYSRC) && \
- !defined(CONFIG_USB_CTVPD)
+#if !defined(CONFIG_USB_DRP_ACC_TRYSRC) && !defined(CONFIG_USB_CTVPD)
int pd_is_connected(int port)
{
return true;
@@ -271,12 +287,12 @@ void dpm_mode_exit_complete(int port)
}
void dpm_vdm_acked(int port, enum tcpci_msg_type type, int vdo_count,
- uint32_t *vdm)
+ uint32_t *vdm)
{
}
void dpm_vdm_naked(int port, enum tcpci_msg_type type, uint16_t svid,
- uint8_t vdm_cmd)
+ uint8_t vdm_cmd)
{
}
@@ -312,6 +328,14 @@ void dpm_remove_source(int port)
{
}
+void dpm_bist_shared_mode_enter(int port)
+{
+}
+
+void dpm_bist_shared_mode_exit(int port)
+{
+}
+
int dpm_get_source_pdo(const uint32_t **src_pdo, const int port)
{
*src_pdo = pd_src_pdo;
@@ -323,9 +347,13 @@ int dpm_get_status_msg(int port, uint8_t *msg, uint32_t *len)
return EC_SUCCESS;
}
+void dpm_handle_alert(int port, uint32_t ado)
+{
+}
+
static enum tcpc_rp_value lcl_rp;
__overridable void typec_select_src_current_limit_rp(int port,
- enum tcpc_rp_value rp)
+ enum tcpc_rp_value rp)
{
lcl_rp = rp;
}
diff --git a/test/fan.c b/test/fan.c
index d03aa0213c..76c3208cc6 100644
--- a/test/fan.c
+++ b/test/fan.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -10,14 +10,13 @@
#include "fan.h"
#include "hooks.h"
#include "host_command.h"
-#include "printf.h"
#include "temp_sensor.h"
#include "test_util.h"
#include "thermal.h"
#include "timer.h"
#include "util.h"
-#define FAN_RPM(fan) fans[fan].rpm
+#define FAN_RPM(fan) fans[fan].rpm
/*****************************************************************************/
/* Tests */
@@ -105,9 +104,16 @@ static int test_fan(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_fan);
test_print_result();
}
+
+/* Doesn't do anything, but it makes this test stop intermittently covering
+ * some code in core/host/task.c:fast_forward().
+ */
+void interrupt_generator(void)
+{
+}
diff --git a/test/fan.tasklist b/test/fan.tasklist
index 25dcf124db..836bdd08ed 100644
--- a/test/fan.tasklist
+++ b/test/fan.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/flash.c b/test/flash.c
index 4f9ca74016..bd1b646f1f 100644
--- a/test/flash.c
+++ b/test/flash.c
@@ -1,4 +1,4 @@
-/* Copyright 2012 The Chromium OS Authors. All rights reserved.
+/* Copyright 2012 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -103,60 +103,59 @@ static int verify_erase(int offset, int size)
return EC_SUCCESS;
}
-
-#define VERIFY_NO_WRITE(off, sz, d) \
- do { \
- record_flash(off, sz); \
+#define VERIFY_NO_WRITE(off, sz, d) \
+ do { \
+ record_flash(off, sz); \
TEST_ASSERT(host_command_write(off, sz, d) != EC_SUCCESS); \
- TEST_ASSERT(verify_flash(off, sz) == EC_SUCCESS); \
+ TEST_ASSERT(verify_flash(off, sz) == EC_SUCCESS); \
} while (0)
-#define VERIFY_NO_ERASE(off, sz) \
- do { \
- record_flash(off, sz); \
+#define VERIFY_NO_ERASE(off, sz) \
+ do { \
+ record_flash(off, sz); \
TEST_ASSERT(host_command_erase(off, sz) != EC_SUCCESS); \
- TEST_ASSERT(verify_flash(off, sz) == EC_SUCCESS); \
+ TEST_ASSERT(verify_flash(off, sz) == EC_SUCCESS); \
} while (0)
-#define VERIFY_WRITE(off, sz, d) \
- do { \
+#define VERIFY_WRITE(off, sz, d) \
+ do { \
TEST_ASSERT(host_command_write(off, sz, d) == EC_SUCCESS); \
- TEST_ASSERT(verify_write(off, sz, d) == EC_SUCCESS); \
+ TEST_ASSERT(verify_write(off, sz, d) == EC_SUCCESS); \
} while (0)
-#define VERIFY_ERASE(off, sz) \
- do { \
+#define VERIFY_ERASE(off, sz) \
+ do { \
TEST_ASSERT(host_command_erase(off, sz) == EC_SUCCESS); \
- TEST_ASSERT(verify_erase(off, sz) == EC_SUCCESS); \
+ TEST_ASSERT(verify_erase(off, sz) == EC_SUCCESS); \
} while (0)
-#define SET_WP_FLAGS(m, f) \
- TEST_ASSERT(host_command_protect(m, ((f) ? m : 0), \
- NULL, NULL, NULL) == EC_RES_SUCCESS)
+#define SET_WP_FLAGS(m, f) \
+ TEST_ASSERT(host_command_protect(m, ((f) ? m : 0), NULL, NULL, \
+ NULL) == EC_RES_SUCCESS)
-#define ASSERT_WP_FLAGS(f) \
- do { \
- uint32_t flags; \
+#define ASSERT_WP_FLAGS(f) \
+ do { \
+ uint32_t flags; \
TEST_ASSERT(host_command_protect(0, 0, &flags, NULL, NULL) == \
- EC_RES_SUCCESS); \
- TEST_ASSERT(flags & (f)); \
+ EC_RES_SUCCESS); \
+ TEST_ASSERT(flags &(f)); \
} while (0)
-#define ASSERT_WP_NO_FLAGS(f) \
- do { \
- uint32_t flags; \
+#define ASSERT_WP_NO_FLAGS(f) \
+ do { \
+ uint32_t flags; \
TEST_ASSERT(host_command_protect(0, 0, &flags, NULL, NULL) == \
- EC_RES_SUCCESS); \
- TEST_ASSERT((flags & (f)) == 0); \
+ EC_RES_SUCCESS); \
+ TEST_ASSERT((flags & (f)) == 0); \
} while (0)
-#define VERIFY_REGION_INFO(r, o, s) \
- do { \
- uint32_t offset, size; \
+#define VERIFY_REGION_INFO(r, o, s) \
+ do { \
+ uint32_t offset, size; \
TEST_ASSERT(host_command_region_info(r, &offset, &size) == \
- EC_RES_SUCCESS); \
- TEST_ASSERT(offset == (o)); \
- TEST_ASSERT(size == (s)); \
+ EC_RES_SUCCESS); \
+ TEST_ASSERT(offset == (o)); \
+ TEST_ASSERT(size == (s)); \
} while (0)
int host_command_read(int offset, int size, char *out)
@@ -195,9 +194,8 @@ int host_command_erase(int offset, int size)
sizeof(params), NULL, 0);
}
-int host_command_protect(uint32_t mask, uint32_t flags,
- uint32_t *flags_out, uint32_t *valid_out,
- uint32_t *writable_out)
+int host_command_protect(uint32_t mask, uint32_t flags, uint32_t *flags_out,
+ uint32_t *valid_out, uint32_t *writable_out)
{
struct ec_params_flash_protect params;
struct ec_response_flash_protect resp;
@@ -222,7 +220,7 @@ int host_command_protect(uint32_t mask, uint32_t flags,
}
int host_command_region_info(enum ec_flash_region reg, uint32_t *offset,
- uint32_t *size)
+ uint32_t *size)
{
struct ec_params_flash_region_info params;
struct ec_response_flash_region_info resp;
@@ -350,29 +348,31 @@ static int test_flash_info(void)
{
struct ec_response_flash_info_1 resp;
- TEST_ASSERT(test_send_host_command(EC_CMD_FLASH_INFO, 1, NULL, 0,
- &resp, sizeof(resp)) == EC_RES_SUCCESS);
+ TEST_ASSERT(test_send_host_command(EC_CMD_FLASH_INFO, 1, NULL, 0, &resp,
+ sizeof(resp)) == EC_RES_SUCCESS);
- TEST_CHECK((resp.flash_size == CONFIG_FLASH_SIZE_BYTES) &&
- (resp.write_block_size == CONFIG_FLASH_WRITE_SIZE) &&
- (resp.erase_block_size == CONFIG_FLASH_ERASE_SIZE) &&
- (resp.protect_block_size == CONFIG_FLASH_BANK_SIZE));
+ TEST_ASSERT(resp.flash_size == CONFIG_FLASH_SIZE_BYTES);
+ TEST_ASSERT(resp.write_block_size == CONFIG_FLASH_WRITE_SIZE);
+ TEST_ASSERT(resp.erase_block_size == CONFIG_FLASH_ERASE_SIZE);
+ TEST_ASSERT(resp.protect_block_size == CONFIG_FLASH_BANK_SIZE);
+ return EC_SUCCESS;
}
static int test_region_info(void)
{
VERIFY_REGION_INFO(EC_FLASH_REGION_RO,
CONFIG_EC_PROTECTED_STORAGE_OFF +
- CONFIG_RO_STORAGE_OFF, EC_FLASH_REGION_RO_SIZE);
+ CONFIG_RO_STORAGE_OFF,
+ EC_FLASH_REGION_RO_SIZE);
VERIFY_REGION_INFO(EC_FLASH_REGION_ACTIVE,
CONFIG_EC_WRITABLE_STORAGE_OFF +
- CONFIG_RW_STORAGE_OFF,
+ CONFIG_RW_STORAGE_OFF,
CONFIG_EC_WRITABLE_STORAGE_SIZE);
- VERIFY_REGION_INFO(EC_FLASH_REGION_WP_RO,
- CONFIG_WP_STORAGE_OFF, CONFIG_WP_STORAGE_SIZE);
+ VERIFY_REGION_INFO(EC_FLASH_REGION_WP_RO, CONFIG_WP_STORAGE_OFF,
+ CONFIG_WP_STORAGE_SIZE);
VERIFY_REGION_INFO(EC_FLASH_REGION_UPDATE,
CONFIG_EC_WRITABLE_STORAGE_OFF +
- CONFIG_RW_STORAGE_OFF,
+ CONFIG_RW_STORAGE_OFF,
CONFIG_EC_WRITABLE_STORAGE_SIZE);
return EC_SUCCESS;
@@ -401,9 +401,11 @@ static int test_write_protect(void)
/* Check we cannot erase anything */
TEST_ASSERT(crec_flash_physical_erase(CONFIG_RO_STORAGE_OFF,
- CONFIG_FLASH_ERASE_SIZE) != EC_SUCCESS);
+ CONFIG_FLASH_ERASE_SIZE) !=
+ EC_SUCCESS);
TEST_ASSERT(crec_flash_physical_erase(CONFIG_RW_STORAGE_OFF,
- CONFIG_FLASH_ERASE_SIZE) != EC_SUCCESS);
+ CONFIG_FLASH_ERASE_SIZE) !=
+ EC_SUCCESS);
/* We should not even try to write/erase */
VERIFY_NO_ERASE(CONFIG_RO_STORAGE_OFF, CONFIG_FLASH_ERASE_SIZE);
@@ -419,7 +421,8 @@ static int test_boot_write_protect(void)
/* Check write protect state persists through reboot */
ASSERT_WP_FLAGS(EC_FLASH_PROTECT_RO_NOW | EC_FLASH_PROTECT_RO_AT_BOOT);
TEST_ASSERT(crec_flash_physical_erase(CONFIG_RO_STORAGE_OFF,
- CONFIG_FLASH_ERASE_SIZE) != EC_SUCCESS);
+ CONFIG_FLASH_ERASE_SIZE) !=
+ EC_SUCCESS);
return EC_SUCCESS;
}
@@ -500,7 +503,7 @@ int task_test(void *data)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
msleep(30); /* Wait for TASK_ID_TEST to initialize */
task_wake(TASK_ID_TEST);
diff --git a/test/flash.tasklist b/test/flash.tasklist
index dae84c1635..dbebe0dabb 100644
--- a/test/flash.tasklist
+++ b/test/flash.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/flash_physical.c b/test/flash_physical.c
index 06dd495254..8136f6b5e3 100644
--- a/test/flash_physical.c
+++ b/test/flash_physical.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -30,7 +30,6 @@ struct flash_info flash_info = {
#error "Flash info not defined for this chip. Please add it."
#endif
-
test_static int test_lock_option_bytes(void)
{
TEST_EQ(flash_option_bytes_locked(), true, "%d");
@@ -119,7 +118,7 @@ test_static int test_flash_config(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
ccprintf("Running flash physical test\n");
RUN_TEST(test_flash_config);
diff --git a/test/flash_physical.tasklist b/test/flash_physical.tasklist
index 51734f058d..a1f1a94e2d 100644
--- a/test/flash_physical.tasklist
+++ b/test/flash_physical.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/flash_write_protect.c b/test/flash_write_protect.c
index 888482076f..138aab24ff 100644
--- a/test/flash_write_protect.c
+++ b/test/flash_write_protect.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -97,7 +97,6 @@ test_static int test_cbi_wb_asserted_immediately(void)
/* Now make sure EC_CBI_WP is asserted immediately. */
TEST_EQ(gpio_get_level(GPIO_EC_CBI_WP), 1, "%d");
-
return EC_SUCCESS;
}
@@ -131,7 +130,7 @@ int task_test(void *unused)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
msleep(30); /* Wait for TASK_ID_TEST to initialize */
task_wake(TASK_ID_TEST);
diff --git a/test/flash_write_protect.tasklist b/test/flash_write_protect.tasklist
index 21619decc3..974106d6c2 100644
--- a/test/flash_write_protect.tasklist
+++ b/test/flash_write_protect.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/float.tasklist b/test/float.tasklist
index 9ad0114d8a..5216cd488c 100644
--- a/test/float.tasklist
+++ b/test/float.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/fp.c b/test/fp.c
index 2d9aa1ed5e..ab41868578 100644
--- a/test/fp.c
+++ b/test/fp.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -36,9 +36,9 @@
#error "No such test configuration."
#endif
-#define IS_FPV3_VECTOR_EQUAL(a, b, diff) \
- (IS_FP_EQUAL((a)[0], (b)[0], (diff)) && \
- IS_FP_EQUAL((a)[1], (b)[1], (diff)) && \
+#define IS_FPV3_VECTOR_EQUAL(a, b, diff) \
+ (IS_FP_EQUAL((a)[0], (b)[0], (diff)) && \
+ IS_FP_EQUAL((a)[1], (b)[1], (diff)) && \
IS_FP_EQUAL((a)[2], (b)[2], (diff)))
#define IS_FP_EQUAL(a, b, diff) ((a) >= ((b)-diff) && (a) <= ((b) + diff))
#define IS_FLOAT_EQUAL(a, b, diff) IS_FP_EQUAL(a, b, diff)
@@ -47,9 +47,9 @@ static int test_fpv3_scalar_mul(void)
{
const int N = 3;
const float s = 2.0f;
- floatv3_t r = {1.0f, 2.0f, 4.0f};
+ floatv3_t r = { 1.0f, 2.0f, 4.0f };
/* Golden result g = s * r; */
- const floatv3_t g = {2.0f, 4.0f, 8.0f};
+ const floatv3_t g = { 2.0f, 4.0f, 8.0f };
int i;
fpv3_t a;
@@ -68,8 +68,8 @@ static int test_fpv3_dot(void)
{
const int N = 3;
int i;
- floatv3_t a = {1.8f, 2.12f, 4.12f};
- floatv3_t b = {3.1f, 4.3f, 5.8f};
+ floatv3_t a = { 1.8f, 2.12f, 4.12f };
+ floatv3_t b = { 3.1f, 4.3f, 5.8f };
/* Golden result g = dot(a, b). */
float g = 38.592f;
fpv3_t fpa, fpb;
@@ -81,8 +81,7 @@ static int test_fpv3_dot(void)
}
result = fpv3_dot(fpa, fpb);
- TEST_ASSERT(IS_FP_EQUAL(result, FLOAT_TO_FP(g),
- DOT_TOLERANCE));
+ TEST_ASSERT(IS_FP_EQUAL(result, FLOAT_TO_FP(g), DOT_TOLERANCE));
return EC_SUCCESS;
}
@@ -91,7 +90,7 @@ static int test_fpv3_norm_squared(void)
{
const int N = 3;
int i;
- floatv3_t a = {3.0f, 4.0f, 5.0f};
+ floatv3_t a = { 3.0f, 4.0f, 5.0f };
/* Golden result g = norm_squared(a). */
float g = 50.0f;
fpv3_t fpa;
@@ -108,7 +107,7 @@ static int test_fpv3_norm_squared(void)
static int test_fpv3_norm(void)
{
const int N = 3;
- floatv3_t a = {3.1f, 4.2f, 5.3f};
+ floatv3_t a = { 3.1f, 4.2f, 5.3f };
/* Golden result g = norm(a). */
float g = 7.439086f;
int i;
@@ -188,17 +187,14 @@ static int test_mat33_fp_scalar_mul(void)
{
const int N = 3;
float scale = 3.11f;
- mat33_float_t a = {
- {1.0f, 2.0f, 3.0f},
- {1.1f, 2.2f, 3.3f},
- {0.38f, 13.2f, 88.3f}
- };
+ mat33_float_t a = { { 1.0f, 2.0f, 3.0f },
+ { 1.1f, 2.2f, 3.3f },
+ { 0.38f, 13.2f, 88.3f } };
/* Golden result g = scalar_mul(a, scale). */
- mat33_float_t g = {{3.11f, 6.22f, 9.33f},
- {3.421f, 6.842f, 10.263f},
- {1.18179988861083984375f, 41.051998138427734375f,
- 274.613006591796875f}
- };
+ mat33_float_t g = { { 3.11f, 6.22f, 9.33f },
+ { 3.421f, 6.842f, 10.263f },
+ { 1.18179988861083984375f, 41.051998138427734375f,
+ 274.613006591796875f } };
int i, j;
mat33_fp_t fpa;
@@ -219,9 +215,9 @@ static int test_mat33_fp_scalar_mul(void)
static int test_mat33_fp_get_eigenbasis(void)
{
mat33_fp_t s = {
- {FLOAT_TO_FP(4.0f), FLOAT_TO_FP(2.0f), FLOAT_TO_FP(2.0f)},
- {FLOAT_TO_FP(2.0f), FLOAT_TO_FP(4.0f), FLOAT_TO_FP(2.0f)},
- {FLOAT_TO_FP(2.0f), FLOAT_TO_FP(2.0f), FLOAT_TO_FP(4.0f)}
+ { FLOAT_TO_FP(4.0f), FLOAT_TO_FP(2.0f), FLOAT_TO_FP(2.0f) },
+ { FLOAT_TO_FP(2.0f), FLOAT_TO_FP(4.0f), FLOAT_TO_FP(2.0f) },
+ { FLOAT_TO_FP(2.0f), FLOAT_TO_FP(2.0f), FLOAT_TO_FP(4.0f) }
};
fpv3_t e_vals;
mat33_fp_t e_vecs;
@@ -229,15 +225,15 @@ static int test_mat33_fp_get_eigenbasis(void)
/* Golden result from float version. */
mat33_fp_t gold_vecs = {
- {FLOAT_TO_FP(0.55735206f), FLOAT_TO_FP(0.55735206f),
- FLOAT_TO_FP(0.55735206f)},
- {FLOAT_TO_FP(0.70710677f), FLOAT_TO_FP(-0.70710677f),
- FLOAT_TO_FP(0.0f)},
- {FLOAT_TO_FP(-0.40824828f), FLOAT_TO_FP(-0.40824828f),
- FLOAT_TO_FP(0.81649655f)}
+ { FLOAT_TO_FP(0.55735206f), FLOAT_TO_FP(0.55735206f),
+ FLOAT_TO_FP(0.55735206f) },
+ { FLOAT_TO_FP(0.70710677f), FLOAT_TO_FP(-0.70710677f),
+ FLOAT_TO_FP(0.0f) },
+ { FLOAT_TO_FP(-0.40824828f), FLOAT_TO_FP(-0.40824828f),
+ FLOAT_TO_FP(0.81649655f) }
};
- fpv3_t gold_vals = {FLOAT_TO_FP(8.0f), FLOAT_TO_FP(2.0f),
- FLOAT_TO_FP(2.0f)};
+ fpv3_t gold_vals = { FLOAT_TO_FP(8.0f), FLOAT_TO_FP(2.0f),
+ FLOAT_TO_FP(2.0f) };
mat33_fp_get_eigenbasis(s, e_vals, e_vecs);
@@ -257,28 +253,26 @@ static int test_mat44_fp_decompose_lup(void)
{
int i, j;
sizev4_t pivot;
- mat44_fp_t fpa = {
- {FLOAT_TO_FP(11.0f), FLOAT_TO_FP(9.0f),
- FLOAT_TO_FP(24.0f), FLOAT_TO_FP(2.0f)},
- {FLOAT_TO_FP(1.0f), FLOAT_TO_FP(5.0f),
- FLOAT_TO_FP(2.0f), FLOAT_TO_FP(6.0f)},
- {FLOAT_TO_FP(3.0f), FLOAT_TO_FP(17.0f),
- FLOAT_TO_FP(18.0f), FLOAT_TO_FP(1.0f)},
- {FLOAT_TO_FP(2.0f), FLOAT_TO_FP(5.0f),
- FLOAT_TO_FP(7.0f), FLOAT_TO_FP(1.0f)}
- };
+ mat44_fp_t fpa = { { FLOAT_TO_FP(11.0f), FLOAT_TO_FP(9.0f),
+ FLOAT_TO_FP(24.0f), FLOAT_TO_FP(2.0f) },
+ { FLOAT_TO_FP(1.0f), FLOAT_TO_FP(5.0f),
+ FLOAT_TO_FP(2.0f), FLOAT_TO_FP(6.0f) },
+ { FLOAT_TO_FP(3.0f), FLOAT_TO_FP(17.0f),
+ FLOAT_TO_FP(18.0f), FLOAT_TO_FP(1.0f) },
+ { FLOAT_TO_FP(2.0f), FLOAT_TO_FP(5.0f),
+ FLOAT_TO_FP(7.0f), FLOAT_TO_FP(1.0f) } };
/* Golden result from float version. */
mat44_fp_t gold_lu = {
- {FLOAT_TO_FP(11.0f), FLOAT_TO_FP(0.8181818f),
- FLOAT_TO_FP(2.1818182f), FLOAT_TO_FP(0.18181819f)},
- {FLOAT_TO_FP(3.0f), FLOAT_TO_FP(14.545455f),
- FLOAT_TO_FP(0.78749999f), FLOAT_TO_FP(0.031249999f)},
- {FLOAT_TO_FP(1.0f), FLOAT_TO_FP(4.181818f),
- FLOAT_TO_FP(-3.4749996f), FLOAT_TO_FP(-1.6366909f)},
- {FLOAT_TO_FP(2.0f), FLOAT_TO_FP(3.3636365f),
- FLOAT_TO_FP(-0.012500112f), FLOAT_TO_FP(0.5107912f)}
+ { FLOAT_TO_FP(11.0f), FLOAT_TO_FP(0.8181818f),
+ FLOAT_TO_FP(2.1818182f), FLOAT_TO_FP(0.18181819f) },
+ { FLOAT_TO_FP(3.0f), FLOAT_TO_FP(14.545455f),
+ FLOAT_TO_FP(0.78749999f), FLOAT_TO_FP(0.031249999f) },
+ { FLOAT_TO_FP(1.0f), FLOAT_TO_FP(4.181818f),
+ FLOAT_TO_FP(-3.4749996f), FLOAT_TO_FP(-1.6366909f) },
+ { FLOAT_TO_FP(2.0f), FLOAT_TO_FP(3.3636365f),
+ FLOAT_TO_FP(-0.012500112f), FLOAT_TO_FP(0.5107912f) }
};
- sizev4_t gold_pivot = {0, 2, 2, 3};
+ sizev4_t gold_pivot = { 0, 2, 2, 3 };
mat44_fp_decompose_lup(fpa, pivot);
@@ -296,22 +290,21 @@ static int test_mat44_fp_solve(void)
{
int i;
fpv4_t x;
- mat44_fp_t A = {
- {FLOAT_TO_FP(11.0f), FLOAT_TO_FP(0.8181818f),
- FLOAT_TO_FP(2.1818182f), FLOAT_TO_FP(0.18181819f)},
- {FLOAT_TO_FP(3.0f), FLOAT_TO_FP(14.545454),
- FLOAT_TO_FP(0.7875f), FLOAT_TO_FP(0.03125f)},
- {FLOAT_TO_FP(1.0f), FLOAT_TO_FP(4.181818f),
- FLOAT_TO_FP(-3.4750001f), FLOAT_TO_FP(-1.6366906f)},
- {FLOAT_TO_FP(2.0f), FLOAT_TO_FP(3.3636365f),
- FLOAT_TO_FP(-0.012500286f), FLOAT_TO_FP(0.5107909f)}
- };
- sizev4_t pivot = {0, 2, 2, 3};
- fpv4_t b = {FLOAT_TO_FP(1.0f), FLOAT_TO_FP(3.3f), FLOAT_TO_FP(0.8f),
- FLOAT_TO_FP(8.9f)};
+ mat44_fp_t A = { { FLOAT_TO_FP(11.0f), FLOAT_TO_FP(0.8181818f),
+ FLOAT_TO_FP(2.1818182f), FLOAT_TO_FP(0.18181819f) },
+ { FLOAT_TO_FP(3.0f), FLOAT_TO_FP(14.545454),
+ FLOAT_TO_FP(0.7875f), FLOAT_TO_FP(0.03125f) },
+ { FLOAT_TO_FP(1.0f), FLOAT_TO_FP(4.181818f),
+ FLOAT_TO_FP(-3.4750001f), FLOAT_TO_FP(-1.6366906f) },
+ { FLOAT_TO_FP(2.0f), FLOAT_TO_FP(3.3636365f),
+ FLOAT_TO_FP(-0.012500286f),
+ FLOAT_TO_FP(0.5107909f) } };
+ sizev4_t pivot = { 0, 2, 2, 3 };
+ fpv4_t b = { FLOAT_TO_FP(1.0f), FLOAT_TO_FP(3.3f), FLOAT_TO_FP(0.8f),
+ FLOAT_TO_FP(8.9f) };
/* Golden result from float version. */
- fpv4_t gold_x = {FLOAT_TO_FP(-43.507435f), FLOAT_TO_FP(-21.459525f),
- FLOAT_TO_FP(26.629248f), FLOAT_TO_FP(16.80776f)};
+ fpv4_t gold_x = { FLOAT_TO_FP(-43.507435f), FLOAT_TO_FP(-21.459525f),
+ FLOAT_TO_FP(26.629248f), FLOAT_TO_FP(16.80776f) };
mat44_fp_solve(A, x, b, pivot);
@@ -375,7 +368,7 @@ test_static int test_isinf(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/fp.tasklist b/test/fp.tasklist
index 9ad0114d8a..5216cd488c 100644
--- a/test/fp.tasklist
+++ b/test/fp.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/fpsensor.c b/test/fpsensor.c
index 1e7015882d..588374d4db 100644
--- a/test/fpsensor.c
+++ b/test/fpsensor.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -84,7 +84,7 @@ test_static int test_host_command_protocol_info_spi(void)
FP_TRANSPORT_TYPE_SPI, &expected_info[FP_TRANSPORT_TYPE_SPI]);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
if (IS_ENABLED(HAS_TASK_FPSENSOR)) {
/* TODO(b/171924356): The "emulator" build only builds RO and
diff --git a/test/fpsensor.mocklist b/test/fpsensor.mocklist
index 3968a04e7e..3f2c60c583 100644
--- a/test/fpsensor.mocklist
+++ b/test/fpsensor.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -6,6 +6,7 @@
#ifdef BOARD_HOST
#define CONFIG_TEST_MOCK_LIST \
MOCK(FP_SENSOR) \
+ MOCK(FPSENSOR_CRYPTO) \
MOCK(FPSENSOR_DETECT) \
MOCK(FPSENSOR_STATE) \
MOCK(MKBP_EVENTS) \
diff --git a/test/fpsensor.tasklist b/test/fpsensor.tasklist
index ba137b7613..6c3ec6d65e 100644
--- a/test/fpsensor.tasklist
+++ b/test/fpsensor.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/fpsensor_crypto.c b/test/fpsensor_crypto.c
index d0fd92cf7c..9265a608b4 100644
--- a/test/fpsensor_crypto.c
+++ b/test/fpsensor_crypto.c
@@ -1,30 +1,33 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include <stdbool.h>
+#include "builtin/assert.h"
#include "common.h"
#include "ec_commands.h"
#include "fpsensor_crypto.h"
#include "fpsensor_state.h"
+#include "mock/fpsensor_crypto_mock.h"
#include "mock/fpsensor_state_mock.h"
#include "mock/rollback_mock.h"
#include "mock/timer_mock.h"
#include "test_util.h"
#include "util.h"
+extern int get_ikm(uint8_t *ikm);
+
static const uint8_t fake_positive_match_salt[] = {
0x04, 0x1f, 0x5a, 0xac, 0x5f, 0x79, 0x10, 0xaf,
0x04, 0x1d, 0x46, 0x3a, 0x5f, 0x08, 0xee, 0xcb,
};
static const uint8_t fake_user_id[] = {
- 0x28, 0xb5, 0x5a, 0x55, 0x57, 0x1b, 0x26, 0x88,
- 0xce, 0xc5, 0xd1, 0xfe, 0x1d, 0x58, 0x5b, 0x94,
- 0x51, 0xa2, 0x60, 0x49, 0x9f, 0xea, 0xb1, 0xea,
- 0xf7, 0x04, 0x2f, 0x0b, 0x20, 0xa5, 0x93, 0x64,
+ 0x28, 0xb5, 0x5a, 0x55, 0x57, 0x1b, 0x26, 0x88, 0xce, 0xc5, 0xd1,
+ 0xfe, 0x1d, 0x58, 0x5b, 0x94, 0x51, 0xa2, 0x60, 0x49, 0x9f, 0xea,
+ 0xb1, 0xea, 0xf7, 0x04, 0x2f, 0x0b, 0x20, 0xa5, 0x93, 0x64,
};
/*
@@ -83,10 +86,9 @@ static const uint8_t fake_user_id[] = {
* go run util/all_tests.go
*/
static const uint8_t expected_positive_match_secret_for_empty_user_id[] = {
- 0x8d, 0xc4, 0x5b, 0xdf, 0x55, 0x1e, 0xa8, 0x72,
- 0xd6, 0xdd, 0xa1, 0x4c, 0xb8, 0xa1, 0x76, 0x2b,
- 0xde, 0x38, 0xd5, 0x03, 0xce, 0xe4, 0x74, 0x51,
- 0x63, 0x6c, 0x6a, 0x26, 0xa9, 0xb7, 0xfa, 0x68,
+ 0x8d, 0xc4, 0x5b, 0xdf, 0x55, 0x1e, 0xa8, 0x72, 0xd6, 0xdd, 0xa1,
+ 0x4c, 0xb8, 0xa1, 0x76, 0x2b, 0xde, 0x38, 0xd5, 0x03, 0xce, 0xe4,
+ 0x74, 0x51, 0x63, 0x6c, 0x6a, 0x26, 0xa9, 0xb7, 0xfa, 0x68,
};
/*
@@ -94,20 +96,82 @@ static const uint8_t expected_positive_match_secret_for_empty_user_id[] = {
* |fake_user_id| instead of all-zero user_id.
*/
static const uint8_t expected_positive_match_secret_for_fake_user_id[] = {
- 0x0d, 0xf5, 0xac, 0x7c, 0xad, 0x37, 0x0a, 0x66,
- 0x2f, 0x71, 0xf6, 0xc6, 0xca, 0x8a, 0x41, 0x69,
- 0x8a, 0xd3, 0xcf, 0x0b, 0xc4, 0x5a, 0x5f, 0x4d,
- 0x54, 0xeb, 0x7b, 0xad, 0x5d, 0x1b, 0xbe, 0x30,
+ 0x0d, 0xf5, 0xac, 0x7c, 0xad, 0x37, 0x0a, 0x66, 0x2f, 0x71, 0xf6,
+ 0xc6, 0xca, 0x8a, 0x41, 0x69, 0x8a, 0xd3, 0xcf, 0x0b, 0xc4, 0x5a,
+ 0x5f, 0x4d, 0x54, 0xeb, 0x7b, 0xad, 0x5d, 0x1b, 0xbe, 0x30,
};
+test_static int test_get_ikm_failure_seed_not_set(void)
+{
+ uint8_t ikm;
+
+ TEST_ASSERT(fp_tpm_seed_is_set() == 0);
+ TEST_ASSERT(get_ikm(&ikm) == EC_ERROR_ACCESS_DENIED);
+ return EC_SUCCESS;
+}
+
+test_static int test_get_ikm_failure_cannot_get_rollback_secret(void)
+{
+ uint8_t ikm[CONFIG_ROLLBACK_SECRET_SIZE + FP_CONTEXT_TPM_BYTES];
+
+ /* Given that the tmp seed has been set. */
+ TEST_ASSERT(fp_tpm_seed_is_set());
+
+ /* GIVEN that reading the rollback secret will fail. */
+ mock_ctrl_rollback.get_secret_fail = true;
+
+ /* THEN get_ikm should fail. */
+ TEST_ASSERT(get_ikm(ikm) == EC_ERROR_HW_INTERNAL);
+
+ /*
+ * Enable get_rollback_secret to succeed before returning from this
+ * test function.
+ */
+ mock_ctrl_rollback.get_secret_fail = false;
+
+ return EC_SUCCESS;
+}
+
+test_static int test_get_ikm_success(void)
+{
+ /*
+ * Expected ikm is the concatenation of the rollback secret and the
+ * seed from the TPM.
+ */
+ uint8_t ikm[CONFIG_ROLLBACK_SECRET_SIZE + FP_CONTEXT_TPM_BYTES];
+ static const uint8_t expected_ikm[] = {
+ 0xcf, 0xe3, 0x23, 0x76, 0x35, 0x04, 0xc2, 0x0f, 0x0d, 0xb6,
+ 0x02, 0xa9, 0x68, 0xba, 0x2a, 0x61, 0x86, 0x2a, 0x85, 0xd1,
+ 0xca, 0x09, 0x54, 0x8a, 0x6b, 0xe2, 0xe3, 0x38, 0xde, 0x5d,
+ 0x59, 0x14, 0xd9, 0x71, 0xaf, 0xc4, 0xcd, 0x36, 0xe3, 0x60,
+ 0xf8, 0x5a, 0xa0, 0xa6, 0x2c, 0xb3, 0xf5, 0xe2, 0xeb, 0xb9,
+ 0xd8, 0x2f, 0xb5, 0x78, 0x5c, 0x79, 0x82, 0xce, 0x06, 0x3f,
+ 0xcc, 0x23, 0xb9, 0xe7
+ };
+
+ /* GIVEN that the TPM seed has been set. */
+ TEST_ASSERT(fp_tpm_seed_is_set());
+
+ /* GIVEN that reading the rollback secret will succeed. */
+ mock_ctrl_rollback.get_secret_fail = false;
+
+ /* THEN get_ikm will succeed. */
+ TEST_ASSERT(get_ikm(ikm) == EC_SUCCESS);
+ TEST_ASSERT_ARRAY_EQ(ikm, expected_ikm,
+ CONFIG_ROLLBACK_SECRET_SIZE +
+ FP_CONTEXT_TPM_BYTES);
+
+ return EC_SUCCESS;
+}
+
static int test_hkdf_expand_raw(const uint8_t *prk, size_t prk_size,
const uint8_t *info, size_t info_size,
const uint8_t *expected_okm, size_t okm_size)
{
uint8_t actual_okm[okm_size];
- TEST_ASSERT(hkdf_expand(actual_okm, okm_size, prk, prk_size,
- info, info_size) == EC_SUCCESS);
+ TEST_ASSERT(hkdf_expand(actual_okm, okm_size, prk, prk_size, info,
+ info_size) == EC_SUCCESS);
TEST_ASSERT_ARRAY_EQ(expected_okm, actual_okm, okm_size);
return EC_SUCCESS;
}
@@ -122,16 +186,14 @@ test_static int test_hkdf_expand(void)
0x22, 0xec, 0x84, 0x4a, 0xd7, 0xc2, 0xb3, 0xe5,
};
static const uint8_t info1[] = {
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
- 0xf8, 0xf9,
+ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
};
static const uint8_t expected_okm1[] = {
- 0x3c, 0xb2, 0x5f, 0x25, 0xfa, 0xac, 0xd5, 0x7a,
- 0x90, 0x43, 0x4f, 0x64, 0xd0, 0x36, 0x2f, 0x2a,
- 0x2d, 0x2d, 0x0a, 0x90, 0xcf, 0x1a, 0x5a, 0x4c,
- 0x5d, 0xb0, 0x2d, 0x56, 0xec, 0xc4, 0xc5, 0xbf,
- 0x34, 0x00, 0x72, 0x08, 0xd5, 0xb8, 0x87, 0x18,
- 0x58, 0x65,
+ 0x3c, 0xb2, 0x5f, 0x25, 0xfa, 0xac, 0xd5, 0x7a, 0x90,
+ 0x43, 0x4f, 0x64, 0xd0, 0x36, 0x2f, 0x2a, 0x2d, 0x2d,
+ 0x0a, 0x90, 0xcf, 0x1a, 0x5a, 0x4c, 0x5d, 0xb0, 0x2d,
+ 0x56, 0xec, 0xc4, 0xc5, 0xbf, 0x34, 0x00, 0x72, 0x08,
+ 0xd5, 0xb8, 0x87, 0x18, 0x58, 0x65,
};
static const uint8_t prk2[] = {
0x06, 0xa6, 0xb8, 0x8c, 0x58, 0x53, 0x36, 0x1a,
@@ -140,28 +202,24 @@ test_static int test_hkdf_expand(void)
0x4a, 0x19, 0x3f, 0x40, 0xc1, 0x5f, 0xc2, 0x44,
};
static const uint8_t info2[] = {
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
- 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9,
+ 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3,
+ 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd,
+ 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
+ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1,
+ 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,
+ 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5,
+ 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
};
static const uint8_t expected_okm2[] = {
- 0xb1, 0x1e, 0x39, 0x8d, 0xc8, 0x03, 0x27, 0xa1,
- 0xc8, 0xe7, 0xf7, 0x8c, 0x59, 0x6a, 0x49, 0x34,
- 0x4f, 0x01, 0x2e, 0xda, 0x2d, 0x4e, 0xfa, 0xd8,
- 0xa0, 0x50, 0xcc, 0x4c, 0x19, 0xaf, 0xa9, 0x7c,
- 0x59, 0x04, 0x5a, 0x99, 0xca, 0xc7, 0x82, 0x72,
- 0x71, 0xcb, 0x41, 0xc6, 0x5e, 0x59, 0x0e, 0x09,
- 0xda, 0x32, 0x75, 0x60, 0x0c, 0x2f, 0x09, 0xb8,
- 0x36, 0x77, 0x93, 0xa9, 0xac, 0xa3, 0xdb, 0x71,
- 0xcc, 0x30, 0xc5, 0x81, 0x79, 0xec, 0x3e, 0x87,
- 0xc1, 0x4c, 0x01, 0xd5, 0xc1, 0xf3, 0x43, 0x4f,
+ 0xb1, 0x1e, 0x39, 0x8d, 0xc8, 0x03, 0x27, 0xa1, 0xc8, 0xe7,
+ 0xf7, 0x8c, 0x59, 0x6a, 0x49, 0x34, 0x4f, 0x01, 0x2e, 0xda,
+ 0x2d, 0x4e, 0xfa, 0xd8, 0xa0, 0x50, 0xcc, 0x4c, 0x19, 0xaf,
+ 0xa9, 0x7c, 0x59, 0x04, 0x5a, 0x99, 0xca, 0xc7, 0x82, 0x72,
+ 0x71, 0xcb, 0x41, 0xc6, 0x5e, 0x59, 0x0e, 0x09, 0xda, 0x32,
+ 0x75, 0x60, 0x0c, 0x2f, 0x09, 0xb8, 0x36, 0x77, 0x93, 0xa9,
+ 0xac, 0xa3, 0xdb, 0x71, 0xcc, 0x30, 0xc5, 0x81, 0x79, 0xec,
+ 0x3e, 0x87, 0xc1, 0x4c, 0x01, 0xd5, 0xc1, 0xf3, 0x43, 0x4f,
0x1d, 0x87,
};
static const uint8_t prk3[] = {
@@ -171,52 +229,48 @@ test_static int test_hkdf_expand(void)
0xac, 0x43, 0x4c, 0x1c, 0x29, 0x3c, 0xcb, 0x04,
};
static const uint8_t expected_okm3[] = {
- 0x8d, 0xa4, 0xe7, 0x75, 0xa5, 0x63, 0xc1, 0x8f,
- 0x71, 0x5f, 0x80, 0x2a, 0x06, 0x3c, 0x5a, 0x31,
- 0xb8, 0xa1, 0x1f, 0x5c, 0x5e, 0xe1, 0x87, 0x9e,
- 0xc3, 0x45, 0x4e, 0x5f, 0x3c, 0x73, 0x8d, 0x2d,
- 0x9d, 0x20, 0x13, 0x95, 0xfa, 0xa4, 0xb6, 0x1a,
- 0x96, 0xc8,
+ 0x8d, 0xa4, 0xe7, 0x75, 0xa5, 0x63, 0xc1, 0x8f, 0x71,
+ 0x5f, 0x80, 0x2a, 0x06, 0x3c, 0x5a, 0x31, 0xb8, 0xa1,
+ 0x1f, 0x5c, 0x5e, 0xe1, 0x87, 0x9e, 0xc3, 0x45, 0x4e,
+ 0x5f, 0x3c, 0x73, 0x8d, 0x2d, 0x9d, 0x20, 0x13, 0x95,
+ 0xfa, 0xa4, 0xb6, 0x1a, 0x96, 0xc8,
};
static uint8_t unused_output[SHA256_DIGEST_SIZE] = { 0 };
TEST_ASSERT(test_hkdf_expand_raw(prk1, sizeof(prk1), info1,
sizeof(info1), expected_okm1,
- sizeof(expected_okm1))
- == EC_SUCCESS);
+ sizeof(expected_okm1)) == EC_SUCCESS);
TEST_ASSERT(test_hkdf_expand_raw(prk2, sizeof(prk2), info2,
sizeof(info2), expected_okm2,
- sizeof(expected_okm2))
- == EC_SUCCESS);
+ sizeof(expected_okm2)) == EC_SUCCESS);
TEST_ASSERT(test_hkdf_expand_raw(prk3, sizeof(prk3), NULL, 0,
- expected_okm3, sizeof(expected_okm3))
- == EC_SUCCESS);
-
- TEST_ASSERT(hkdf_expand(NULL, sizeof(unused_output), prk1,
- sizeof(prk1), info1, sizeof(info1))
- == EC_ERROR_INVAL);
- TEST_ASSERT(hkdf_expand(unused_output, sizeof(unused_output),
- NULL, sizeof(prk1), info1, sizeof(info1))
- == EC_ERROR_INVAL);
- TEST_ASSERT(hkdf_expand(unused_output, sizeof(unused_output),
- prk1, sizeof(prk1), NULL, sizeof(info1))
- == EC_ERROR_INVAL);
+ expected_okm3,
+ sizeof(expected_okm3)) == EC_SUCCESS);
+
+ TEST_ASSERT(hkdf_expand(NULL, sizeof(unused_output), prk1, sizeof(prk1),
+ info1, sizeof(info1)) == EC_ERROR_INVAL);
+ TEST_ASSERT(hkdf_expand(unused_output, sizeof(unused_output), NULL,
+ sizeof(prk1), info1,
+ sizeof(info1)) == EC_ERROR_INVAL);
+ TEST_ASSERT(hkdf_expand(unused_output, sizeof(unused_output), prk1,
+ sizeof(prk1), NULL,
+ sizeof(info1)) == EC_ERROR_INVAL);
/* Info size too long. */
- TEST_ASSERT(hkdf_expand(unused_output, sizeof(unused_output),
- prk1, sizeof(prk1), info1, 1024)
- == EC_ERROR_INVAL);
+ TEST_ASSERT(hkdf_expand(unused_output, sizeof(unused_output), prk1,
+ sizeof(prk1), info1, 1024) == EC_ERROR_INVAL);
/* OKM size too big. */
- TEST_ASSERT(hkdf_expand(unused_output, 256 * SHA256_DIGEST_SIZE,
- prk1, sizeof(prk1), info1, sizeof(info1))
- == EC_ERROR_INVAL);
+ TEST_ASSERT(hkdf_expand(unused_output, 256 * SHA256_DIGEST_SIZE, prk1,
+ sizeof(prk1), info1,
+ sizeof(info1)) == EC_ERROR_INVAL);
return EC_SUCCESS;
}
test_static int test_derive_encryption_key_failure_seed_not_set(void)
{
static uint8_t unused_key[SBP_ENC_KEY_LEN];
- static const uint8_t unused_salt[FP_CONTEXT_ENCRYPTION_SALT_BYTES]
- = { 0 };
+ static const uint8_t unused_salt[FP_CONTEXT_ENCRYPTION_SALT_BYTES] = {
+ 0
+ };
/* GIVEN that the TPM seed is not set. */
if (fp_tpm_seed_is_set()) {
@@ -314,8 +368,9 @@ test_static int test_derive_encryption_key(void)
test_static int test_derive_encryption_key_failure_rollback_fail(void)
{
static uint8_t unused_key[SBP_ENC_KEY_LEN];
- static const uint8_t unused_salt[FP_CONTEXT_ENCRYPTION_SALT_BYTES]
- = { 0 };
+ static const uint8_t unused_salt[FP_CONTEXT_ENCRYPTION_SALT_BYTES] = {
+ 0
+ };
/* GIVEN that reading the rollback secret will fail. */
mock_ctrl_rollback.get_secret_fail = true;
@@ -346,11 +401,10 @@ test_static int test_derive_positive_match_secret_fail_seed_not_set(void)
/* Deriving positive match secret will fail. */
TEST_ASSERT(derive_positive_match_secret(output,
- fake_positive_match_salt)
- == EC_ERROR_ACCESS_DENIED);
+ fake_positive_match_salt) ==
+ EC_ERROR_ACCESS_DENIED);
return EC_SUCCESS;
-
}
test_static int test_derive_new_pos_match_secret(void)
@@ -367,30 +421,26 @@ test_static int test_derive_new_pos_match_secret(void)
* GIVEN that the TPM seed is set, and reading the rollback secret will
* succeed.
*/
- TEST_ASSERT(
- fp_tpm_seed_is_set() && !mock_ctrl_rollback.get_secret_fail);
+ TEST_ASSERT(fp_tpm_seed_is_set() &&
+ !mock_ctrl_rollback.get_secret_fail);
/* GIVEN that the salt is not trivial. */
TEST_ASSERT(!bytes_are_trivial(fake_positive_match_salt,
sizeof(fake_positive_match_salt)));
/* THEN the derivation will succeed. */
- TEST_ASSERT(derive_positive_match_secret(output,
- fake_positive_match_salt)
- == EC_SUCCESS);
+ TEST_ASSERT(derive_positive_match_secret(
+ output, fake_positive_match_salt) == EC_SUCCESS);
TEST_ASSERT_ARRAY_EQ(
- output,
- expected_positive_match_secret_for_empty_user_id,
+ output, expected_positive_match_secret_for_empty_user_id,
sizeof(expected_positive_match_secret_for_empty_user_id));
/* Now change the user_id to be non-trivial. */
memcpy(user_id, fake_user_id, sizeof(fake_user_id));
- TEST_ASSERT(derive_positive_match_secret(output,
- fake_positive_match_salt)
- == EC_SUCCESS);
+ TEST_ASSERT(derive_positive_match_secret(
+ output, fake_positive_match_salt) == EC_SUCCESS);
TEST_ASSERT_ARRAY_EQ(
- output,
- expected_positive_match_secret_for_fake_user_id,
+ output, expected_positive_match_secret_for_fake_user_id,
sizeof(expected_positive_match_secret_for_fake_user_id));
memset(user_id, 0, sizeof(user_id));
@@ -409,8 +459,8 @@ test_static int test_derive_positive_match_secret_fail_rollback_fail(void)
/* Deriving positive match secret will fail. */
TEST_ASSERT(derive_positive_match_secret(output,
- fake_positive_match_salt)
- == EC_ERROR_HW_INTERNAL);
+ fake_positive_match_salt) ==
+ EC_ERROR_HW_INTERNAL);
mock_ctrl_rollback.get_secret_fail = false;
return EC_SUCCESS;
@@ -424,8 +474,94 @@ test_static int test_derive_positive_match_secret_fail_salt_trivial(void)
static const uint8_t salt[FP_CONTEXT_ENCRYPTION_SALT_BYTES] = { 0 };
/* THEN deriving positive match secret will fail. */
- TEST_ASSERT(derive_positive_match_secret(output, salt)
- == EC_ERROR_INVAL);
+ TEST_ASSERT(derive_positive_match_secret(output, salt) ==
+ EC_ERROR_INVAL);
+ return EC_SUCCESS;
+}
+
+test_static int test_derive_positive_match_secret_fail_trivial_key_0x00(void)
+{
+ static uint8_t output[FP_POSITIVE_MATCH_SECRET_BYTES];
+
+ /* GIVEN that the user ID is set to a known value. */
+ memcpy(user_id, fake_user_id, sizeof(fake_user_id));
+
+ /*
+ * GIVEN that the TPM seed is set, and reading the rollback secret will
+ * succeed.
+ */
+ TEST_ASSERT(fp_tpm_seed_is_set() &&
+ !mock_ctrl_rollback.get_secret_fail);
+
+ /* GIVEN that the salt is not trivial. */
+ TEST_ASSERT(!bytes_are_trivial(fake_positive_match_salt,
+ sizeof(fake_positive_match_salt)));
+
+ /* GIVEN that the sha256 output is trivial (0x00) */
+ mock_ctrl_fpsensor_crypto.output_type =
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_ZEROS;
+
+ /* THEN the derivation will fail with EC_ERROR_HW_INTERNAL. */
+ TEST_ASSERT(derive_positive_match_secret(output,
+ fake_positive_match_salt) ==
+ EC_ERROR_HW_INTERNAL);
+
+ /* Now verify success is possible after reverting */
+
+ /* GIVEN that the sha256 output is non-trivial */
+ mock_ctrl_fpsensor_crypto.output_type =
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_REAL;
+
+ /* THEN the derivation will succeed */
+ TEST_ASSERT(derive_positive_match_secret(
+ output, fake_positive_match_salt) == EC_SUCCESS);
+
+ /* Clean up any mock changes */
+ mock_ctrl_fpsensor_crypto = MOCK_CTRL_DEFAULT_FPSENSOR_CRYPTO;
+
+ return EC_SUCCESS;
+}
+
+test_static int test_derive_positive_match_secret_fail_trivial_key_0xff(void)
+{
+ static uint8_t output[FP_POSITIVE_MATCH_SECRET_BYTES];
+
+ /* GIVEN that the user ID is set to a known value. */
+ memcpy(user_id, fake_user_id, sizeof(fake_user_id));
+
+ /*
+ * GIVEN that the TPM seed is set, and reading the rollback secret will
+ * succeed.
+ */
+ TEST_ASSERT(fp_tpm_seed_is_set() &&
+ !mock_ctrl_rollback.get_secret_fail);
+
+ /* GIVEN that the salt is not trivial. */
+ TEST_ASSERT(!bytes_are_trivial(fake_positive_match_salt,
+ sizeof(fake_positive_match_salt)));
+
+ /* GIVEN that the sha256 output is trivial (0xFF) */
+ mock_ctrl_fpsensor_crypto.output_type =
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_FF;
+
+ /* THEN the derivation will fail with EC_ERROR_HW_INTERNAL. */
+ TEST_ASSERT(derive_positive_match_secret(output,
+ fake_positive_match_salt) ==
+ EC_ERROR_HW_INTERNAL);
+
+ /* Now verify success is possible after reverting */
+
+ /* GIVEN that the sha256 output is non-trivial */
+ mock_ctrl_fpsensor_crypto.output_type =
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_REAL;
+
+ /* THEN the derivation will succeed */
+ TEST_ASSERT(derive_positive_match_secret(
+ output, fake_positive_match_salt) == EC_SUCCESS);
+
+ /* Clean up any mock changes */
+ mock_ctrl_fpsensor_crypto = MOCK_CTRL_DEFAULT_FPSENSOR_CRYPTO;
+
return EC_SUCCESS;
}
@@ -435,8 +571,8 @@ static int test_enable_positive_match_secret_once(
const int8_t kIndexToEnable = 0;
timestamp_t now = get_time();
- TEST_ASSERT(fp_enable_positive_match_secret(
- kIndexToEnable, dumb_state) == EC_SUCCESS);
+ TEST_ASSERT(fp_enable_positive_match_secret(kIndexToEnable,
+ dumb_state) == EC_SUCCESS);
TEST_ASSERT(dumb_state->template_matched == kIndexToEnable);
TEST_ASSERT(dumb_state->readable);
TEST_ASSERT(dumb_state->deadline.val == now.val + (5 * SECOND));
@@ -446,18 +582,19 @@ static int test_enable_positive_match_secret_once(
test_static int test_enable_positive_match_secret(void)
{
- struct positive_match_secret_state dumb_state = {
- .template_matched = FP_NO_SUCH_TEMPLATE,
- .readable = false,
- .deadline.val = 0,
- };
-
- TEST_ASSERT(test_enable_positive_match_secret_once(&dumb_state)
- == EC_SUCCESS);
+ struct positive_match_secret_state
+ dumb_state = { .template_matched = FP_NO_SUCH_TEMPLATE,
+ .readable = false,
+ .deadline = {
+ .val = 0,
+ } };
+
+ TEST_ASSERT(test_enable_positive_match_secret_once(&dumb_state) ==
+ EC_SUCCESS);
/* Trying to enable again before reading secret should fail. */
TEST_ASSERT(fp_enable_positive_match_secret(0, &dumb_state) ==
- EC_ERROR_UNKNOWN);
+ EC_ERROR_UNKNOWN);
TEST_ASSERT(dumb_state.template_matched == FP_NO_SUCH_TEMPLATE);
TEST_ASSERT(!dumb_state.readable);
TEST_ASSERT(dumb_state.deadline.val == 0);
@@ -467,14 +604,15 @@ test_static int test_enable_positive_match_secret(void)
test_static int test_disable_positive_match_secret(void)
{
- struct positive_match_secret_state dumb_state = {
- .template_matched = FP_NO_SUCH_TEMPLATE,
- .readable = false,
- .deadline.val = 0,
- };
-
- TEST_ASSERT(test_enable_positive_match_secret_once(&dumb_state)
- == EC_SUCCESS);
+ struct positive_match_secret_state
+ dumb_state = { .template_matched = FP_NO_SUCH_TEMPLATE,
+ .readable = false,
+ .deadline = {
+ .val = 0,
+ } };
+
+ TEST_ASSERT(test_enable_positive_match_secret_once(&dumb_state) ==
+ EC_SUCCESS);
fp_disable_positive_match_secret(&dumb_state);
TEST_ASSERT(dumb_state.template_matched == FP_NO_SUCH_TEMPLATE);
@@ -601,8 +739,7 @@ test_static int test_command_read_match_secret_unreadable(void)
positive_match_secret_state.readable = false;
/* EVEN IF the finger is just matched. */
- TEST_ASSERT(positive_match_secret_state.template_matched
- == params.fgr);
+ TEST_ASSERT(positive_match_secret_state.template_matched == params.fgr);
/* EVEN IF encryption salt is non-trivial. */
memcpy(fp_positive_match_salt[0], fake_positive_match_salt,
@@ -614,25 +751,29 @@ test_static int test_command_read_match_secret_unreadable(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_hkdf_expand);
RUN_TEST(test_derive_encryption_key_failure_seed_not_set);
RUN_TEST(test_derive_positive_match_secret_fail_seed_not_set);
-
+ RUN_TEST(test_get_ikm_failure_seed_not_set);
/*
* Set the TPM seed here because it can only be set once and cannot be
* cleared.
*/
ASSERT(fpsensor_state_mock_set_tpm_seed(default_fake_tpm_seed) ==
- EC_SUCCESS);
+ EC_SUCCESS);
/* The following test requires TPM seed to be already set. */
+ RUN_TEST(test_get_ikm_failure_cannot_get_rollback_secret);
+ RUN_TEST(test_get_ikm_success);
RUN_TEST(test_derive_encryption_key);
RUN_TEST(test_derive_encryption_key_failure_rollback_fail);
RUN_TEST(test_derive_new_pos_match_secret);
RUN_TEST(test_derive_positive_match_secret_fail_rollback_fail);
RUN_TEST(test_derive_positive_match_secret_fail_salt_trivial);
+ RUN_TEST(test_derive_positive_match_secret_fail_trivial_key_0x00);
+ RUN_TEST(test_derive_positive_match_secret_fail_trivial_key_0xff);
RUN_TEST(test_enable_positive_match_secret);
RUN_TEST(test_disable_positive_match_secret);
RUN_TEST(test_command_read_match_secret);
diff --git a/test/fpsensor_hw.c b/test/fpsensor_hw.c
index f420001665..ff5b78ace2 100644
--- a/test/fpsensor_hw.c
+++ b/test/fpsensor_hw.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -32,8 +32,7 @@ test_static int test_fp_check_hwid(void)
return EC_SUCCESS;
}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_fp_check_hwid);
test_print_result();
diff --git a/test/fpsensor_hw.tasklist b/test/fpsensor_hw.tasklist
index 299cf25390..35fa6f24bd 100644
--- a/test/fpsensor_hw.tasklist
+++ b/test/fpsensor_hw.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/fpsensor_state.c b/test/fpsensor_state.c
index 3822fe49ab..0b61e1c2d4 100644
--- a/test/fpsensor_state.c
+++ b/test/fpsensor_state.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -186,7 +186,198 @@ test_static int test_fp_set_maintenance_mode(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+test_static int test_fp_command_read_match_secret_fail_fgr_less_than_zero(void)
+{
+ /* Create invalid param with fgr < 0 */
+ struct ec_params_fp_read_match_secret test_match_secret = {
+ .fgr = -1,
+ };
+
+ TEST_ASSERT(test_send_host_command(EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret,
+ sizeof(test_match_secret), NULL,
+ 0) == EC_RES_INVALID_PARAM);
+
+ return EC_SUCCESS;
+}
+
+test_static int test_fp_command_read_match_secret_fail_fgr_large_than_max(void)
+{
+ /* Create invalid param with fgr = FP_MAX_FINGER_COUNT */
+ struct ec_params_fp_read_match_secret test_match_secret = {
+ .fgr = FP_MAX_FINGER_COUNT,
+ };
+
+ TEST_ASSERT(test_send_host_command(EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret,
+ sizeof(test_match_secret), NULL,
+ 0) == EC_RES_INVALID_PARAM);
+ return EC_SUCCESS;
+}
+
+test_static int test_fp_command_read_match_secret_fail_timeout(void)
+{
+ /* Create valid param with 0 <= fgr < 5 */
+ struct ec_params_fp_read_match_secret test_match_secret_1 = {
+ .fgr = 1,
+ };
+
+ /* Disable positive secret match to create 0 deadline val */
+ fp_disable_positive_match_secret(&positive_match_secret_state);
+
+ TEST_ASSERT(positive_match_secret_state.deadline.val == 0);
+
+ TEST_ASSERT(test_send_host_command(EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret_1,
+ sizeof(test_match_secret_1), NULL,
+ 0) == EC_RES_TIMEOUT);
+
+ return EC_SUCCESS;
+}
+
+test_static int test_fp_command_read_match_secret_unmatched_fgr(void)
+{
+ /* Create valid param with 0 <= fgr < 5 */
+ uint16_t matched_fgr = 1;
+ uint16_t unmatched_fgr = 2;
+ struct ec_params_fp_read_match_secret test_match_secret_1 = {
+ .fgr = matched_fgr,
+ };
+ /* Create positive secret match state with valid deadline value,
+ * readable state, and wrong template matched
+ */
+ struct positive_match_secret_state test_state = {
+ .deadline.val = 5000000,
+ .readable = true,
+ .template_matched = unmatched_fgr,
+ };
+
+ /* Test for the wrong matched finger state */
+ positive_match_secret_state = test_state;
+
+ TEST_ASSERT(test_send_host_command(EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret_1,
+ sizeof(test_match_secret_1), NULL,
+ 0) == EC_RES_ACCESS_DENIED);
+
+ return EC_SUCCESS;
+}
+
+test_static int test_fp_command_read_match_secret_unreadable_state(void)
+{
+ /* Create valid param with 0 <= fgr < 5 */
+ uint16_t matched_fgr = 1;
+ struct ec_params_fp_read_match_secret test_match_secret_1 = {
+ .fgr = matched_fgr,
+ };
+ /*
+ * Create positive secret match state with valid deadline value ,
+ * unreadable state, and correct matched template
+ */
+ struct positive_match_secret_state test_state = {
+ .deadline.val = 5000000,
+ .readable = false,
+ .template_matched = matched_fgr,
+ };
+
+ /* Test for the unreadable state */
+ positive_match_secret_state = test_state;
+
+ TEST_ASSERT(test_send_host_command(EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret_1,
+ sizeof(test_match_secret_1), NULL,
+ 0) == EC_RES_ACCESS_DENIED);
+
+ return EC_SUCCESS;
+}
+
+test_static int test_fp_command_read_match_secret_derive_fail(void)
+{
+ struct ec_response_fp_read_match_secret response = { 0 };
+ /* Create valid param with 0 <= fgr < 5 */
+ uint16_t matched_fgr = 1;
+ struct ec_params_fp_read_match_secret test_match_secret_1 = {
+ .fgr = matched_fgr,
+ };
+ /* Create positive secret match state with valid deadline value,
+ * readable state, and correct template matched
+ */
+ struct positive_match_secret_state test_state_1 = {
+ .deadline.val = 5000000,
+ .readable = true,
+ .template_matched = matched_fgr,
+ };
+ positive_match_secret_state = test_state_1;
+ /* Set fp_positive_match_salt to the trivial value */
+ memcpy(fp_positive_match_salt, trivial_fp_positive_match_salt,
+ sizeof(trivial_fp_positive_match_salt));
+
+ /* Test with the correct matched finger state and a trivial
+ * fp_positive_match_salt
+ */
+ TEST_ASSERT(test_send_host_command(
+ EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret_1, sizeof(test_match_secret_1),
+ &response, sizeof(response)) == EC_RES_ERROR);
+ return EC_SUCCESS;
+}
+
+test_static int test_fp_command_read_match_secret_derive_succeed(void)
+{
+ struct ec_response_fp_read_match_secret response = { 0 };
+ /* Create valid param with 0 <= fgr < 5 */
+ uint16_t matched_fgr = 1;
+ struct ec_params_fp_read_match_secret test_match_secret_1 = {
+ .fgr = matched_fgr,
+ };
+
+ /* Expected positive_match_secret same as in test/fpsensor_crypto.c*/
+ static const uint8_t
+ expected_positive_match_secret_for_empty_user_id[] = {
+ 0x8d, 0xc4, 0x5b, 0xdf, 0x55, 0x1e, 0xa8, 0x72,
+ 0xd6, 0xdd, 0xa1, 0x4c, 0xb8, 0xa1, 0x76, 0x2b,
+ 0xde, 0x38, 0xd5, 0x03, 0xce, 0xe4, 0x74, 0x51,
+ 0x63, 0x6c, 0x6a, 0x26, 0xa9, 0xb7, 0xfa, 0x68,
+ };
+ /* Create positive secret match state with valid deadline value,
+ * readable state, and correct template matched
+ */
+ struct positive_match_secret_state test_state_1 = {
+ .deadline.val = 5000000,
+ .readable = true,
+ .template_matched = matched_fgr,
+ };
+ positive_match_secret_state = test_state_1;
+ /* Set fp_positive_match_salt to the trivial value */
+ memcpy(fp_positive_match_salt, default_fake_fp_positive_match_salt,
+ sizeof(default_fake_fp_positive_match_salt));
+
+ TEST_ASSERT_ARRAY_EQ(
+ (uint8_t const *)fp_positive_match_salt,
+ (uint8_t const *)default_fake_fp_positive_match_salt,
+ sizeof(default_fake_fp_positive_match_salt));
+
+ /* Initialize an empty user_id to compare positive_match_secret */
+ memset(user_id, 0, sizeof(user_id));
+
+ TEST_ASSERT(fp_tpm_seed_is_set());
+ /* Test with the correct matched finger state and the default fake
+ * fp_positive_match_salt
+ */
+ TEST_ASSERT(test_send_host_command(
+ EC_CMD_FP_READ_MATCH_SECRET, 0,
+ &test_match_secret_1, sizeof(test_match_secret_1),
+ &response, sizeof(response)) == EC_SUCCESS);
+
+ TEST_ASSERT_ARRAY_EQ(
+ response.positive_match_secret,
+ expected_positive_match_secret_for_empty_user_id,
+ sizeof(expected_positive_match_secret_for_empty_user_id));
+
+ return EC_SUCCESS;
+}
+
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_fp_enc_status_valid_flags);
RUN_TEST(test_fp_tpm_seed_not_set);
@@ -194,5 +385,12 @@ void run_test(int argc, char **argv)
RUN_TEST(test_set_fp_tpm_seed_again);
RUN_TEST(test_fp_set_sensor_mode);
RUN_TEST(test_fp_set_maintenance_mode);
+ RUN_TEST(test_fp_command_read_match_secret_fail_fgr_less_than_zero);
+ RUN_TEST(test_fp_command_read_match_secret_fail_fgr_large_than_max);
+ RUN_TEST(test_fp_command_read_match_secret_fail_timeout);
+ RUN_TEST(test_fp_command_read_match_secret_unmatched_fgr);
+ RUN_TEST(test_fp_command_read_match_secret_unreadable_state);
+ RUN_TEST(test_fp_command_read_match_secret_derive_fail);
+ RUN_TEST(test_fp_command_read_match_secret_derive_succeed);
test_print_result();
}
diff --git a/test/genvif/Makefile b/test/genvif/Makefile
index 566b6bb042..a41e8308cc 100644
--- a/test/genvif/Makefile
+++ b/test/genvif/Makefile
@@ -1,4 +1,4 @@
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
diff --git a/test/genvif/genvif.sh b/test/genvif/genvif.sh
index 4a275ed2c1..b54d1de9eb 100755
--- a/test/genvif/genvif.sh
+++ b/test/genvif/genvif.sh
@@ -1,5 +1,5 @@
#!/bin/bash -e
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
diff --git a/test/genvif/src/atomic.h b/test/genvif/src/atomic.h
index f2fa112e81..d58e57a1c2 100644
--- a/test/genvif/src/atomic.h
+++ b/test/genvif/src/atomic.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/genvif/src/board.h b/test/genvif/src/board.h
index 06122eeab9..c596b833e0 100644
--- a/test/genvif/src/board.h
+++ b/test/genvif/src/board.h
@@ -1,12 +1,12 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#define PD_OPERATING_POWER_MW 15000
-#define PD_MAX_POWER_MW 65000
-#define PD_MAX_CURRENT_MA 3250
-#define PD_MAX_VOLTAGE_MV 20000
+#define PD_OPERATING_POWER_MW 15000
+#define PD_MAX_POWER_MW 65000
+#define PD_MAX_CURRENT_MA 3250
+#define PD_MAX_VOLTAGE_MV 20000
/* Stubs required by the shared code */
#define GPIO_PIN(port, index) (GPIO_##port, BIT(index))
diff --git a/test/genvif/src/config_chip.h b/test/genvif/src/config_chip.h
index f2fa112e81..d58e57a1c2 100644
--- a/test/genvif/src/config_chip.h
+++ b/test/genvif/src/config_chip.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/genvif/src/fuzz_config.h b/test/genvif/src/fuzz_config.h
index f2fa112e81..d58e57a1c2 100644
--- a/test/genvif/src/fuzz_config.h
+++ b/test/genvif/src/fuzz_config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/genvif/src/gpio.inc b/test/genvif/src/gpio.inc
index 6b96e08645..65e3066695 100644
--- a/test/genvif/src/gpio.inc
+++ b/test/genvif/src/gpio.inc
@@ -1,6 +1,6 @@
/* -*- mode:c -*-
*
- * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/genvif/src/helper.c b/test/genvif/src/helper.c
index d604e63cfa..f3b5d97317 100644
--- a/test/genvif/src/helper.c
+++ b/test/genvif/src/helper.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -7,8 +7,8 @@
#include "usb_pd.h"
#ifndef CONFIG_USB_PD_CUSTOM_PDO
-#define PDO_FIXED_FLAGS (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |\
- PDO_FIXED_COMM_CAP)
+#define PDO_FIXED_FLAGS \
+ (PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP | PDO_FIXED_COMM_CAP)
const uint32_t pd_src_pdo[] = {
PDO_FIXED(5000, 1500, PDO_FIXED_FLAGS),
diff --git a/test/genvif/src/test_config.h b/test/genvif/src/test_config.h
index f2fa112e81..d58e57a1c2 100644
--- a/test/genvif/src/test_config.h
+++ b/test/genvif/src/test_config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/genvif/src/timer.h b/test/genvif/src/timer.h
index f2fa112e81..d58e57a1c2 100644
--- a/test/genvif/src/timer.h
+++ b/test/genvif/src/timer.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/gyro_cal.c b/test/gyro_cal.c
index 3b55ab86d4..c8e8d30589 100644
--- a/test/gyro_cal.c
+++ b/test/gyro_cal.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -495,7 +495,7 @@ static int test_gyro_cal_remove_bias(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/gyro_cal.tasklist b/test/gyro_cal.tasklist
index 7d28eb5b64..7209a7441e 100644
--- a/test/gyro_cal.tasklist
+++ b/test/gyro_cal.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/gyro_cal_init_for_test.c b/test/gyro_cal_init_for_test.c
index 3963e5a207..0ba1a65e6b 100644
--- a/test/gyro_cal_init_for_test.c
+++ b/test/gyro_cal_init_for_test.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/gyro_cal_init_for_test.h b/test/gyro_cal_init_for_test.h
index e32040bab9..8af51b8e10 100644
--- a/test/gyro_cal_init_for_test.h
+++ b/test/gyro_cal_init_for_test.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/hooks.c b/test/hooks.c
index 8d12494688..0913f257b3 100644
--- a/test/hooks.c
+++ b/test/hooks.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -41,7 +41,7 @@ static void tick2_hook(void)
tick_count_seen_by_tick2 = tick_hook_count;
}
/* tick2_hook() prio means it should be called after tick_hook() */
-DECLARE_HOOK(HOOK_TICK, tick2_hook, HOOK_PRIO_DEFAULT+1);
+DECLARE_HOOK(HOOK_TICK, tick2_hook, HOOK_PRIO_DEFAULT + 1);
static void second_hook(void)
{
@@ -62,9 +62,7 @@ static void non_deferred_func(void)
deferred_call_count++;
}
-static const struct deferred_data non_deferred_func_data = {
- non_deferred_func
-};
+static const struct deferred_data non_deferred_func_data = { non_deferred_func };
static int test_init_hook(void)
{
@@ -85,8 +83,7 @@ static int test_ticks(void)
usleep(1300 * MSEC);
interval = tick_time[1].val - tick_time[0].val;
- error_pct = (interval - HOOK_TICK_INTERVAL) * 100 /
- HOOK_TICK_INTERVAL;
+ error_pct = (interval - HOOK_TICK_INTERVAL) * 100 / HOOK_TICK_INTERVAL;
TEST_ASSERT_ABS_LESS(error_pct, 10);
interval = second_time[1].val - second_time[0].val;
@@ -159,7 +156,7 @@ static int test_repeating_deferred(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/hooks.tasklist b/test/hooks.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/hooks.tasklist
+++ b/test/hooks.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/host_command.c b/test/host_command.c
index ba1d4dcd96..e88ddc852c 100644
--- a/test/host_command.c
+++ b/test/host_command.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -8,6 +8,7 @@
#include "common.h"
#include "console.h"
#include "host_command.h"
+#include "printf.h"
#include "task.h"
#include "test_util.h"
#include "timer.h"
@@ -177,6 +178,7 @@ static int test_hostcmd_reuse_response_buffer(void)
struct ec_host_request *h = (struct ec_host_request *)resp_buf;
struct ec_params_hello *d =
(struct ec_params_hello *)(resp_buf + sizeof(*h));
+ char str_buf[hex_str_buf_size(BUFFER_SIZE)];
h->struct_version = 3;
h->checksum = 0;
@@ -201,16 +203,18 @@ static int test_hostcmd_reuse_response_buffer(void)
h->checksum = calculate_checksum(resp_buf, pkt.request_size);
- ccprintf("\nBuffer contents before process 0x%ph\n",
- HEX_BUF(resp_buf, BUFFER_SIZE));
+ snprintf_hex_buffer(str_buf, sizeof(str_buf),
+ HEX_BUF(resp_buf, BUFFER_SIZE));
+ ccprintf("\nBuffer contents before process 0x%s\n", str_buf);
host_packet_receive(&pkt);
task_wait_event(-1);
- ccprintf("\nBuffer contents after process 0x%ph\n",
- HEX_BUF(resp_buf, BUFFER_SIZE));
+ snprintf_hex_buffer(str_buf, sizeof(str_buf),
+ HEX_BUF(resp_buf, BUFFER_SIZE));
+ ccprintf("\nBuffer contents after process 0x%s\n", str_buf);
- TEST_EQ(calculate_checksum(resp_buf,
- sizeof(*resp) + resp->data_len), 0, "%d");
+ TEST_EQ(calculate_checksum(resp_buf, sizeof(*resp) + resp->data_len), 0,
+ "%d");
TEST_EQ(resp->result, EC_RES_SUCCESS, "%d");
TEST_EQ(r->out_data, 0x12243648, "0x%x");
@@ -239,6 +243,7 @@ static void hostcmd_fill_chip_info(void)
static int test_hostcmd_clears_unused_data(void)
{
int i, found_null;
+ char str_buf[hex_str_buf_size(BUFFER_SIZE)];
/* Set the buffer to junk and ensure that is gets cleared */
memset(resp_buf, 0xAA, BUFFER_SIZE);
@@ -246,11 +251,12 @@ static int test_hostcmd_clears_unused_data(void)
hostcmd_send();
- ccprintf("\nBuffer contents 0x%ph\n",
- HEX_BUF(resp_buf, BUFFER_SIZE));
+ snprintf_hex_buffer(str_buf, sizeof(str_buf),
+ HEX_BUF(resp_buf, BUFFER_SIZE));
+ ccprintf("\nBuffer contents 0x%s\n", str_buf);
- TEST_EQ(calculate_checksum(resp_buf,
- sizeof(*resp) + resp->data_len), 0, "%d");
+ TEST_EQ(calculate_checksum(resp_buf, sizeof(*resp) + resp->data_len), 0,
+ "%d");
TEST_EQ(resp->result, EC_RES_SUCCESS, "%d");
/* Ensure partial strings have 0s after the NULL byte */
@@ -300,7 +306,7 @@ static int test_hostcmd_clears_unused_data(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
wait_for_task_started();
test_reset();
diff --git a/test/host_command.tasklist b/test/host_command.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/host_command.tasklist
+++ b/test/host_command.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/i2c_bitbang.c b/test/i2c_bitbang.c
index dd84c0b83a..6916110b5c 100644
--- a/test/i2c_bitbang.c
+++ b/test/i2c_bitbang.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -10,15 +10,11 @@
#include "test_util.h"
#include "util.h"
-const struct i2c_port_t i2c_bitbang_ports[] = {
- {
- .name = "",
- .port = 0,
- .kbps = 100,
- .scl = GPIO_I2C_SCL,
- .sda = GPIO_I2C_SDA
- }
-};
+const struct i2c_port_t i2c_bitbang_ports[] = { { .name = "",
+ .port = 0,
+ .kbps = 100,
+ .scl = GPIO_I2C_SCL,
+ .sda = GPIO_I2C_SDA } };
const unsigned int i2c_bitbang_ports_used = 1;
struct pin_state {
@@ -29,7 +25,7 @@ int history_count;
void reset_state(void)
{
- history[0] = (struct pin_state) {1, 1};
+ history[0] = (struct pin_state){ 1, 1 };
history_count = 1;
bitbang_set_started(0);
}
@@ -48,7 +44,7 @@ void gpio_set_level(enum gpio_signal signal, int level)
new.scl = level;
if (new.scl != history[history_count - 1].scl ||
- new.sda != history[history_count - 1].sda)
+ new.sda != history[history_count - 1].sda)
history[history_count++] = new;
}
@@ -66,12 +62,12 @@ static int test_i2c_start_stop(void)
{
struct pin_state expected[] = {
/* start */
- {1, 1},
- {1, 0},
- {0, 0},
+ { 1, 1 },
+ { 1, 0 },
+ { 0, 0 },
/* stop */
- {1, 0},
- {1, 1},
+ { 1, 0 },
+ { 1, 1 },
};
int i;
@@ -94,14 +90,14 @@ static int test_i2c_repeated_start(void)
{
struct pin_state expected[] = {
/* start */
- {1, 1},
- {1, 0},
- {0, 0},
+ { 1, 1 },
+ { 1, 0 },
+ { 0, 0 },
/* repeated start */
- {0, 1},
- {1, 1},
- {1, 0},
- {0, 0},
+ { 0, 1 },
+ { 1, 1 },
+ { 1, 0 },
+ { 0, 0 },
};
int i;
@@ -124,47 +120,47 @@ static int test_i2c_write(void)
{
struct pin_state expected[] = {
/* start */
- {1, 1},
- {1, 0},
- {0, 0},
+ { 1, 1 },
+ { 1, 0 },
+ { 0, 0 },
/* bit 7: 0 */
- {1, 0},
- {0, 0},
+ { 1, 0 },
+ { 0, 0 },
/* bit 6: 1 */
- {0, 1},
- {1, 1},
- {0, 1},
+ { 0, 1 },
+ { 1, 1 },
+ { 0, 1 },
/* bit 5: 0 */
- {0, 0},
- {1, 0},
- {0, 0},
+ { 0, 0 },
+ { 1, 0 },
+ { 0, 0 },
/* bit 4: 1 */
- {0, 1},
- {1, 1},
- {0, 1},
+ { 0, 1 },
+ { 1, 1 },
+ { 0, 1 },
/* bit 3: 0 */
- {0, 0},
- {1, 0},
- {0, 0},
+ { 0, 0 },
+ { 1, 0 },
+ { 0, 0 },
/* bit 2: 1 */
- {0, 1},
- {1, 1},
- {0, 1},
+ { 0, 1 },
+ { 1, 1 },
+ { 0, 1 },
/* bit 1: 1 */
- {1, 1},
- {0, 1},
+ { 1, 1 },
+ { 0, 1 },
/* bit 0: 0 */
- {0, 0},
- {1, 0},
- {0, 0},
+ { 0, 0 },
+ { 1, 0 },
+ { 0, 0 },
/* read bit */
- {0, 1},
- {1, 1},
- {0, 1},
+ { 0, 1 },
+ { 1, 1 },
+ { 0, 1 },
/* stop */
- {0, 0},
- {1, 0},
- {1, 1},
+ { 0, 0 },
+ { 1, 0 },
+ { 1, 1 },
};
int i, ret;
@@ -186,7 +182,7 @@ static int test_i2c_write(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/i2c_bitbang.tasklist b/test/i2c_bitbang.tasklist
index 9fc1a80f4d..844ddb6c10 100644
--- a/test/i2c_bitbang.tasklist
+++ b/test/i2c_bitbang.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/inductive_charging.c b/test/inductive_charging.c
index d487e171fd..a5b23d1d8c 100644
--- a/test/inductive_charging.c
+++ b/test/inductive_charging.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -17,8 +17,8 @@
#define START_CHARGE_DELAY 5000 /* ms */
#define MONITOR_CHARGE_DONE_DELAY 1000 /* ms */
-#define TEST_CHECK_CHARGE_DELAY (START_CHARGE_DELAY + \
- MONITOR_CHARGE_DONE_DELAY + 500) /* ms */
+#define TEST_CHECK_CHARGE_DELAY \
+ (START_CHARGE_DELAY + MONITOR_CHARGE_DONE_DELAY + 500) /* ms */
static void wait_for_lid_debounce(void)
{
@@ -157,7 +157,7 @@ static int test_debounce_charge_done(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/inductive_charging.tasklist b/test/inductive_charging.tasklist
index f5c894ccaf..dbe560d4aa 100644
--- a/test/inductive_charging.tasklist
+++ b/test/inductive_charging.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/interrupt.c b/test/interrupt.c
index ca98309e1f..efd8b47a34 100644
--- a/test/interrupt.c
+++ b/test/interrupt.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -88,7 +88,7 @@ static int test_wait_for_ready(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/interrupt.tasklist b/test/interrupt.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/interrupt.tasklist
+++ b/test/interrupt.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/irq_locking.c b/test/irq_locking.c
index 6d08b1175d..c46b94e8c5 100644
--- a/test/irq_locking.c
+++ b/test/irq_locking.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -71,7 +71,7 @@ void before_test(void)
interrupt_enable_count = 0;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/irq_locking.tasklist b/test/irq_locking.tasklist
index 2d7fbb0541..5659b9033d 100644
--- a/test/irq_locking.tasklist
+++ b/test/irq_locking.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/is_enabled.c b/test/is_enabled.c
index fe93bafc31..d54f709bf9 100644
--- a/test/is_enabled.c
+++ b/test/is_enabled.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -7,8 +7,8 @@
#include "common.h"
#include "test_util.h"
-#undef CONFIG_UNDEFINED
-#define CONFIG_BLANK
+#undef CONFIG_UNDEFINED
+#define CONFIG_BLANK
static int test_undef(void)
{
@@ -24,7 +24,7 @@ static int test_blank(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/is_enabled.tasklist b/test/is_enabled.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/is_enabled.tasklist
+++ b/test/is_enabled.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/is_enabled_error.c b/test/is_enabled_error.c
index 3fcd80afe0..b5d6994c4d 100644
--- a/test/is_enabled_error.c
+++ b/test/is_enabled_error.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -7,7 +7,7 @@
#include "common.h"
#include "test_util.h"
-#define CONFIG_VALUE TEST_VALUE
+#define CONFIG_VALUE TEST_VALUE
static int test_invalid_value(void)
{
@@ -17,7 +17,7 @@ static int test_invalid_value(void)
return EC_ERROR_UNKNOWN;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/is_enabled_error.sh b/test/is_enabled_error.sh
index 1e5407f31f..c99c4f0e26 100644
--- a/test/is_enabled_error.sh
+++ b/test/is_enabled_error.sh
@@ -1,5 +1,5 @@
#!/bin/bash -e
-# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Copyright 2019 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
diff --git a/test/is_enabled_error.tasklist b/test/is_enabled_error.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/is_enabled_error.tasklist
+++ b/test/is_enabled_error.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/kasa.c b/test/kasa.c
index 6dea8a20e7..23968faf7c 100644
--- a/test/kasa.c
+++ b/test/kasa.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -62,7 +62,7 @@ static int test_kasa_calculate(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/kasa.tasklist b/test/kasa.tasklist
index 0e3696c3f0..d3fcf83121 100644
--- a/test/kasa.tasklist
+++ b/test/kasa.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/kb_8042.c b/test/kb_8042.c
index 9705b506fe..e7d7690cff 100644
--- a/test/kb_8042.c
+++ b/test/kb_8042.c
@@ -1,10 +1,12 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* Tests for keyboard MKBP protocol
*/
+#include <stdbool.h>
+#include "atkbd_protocol.h"
#include "common.h"
#include "console.h"
#include "ec_commands.h"
@@ -15,16 +17,28 @@
#include "keyboard_scan.h"
#include "lpc.h"
#include "power_button.h"
+#include "queue.h"
#include "system.h"
+#include "task.h"
#include "test_util.h"
#include "timer.h"
#include "util.h"
-static const char *action[2] = {"release", "press"};
+static const char *action[2] = { "release", "press" };
-#define BUF_SIZE 16
-static char lpc_char_buf[BUF_SIZE];
-static unsigned int lpc_char_cnt;
+/*
+ * This simulates the hardware output buffer. The x86 will read the output
+ * buffer from IOx60. Since we don't have actual hardware, we emulate the
+ * output buffer.
+ */
+static volatile struct {
+ bool full;
+ uint8_t data;
+ bool irq;
+ bool from_aux;
+} output_buffer;
+
+static struct queue const aux_to_device = QUEUE_NULL(16, uint8_t);
/*****************************************************************************/
/* Mock functions */
@@ -34,97 +48,517 @@ int lid_is_open(void)
return 1;
}
+int lpc_keyboard_has_char(void)
+{
+ return output_buffer.full;
+}
+
void lpc_keyboard_put_char(uint8_t chr, int send_irq)
{
- lpc_char_buf[lpc_char_cnt++] = chr;
+ if (lpc_keyboard_has_char()) {
+ ccprintf("%s:%s ERROR: output buffer is full!\n", __FILE__,
+ __func__);
+ /* We can't fail the test, but we can abort!. */
+ exit(1);
+ }
+
+ output_buffer.data = chr;
+ output_buffer.irq = send_irq;
+ output_buffer.from_aux = false;
+ output_buffer.full = true;
+}
+
+void send_aux_data_to_device(uint8_t data)
+{
+ if (queue_add_unit(&aux_to_device, &data) == 0) {
+ ccprintf("%s: ERROR: aux_to_device queue is full!\n", __FILE__);
+ /* We can't fail the test, but we can abort!. */
+ exit(1);
+ }
}
+void lpc_aux_put_char(uint8_t chr, int send_irq)
+{
+ if (lpc_keyboard_has_char()) {
+ ccprintf("%s:%s ERROR: output buffer is full!\n", __FILE__,
+ __func__);
+ /* We can't fail the test, but we can abort!. */
+ exit(1);
+ }
+
+ output_buffer.data = chr;
+ output_buffer.irq = send_irq;
+ output_buffer.from_aux = true;
+ output_buffer.full = true;
+}
/*****************************************************************************/
/* Test utilities */
+/*
+ * This is a bit tricky, the second parameter to _Static_assert must be a string
+ * literal, so we use that property to assert x is a string literal.
+ */
+#define ASSERT_IS_STRING_LITERAL(x) _Static_assert(true, x)
+
+int _wait_for_data(int delay_ms)
+{
+ while (!output_buffer.full) {
+ if (delay_ms <= 0)
+ break;
+ delay_ms -= 1;
+
+ msleep(1);
+ }
+ TEST_ASSERT(output_buffer.full);
+
+ return EC_SUCCESS;
+}
+
+#define WAIT_FOR_DATA(d) TEST_EQ(_wait_for_data(d), EC_SUCCESS, "%d")
+
+#define VERIFY_LPC_CHAR_ALL(s, d, aux, _irq) \
+ do { \
+ const uint8_t *expected = s; \
+ ASSERT_IS_STRING_LITERAL(s); \
+ for (int _i = 0; _i < sizeof(s) - 1; ++_i) { \
+ WAIT_FOR_DATA(d); \
+ TEST_EQ(output_buffer.from_aux, aux, "%d"); \
+ if (_irq >= 0) \
+ TEST_EQ(output_buffer.irq, \
+ _irq > 0 ? true : false, "%d"); \
+ TEST_EQ(output_buffer.data, expected[_i], "0x%x"); \
+ output_buffer.full = false; \
+ task_wake(TASK_ID_KEYPROTO); \
+ } \
+ } while (0)
+
+#define VERIFY_LPC_CHAR_DELAY(s, d) \
+ do { \
+ msleep(d); \
+ VERIFY_LPC_CHAR_ALL(s, 10, false, -1); \
+ } while (0)
+#define VERIFY_LPC_CHAR(s) VERIFY_LPC_CHAR_ALL(s, 30, false, -1)
+#define VERIFY_ATKBD_ACK(s) VERIFY_LPC_CHAR("\xfa") /* ATKBD_RET_ACK */
+
+#define VERIFY_NO_CHAR() \
+ do { \
+ msleep(30); \
+ TEST_EQ(output_buffer.full, 0, "%d"); \
+ } while (0)
+
+#define VERIFY_AUX_TO_HOST(expected_data, expected_irq) \
+ VERIFY_LPC_CHAR_ALL(expected_data, 30, true, expected_irq)
+
+#define VERIFY_AUX_TO_HOST_EMPTY VERIFY_NO_CHAR
+
+#define VERIFY_AUX_TO_DEVICE(expected_data) \
+ do { \
+ uint8_t _data; \
+ msleep(30); \
+ TEST_EQ(queue_remove_unit(&aux_to_device, &_data), (size_t)1, \
+ "%zd"); \
+ TEST_EQ(_data, expected_data, "%#x"); \
+ } while (0)
+
+#define VERIFY_AUX_TO_DEVICE_EMPTY() \
+ do { \
+ msleep(30); \
+ TEST_ASSERT(queue_is_empty(&aux_to_device)); \
+ } while (0)
+
static void press_key(int c, int r, int pressed)
{
ccprintf("Input %s (%d, %d)\n", action[pressed], c, r);
keyboard_state_changed(r, c, pressed);
}
-static void enable_keystroke(int enabled)
+static int _enable_keystroke(int enabled)
{
- uint8_t data = enabled ? I8042_CMD_ENABLE : I8042_CMD_RESET_DIS;
+ uint8_t data = enabled ? ATKBD_CMD_ENABLE : ATKBD_CMD_RESET_DIS;
keyboard_host_write(data, 0);
- msleep(30);
+ VERIFY_ATKBD_ACK();
+
+ return EC_SUCCESS;
}
+#define ENABLE_KEYSTROKE(enabled) \
+ TEST_EQ(_enable_keystroke(enabled), EC_SUCCESS, "%d")
-static void reset_8042(void)
+static int _reset_8042(void)
{
- keyboard_host_write(I8042_CMD_RESET_DEF, 0);
- msleep(30);
+ keyboard_host_write(ATKBD_CMD_RESET_DEF, 0);
+ VERIFY_ATKBD_ACK();
+
+ return EC_SUCCESS;
}
+#define RESET_8042() TEST_EQ(_reset_8042(), EC_SUCCESS, "%d")
-static void set_typematic(uint8_t val)
+static int _set_typematic(uint8_t val)
{
- keyboard_host_write(I8042_CMD_SETREP, 0);
- msleep(30);
+ keyboard_host_write(ATKBD_CMD_SETREP, 0);
+ VERIFY_ATKBD_ACK();
+
keyboard_host_write(val, 0);
- msleep(30);
+ VERIFY_ATKBD_ACK();
+
+ return EC_SUCCESS;
}
+#define SET_TYPEMATIC(val) TEST_EQ(_set_typematic(val), EC_SUCCESS, "%d")
-static void set_scancode(uint8_t s)
+static int _set_scancode(uint8_t s)
{
- keyboard_host_write(I8042_CMD_SSCANSET, 0);
- msleep(30);
+ keyboard_host_write(ATKBD_CMD_SSCANSET, 0);
+ VERIFY_ATKBD_ACK();
+
keyboard_host_write(s, 0);
- msleep(30);
+ VERIFY_ATKBD_ACK();
+
+ return EC_SUCCESS;
}
+#define SET_SCANCODE(s) TEST_EQ(_set_scancode(s), EC_SUCCESS, "%d")
-static void write_cmd_byte(uint8_t val)
+static int _write_cmd_byte(uint8_t val)
{
keyboard_host_write(I8042_WRITE_CMD_BYTE, 1);
- msleep(30);
+ VERIFY_NO_CHAR();
+
keyboard_host_write(val, 0);
- msleep(30);
+ VERIFY_NO_CHAR();
+
+ return EC_SUCCESS;
}
+#define WRITE_CMD_BYTE(val) TEST_EQ(_write_cmd_byte(val), EC_SUCCESS, "%d")
-static uint8_t read_cmd_byte(void)
+static int _read_cmd_byte(uint8_t *cmd)
{
- lpc_char_cnt = 0;
keyboard_host_write(I8042_READ_CMD_BYTE, 1);
- msleep(30);
- return lpc_char_buf[0];
+ WAIT_FOR_DATA(30);
+ TEST_EQ(output_buffer.from_aux, 0, "%d");
+
+ *cmd = output_buffer.data;
+ output_buffer.full = false;
+ task_wake(TASK_ID_KEYPROTO);
+
+ return EC_SUCCESS;
+}
+#define READ_CMD_BYTE() \
+ ({ \
+ uint8_t cmd; \
+ TEST_EQ(_read_cmd_byte(&cmd), EC_SUCCESS, "%d"); \
+ cmd; \
+ })
+
+/*
+ * We unfortunately don't have an Input Buffer Full (IBF). Instead we
+ * directly write to the task's input queue. Ideally we would have an
+ * emulator that emulates the 8042 input/output buffers.
+ */
+#define i8042_write_cmd(cmd) keyboard_host_write(cmd, 1)
+#define i8042_write_data(data) keyboard_host_write(data, 0)
+
+/*****************************************************************************/
+/* Tests */
+
+void before_test(void)
+{
+ /* Make sure all tests start with the controller in the same state */
+ _write_cmd_byte(I8042_XLATE | I8042_AUX_DIS | I8042_KBD_DIS);
+}
+
+void after_test(void)
+{
+ if (output_buffer.full) {
+ ccprintf("%s:%s ERROR: output buffer is not empty!\n", __FILE__,
+ __func__);
+ /* We can't fail the test, but we can abort!. */
+ exit(1);
+ }
}
-static int __verify_lpc_char(char *arr, unsigned int sz, int delay_ms)
+static int test_8042_aux_loopback(void)
{
- int i;
+ /* Disable all IRQs */
+ WRITE_CMD_BYTE(0);
+
+ i8042_write_cmd(I8042_ECHO_MOUSE);
+ i8042_write_data(0x01);
+ VERIFY_AUX_TO_HOST("\x01", 0);
+
+ /* Enable AUX IRQ */
+ WRITE_CMD_BYTE(I8042_ENIRQ12);
+
+ i8042_write_cmd(I8042_ECHO_MOUSE);
+ i8042_write_data(0x02);
+ VERIFY_AUX_TO_HOST("\x02", 1);
- lpc_char_cnt = 0;
- for (i = 0; i < sz; ++i)
- lpc_char_buf[i] = 0;
- msleep(delay_ms);
- TEST_ASSERT_ARRAY_EQ(arr, lpc_char_buf, sz);
return EC_SUCCESS;
}
-#define VERIFY_LPC_CHAR(s) \
- TEST_ASSERT(__verify_lpc_char(s, strlen(s), 30) == EC_SUCCESS)
-#define VERIFY_LPC_CHAR_DELAY(s, t) \
- TEST_ASSERT(__verify_lpc_char(s, strlen(s), t) == EC_SUCCESS)
+static int test_8042_aux_two_way_communication(void)
+{
+ /* Enable AUX IRQ */
+ WRITE_CMD_BYTE(I8042_ENIRQ12);
+
+ i8042_write_cmd(I8042_SEND_TO_MOUSE);
+ i8042_write_data(0x01);
+ /* No response expected from the 8042 controller*/
+ VERIFY_AUX_TO_HOST_EMPTY();
+ VERIFY_AUX_TO_DEVICE(0x01);
+
+ /* Simulate the AUX device sending a response to the host */
+ send_aux_data_to_host_interrupt(0x02);
+ VERIFY_AUX_TO_HOST("\x02", 1);
+
+ return EC_SUCCESS;
+}
-static int __verify_no_char(void)
+static int test_8042_aux_inhibit(void)
{
- lpc_char_cnt = 0;
- msleep(30);
- TEST_CHECK(lpc_char_cnt == 0);
+ /* Enable AUX IRQ, but inhibit the AUX device from sending data. */
+ WRITE_CMD_BYTE(I8042_ENIRQ12 | I8042_AUX_DIS);
+
+ /* Simulate the AUX device sending a response to the host */
+ send_aux_data_to_host_interrupt(0x02);
+ VERIFY_AUX_TO_HOST_EMPTY();
+
+ /* Stop inhibiting the AUX device */
+ WRITE_CMD_BYTE(I8042_ENIRQ12);
+ /*
+ * This is wrong. When the CLK is inhibited the device will queue up
+ * events/scan codes in it's internal buffer. Once the inhibit is
+ * released, the device will start clocking out the data. So in this
+ * test we should be receiving a 0x02 byte, but we don't.
+ *
+ * In order to fix this we either need to plumb an inhibit function
+ * to the AUX PS/2 controller so it can hold the CLK line low, and thus
+ * tell the AUX device to buffer. Or, we can have the 8042 controller
+ * buffer the data internally and start replying it when the device is
+ * no longer inhibited.
+ */
+ VERIFY_AUX_TO_HOST_EMPTY();
+
+ return EC_SUCCESS;
}
-#define VERIFY_NO_CHAR() TEST_ASSERT(__verify_no_char() == EC_SUCCESS)
+static int test_8042_aux_controller_commands(void)
+{
+ uint8_t ctrl;
-/*****************************************************************************/
-/* Tests */
+ /* Start with empty controller flags. i.e., AUX Enabled */
+ WRITE_CMD_BYTE(0);
+
+ /* Send the AUX DISABLE command and verify the ctrl got updated */
+ i8042_write_cmd(I8042_DIS_MOUSE);
+ ctrl = READ_CMD_BYTE();
+ TEST_ASSERT(ctrl & I8042_AUX_DIS);
+
+ /* Send the AUX ENABLE command and verify the ctrl got updated */
+ i8042_write_cmd(I8042_ENA_MOUSE);
+ ctrl = READ_CMD_BYTE();
+ TEST_ASSERT(!(ctrl & I8042_AUX_DIS));
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_aux_test_command(void)
+{
+ i8042_write_cmd(I8042_TEST_MOUSE);
+
+ VERIFY_LPC_CHAR("\x00");
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_self_test(void)
+{
+ i8042_write_cmd(I8042_RESET_SELF_TEST);
+ VERIFY_LPC_CHAR("\x55");
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_keyboard_test_command(void)
+{
+ i8042_write_cmd(I8042_TEST_KB_PORT);
+ VERIFY_LPC_CHAR("\x00"); /* Data and Clock are not stuck */
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_keyboard_controller_commands(void)
+{
+ uint8_t ctrl;
+
+ /* Start with empty controller flags. i.e., Keyboard Enabled */
+ WRITE_CMD_BYTE(0);
+
+ /* Send the Keyboard DISABLE command and verify the ctrl got updated */
+ i8042_write_cmd(I8042_DIS_KB);
+ ctrl = READ_CMD_BYTE();
+ TEST_ASSERT(ctrl & I8042_KBD_DIS);
+
+ /* Send the Keyboard ENABLE command and verify the ctrl got updated */
+ i8042_write_cmd(I8042_ENA_KB);
+ ctrl = READ_CMD_BYTE();
+ TEST_ASSERT(!(ctrl & I8042_KBD_DIS));
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_keyboard_key_pressed_while_inhibited(void)
+{
+ ENABLE_KEYSTROKE(1);
+
+ /* Inhibit the keyboard device from sending data. */
+ WRITE_CMD_BYTE(I8042_XLATE | I8042_KBD_DIS);
+
+ /* Simulate a keypress on the keyboard */
+ press_key(1, 1, 1);
+
+ /*
+ * FIXME: This is wrong! We shouldn't be sending scan codes to the
+ * host while the keyboard channel is inhibited. This should be
+ * VERIFY_NO_CHAR();
+ */
+ VERIFY_LPC_CHAR("\x01");
+
+ /* FIXME: This is also wrong for the same reason as above! */
+ press_key(1, 1, 0);
+ VERIFY_LPC_CHAR("\x81");
+
+ /* Stop inhibiting the keyboard */
+ WRITE_CMD_BYTE(0);
+
+ /*
+ * FIXME: This is wrong. When the CLK is inhibited the device will queue
+ * up events/scan codes in it's internal buffer. Once the inhibit is
+ * released, the device will start clocking out the data. So in this
+ * test we should be receiving the 0x01, and x81 here, but we received
+ * them above.
+ */
+ VERIFY_NO_CHAR();
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte(void)
+{
+ ENABLE_KEYSTROKE(1);
+ /* Simulate a keypress on the keyboard */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+
+ /*
+ * We should have a press scan code in the output buffer, and a
+ * release scan code queued up in the keyboard queue.
+ */
+ WAIT_FOR_DATA(30);
+
+ /* Inhibit the keyboard device from sending data. */
+ keyboard_host_write(I8042_WRITE_CMD_BYTE, 1);
+ keyboard_host_write(I8042_XLATE | I8042_KBD_DIS, 0);
+ /* Wait for controller to processes the command */
+ msleep(10);
+
+ /* Stop inhibiting the keyboard */
+ keyboard_host_write(I8042_WRITE_CMD_BYTE, 1);
+ keyboard_host_write(I8042_XLATE, 0);
+ /* Wait for controller to processes the command */
+ msleep(10);
+
+ /* Verify the scan codes from above */
+ VERIFY_LPC_CHAR("\x01");
+ VERIFY_LPC_CHAR("\x81");
+
+ return EC_SUCCESS;
+}
+
+static int
+test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte_with_read(void)
+{
+ uint8_t cmd;
+
+ ENABLE_KEYSTROKE(1);
+ /* Simulate a keypress on the keyboard */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+
+ /*
+ * We should have a press scan code in the output buffer, and a
+ * release scan code queued up in the keyboard queue.
+ */
+ WAIT_FOR_DATA(30);
+
+ /* Inhibit the keyboard device from sending data. */
+ keyboard_host_write(I8042_WRITE_CMD_BYTE, 1);
+ keyboard_host_write(I8042_XLATE | I8042_KBD_DIS, 0);
+ /* Wait for controller to processes the command */
+ msleep(10);
+
+ /* Read the key press scan code from the output buffer. */
+ VERIFY_LPC_CHAR("\x01");
+
+ /*
+ * With the keyboard output suppressed, we should be able to read from
+ * the 8042 controller.
+ */
+ cmd = READ_CMD_BYTE();
+
+ /* Verify we got the cmd byte we set above */
+ TEST_EQ(cmd, I8042_XLATE | I8042_KBD_DIS, "%d");
+
+ /* Stop inhibiting the keyboard */
+ keyboard_host_write(I8042_WRITE_CMD_BYTE, 1);
+ keyboard_host_write(I8042_XLATE, 0);
+ /* Wait for controller to processes the command */
+ msleep(10);
+
+ /* Verify the key release scan code from above */
+ /*
+ * FIXME: This is wrong. We should receive the key release scan code
+ * 0x81. Instead the `I8042_READ_CMD_BYTE` above cleared the keyboard's
+ * output queue. It did this because the 8042 and keyboard output queues
+ * are implemented as the same thing.
+ */
+ VERIFY_NO_CHAR();
+
+ return EC_SUCCESS;
+}
+
+static int test_8042_keyboard_key_pressed_before_inhibit_using_cmd(void)
+{
+ ENABLE_KEYSTROKE(1);
+ /* Simulate a keypress on the keyboard */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+
+ /*
+ * We should have a press scan code in the output buffer, and a
+ * release scan code queued up in the keyboard queue.
+ */
+ WAIT_FOR_DATA(30);
+
+ /* Inhibit the keyboard device from sending data. */
+ keyboard_host_write(I8042_DIS_KB, 1);
+
+ /* Stop inhibiting the keyboard */
+ keyboard_host_write(I8042_ENA_KB, 1);
+
+ /* Verify the scan codes from above */
+ VERIFY_LPC_CHAR("\x01");
+ /*
+ * FIXME: This is wrong. When the keyboard CLK is inhibited the keyboard
+ * will queue up events/scan codes in it's internal buffer. Once the
+ * inhibit is released, the keyboard will start clocking out the data.
+ * So in this test we should be receiving 0x81, but the keyboard buffer
+ * was cleared by the I8042_DIS_KB above.
+ */
+ VERIFY_NO_CHAR();
+ return EC_SUCCESS;
+}
static int test_single_key_press(void)
{
- enable_keystroke(1);
+ ENABLE_KEYSTROKE(1);
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x01");
press_key(1, 1, 0);
@@ -140,7 +574,7 @@ static int test_single_key_press(void)
static int test_disable_keystroke(void)
{
- enable_keystroke(0);
+ ENABLE_KEYSTROKE(0);
press_key(1, 1, 1);
VERIFY_NO_CHAR();
press_key(1, 1, 0);
@@ -151,12 +585,12 @@ static int test_disable_keystroke(void)
static int test_typematic(void)
{
- enable_keystroke(1);
+ ENABLE_KEYSTROKE(1);
/*
* 250ms delay, 8 chars / sec.
*/
- set_typematic(0xf);
+ SET_TYPEMATIC(0xf);
press_key(1, 1, 1);
VERIFY_LPC_CHAR_DELAY("\x01\x01\x01\x01\x01", 650);
@@ -166,7 +600,7 @@ static int test_typematic(void)
/*
* 500ms delay, 10.9 chars / sec.
*/
- reset_8042();
+ RESET_8042();
press_key(1, 1, 1);
VERIFY_LPC_CHAR_DELAY("\x01\x01\x01", 650);
@@ -176,17 +610,208 @@ static int test_typematic(void)
return EC_SUCCESS;
}
+static int test_atkbd_get_scancode(void)
+{
+ SET_SCANCODE(1);
+
+ keyboard_host_write(ATKBD_CMD_GSCANSET, 0);
+ VERIFY_ATKBD_ACK();
+
+ /* Writing a 0 scan code will return the current scan code. */
+ keyboard_host_write(0, 0);
+ VERIFY_ATKBD_ACK();
+ VERIFY_LPC_CHAR("\x01");
+
+ SET_SCANCODE(2);
+
+ keyboard_host_write(ATKBD_CMD_GSCANSET, 0);
+ VERIFY_ATKBD_ACK();
+
+ /* Writing a 0 scan code will return the current scan code. */
+ keyboard_host_write(0, 0);
+ VERIFY_ATKBD_ACK();
+ VERIFY_LPC_CHAR("\x02");
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_set_scancode_with_keystroke_disabled(void)
+{
+ ENABLE_KEYSTROKE(0);
+
+ SET_SCANCODE(1);
+
+ press_key(1, 1, 1);
+ VERIFY_NO_CHAR();
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_set_scancode_with_key_press_before_set(void)
+{
+ ENABLE_KEYSTROKE(0);
+ ENABLE_KEYSTROKE(1);
+
+ /* Push data into the output buffer and keyboard queue */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+
+ /*
+ * ATKBD_CMD_SSCANSET should cause the keyboard to stop scanning, flush
+ * the keyboards output queue, and reset the typematic key.
+ */
+ keyboard_host_write(ATKBD_CMD_SSCANSET, 0);
+ /* Read out the scan code that got pushed into the output buffer before
+ * the command was sent.
+ */
+ VERIFY_LPC_CHAR("\x01");
+
+ /*
+ * FIXME: This is wrong. The keyboard's output queue should have been
+ * flushed when it received the `ATKBD_CMD_SSCANSET` command.
+ */
+ VERIFY_LPC_CHAR("\x81");
+
+ /* This is the ACK for `ATKBD_CMD_SSCANSET`. */
+ VERIFY_ATKBD_ACK();
+
+ /* The keyboard has flushed the buffer so no more keys. */
+ VERIFY_NO_CHAR();
+
+ /* Finish setting scan code 1 */
+ keyboard_host_write(1, 0);
+ VERIFY_ATKBD_ACK();
+
+ /* Key scanning should be restored. */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+ VERIFY_LPC_CHAR("\x01\x81");
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_set_scancode_with_key_press_during_set(void)
+{
+ ENABLE_KEYSTROKE(1);
+
+ /*
+ * ATKBD_CMD_SSCANSET should cause the keyboard to stop scanning, flush
+ * the keyboards output queue, and reset the typematic key.
+ */
+ keyboard_host_write(ATKBD_CMD_SSCANSET, 0);
+ VERIFY_ATKBD_ACK();
+
+ /* These keypresses should be dropped. */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+ /*
+ * FIXME: So this is wrong. scanning should be stopped while waiting
+ * for the scan code to be sent.
+ */
+ VERIFY_LPC_CHAR("\x01\x81");
+
+ /* Finish setting scan code 1 */
+ keyboard_host_write(1, 0);
+ VERIFY_ATKBD_ACK();
+
+ /* Key scanning should be restored. */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+ VERIFY_LPC_CHAR("\x01\x81");
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_echo(void)
+{
+ i8042_write_data(ATKBD_CMD_DIAG_ECHO);
+ VERIFY_ATKBD_ACK();
+
+ VERIFY_LPC_CHAR("\xee");
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_get_id(void)
+{
+ i8042_write_data(ATKBD_CMD_GETID);
+ VERIFY_ATKBD_ACK();
+
+ VERIFY_LPC_CHAR("\xab\x83");
+
+ i8042_write_data(ATKBD_CMD_OK_GETID);
+ VERIFY_ATKBD_ACK();
+
+ VERIFY_LPC_CHAR("\xab\x83");
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_set_leds_keypress_during(void)
+{
+ /* This should pause scanning. */
+ i8042_write_data(ATKBD_CMD_SETLEDS);
+ VERIFY_ATKBD_ACK();
+
+ /* Simulate keypress while keyboard is waiting for option byte */
+ press_key(1, 1, 1);
+ press_key(1, 1, 0);
+ /* FIXME: This is wrong, we shouldn't have any key strokes */
+ VERIFY_LPC_CHAR("\x01\x81");
+
+ i8042_write_data(0x01);
+ VERIFY_ATKBD_ACK();
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_set_leds_abort_set(void)
+{
+ i8042_write_data(ATKBD_CMD_SETLEDS);
+ VERIFY_ATKBD_ACK();
+
+ /*
+ * The spec says if we send a command instead of the option byte, the
+ * keyboard will abort the SETLEDS command and processes the new
+ * command. The way we can differentiate between a command and the
+ * option byte is the option byte must have the top 5 bits set to 0.
+ */
+ i8042_write_data(ATKBD_CMD_DIAG_ECHO);
+ VERIFY_ATKBD_ACK();
+
+ /* FIXME: This is wrong. We are expecting the 0xee echo byte. */
+ VERIFY_NO_CHAR();
+
+ return EC_SUCCESS;
+}
+
+static int test_atkbd_set_ex_leds(void)
+{
+ i8042_write_data(ATKBD_CMD_EX_SETLEDS);
+ VERIFY_ATKBD_ACK();
+
+ /* The extra set led command expects two option bytes. */
+
+ i8042_write_data(0x1);
+ VERIFY_ATKBD_ACK();
+
+ i8042_write_data(0x2);
+ VERIFY_ATKBD_ACK();
+
+ return EC_SUCCESS;
+}
+
static int test_scancode_set2(void)
{
- set_scancode(2);
+ SET_SCANCODE(2);
- write_cmd_byte(read_cmd_byte() | I8042_XLATE);
+ WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x01");
press_key(1, 1, 0);
VERIFY_LPC_CHAR("\x81");
- write_cmd_byte(read_cmd_byte() & ~I8042_XLATE);
+ WRITE_CMD_BYTE(READ_CMD_BYTE() & ~I8042_XLATE);
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x76");
press_key(1, 1, 0);
@@ -197,8 +822,13 @@ static int test_scancode_set2(void)
static int test_power_button(void)
{
+ ENABLE_KEYSTROKE(0);
+
gpio_set_level(GPIO_POWER_BUTTON_L, 1);
- set_scancode(1);
+ msleep(100);
+
+ SET_SCANCODE(1);
+ ENABLE_KEYSTROKE(1);
test_chipset_on();
gpio_set_level(GPIO_POWER_BUTTON_L, 0);
@@ -207,8 +837,8 @@ static int test_power_button(void)
gpio_set_level(GPIO_POWER_BUTTON_L, 1);
VERIFY_LPC_CHAR_DELAY("\xe0\xde", 100);
- set_scancode(2);
- write_cmd_byte(read_cmd_byte() & ~I8042_XLATE);
+ SET_SCANCODE(2);
+ WRITE_CMD_BYTE(READ_CMD_BYTE() & ~I8042_XLATE);
gpio_set_level(GPIO_POWER_BUTTON_L, 0);
VERIFY_LPC_CHAR_DELAY("\xe0\x37", 100);
@@ -229,8 +859,8 @@ static int test_power_button(void)
static int test_sysjump(void)
{
- set_scancode(2);
- enable_keystroke(1);
+ SET_SCANCODE(2);
+ ENABLE_KEYSTROKE(1);
system_run_image_copy(EC_IMAGE_RW);
@@ -240,13 +870,13 @@ static int test_sysjump(void)
static int test_sysjump_cont(void)
{
- write_cmd_byte(read_cmd_byte() | I8042_XLATE);
+ WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x01");
press_key(1, 1, 0);
VERIFY_LPC_CHAR("\x81");
- write_cmd_byte(read_cmd_byte() & ~I8042_XLATE);
+ WRITE_CMD_BYTE(READ_CMD_BYTE() & ~I8042_XLATE);
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x76");
press_key(1, 1, 0);
@@ -274,8 +904,8 @@ static const struct ec_response_keybd_config keybd_config = {
},
};
-__override const struct ec_response_keybd_config
-*board_vivaldi_keybd_config(void)
+__override const struct ec_response_keybd_config *
+board_vivaldi_keybd_config(void)
{
return &keybd_config;
}
@@ -285,8 +915,8 @@ static int test_ec_cmd_get_keybd_config(void)
struct ec_response_keybd_config resp;
int rv;
- rv = test_send_host_command(EC_CMD_GET_KEYBD_CONFIG, 0, NULL, 0,
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_GET_KEYBD_CONFIG, 0, NULL, 0, &resp,
+ sizeof(resp));
if (rv != EC_RES_SUCCESS) {
ccprintf("Error: EC_CMD_GET_KEYBD_CONFIG cmd returns %d\n", rv);
return EC_ERROR_INVAL;
@@ -303,32 +933,56 @@ static int test_ec_cmd_get_keybd_config(void)
static int test_vivaldi_top_keys(void)
{
- set_scancode(2);
+ SET_SCANCODE(2);
/* Test REFRESH key */
- write_cmd_byte(read_cmd_byte() | I8042_XLATE);
- press_key(2, 3, 1); /* Press T2 */
- VERIFY_LPC_CHAR("\xe0\x67"); /* Check REFRESH scancode in set-1 */
+ WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
+ press_key(2, 3, 1); /* Press T2 */
+ VERIFY_LPC_CHAR("\xe0\x67"); /* Check REFRESH scancode in set-1 */
/* Test SNAPSHOT key */
- write_cmd_byte(read_cmd_byte() | I8042_XLATE);
- press_key(4, 3, 1); /* Press T2 */
- VERIFY_LPC_CHAR("\xe0\x13"); /* Check SNAPSHOT scancode in set-1 */
+ WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
+ press_key(4, 3, 1); /* Press T2 */
+ VERIFY_LPC_CHAR("\xe0\x13"); /* Check SNAPSHOT scancode in set-1 */
/* Test VOL_UP key */
- write_cmd_byte(read_cmd_byte() | I8042_XLATE);
- press_key(5, 3, 1); /* Press T2 */
- VERIFY_LPC_CHAR("\xe0\x30"); /* Check VOL_UP scancode in set-1 */
+ WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
+ press_key(5, 3, 1); /* Press T2 */
+ VERIFY_LPC_CHAR("\xe0\x30"); /* Check VOL_UP scancode in set-1 */
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
wait_for_task_started();
if (system_get_image_copy() == EC_IMAGE_RO) {
+ RUN_TEST(test_8042_aux_loopback);
+ RUN_TEST(test_8042_aux_two_way_communication);
+ RUN_TEST(test_8042_aux_inhibit);
+ RUN_TEST(test_8042_aux_controller_commands);
+ RUN_TEST(test_8042_aux_test_command);
+ RUN_TEST(test_8042_self_test);
+ RUN_TEST(test_8042_keyboard_test_command);
+ RUN_TEST(test_8042_keyboard_controller_commands);
+ RUN_TEST(test_8042_keyboard_key_pressed_while_inhibited);
+ RUN_TEST(
+ test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte);
+ RUN_TEST(
+ test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte_with_read);
+ RUN_TEST(
+ test_8042_keyboard_key_pressed_before_inhibit_using_cmd);
+ RUN_TEST(test_atkbd_get_scancode);
+ RUN_TEST(test_atkbd_set_scancode_with_keystroke_disabled);
+ RUN_TEST(test_atkbd_set_scancode_with_key_press_before_set);
+ RUN_TEST(test_atkbd_set_scancode_with_key_press_during_set);
+ RUN_TEST(test_atkbd_echo);
+ RUN_TEST(test_atkbd_get_id);
+ RUN_TEST(test_atkbd_set_leds_keypress_during);
+ RUN_TEST(test_atkbd_set_leds_abort_set);
+ RUN_TEST(test_atkbd_set_ex_leds);
RUN_TEST(test_single_key_press);
RUN_TEST(test_disable_keystroke);
RUN_TEST(test_typematic);
diff --git a/test/kb_8042.tasklist b/test/kb_8042.tasklist
index 8cd35e6145..4d74e3c269 100644
--- a/test/kb_8042.tasklist
+++ b/test/kb_8042.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/kb_mkbp.c b/test/kb_mkbp.c
index 3b191a47ac..0bfd1e5a15 100644
--- a/test/kb_mkbp.c
+++ b/test/kb_mkbp.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -19,7 +19,7 @@
static uint8_t state[KEYBOARD_COLS_MAX];
static int ec_int_level;
-static const char *action[2] = {"release", "press"};
+static const char *action[2] = { "release", "press" };
/*****************************************************************************/
/* Mock functions */
@@ -43,7 +43,7 @@ int lid_is_open(void)
/*****************************************************************************/
/* Test utilities */
-#define FIFO_EMPTY() (ec_int_level == 1)
+#define FIFO_EMPTY() (ec_int_level == 1)
#define FIFO_NOT_EMPTY() (ec_int_level == 0)
void clear_state(void)
@@ -71,7 +71,7 @@ int press_key(int c, int r, int pressed)
int verify_key(int c, int r, int pressed)
{
struct host_cmd_handler_args args;
- struct ec_response_get_next_event event;
+ struct ec_response_get_next_event event;
int i;
args.version = 0;
@@ -104,7 +104,7 @@ int verify_key(int c, int r, int pressed)
int verify_key_v2(int c, int r, int pressed, int expect_more)
{
struct host_cmd_handler_args args;
- struct ec_response_get_next_event_v1 event;
+ struct ec_response_get_next_event_v1 event;
int i;
args.version = 2;
@@ -286,7 +286,7 @@ int fifo_underrun(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
ec_int_level = 1;
test_reset();
diff --git a/test/kb_mkbp.tasklist b/test/kb_mkbp.tasklist
index d84996c71c..a255779878 100644
--- a/test/kb_mkbp.tasklist
+++ b/test/kb_mkbp.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/kb_scan.c b/test/kb_scan.c
index a43808c0c1..82693ff525 100644
--- a/test/kb_scan.c
+++ b/test/kb_scan.c
@@ -1,7 +1,7 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
- * Copyright 2013 Google Inc.
+ * Copyright 2013 Google LLC
*
* Tests for keyboard scan deghosting and debouncing.
*/
@@ -20,15 +20,15 @@
#include "timer.h"
#include "util.h"
-#define KEYDOWN_DELAY_MS 10
-#define KEYDOWN_RETRY 10
-#define NO_KEYDOWN_DELAY_MS 100
+#define KEYDOWN_DELAY_MS 10
+#define KEYDOWN_RETRY 10
+#define NO_KEYDOWN_DELAY_MS 100
-#define CHECK_KEY_COUNT(old, expected) \
- do { \
+#define CHECK_KEY_COUNT(old, expected) \
+ do { \
if (verify_key_presses(old, expected) != EC_SUCCESS) \
- return EC_ERROR_UNKNOWN; \
- old = fifo_add_count; \
+ return EC_ERROR_UNKNOWN; \
+ old = fifo_add_count; \
} while (0)
/* Emulated physical key state */
@@ -121,13 +121,10 @@ void chipset_reset(void)
}
#endif
-#define mock_defined_key(k, p) mock_key(KEYBOARD_ROW_ ## k, \
- KEYBOARD_COL_ ## k, \
- p)
+#define mock_defined_key(k, p) mock_key(KEYBOARD_ROW_##k, KEYBOARD_COL_##k, p)
-#define mock_default_key(k, p) mock_key(KEYBOARD_DEFAULT_ROW_ ## k, \
- KEYBOARD_DEFAULT_COL_ ## k, \
- p)
+#define mock_default_key(k, p) \
+ mock_key(KEYBOARD_DEFAULT_ROW_##k, KEYBOARD_DEFAULT_COL_##k, p)
static void mock_key(int r, int c, int keydown)
{
@@ -403,7 +400,7 @@ static int debounce_test(void)
* Push down each subsequent key, until all 8 are pressed, each
* time bouncing the former one once.
*/
- for (i = 1 ; i < 8; i++) {
+ for (i = 1; i < 8; i++) {
mock_key(i, 1, 1);
task_wake(TASK_ID_KEYSCAN);
msleep(3);
@@ -547,12 +544,14 @@ static int lid_test(void)
static int test_check_boot_esc(void)
{
- TEST_CHECK(keyboard_scan_get_boot_keys() == BOOT_KEY_ESC);
+ TEST_ASSERT(keyboard_scan_get_boot_keys() == BOOT_KEY_ESC);
+ return EC_SUCCESS;
}
static int test_check_boot_down(void)
{
- TEST_CHECK(keyboard_scan_get_boot_keys() == BOOT_KEY_DOWN_ARROW);
+ TEST_ASSERT(keyboard_scan_get_boot_keys() == BOOT_KEY_DOWN_ARROW);
+ return EC_SUCCESS;
}
void test_init(void)
@@ -587,7 +586,7 @@ static void run_test_step1(void)
else
RUN_TEST(debounce_test);
- if (0) /* crbug.com/976974 */
+ if (0) /* crbug.com/976974 */
RUN_TEST(simulate_key_test);
#ifdef EMU_BUILD
RUN_TEST(runtime_key_test);
@@ -646,7 +645,7 @@ int test_task(void *data)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
msleep(30); /* Wait for TASK_ID_TEST to initialize */
task_wake(TASK_ID_TEST);
diff --git a/test/kb_scan.tasklist b/test/kb_scan.tasklist
index ded03b1112..3cac36bb23 100644
--- a/test/kb_scan.tasklist
+++ b/test/kb_scan.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/legacy_nvmem_dump.h b/test/legacy_nvmem_dump.h
index 6816673c23..401694d9d6 100644
--- a/test/legacy_nvmem_dump.h
+++ b/test/legacy_nvmem_dump.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 The Chromium OS Authors. All rights reserved.
+ * Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -12,10 +12,10 @@
* This binary dump is placed in a separate file not to free up the test file
* using it.
*/
- 0x00, 0x65, 0x8e, 0x10, 0x80, 0xca, 0x52, 0x1e, 0x95, 0x81, 0x12, 0x4f,
- 0x36, 0x78, 0x9a, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x10, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x65, 0x8e, 0x10, 0x80, 0xca, 0x52, 0x1e, 0x95, 0x81, 0x12, 0x4f, 0x36,
+ 0x78, 0x9a, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x10, 0xff, 0xff, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -32,12 +32,12 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x63, 0x72, 0x6f, 0x73, 0x2d, 0x70,
- 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x00, 0xe1, 0xac, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x37, 0x01, 0x00,
- 0x03, 0x00, 0x00, 0x00, 0xbd, 0xfe, 0xff, 0xff, 0x85, 0xfc, 0x05, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xb0, 0xde, 0x01, 0x00, 0xb4, 0xde, 0x01, 0x00,
- 0x9b, 0x0f, 0x06, 0x00, 0xbc, 0xde, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0d, 0x00, 0x63, 0x72, 0x6f, 0x73, 0x2d, 0x70, 0x61,
+ 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x00, 0xe1, 0xac, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x37, 0x01, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0xbd, 0xfe, 0xff, 0xff, 0x85, 0xfc, 0x05, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xb0, 0xde, 0x01, 0x00, 0xb4, 0xde, 0x01, 0x00, 0x9b,
+ 0x0f, 0x06, 0x00, 0xbc, 0xde, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -48,34 +48,33 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
- 0x5b, 0x15, 0xa1, 0x0a, 0x05, 0x12, 0x58, 0x84, 0xbf, 0xf6, 0xc9, 0xf3,
- 0xdd, 0xb7, 0x26, 0xce, 0x56, 0x9e, 0x5f, 0x7a, 0xa8, 0xd4, 0x8a, 0x67,
- 0x5c, 0x26, 0x35, 0x0e, 0xb2, 0x13, 0x2c, 0x79, 0x20, 0x00, 0x26, 0xca,
- 0x7d, 0xb8, 0x1a, 0x1f, 0x0b, 0x5c, 0x0a, 0xf3, 0xb5, 0xe2, 0x6a, 0xec,
- 0x1a, 0x0d, 0x90, 0x8b, 0x92, 0x3c, 0x07, 0xb0, 0x41, 0xb0, 0x27, 0x20,
- 0x88, 0x33, 0xfe, 0x5c, 0xf2, 0x7b, 0x20, 0x00, 0x9e, 0xb7, 0xa2, 0x4c,
- 0xad, 0x6c, 0xc0, 0x92, 0x92, 0xef, 0xbc, 0x56, 0x65, 0x47, 0xf9, 0x09,
- 0xd1, 0xc4, 0xbc, 0x36, 0xe8, 0x3a, 0xc2, 0x8a, 0x11, 0x3a, 0xca, 0xe1,
- 0x66, 0xd7, 0x85, 0x57, 0x20, 0x00, 0x0c, 0x6d, 0xc7, 0x61, 0x92, 0xfc,
- 0x1b, 0x24, 0x02, 0xc1, 0x92, 0x0e, 0xf4, 0xa1, 0x75, 0xbe, 0xb1, 0x3d,
- 0x29, 0xfe, 0x1e, 0xe2, 0x65, 0xf5, 0x25, 0xae, 0xaf, 0xfe, 0x73, 0x32,
- 0x35, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x5b,
+ 0x15, 0xa1, 0x0a, 0x05, 0x12, 0x58, 0x84, 0xbf, 0xf6, 0xc9, 0xf3, 0xdd,
+ 0xb7, 0x26, 0xce, 0x56, 0x9e, 0x5f, 0x7a, 0xa8, 0xd4, 0x8a, 0x67, 0x5c,
+ 0x26, 0x35, 0x0e, 0xb2, 0x13, 0x2c, 0x79, 0x20, 0x00, 0x26, 0xca, 0x7d,
+ 0xb8, 0x1a, 0x1f, 0x0b, 0x5c, 0x0a, 0xf3, 0xb5, 0xe2, 0x6a, 0xec, 0x1a,
+ 0x0d, 0x90, 0x8b, 0x92, 0x3c, 0x07, 0xb0, 0x41, 0xb0, 0x27, 0x20, 0x88,
+ 0x33, 0xfe, 0x5c, 0xf2, 0x7b, 0x20, 0x00, 0x9e, 0xb7, 0xa2, 0x4c, 0xad,
+ 0x6c, 0xc0, 0x92, 0x92, 0xef, 0xbc, 0x56, 0x65, 0x47, 0xf9, 0x09, 0xd1,
+ 0xc4, 0xbc, 0x36, 0xe8, 0x3a, 0xc2, 0x8a, 0x11, 0x3a, 0xca, 0xe1, 0x66,
+ 0xd7, 0x85, 0x57, 0x20, 0x00, 0x0c, 0x6d, 0xc7, 0x61, 0x92, 0xfc, 0x1b,
+ 0x24, 0x02, 0xc1, 0x92, 0x0e, 0xf4, 0xa1, 0x75, 0xbe, 0xb1, 0x3d, 0x29,
+ 0xfe, 0x1e, 0xe2, 0x65, 0xf5, 0x25, 0xae, 0xaf, 0xfe, 0x73, 0x32, 0x35,
+ 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
- 0x52, 0x01, 0x7b, 0x53, 0xc5, 0x95, 0xa0, 0x3a, 0x07, 0xd5, 0x62, 0x7f,
- 0xd3, 0x9c, 0x85, 0xaa, 0xfc, 0x56, 0xa0, 0xfa, 0x3a, 0xe8, 0x17, 0x38,
- 0xc3, 0x59, 0x65, 0xbe, 0x75, 0x1b, 0xdc, 0xdc, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x52,
+ 0x01, 0x7b, 0x53, 0xc5, 0x95, 0xa0, 0x3a, 0x07, 0xd5, 0x62, 0x7f, 0xd3,
+ 0x9c, 0x85, 0xaa, 0xfc, 0x56, 0xa0, 0xfa, 0x3a, 0xe8, 0x17, 0x38, 0xc3,
+ 0x59, 0x65, 0xbe, 0x75, 0x1b, 0xdc, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x84, 0xe7, 0x7e, 0x46, 0xfe, 0xbd,
- 0x10, 0xdd, 0x5b, 0x09, 0xb2, 0xe2, 0xb1, 0x3f, 0xbf, 0x9a, 0xf3, 0xd7,
- 0xfb, 0xf7, 0x28, 0xbb, 0x24, 0x10, 0xa3, 0xf3, 0x18, 0xa4, 0xa2, 0x16,
- 0xd5, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x84, 0xe7, 0x7e, 0x46, 0xfe, 0xbd, 0x10,
+ 0xdd, 0x5b, 0x09, 0xb2, 0xe2, 0xb1, 0x3f, 0xbf, 0x9a, 0xf3, 0xd7, 0xfb,
+ 0xf7, 0x28, 0xbb, 0x24, 0x10, 0xa3, 0xf3, 0x18, 0xa4, 0xa2, 0x16, 0xd5,
+ 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -86,15 +85,16 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0xff, 0xff, 0xff, 0x0b, 0x00,
- 0x03, 0xff, 0xff, 0xff, 0x0c, 0x00, 0x03, 0xff, 0xff, 0xff, 0x0d, 0x00,
- 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8,
- 0x00, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0xff, 0xff, 0xff, 0x0b, 0x00, 0x03,
+ 0xff, 0xff, 0xff, 0x0c, 0x00, 0x03, 0xff, 0xff, 0xff, 0x0d, 0x00, 0x03,
+ 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00,
+ 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
@@ -113,7 +113,7 @@
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff,
/* Manually added nonempty pcr. Array 0, index 0 */
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x02, 0x03, 0x04, 0x05, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
diff --git a/test/lid_sw.c b/test/lid_sw.c
index 8163f74716..123676a1fa 100644
--- a/test/lid_sw.c
+++ b/test/lid_sw.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -83,7 +83,7 @@ static int test_debounce(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/lid_sw.tasklist b/test/lid_sw.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/lid_sw.tasklist
+++ b/test/lid_sw.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/lightbar.c b/test/lightbar.c
index 363d73a36b..90400d1cf5 100644
--- a/test/lightbar.c
+++ b/test/lightbar.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -20,9 +20,8 @@ static int get_seq(void)
/* Get the state */
memset(&resp, 0, sizeof(resp));
params.cmd = LIGHTBAR_CMD_GET_SEQ;
- rv = test_send_host_command(EC_CMD_LIGHTBAR_CMD, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_LIGHTBAR_CMD, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
if (rv != EC_RES_SUCCESS) {
ccprintf("%s:%s(): rv = %d\n", __FILE__, __func__, rv);
return -1;
@@ -41,9 +40,8 @@ static int set_seq(int s)
memset(&resp, 0, sizeof(resp));
params.cmd = LIGHTBAR_CMD_SEQ;
params.seq.num = s;
- rv = test_send_host_command(EC_CMD_LIGHTBAR_CMD, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_LIGHTBAR_CMD, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
if (rv != EC_RES_SUCCESS) {
ccprintf("%s:%s(): rv = %d\n", __FILE__, __func__, rv);
return -1;
@@ -169,9 +167,8 @@ test_static int test_stop_timeout(void)
TEST_ASSERT(set_seq(i) == EC_RES_SUCCESS);
usleep(SECOND);
/* What happened? */
- if (i == LIGHTBAR_RUN ||
- i == LIGHTBAR_S0S3 || i == LIGHTBAR_S3 ||
- i == LIGHTBAR_S3S5 || i == LIGHTBAR_S5)
+ if (i == LIGHTBAR_RUN || i == LIGHTBAR_S0S3 ||
+ i == LIGHTBAR_S3 || i == LIGHTBAR_S3S5 || i == LIGHTBAR_S5)
/* RUN or shutdown sequences should stop it */
TEST_ASSERT(get_seq() == LIGHTBAR_S0);
else
@@ -290,7 +287,7 @@ const struct lb_brightness_def lb_brightness_levels[] = {
},
};
const unsigned int lb_brightness_levels_count =
- ARRAY_SIZE(lb_brightness_levels);
+ ARRAY_SIZE(lb_brightness_levels);
int lux_level_to_google_color(const int lux);
extern int google_color_id;
@@ -303,8 +300,8 @@ int lid_is_open(void)
test_static int test_als_lightbar(void)
{
int lux_data[] = { 500, 100, 35, 15, 30, 35, 55, 70, 55, 100 };
- int exp_gcid[] = { 0, 0, 1, 2, 2, 2, 1, 0, 0, 0 };
- int exp_chg[] = { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 };
+ int exp_gcid[] = { 0, 0, 1, 2, 2, 2, 1, 0, 0, 0 };
+ int exp_chg[] = { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 };
int i;
BUILD_ASSERT(ARRAY_SIZE(lux_data) == ARRAY_SIZE(exp_gcid));
@@ -319,7 +316,7 @@ test_static int test_als_lightbar(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
/* Ensure tasks are started before running tests */
usleep(SECOND);
diff --git a/test/lightbar.tasklist b/test/lightbar.tasklist
index b5e714765d..78c08cc652 100644
--- a/test/lightbar.tasklist
+++ b/test/lightbar.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/mag_cal.c b/test/mag_cal.c
index 8ee3b41480..245bad786c 100644
--- a/test/mag_cal.c
+++ b/test/mag_cal.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -17,35 +17,17 @@
* the high values and [-5,5] (+- 1.53 uT) for the low values.
*/
static intv3_t samples[] = {
- { -522, 5, -5 },
- { -528, -3, 1 },
- { -531, -2, 0 },
- { -525, -1, 3 },
+ { -522, 5, -5 }, { -528, -3, 1 }, { -531, -2, 0 }, { -525, -1, 3 },
- { 527, 3, -2 },
- { 523, -5, 1 },
- { 520, -3, 2 },
- { 522, 0, -4 },
+ { 527, 3, -2 }, { 523, -5, 1 }, { 520, -3, 2 }, { 522, 0, -4 },
- { -3, -519, -2 },
- { 1, -521, 5 },
- { 2, -526, 4 },
- { 0, -532, -5 },
+ { -3, -519, -2 }, { 1, -521, 5 }, { 2, -526, 4 }, { 0, -532, -5 },
- { -5, 528, 4 },
- { -2, 531, -4 },
- { 1, 522, 2 },
- { 5, 532, 3 },
+ { -5, 528, 4 }, { -2, 531, -4 }, { 1, 522, 2 }, { 5, 532, 3 },
- { -5, 0, -524 },
- { -1, -2, -527 },
- { -3, 4, -532 },
- { 5, 3, -531 },
+ { -5, 0, -524 }, { -1, -2, -527 }, { -3, 4, -532 }, { 5, 3, -531 },
- { 4, -2, 524 },
- { 1, 3, 520 },
- { 5, -5, 528 },
- { 0, 2, 521 },
+ { 4, -2, 524 }, { 1, 3, 520 }, { 5, -5, 528 }, { 0, 2, 521 },
};
static int test_mag_cal_computes_bias(void)
@@ -81,7 +63,7 @@ static int test_mag_cal_computes_bias(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/mag_cal.tasklist b/test/mag_cal.tasklist
index ff715f69cd..a8b04538aa 100644
--- a/test/mag_cal.tasklist
+++ b/test/mag_cal.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/math_util.c b/test/math_util.c
index 6482888e55..1ee9b1484b 100644
--- a/test/math_util.c
+++ b/test/math_util.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -25,7 +25,7 @@ const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
/* Test utilities */
/* Macro to compare two floats and check if they are equal within diff. */
-#define IS_FLOAT_EQUAL(a, b, diff) ((a) >= ((b) - diff) && (a) <= ((b) + diff))
+#define IS_FLOAT_EQUAL(a, b, diff) ((a) >= ((b)-diff) && (a) <= ((b) + diff))
#define ACOS_TOLERANCE_DEG 0.5f
#define RAD_TO_DEG (180.0f / 3.1415926f)
@@ -45,21 +45,19 @@ static int test_acos(void)
return EC_SUCCESS;
}
-
const mat33_fp_t test_matrices[] = {
- {{ 0, FLOAT_TO_FP(-1), 0},
- {FLOAT_TO_FP(-1), 0, 0},
- { 0, 0, FLOAT_TO_FP(1)} },
- {{ FLOAT_TO_FP(1), 0, FLOAT_TO_FP(5)},
- { FLOAT_TO_FP(2), FLOAT_TO_FP(1), FLOAT_TO_FP(6)},
- { FLOAT_TO_FP(3), FLOAT_TO_FP(4), 0} }
+ { { 0, FLOAT_TO_FP(-1), 0 },
+ { FLOAT_TO_FP(-1), 0, 0 },
+ { 0, 0, FLOAT_TO_FP(1) } },
+ { { FLOAT_TO_FP(1), 0, FLOAT_TO_FP(5) },
+ { FLOAT_TO_FP(2), FLOAT_TO_FP(1), FLOAT_TO_FP(6) },
+ { FLOAT_TO_FP(3), FLOAT_TO_FP(4), 0 } }
};
-
static int test_rotate(void)
{
int i, j, k;
- intv3_t v = {1, 2, 3};
+ intv3_t v = { 1, 2, 3 };
intv3_t w;
for (i = 0; i < ARRAY_SIZE(test_matrices); i++) {
@@ -122,7 +120,7 @@ test_static int test_temp_conversion(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/math_util.tasklist b/test/math_util.tasklist
index f5c894ccaf..dbe560d4aa 100644
--- a/test/math_util.tasklist
+++ b/test/math_util.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/motion_angle.c b/test/motion_angle.c
index 30f663de14..3f206de078 100644
--- a/test/motion_angle.c
+++ b/test/motion_angle.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -32,10 +32,10 @@ int filler(const struct motion_sensor_t *s, const float v)
static int test_lid_angle_less180(void)
{
int index = 0, lid_angle;
- struct motion_sensor_t *lid = &motion_sensors[
- CONFIG_LID_ANGLE_SENSOR_LID];
- struct motion_sensor_t *base = &motion_sensors[
- CONFIG_LID_ANGLE_SENSOR_BASE];
+ struct motion_sensor_t *lid =
+ &motion_sensors[CONFIG_LID_ANGLE_SENSOR_LID];
+ struct motion_sensor_t *base =
+ &motion_sensors[CONFIG_LID_ANGLE_SENSOR_BASE];
/* We don't have TASK_CHIP so simulate init ourselves */
hook_notify(HOOK_CHIPSET_SHUTDOWN);
@@ -56,42 +56,39 @@ static int test_lid_angle_less180(void)
cprints(CC_ACCEL, "start loop");
/* Check we will never enter tablet mode. */
while (index < kAccelerometerLaptopModeTestDataLength) {
- feed_accel_data(kAccelerometerLaptopModeTestData,
- &index, filler);
+ feed_accel_data(kAccelerometerLaptopModeTestData, &index,
+ filler);
wait_for_valid_sample();
lid_angle = motion_lid_get_angle();
cprints(CC_ACCEL, "%d : LID(%d, %d, %d)/BASE(%d, %d, %d): %d",
- index / TEST_LID_SAMPLE_SIZE,
- lid->xyz[X], lid->xyz[Y], lid->xyz[Z],
- base->xyz[X], base->xyz[Y], base->xyz[Z],
- lid_angle);
+ index / TEST_LID_SAMPLE_SIZE, lid->xyz[X], lid->xyz[Y],
+ lid->xyz[Z], base->xyz[X], base->xyz[Y], base->xyz[Z],
+ lid_angle);
/* We need few sample to debounce and enter laptop mode. */
TEST_ASSERT(index < TEST_LID_SAMPLE_SIZE *
- (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
+ (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
!tablet_get_mode());
}
/* Check we will never exit tablet mode. */
index = 0;
while (index < kAccelerometerFullyOpenTestDataLength) {
- feed_accel_data(kAccelerometerFullyOpenTestData,
- &index, filler);
+ feed_accel_data(kAccelerometerFullyOpenTestData, &index,
+ filler);
wait_for_valid_sample();
lid_angle = motion_lid_get_angle();
cprints(CC_ACCEL, "%d : LID(%d, %d, %d)/BASE(%d, %d, %d): %d",
- index / TEST_LID_SAMPLE_SIZE,
- lid->xyz[X], lid->xyz[Y], lid->xyz[Z],
- base->xyz[X], base->xyz[Y], base->xyz[Z],
- lid_angle);
+ index / TEST_LID_SAMPLE_SIZE, lid->xyz[X], lid->xyz[Y],
+ lid->xyz[Z], base->xyz[X], base->xyz[Y], base->xyz[Z],
+ lid_angle);
TEST_ASSERT(index < TEST_LID_SAMPLE_SIZE *
- (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
+ (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
tablet_get_mode());
}
return EC_SUCCESS;
}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/motion_angle.tasklist b/test/motion_angle.tasklist
index 0b774ebb4a..6c99c23eea 100644
--- a/test/motion_angle.tasklist
+++ b/test/motion_angle.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/motion_angle_data_literals.c b/test/motion_angle_data_literals.c
index 74d00f8232..d22a8230a2 100644
--- a/test/motion_angle_data_literals.c
+++ b/test/motion_angle_data_literals.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -12,991 +12,993 @@
* [ CONFIG_ACCEL_STD_REF_FRAME_OLD must be defined to used this array. ]
*/
const float kAccelerometerLaptopModeTestData[] = {
- -0.166016f, -0.00488281f, 0.924805f, -0.770508f, -0.0488281f,
- -0.510742f, -0.199219f, -0.0078125f, 0.953125f, -0.782227f,
- -0.0244141f, -0.652344f, -0.177734f, -0.0136719f, 0.936523f,
- -0.772461f, -0.0527344f, -0.59375f, -0.176758f, -0.00878906f,
- 0.9375f, -0.777344f, -0.0419922f, -0.637695f, -0.165039f,
- -0.00878906f, 0.942383f, -0.782227f, -0.046875f, -0.613281f,
- -0.180664f, -0.00976562f, 0.943359f, -0.777344f, -0.0419922f,
- -0.601562f, -0.189453f, -0.00488281f, 0.943359f, -0.776367f,
- -0.0263672f, -0.613281f, -0.166992f, -0.00488281f, 0.935547f,
- -0.78125f, -0.0380859f, -0.609375f, -0.176758f, -0.00878906f,
- 0.947266f, -0.790039f, -0.0576172f, -0.585938f, -0.173828f,
- -0.0126953f, 0.93457f, -0.780273f, -0.0654297f, -0.666016f,
- -0.169922f, -0.00195312f, 0.928711f, -0.775391f, -0.0351562f,
- -0.561523f, -0.193359f, 0.0f, 0.941406f, -0.795898f,
- -0.0478516f, -0.640625f, -0.162109f, -0.00585938f, 0.917969f,
- -0.768555f, -0.0146484f, -0.685547f, -0.166992f, -0.0136719f,
- 0.921875f, -0.755859f, -0.0166016f, -0.425781f, -0.175781f,
- -0.0810547f, 1.00098f, -0.802734f, -0.117188f, -0.585938f,
- -0.210938f, 0.0214844f, 0.881836f, -0.750977f, -0.0302734f,
- -0.677734f, -0.285156f, 0.00976562f, 0.967773f, -0.763672f,
- -0.0283203f, -0.850586f, -0.222656f, -0.0136719f, 0.943359f,
- -0.763672f, -0.0507812f, -0.640625f, -0.236328f, 0.0859375f,
- 0.892578f, -0.742188f, 0.0302734f, -0.484375f, -0.269531f,
- 0.0263672f, 0.913086f, -0.714844f, -0.00585938f, -0.745117f,
- -0.275391f, 0.0927734f, 0.977539f, -0.776367f, -0.078125f,
- -0.750977f, -0.155273f, -0.0341797f, 1.2334f, -1.06445f,
- -0.0478516f, -0.823242f, -0.196289f, 0.046875f, 1.19141f,
- -1.00391f, -0.140625f, -0.541016f, 0.0917969f, 0.21582f,
- 0.717773f, -0.764648f, -0.0341797f, -0.607422f, -0.0351562f,
- 0.0888672f, 0.207031f, -0.214844f, -0.18457f, -0.0664062f,
- -0.0898438f, 0.0556641f, 0.418945f, -0.232422f, 0.43457f,
- 0.0361328f, 0.143555f, 0.376953f, 1.23633f, -1.09082f,
- 0.529297f, 0.0507812f, 0.205078f, 0.438477f, 1.66602f,
- -1.59668f, 0.325195f, -1.20996f, -0.0791016f, 0.404297f,
- 1.50977f, -1.40918f, 0.31543f, -1.30273f, -0.0654297f,
- 0.141602f, 0.699219f, -0.589844f, 0.0732422f, -0.27832f,
- 0.00488281f, 0.00683594f, 0.0566406f, -0.0410156f, -0.0292969f,
- -0.0234375f, -0.0488281f, -0.00195312f, -0.0292969f, 0.0849609f,
- -0.139648f, 0.0585938f, 0.677734f, 0.667969f, 1.36523f,
- -1.11816f, 0.412109f, 0.844727f, 0.142578f, 0.790039f,
- 1.73145f, -1.68066f, 0.464844f, -1.29492f, -0.0800781f,
- 0.803711f, 0.879883f, -0.765625f, -0.0400391f, -0.616211f,
- -0.170898f, 0.879883f, 0.510742f, 0.158203f, 0.381836f,
- -0.270508f, -0.0693359f, 0.651367f, 0.431641f, 0.104492f,
- 0.991211f, -0.0634766f, -0.0478516f, 0.750977f, 0.283203f,
- -0.0332031f, 1.52051f, -0.00195312f, -0.201172f, 1.08984f,
- 0.173828f, 0.0849609f, 1.44141f, -0.214844f, -0.0107422f,
- 1.29785f, 0.520508f, 0.00488281f, 1.73047f, -0.523438f,
- 0.136719f, 1.42188f, 0.987305f, 0.0527344f, 1.74707f,
- -0.525391f, 0.34668f, 0.469727f, 0.428711f, 0.114258f,
- -0.788086f, 0.177734f, 0.400391f, -0.106445f, 0.328125f,
- -0.566406f, -0.948242f, 0.670898f, 0.467773f, -0.21875f,
- 0.55957f, -0.767578f, -0.232422f, 0.195312f, 0.625f,
- -0.271484f, 0.865234f, -0.765625f, 0.299805f, 0.0703125f,
- 0.378906f, -0.526367f, 0.548828f, -0.231445f, -0.569336f,
- 0.455078f, 0.303711f, -0.866211f, -0.485352f, 0.566406f,
- -1.60547f, 0.481445f, 0.183594f, -0.782227f, -0.260742f,
- 0.243164f, -1.41504f, 0.373047f, 0.172852f, -0.935547f,
- -0.412109f, 0.133789f, -1.69727f, 0.178711f, 0.407227f,
- -0.952148f, -0.227539f, 0.0751953f, -1.67188f, 0.339844f,
- 0.498047f, -0.795898f, 0.209961f, 0.177734f, -1.3916f,
- 0.458984f, 0.295898f, 0.0390625f, 0.697266f, 0.258789f,
- -0.0703125f, -0.131836f, 0.56543f, 0.250977f, 0.913086f,
- -0.353516f, 0.90332f, 0.191406f, 0.708008f, 0.352539f,
- 0.853516f, -0.839844f, 0.955078f, 0.636719f, 0.657227f,
- 0.389648f, 0.620117f, -0.725586f, 0.43457f, 0.485352f,
- 0.424805f, 0.479492f, 0.287109f, -0.505859f, -0.209961f,
- 0.0927734f, 0.21582f, 0.709961f, 0.492188f, -0.413086f,
- -0.0869141f, 0.0673828f, -0.119141f, 1.20508f, 0.392578f,
- 0.229492f, 0.927734f, -0.297852f, 0.142578f, 1.0293f,
- 0.430664f, 0.0449219f, 1.71875f, -0.0283203f, 0.0107422f,
- 1.18164f, 0.0517578f, 0.0751953f, 1.80273f, -0.0693359f,
- -0.19043f, 1.1748f, 0.236328f, 0.0839844f, 1.78711f,
- -0.472656f, -0.270508f, 1.10254f, 0.964844f, 0.118164f,
- 1.75684f, -0.901367f, -0.211914f, 1.11133f, 0.65625f,
- 0.308594f, 0.142578f, 0.396484f, 0.239258f, 0.0800781f,
- 0.973633f, -0.824219f, -0.25293f, 0.485352f, 0.351562f,
- -0.0771484f, 1.08984f, -0.632812f, 0.240234f, -0.258789f,
- 0.436523f, -0.514648f, 0.491211f, 0.0664062f, -0.244141f,
- -0.148438f, -0.171875f, -0.477539f, -0.459961f, 1.1084f,
- -0.822266f, -0.114258f, -0.192383f, -0.608398f, -0.771484f,
- 1.11133f, -1.25488f, 1.01953f, -0.0839844f, -0.620117f,
- -0.794922f, 0.660156f, -0.876953f, 0.0957031f, -0.242188f,
- -0.711914f, -0.55957f, 0.736328f, -0.649414f, -0.0263672f,
- -0.258789f, -0.498047f, -0.973633f, 0.957031f, -0.660156f,
- 0.186523f, -0.262695f, -0.595703f, -0.787109f, 0.893555f,
- -0.429688f, -0.0234375f, -0.254883f, -0.449219f, -0.783203f,
- 0.90918f, 0.106445f, -0.161133f, -0.287109f, -0.0800781f,
- -0.729492f, 0.933594f, -0.126953f, -0.0742188f, -0.550781f,
- -0.271484f, -0.989258f, 1.00098f, -0.879883f, 0.0234375f,
- -0.543945f, -0.50293f, -1.18945f, 1.24023f, -1.33398f,
- 0.325195f, -0.262695f, -0.307617f, -0.912109f, 1.39062f,
- -1.06055f, 0.0107422f, -0.00292969f, -0.573242f, -0.4375f,
- 1.15625f, -0.651367f, -0.310547f, 0.188477f, -0.730469f,
- -0.121094f, 0.611328f, -0.779297f, 0.335938f, 0.731445f,
- -0.475586f, -0.00390625f, 0.100586f, -0.693359f, 0.254883f,
- 0.813477f, -0.345703f, 0.420898f, -0.400391f, -0.539062f,
- 0.365234f, 0.720703f, 0.0214844f, 0.673828f, -0.370117f,
- 0.0585938f, 0.499023f, 0.523438f, 0.198242f, 0.759766f,
- -0.544922f, 0.543945f, 0.226562f, 0.473633f, 0.34082f,
- 0.595703f, -0.682617f, 0.292969f, -0.217773f, 0.0742188f,
- 0.553711f, 0.762695f, -0.504883f, 0.292969f, 0.0751953f,
- 0.0126953f, 0.427734f, 0.769531f, -0.265625f, 0.552734f,
- -0.0175781f, -0.30957f, 0.253906f, 0.322266f, 0.117188f,
- 0.263672f, -0.706055f, -0.991211f, 0.266602f, 0.501953f,
- 0.00585938f, 0.0341797f, -1.24805f, -1.21777f, 0.488281f,
- 0.461914f, 0.0986328f, 0.362305f, -1.1709f, -1.17188f,
- 0.50293f, 0.458984f, 0.108398f, 0.460938f, -1.52148f,
- -1.27051f, 0.379883f, 0.90625f, 0.0400391f, 0.524414f,
- -1.77832f, -0.951172f, 0.397461f, 0.589844f, 0.520508f,
- 0.439453f, -1.99902f, -0.643555f, 0.313477f, 0.766602f,
- 0.450195f, 0.286133f, -1.29883f, -0.375f, 0.225586f,
- 0.697266f, 0.299805f, 0.108398f, -0.976562f, 0.09375f,
- 0.0361328f, 0.851562f, -0.210938f, 0.0615234f, -0.0898438f,
- 0.59082f, 0.313477f, 0.756836f, -0.731445f, 0.296875f,
- -0.0927734f, 0.552734f, 0.223633f, 0.558594f, -0.806641f,
- 0.00195312f, 0.03125f, 0.728516f, 0.276367f, 0.744141f,
- -0.994141f, 0.197266f, -0.425781f, 0.316406f, 0.046875f,
- 0.601562f, -0.633789f, -0.0576172f, -0.320312f, 0.786133f,
- 0.0986328f, 1.0f, -1.19922f, 0.34668f, -0.546875f,
- 0.481445f, 0.00390625f, 0.876953f, -1.04297f, -0.0507812f,
- -0.775391f, 0.333984f, -0.0175781f, 1.02539f, -1.07129f,
- -0.12207f, -0.212891f, 0.28125f, 0.00488281f, 0.998047f,
- -0.97168f, 0.178711f, -0.444336f, 0.178711f, 0.0136719f,
- 0.896484f, -0.9375f, 0.0117188f, -0.291992f, 0.132812f,
- 0.0234375f, 0.975586f, -0.943359f, -0.0078125f, 0.0546875f,
- 0.244141f, -0.0771484f, 1.05469f, -1.02148f, 0.313477f,
- -0.349609f, 0.148438f, 0.0839844f, 0.619141f, -0.75f,
- -0.589844f, -0.0488281f, 0.0263672f, -0.176758f, 0.697266f,
- -0.691406f, -0.625977f, -0.417969f, 0.408203f, 0.265625f,
- 1.01953f, -1.09863f, 0.106445f, 0.0117188f, 0.157227f,
- 0.424805f, 1.07422f, -0.816406f, 0.498047f, 0.0996094f,
- 0.00585938f, 0.53418f, 0.771484f, -0.610352f, 0.744141f,
- 0.0195312f, 0.0478516f, 0.552734f, 0.734375f, -0.72168f,
- 0.518555f, -0.144531f, -0.0361328f, 0.513672f, 0.822266f,
- -0.736328f, 0.65918f, -0.179688f, -0.104492f, 0.425781f,
- 1.00098f, -0.885742f, 0.739258f, -0.681641f, -0.443359f,
- 0.375977f, 0.884766f, -0.724609f, 0.110352f, -0.289062f,
- -0.414062f, 0.494141f, 0.53125f, -0.422852f, 0.216797f,
- -0.786133f, -0.569336f, 0.749023f, 0.75293f, -0.529297f,
- 0.730469f, -0.911133f, -0.68457f, 0.611328f, 0.959961f,
- -0.623047f, 1.06543f, -0.499023f, -0.392578f, 0.761719f,
- 0.43457f, -0.357422f, 0.631836f, -0.746094f, -0.370117f,
- 0.777344f, 0.379883f, -0.225586f, 0.677734f, -0.478516f,
- -0.358398f, 0.788086f, 0.569336f, -0.34082f, 0.939453f,
- -0.238281f, -0.230469f, 0.861328f, 0.448242f, -0.219727f,
- 0.966797f, -0.310547f, -0.242188f, 0.863281f, 0.369141f,
- -0.0859375f, 0.87207f, -0.400391f, -0.385742f, 0.841797f,
- 0.401367f, -0.0634766f, 0.912109f, -0.458008f, 0.0107422f,
- 0.753906f, 0.758789f, -0.675781f, 0.765625f, -0.342773f,
- -0.123047f, 0.855469f, 0.599609f, -0.490234f, 0.963867f,
- -0.118164f, -0.0117188f, 0.889648f, 0.637695f, -0.607422f,
- 0.803711f, -0.597656f, -0.242188f, 0.855469f, 0.550781f,
- -0.607422f, 0.576172f, -0.759766f, -0.220703f, 0.832031f,
- 0.477539f, -0.491211f, 0.470703f, -0.575195f, -0.0869141f,
- 1.01074f, 0.371094f, -0.25293f, 0.678711f, -0.316406f,
- -0.197266f, 1.04785f, 0.386719f, -0.046875f, 0.967773f,
- -0.761719f, -0.282227f, 0.956055f, 0.270508f, 0.230469f,
- 1.39746f, -0.864258f, -0.417969f, 0.761719f, 0.457031f,
- 0.0263672f, 1.38379f, -0.714844f, -0.288086f, 0.535156f,
- 0.689453f, -0.507812f, 0.68457f, -0.433594f, -0.0908203f,
- 0.210938f, 0.825195f, -0.649414f, 0.326172f, -0.793945f,
- 0.0527344f, 0.0546875f, 0.911133f, -0.616211f, -0.0214844f,
- -0.00195312f, -0.229492f, -0.0253906f, 0.775391f, -0.611328f,
- -0.360352f, 0.0371094f, 0.161133f, 0.0253906f, 0.625f,
- -0.624023f, -0.344727f, -0.146484f, 0.371094f, 0.255859f,
- 1.41797f, -1.27832f, 0.614258f, 0.764648f, 0.869141f,
- 0.426758f, 0.758789f, -1.04395f, 0.401367f, 0.263672f,
- 0.563477f, 0.450195f, 0.774414f, -0.908203f, 0.384766f,
- -0.262695f, 0.664062f, 0.509766f, 0.798828f, -0.757812f,
- 0.770508f, 0.491211f, 0.62207f, 0.487305f, 0.496094f,
- -0.530273f, 0.375977f, 1.18652f, 0.736328f, 0.386719f,
- 0.470703f, -0.647461f, 0.379883f, 0.47168f, 0.834961f,
- 0.289062f, 0.475586f, -0.654297f, 0.448242f, 0.395508f,
- 0.930664f, 0.0830078f, 0.157227f, -0.304688f, 0.0634766f,
- 1.30078f, 0.905273f, -0.102539f, 0.0576172f, -0.303711f,
- -0.334961f, 0.885742f, 0.709961f, -0.143555f, 0.0390625f,
- -0.18457f, -0.498047f, 1.1084f, 0.744141f, 0.0283203f,
- 0.383789f, -0.371094f, -0.126953f, 1.17285f, 0.506836f,
- 0.109375f, 0.680664f, -0.244141f, -0.0830078f, 0.577148f,
- 0.12793f, 0.25f, 0.972656f, -0.328125f, 0.34082f,
- -0.234375f, -0.327148f, 0.470703f, 0.987305f, -0.535156f,
- 0.730469f, -0.957031f, -0.509766f, 0.602539f, 0.938477f,
- -0.640625f, 0.836914f, -1.13672f, -0.56543f, 0.450195f,
- 0.737305f, -0.449219f, 0.649414f, -1.08105f, -0.364258f,
- 0.338867f, 0.667969f, -0.533203f, 0.654297f, -1.0918f,
- -0.505859f, 0.422852f, 0.745117f, -0.443359f, 0.319336f,
- -0.753906f, -0.563477f, 0.374023f, 0.640625f, -0.435547f,
- 0.220703f, -0.868164f, -0.701172f, 0.317383f, 0.702148f,
- -0.527344f, 0.138672f, -0.848633f, -0.431641f, 0.220703f,
- 0.329102f, -0.25293f, -0.232422f, -0.875977f, -0.442383f,
- 0.550781f, 0.783203f, -0.441406f, 0.160156f, -0.107422f,
- 0.0683594f, 0.317383f, 1.12012f, -1.02344f, 0.322266f,
- -0.469727f, -0.151367f, 0.43457f, 0.65625f, -0.745117f,
- 0.216797f, -1.03223f, -0.200195f, 0.240234f, 1.11035f,
- -0.90332f, 0.239258f, 0.0429688f, -0.228516f, 0.00390625f,
- 0.836914f, -0.770508f, -0.280273f, -0.18457f, 0.0117188f,
- 0.214844f, 0.767578f, -0.774414f, -0.0703125f, -0.954102f,
- -0.508789f, -0.046875f, 1.00391f, -0.930664f, 0.0292969f,
- 0.407227f, -0.519531f, 0.0361328f, 0.753906f, -0.777344f,
- -0.0214844f, 0.741211f, -0.27832f, -0.0332031f, 1.15625f,
- -0.862305f, -0.115234f, 0.821289f, -0.598633f, 0.00488281f,
- 0.929688f, -1.01172f, -0.0996094f, 0.351562f, -0.524414f,
- 0.118164f, 1.1709f, -0.938477f, 0.00878906f, 0.948242f,
- -0.475586f, 0.443359f, 0.893555f, -0.597656f, 0.0107422f,
- 0.558594f, -0.87207f, 0.0810547f, 0.487305f, -0.808594f,
- 0.212891f, 0.0878906f, -0.612305f, 0.263672f, 0.400391f,
- -0.709961f, 0.380859f, -0.0839844f, -0.566406f, 0.466797f,
- 0.445312f, -0.769531f, 0.636719f, -0.273438f, -0.648438f,
- 0.34375f, 0.56543f, -0.829102f, 0.417969f, -0.272461f,
- -0.746094f, 0.202148f, 0.421875f, -0.445312f, 0.229492f,
- 0.178711f, -0.408203f, 0.477539f, 0.693359f, -0.675781f,
- 0.145508f, 0.37207f, -0.576172f, 0.0449219f, 0.845703f,
- -0.920898f, -0.0185547f, 0.487305f, -0.460938f, 0.0253906f,
- 1.04785f, -0.87207f, 0.176758f, 0.356445f, -0.217773f,
- 0.0332031f, 0.945312f, -0.556641f, -0.110352f, 0.725586f,
- 0.0810547f, -0.0361328f, 1.11426f, -0.396484f, 0.00488281f,
- 0.743164f, 0.27832f, 0.0175781f, 0.839844f, -0.0371094f,
- -0.00878906f, 0.964844f, 0.547852f, 0.0224609f, 0.518555f,
- 0.386719f, -0.0585938f, 1.11816f, 0.712891f, 0.19043f,
- 0.523438f, 0.429688f, -0.179688f, 1.18164f, 0.40332f,
- 0.241211f, 1.19043f, -0.0234375f, 0.119141f, 0.90918f,
- -0.078125f, 0.250977f, 0.973633f, -0.277344f, 0.227539f,
- 0.908203f, -0.232422f, 0.269531f, 0.807617f, -0.59668f,
- 0.253906f, 0.398438f, -0.506836f, 0.255859f, 0.694336f,
- -0.742188f, 0.345703f, 0.412109f, -0.576172f, 0.189453f,
- 0.708984f, -0.808594f, 0.230469f, 0.242188f, -0.550781f,
- 0.0693359f, 0.695312f, -0.856445f, -0.0253906f, 0.177734f,
- -0.6875f, -0.00976562f, 0.731445f, -0.991211f, -0.03125f,
- 0.0175781f, -0.805664f, -0.192383f, 0.827148f, -0.947266f,
- 0.0820312f, 0.254883f, -0.504883f, -0.259766f, 0.87207f,
- -0.693359f, -0.345703f, 0.639648f, -0.162109f, -0.443359f,
- 1.05176f, -0.595703f, -0.496094f, 0.485352f, -0.0380859f,
- -0.490234f, 0.763672f, -0.382812f, -0.634766f, 0.369141f,
- 0.136719f, -0.650391f, 0.536133f, -0.126953f, -0.901367f,
- 0.275391f, 0.155273f, -0.75293f, 0.476562f, -0.183594f,
- -1.00488f, 0.206055f, -0.0908203f, -1.06836f, 0.3125f,
- -0.183594f, -1.30762f, 0.37793f, -0.185547f, -0.885742f,
- 0.496094f, -0.250977f, -1.14941f, 0.0517578f, -0.242188f,
- -0.753906f, 0.395508f, -0.133789f, -1.10156f, 0.183594f,
- -0.398438f, -0.767578f, 0.951172f, -0.359375f, -0.866211f,
- 0.373047f, -0.0224609f, -0.0537109f, 0.921875f, -0.263672f,
- -0.251953f, 0.455078f, 0.230469f, 0.485352f, 0.84082f,
- 0.0351562f, 0.0810547f, 0.554688f, 0.186523f, 0.774414f,
- 0.720703f, 0.381836f, 0.71875f, 0.495117f, 0.530273f,
- 0.771484f, 0.90332f, 0.34668f, 0.897461f, 0.456055f,
- 0.575195f, 0.560547f, 0.133789f, 0.62793f, 0.795898f,
- 0.400391f, 0.594727f, 0.577148f, -0.142578f, 0.691406f,
- 0.770508f, 0.12793f, 0.679688f, 0.751953f, -0.201172f,
- 0.728516f, 0.805664f, -0.0175781f, 0.46875f, 0.655273f,
- -0.608398f, 0.750977f, 0.540039f, -0.0166016f, 0.30957f,
- 0.755859f, -0.563477f, 0.609375f, 0.763672f, -0.310547f,
- 0.0791016f, 0.668945f, -0.575195f, 0.398438f, 0.767578f,
- -0.47168f, -0.12793f, 0.631836f, -0.768555f, 0.293945f,
- 0.760742f, -0.743164f, -0.311523f, 0.509766f, -0.755859f,
- 0.15918f, 0.614258f, -0.832031f, -0.575195f, 0.448242f,
- -0.771484f, -0.0605469f, 0.341797f, -0.652344f, -0.8125f,
- 0.262695f, -0.205078f, -0.541992f, 0.337891f, -0.8125f,
- -1.20996f, 0.179688f, -0.311523f, -0.682617f, 0.0556641f,
- -0.944336f, -1.29102f, 0.09375f, 0.503906f, -0.87793f,
- -0.0742188f, -0.805664f, -1.53613f, -0.107422f, 0.50293f,
- -0.807617f, -0.423828f, 0.0888672f, -0.847656f, -0.342773f,
- 0.719727f, -0.87793f, -0.336914f, 0.115234f, -0.500977f,
- -0.487305f, 0.395508f, -0.398438f, -0.624023f, 0.3125f,
- -0.0693359f, -0.605469f, 0.429688f, -0.283203f, -0.813477f,
- 0.246094f, 0.0898438f, -0.764648f, 0.356445f, -0.106445f,
- -1.05371f, 0.595703f, 0.251953f, -0.729492f, 0.336914f,
- -0.0595703f, -1.06445f, 0.824219f, 0.320312f, -0.50293f,
- 0.459961f, -0.161133f, -0.820312f, 0.516602f, 0.410156f,
- -0.401367f, 0.407227f, -0.106445f, -0.740234f, 0.546875f,
- 0.663086f, -0.170898f, 0.574219f, -0.419922f, -0.271484f,
- -0.0273438f, 0.239258f, -0.0361328f, 0.80957f, -0.576172f,
- 0.0664062f, 0.0332031f, 0.181641f, 0.245117f, 1.06641f,
- -0.826172f, 0.30957f, -0.241211f, 0.03125f, 0.422852f,
- 1.14648f, -0.916992f, 0.672852f, -0.242188f, 0.0234375f,
- 0.425781f, 1.16895f, -1.08887f, 0.748047f, -0.384766f,
- 0.102539f, 0.457031f, 0.992188f, -0.896484f, 0.65625f,
- -0.144531f, 0.0332031f, 0.295898f, 0.8125f, -0.706055f,
- 0.166016f, -0.237305f, 0.0996094f, 0.130859f, 0.723633f,
- -0.769531f, -0.125f, -0.339844f, -0.277344f, -0.00390625f,
- 1.2959f, -0.999023f, 0.0185547f, 0.0527344f, 0.270508f,
- 0.104492f, 1.05469f, -1.0918f, 0.205078f, 0.00390625f,
- 0.141602f, 0.000976562f, 1.15039f, -1.14844f, 0.0664062f,
- -0.0566406f, 0.0732422f, 0.0302734f, 1.08398f, -1.04004f,
- 0.124023f, -0.114258f, 0.19043f, 0.0263672f, 0.985352f,
- -1.00293f, 0.0634766f, -0.0585938f, 0.257812f, -0.0527344f,
- 0.96875f, -0.990234f, -0.0361328f, -0.179688f, 0.266602f,
- -0.219727f, 0.882812f, -0.879883f, -0.289062f, -0.00292969f,
- 0.351562f, -0.313477f, 0.826172f, -0.84668f, -0.322266f,
- 0.337891f, 0.478516f, -0.426758f, 0.594727f, -0.621094f,
- -0.435547f, 0.676758f, 0.47168f, -0.432617f, 0.333008f,
- -0.338867f, -0.767578f, 0.419922f, 0.576172f, -0.673828f,
- 0.321289f, -0.53125f, -0.96582f, 0.290039f, 0.426758f,
- -0.526367f, 0.230469f, -0.508789f, -1.05859f, 0.195312f,
- 0.493164f, -0.479492f, 0.78418f, -0.992188f, -0.453125f,
- -0.185547f, 0.375977f, -0.291992f, 0.77832f, -0.884766f,
- -0.361328f, 0.438477f, -0.118164f, -0.222656f, 0.923828f,
- -0.796875f, 0.0234375f, -0.375f, 0.0332031f, -0.216797f,
- 0.908203f, -0.984375f, -0.295898f, -0.384766f, 0.0234375f,
- -0.305664f, 1.12695f, -1.04004f, -0.344727f, -0.136719f,
- 0.119141f, -0.385742f, 1.06738f, -1.01855f, -0.245117f,
- -0.106445f, -0.114258f, -0.365234f, 0.962891f, -0.923828f,
- -0.430664f, -0.637695f, -0.347656f, -0.436523f, 0.702148f,
- -0.547852f, -0.618164f, -0.447266f, -0.241211f, -0.462891f,
- 0.729492f, -0.609375f, -0.578125f, -0.486328f, -0.0556641f,
- -0.536133f, 0.50293f, -0.480469f, -0.526367f, -0.210938f,
- -0.0585938f, -0.637695f, 0.723633f, -0.319336f, -0.348633f,
- -0.00292969f, -0.305664f, -0.629883f, 0.431641f, 0.266602f,
- -0.612305f, -0.260742f, 0.0166016f, -0.65332f, -0.272461f,
- 0.800781f, -1.09863f, -0.166992f, -0.0859375f, -0.520508f,
- -0.473633f, 0.586914f, -0.696289f, -0.682617f, -0.149414f,
- 0.198242f, -0.805664f, 1.1377f, 0.444336f, -0.458984f,
- -0.577148f, 0.522461f, -0.683594f, 1.25586f, 0.827148f,
- -0.249023f, -0.851562f, 0.84668f, -0.448242f, 1.26953f,
- 0.855469f, -0.155273f, -0.765625f, 1.0f, -0.337891f,
- 0.973633f, 0.660156f, -0.0859375f, -0.476562f, 1.11035f,
- -0.00976562f, 0.547852f, 0.958984f, -0.34082f, -0.504883f,
- 0.853516f, 0.0664062f, 0.378906f, 0.758789f, -0.749023f,
- -0.509766f, 0.739258f, 0.499023f, -0.144531f, 0.84668f,
- -0.931641f, -0.329102f, 0.740234f, 0.791992f, -0.168945f,
- 0.594727f, -0.435547f, -0.268555f, 0.336914f, 0.817383f,
- -0.430664f, -0.0253906f, -0.735352f, -0.0683594f, 0.152344f,
- 0.725586f, -0.68457f, -0.294922f, -1.25391f, -0.125f,
- 0.0917969f, 0.907227f, -0.633789f, -0.28125f, -0.222656f,
- 0.0f, 0.188477f, 1.06445f, -0.929688f, 0.144531f,
- -0.139648f, -0.00390625f, -0.21582f, 1.21387f, -0.952148f,
- -0.0253906f, -0.389648f, 0.148438f, -0.283203f, 1.14844f,
- -0.890625f, -0.204102f, -0.222656f, -0.0332031f, -0.451172f,
- 0.625f, -0.486328f, -0.716797f, -0.103516f, 0.265625f,
- -0.667969f, 0.231445f, -0.385742f, -0.977539f, 0.111328f,
- 0.222656f, -0.766602f, 0.300781f, -0.390625f, -1.07129f,
- 0.230469f, 0.318359f, -0.787109f, 0.427734f, -0.512695f,
- -0.886719f, 0.240234f, 0.260742f, -0.647461f, 0.566406f,
- -0.686523f, -0.723633f, -0.198242f, 0.0722656f, -0.3125f,
- 0.771484f, -0.725586f, -0.478516f, -0.176758f, -0.113281f,
- -0.262695f, 0.78125f, -0.644531f, -0.210938f, -0.0126953f,
- -0.317383f, 0.0673828f, 0.944336f, -0.764648f, 0.1875f,
- -0.636719f, -0.401367f, 0.118164f, 0.982422f, -0.826172f,
- 0.105469f, -1.0625f, -0.298828f, 0.0537109f, 0.949219f,
- -0.788086f, 0.176758f, -0.611328f, -0.0322266f, 0.0439453f,
- 0.885742f, -0.730469f, 0.301758f, -0.463867f, -0.144531f,
- -0.180664f, 1.08398f, -0.97168f, -0.470703f, 0.128906f,
- 0.0146484f, -0.112305f, 0.889648f, -0.946289f, -0.165039f,
- -1.34277f, -0.258789f, -0.211914f, 0.962891f, -0.844727f,
- -0.588867f, 0.144531f, -0.228516f, -0.207031f, 0.974609f,
- -0.848633f, -0.0273438f, -0.570312f, -0.228516f, 0.00195312f,
- 1.03125f, -0.977539f, -0.0605469f, -0.733398f, -0.0908203f,
- 0.0996094f, 0.856445f, -0.854492f, -0.000976562f, -0.458008f,
- -0.135742f, 0.222656f, 1.34082f, -1.13574f, 0.639648f,
- 0.015625f, -0.234375f, 0.136719f, 0.835938f, -0.822266f,
- -0.114258f, -0.673828f, -0.186523f, 0.169922f, 0.925781f,
- -0.839844f, 0.175781f, -0.394531f, 0.224609f, -0.0458984f,
- 0.94043f, -0.964844f, -0.0556641f, -0.15332f, 0.163086f,
- -0.0175781f, 0.944336f, -0.951172f, -0.0478516f, -0.302734f,
- 0.117188f, -0.00683594f, 0.973633f, -0.970703f, -0.0810547f,
- -0.301758f, 0.09375f, -0.000976562f, 1.01953f, -0.978516f,
- 0.0292969f, -0.293945f, 0.0683594f, -0.00683594f, 1.0127f,
- -0.966797f, -0.0175781f, -0.314453f, 0.181641f, 0.0126953f,
- 0.982422f, -0.990234f, 0.03125f, -0.194336f, 0.155273f,
- -0.00292969f, 0.962891f, -0.932617f, -0.00390625f, -0.0976562f,
- 0.144531f, -0.0205078f, 0.913086f, -0.914062f, -0.0908203f,
- -0.296875f, 0.166992f, -0.015625f, 0.930664f, -0.950195f,
- -0.0888672f, -0.28418f, 0.196289f, -0.0107422f, 0.953125f,
- -0.960938f, -0.0273438f, -0.195312f, 0.125f, 0.0126953f,
- 0.986328f, -0.951172f, 0.0634766f, -0.231445f, 0.162109f,
- -0.0136719f, 0.981445f, -0.974609f, -0.0449219f, -0.0761719f,
- 0.186523f, -0.015625f, 0.950195f, -0.962891f, -0.0576172f,
- -0.162109f, 0.154297f, -0.0292969f, 0.970703f, -0.973633f,
- -0.0136719f, -0.394531f, 0.102539f, -0.00878906f, 0.970703f,
- -0.915039f, 0.0546875f, -0.313477f, 0.110352f, -0.0234375f,
- 0.947266f, -0.922852f, -0.139648f, -0.181641f, 0.12207f,
- 0.0625f, 0.780273f, -0.899414f, -0.84375f, -0.0888672f,
- -0.318359f, 1.00781f, 0.888672f, 0.27832f, 0.0195312f,
- -1.08594f, 0.137695f, 0.56543f, 1.12891f, -0.235352f,
- 1.65039f, -0.0820312f, 0.100586f, 0.987305f, 0.261719f,
- -0.0615234f, 1.32227f, 0.669922f, 0.0f, 1.04102f,
- 0.231445f, -0.174805f, 1.11426f, -0.261719f, -0.0527344f,
- 0.958008f, 0.332031f, -0.28418f, 1.26953f, -0.612305f,
- 0.208984f, 0.964844f, 1.15625f, -0.486328f, 2.0f,
- -0.760742f, 0.0458984f, 1.44629f, 1.21289f, 0.924805f,
- 1.1875f, -0.259766f, 0.114258f, 0.210938f, 0.486328f,
- -0.422852f, -0.984375f, 1.08789f, 0.453125f, -0.229492f,
- 0.457031f, -0.682617f, -0.500977f, 0.210938f, 0.391602f,
- -0.303711f, 0.725586f, -0.80957f, -0.391602f, 0.0976562f,
- 0.958984f, 0.0185547f, 1.69922f, -1.36035f, 1.98242f,
- -0.392578f, -0.461914f, -0.37793f, -0.0712891f, 0.928711f,
- -1.60254f, 0.133789f, -0.0419922f, -1.12109f, -0.201172f,
- 0.0732422f, -1.99902f, 0.629883f, -0.174805f, -0.894531f,
- 0.0742188f, -0.147461f, -1.23633f, -0.259766f, 0.0410156f,
- -1.00879f, -0.0166016f, -0.0205078f, -1.99902f, 0.267578f,
- -0.0664062f, -0.164062f, 0.511719f, 0.825195f, -1.21191f,
- -0.515625f, 0.46875f, 0.0898438f, 1.09766f, -0.144531f,
- 1.59375f, 0.166016f, 0.428711f, 0.294922f, 0.8125f,
- -0.770508f, 0.535156f, 0.280273f, 0.231445f, 0.504883f,
- 0.864258f, -0.884766f, 0.524414f, -0.183594f, 0.0820312f,
- 0.713867f, 0.405273f, -0.520508f, -0.326172f, 0.0126953f,
- -0.310547f, 1.38086f, 0.831055f, 0.380859f, 1.3125f,
- -1.60645f, 0.151367f, 1.01953f, 0.580078f, -0.0283203f,
- 2.0f, 1.03516f, -0.0634766f, 1.03418f, 0.332031f,
- -0.0859375f, 1.32129f, -0.234375f, 0.0917969f, 1.49219f,
- 0.30957f, -0.118164f, 1.76953f, -0.717773f, 0.174805f,
- 1.59863f, 0.0947266f, 1.1875f, 0.429688f, 0.442383f,
- 0.00976562f, 0.435547f, 0.345703f, -0.114258f, 0.238281f,
- -0.689453f, 0.30957f, 0.0732422f, 0.606445f, -0.650391f,
- -0.0947266f, -0.03125f, 0.183594f, -0.144531f, 0.746094f,
- -0.793945f, -0.574219f, -0.0742188f, 0.196289f, -0.199219f,
- 1.13867f, -1.11816f, -0.227539f, -0.462891f, 0.0517578f,
- -0.0341797f, 1.18945f, -1.1084f, -0.0283203f, -0.342773f,
- 0.174805f, -0.0078125f, 1.05176f, -1.03906f, 0.0253906f,
- -0.375977f, -0.169922f, 0.00292969f, 0.837891f, -0.716797f,
- -0.0205078f, -0.373047f, 0.293945f, 0.0175781f, 0.833984f,
- -0.916016f, -0.0996094f, -0.149414f, 0.200195f, -0.00195312f,
- 0.865234f, -0.916016f, -0.0117188f, -0.390625f, 0.290039f,
- 0.0234375f, 0.985352f, -0.987305f, 0.0439453f, -0.214844f,
- 0.0917969f, 0.0615234f, 1.02832f, -1.00684f, 0.152344f,
- -0.452148f, 0.0615234f, -0.00585938f, 1.02148f, -0.976562f,
- -0.0927734f, -0.286133f, 0.189453f, -0.0644531f, 1.02539f,
- -1.02246f, 0.0166016f, -0.243164f, 0.109375f, -0.09375f,
- 0.981445f, -0.931641f, 0.0458984f, -0.460938f, 0.0537109f,
- -0.0429688f, 1.05859f, -0.850586f, 0.0771484f, -0.0507812f,
- 0.108398f, -0.177734f, 0.779297f, -0.74707f, -0.378906f,
- -0.413086f, -0.205078f, -0.0488281f, 0.946289f, -0.760742f,
- -0.180664f, -0.228516f, -0.208008f, -0.0615234f, 1.05371f,
- -0.953125f, -0.34668f, -1.16797f, -0.0322266f, -0.276367f,
- 1.06641f, -0.863281f, -0.0244141f, -0.290039f, -0.0429688f,
- 0.0439453f, 1.28223f, -1.06348f, 0.181641f, -0.514648f,
- -0.0214844f, 0.0f, 0.861328f, -0.738281f, -0.0449219f,
- 0.0722656f, 0.125f, 0.193359f, 1.15039f, -1.0957f,
- 0.225586f, -0.137695f, 0.12207f, -0.0400391f, 0.732422f,
- -0.818359f, -0.40918f, -0.672852f, -0.425781f, 0.839844f,
- 0.856445f, 0.198242f, -0.363281f, 0.206055f, -0.214844f,
- 1.20215f, 0.943359f, 0.0195312f, 2.0f, 0.874023f,
- 0.0839844f, 0.827148f, 0.587891f, -0.384766f, 1.57715f,
- 0.108398f, -0.116211f, 0.952148f, 0.246094f, -0.336914f,
- 0.463867f, -0.740234f, 0.0185547f, 0.950195f, 0.55957f,
- -0.442383f, 1.09668f, 0.0585938f, 0.132812f, 1.37695f,
- 2.0f, -0.59375f, 2.0f, -0.676758f, -0.199219f,
- -0.0205078f, 0.268555f, -0.5f, -1.94629f, 1.2832f,
- 0.0078125f, -0.201172f, 0.674805f, -0.708984f, -0.490234f,
- -0.515625f, 0.0439453f, -0.0830078f, 1.14355f, -1.01953f,
- -0.0224609f, -0.282227f, 0.0214844f, -0.078125f, 1.09668f,
- -0.961914f, 0.0253906f, -0.56543f, 0.30957f, 0.964844f,
- 1.56836f, -0.272461f, 1.91309f, -0.53418f, -0.695312f,
- -0.878906f, -0.0146484f, 0.277344f, -1.6416f, 0.0244141f,
- 0.0898438f, -0.785156f, 0.229492f, -0.259766f, -1.06055f,
- -0.241211f, 0.0224609f, -0.769531f, 0.748047f, -0.680664f,
- -0.629883f, -0.549805f, -0.195312f, -0.796875f, -0.399414f,
- 0.0859375f, -1.99902f, 0.24707f, 0.208984f, 0.563477f,
- 1.91797f, 0.0585938f, 2.0f, -0.990234f, 0.327148f,
- -0.0917969f, 1.16797f, -0.94043f, 0.623047f, -1.1748f,
- -0.0205078f, -0.0449219f, 0.883789f, -0.905273f, -0.370117f,
- -0.601562f, 0.0332031f, -0.0527344f, 0.928711f, -0.833984f,
- -0.180664f, -0.267578f, 0.0351562f, -0.0175781f, 0.998047f,
- -0.922852f, -0.000976562f, -0.371094f, 0.0341797f, -0.0166016f,
- 0.977539f, -0.900391f, -0.00292969f, -0.37207f, 0.0449219f,
- -0.0439453f, 0.989258f, -0.904297f, -0.0576172f, -0.37207f,
- 0.270508f, -0.368164f, 0.0576172f, -0.607422f, -1.95508f,
- -0.182617f, -0.390625f, 1.62598f, 1.52734f, 1.2793f,
- 2.0f, -1.99902f, 0.226562f, 1.01465f, 0.669922f,
- -0.373047f, 1.71484f, 1.99707f, -0.0654297f, 1.00391f,
- 0.330078f, -0.432617f, 0.704102f, -0.96875f, 0.0800781f,
- 0.964844f, 0.702148f, -0.5625f, 1.39746f, -0.203125f,
- 0.255859f, 1.74512f, 1.52539f, 0.417969f, 2.0f,
- -0.0976562f, -0.482422f, 0.09375f, 0.151367f, -0.328125f,
- -1.88867f, -0.0595703f, 0.117188f, 0.0751953f, 0.870117f,
- -0.870117f, 0.046875f, -0.280273f, 0.125f, 0.124023f,
- 1.0791f, -0.964844f, 0.338867f, -0.0791016f, 0.0751953f,
- 0.12207f, 0.920898f, -0.888672f, 0.0273438f, -0.250977f,
- 0.00488281f, 0.165039f, 1.01074f, -0.944336f, 0.137695f,
- -0.387695f, -0.142578f, 0.238281f, 1.77246f, -1.42285f,
- 0.90625f, -0.856445f, 0.0556641f, -0.219727f, -0.785156f,
- 1.47266f, -1.99902f, 1.27246f, -0.132812f, -0.746094f,
- 0.172852f, -0.0830078f, -1.3584f, 0.638672f, 0.0175781f,
- -0.786133f, 0.754883f, -0.729492f, -0.808594f, -0.291992f,
- 0.170898f, -0.746094f, 0.623047f, -0.667969f, -0.743164f,
- -0.241211f, 0.0693359f, -0.725586f, 0.495117f, -0.545898f,
- -0.969727f, -0.131836f, 0.0234375f, -0.52832f, 0.280273f,
- -0.327148f, -1.0498f, -0.210938f, -0.253906f, 0.234375f,
- 0.661133f, -0.0332031f, -0.708008f, -0.458984f, 0.31543f,
- 0.480469f, 1.59082f, -1.22266f, 1.41602f, -0.270508f,
- 0.263672f, 0.318359f, 1.21289f, -1.12207f, 0.853516f,
- -0.272461f, 0.158203f, 1.84766f, 2.0f, 0.341797f,
- 2.0f, -0.788086f, -0.264648f, -0.326172f, -1.25977f,
- 0.842773f, -1.99902f, -0.947266f, 0.249023f, -0.642578f,
- 0.745117f, -0.744141f, -0.404297f, -0.266602f, 0.0898438f,
- -0.568359f, 0.501953f, -0.494141f, -0.858398f, 0.0722656f,
- -0.543945f, 1.16895f, 1.12012f, 1.47461f, -1.12988f,
- -0.27832f, 0.53125f, 0.875f, 0.845703f, -0.318359f,
- 1.68555f, 1.29199f, -0.00195312f, 0.861328f, 0.601562f,
- -0.519531f, 1.16211f, -1.05957f, 0.0507812f, 0.904297f,
- 0.625977f, -0.525391f, 1.16797f, -0.163086f, 0.125977f,
- 1.99902f, 2.0f, 2.0f, 2.0f, -0.00195312f,
- -1.11719f, -0.3125f, -0.320312f, 0.585938f, -1.99902f,
- 0.647461f, 0.198242f, -0.538086f, 0.993164f, -0.897461f,
- -0.227539f, -0.354492f, 0.0976562f, -0.416016f, 0.623047f,
- -0.682617f, -0.832031f, -0.223633f, -0.160156f, 0.0751953f,
- -0.791992f, 1.13379f, -1.99902f, -0.755859f, 0.669922f,
- 1.02637f, 1.26758f, -0.293945f, 2.0f, 1.93457f,
- -0.0126953f, 0.773438f, 0.475586f, -0.59375f, 0.329102f,
- -0.588867f, 0.113281f, 0.740234f, 0.749023f, -0.716797f,
- 0.941406f, -0.0878906f, 0.71875f, 1.8125f, 2.0f,
- -0.289062f, 2.0f, -1.01074f, 0.0117188f, -0.183594f,
- -0.969727f, 0.893555f, -1.99902f, 0.333008f, 0.188477f,
- -0.643555f, 0.504883f, -0.511719f, -0.804688f, -0.957031f,
- 0.0546875f, -0.305664f, -0.0449219f, -0.145508f, -1.875f,
- 0.0996094f, -0.155273f, 1.59668f, 1.5293f, 1.46973f,
- 2.0f, -1.9834f, 0.375f, 1.20508f, 0.736328f,
- -0.399414f, 2.0f, 2.0f, 0.123047f, 0.834961f,
- 1.04004f, -0.808594f, 1.31934f, -0.634766f, 0.548828f,
- 0.129883f, -1.64746f, 2.0f, -1.99902f, 0.819336f,
- 0.0273438f, -0.254883f, 0.722656f, -0.691406f, -0.464844f,
- -1.05566f, 0.0634766f, -0.206055f, 1.02148f, -0.90332f,
- 0.0595703f, -0.03125f, 0.129883f, -0.177734f, 0.697266f,
- -0.713867f, -0.351562f, -0.169922f, -0.119141f, -0.172852f,
- 1.01855f, -0.989258f, -0.12793f, -0.670898f, -0.146484f,
- -0.261719f, 1.16602f, -1.05664f, -0.302734f, -0.25293f,
- -0.0458984f, -0.198242f, 0.90625f, -0.876953f, -0.144531f,
- -0.424805f, -0.151367f, -0.147461f, 0.926758f, -0.835938f,
- -0.191406f, -0.326172f, -0.128906f, -0.216797f, 0.910156f,
- -0.851562f, -0.291992f, -0.549805f, -0.0517578f, -0.0869141f,
- 1.07715f, -0.977539f, -0.0361328f, -0.418945f, -0.148438f,
- -0.133789f, 0.907227f, -0.836914f, -0.213867f, -0.768555f,
- -0.0664062f, 0.182617f, 1.0498f, -0.915039f, 0.400391f,
- -0.523438f, 0.015625f, 0.0f, 1.13184f, -1.09961f,
- -0.244141f, -0.330078f, -0.115234f, 0.0166016f, 0.944336f,
- -0.868164f, -0.430664f, -0.246094f, -0.0185547f, -0.00976562f,
- 0.819336f, -0.822266f, -0.380859f, -1.1709f, 0.0605469f,
- -0.0498047f, 0.777344f, -0.703125f, 0.0800781f, -0.451172f,
- 0.304688f, 0.0517578f, 0.825195f, -0.771484f, 0.145508f,
- 0.495117f, -0.0888672f, -0.243164f, 1.48145f, -1.22168f,
- 0.0615234f, -0.192383f, -0.0537109f, 0.0195312f, 1.21582f,
- -1.06836f, 0.175781f, -0.394531f, 0.237305f, -0.0126953f,
- 0.800781f, -0.920898f, -0.12207f, -0.391602f, -0.0917969f,
- -0.0791016f, 1.08008f, -1.03613f, -0.0654297f, -0.423828f,
- 0.0478516f, -0.0253906f, 0.873047f, -0.884766f, -0.0722656f,
- -0.579102f, 0.0136719f, -0.0917969f, 0.954102f, -0.922852f,
- -0.172852f, -0.244141f, 0.0f, -0.141602f, 0.929688f,
- -0.894531f, -0.179688f, -0.291992f, 0.0283203f, -0.0947266f,
- 0.961914f, -0.926758f, -0.135742f, -0.329102f, 0.0576172f,
- -0.0351562f, 0.999023f, -0.958984f, -0.0498047f, -0.248047f,
- 0.0869141f, -0.078125f, 1.01074f, -0.954102f, 0.00976562f,
- -0.217773f, 0.0986328f, -0.0556641f, 0.916992f, -0.914062f,
- -0.136719f, -0.219727f, 0.0488281f, -0.139648f, 0.985352f,
- -0.952148f, -0.152344f, -0.286133f, 0.0166016f, -0.0917969f,
- 1.0459f, -0.972656f, -0.0605469f, -0.228516f, 0.0507812f,
- -0.0810547f, 0.956055f, -0.9375f, -0.18457f, -0.275391f,
- 0.0703125f, -0.0986328f, 0.948242f, -0.928711f, -0.162109f,
- -0.333008f};
+ -0.166016f, -0.00488281f, 0.924805f, -0.770508f, -0.0488281f,
+ -0.510742f, -0.199219f, -0.0078125f, 0.953125f, -0.782227f,
+ -0.0244141f, -0.652344f, -0.177734f, -0.0136719f, 0.936523f,
+ -0.772461f, -0.0527344f, -0.59375f, -0.176758f, -0.00878906f,
+ 0.9375f, -0.777344f, -0.0419922f, -0.637695f, -0.165039f,
+ -0.00878906f, 0.942383f, -0.782227f, -0.046875f, -0.613281f,
+ -0.180664f, -0.00976562f, 0.943359f, -0.777344f, -0.0419922f,
+ -0.601562f, -0.189453f, -0.00488281f, 0.943359f, -0.776367f,
+ -0.0263672f, -0.613281f, -0.166992f, -0.00488281f, 0.935547f,
+ -0.78125f, -0.0380859f, -0.609375f, -0.176758f, -0.00878906f,
+ 0.947266f, -0.790039f, -0.0576172f, -0.585938f, -0.173828f,
+ -0.0126953f, 0.93457f, -0.780273f, -0.0654297f, -0.666016f,
+ -0.169922f, -0.00195312f, 0.928711f, -0.775391f, -0.0351562f,
+ -0.561523f, -0.193359f, 0.0f, 0.941406f, -0.795898f,
+ -0.0478516f, -0.640625f, -0.162109f, -0.00585938f, 0.917969f,
+ -0.768555f, -0.0146484f, -0.685547f, -0.166992f, -0.0136719f,
+ 0.921875f, -0.755859f, -0.0166016f, -0.425781f, -0.175781f,
+ -0.0810547f, 1.00098f, -0.802734f, -0.117188f, -0.585938f,
+ -0.210938f, 0.0214844f, 0.881836f, -0.750977f, -0.0302734f,
+ -0.677734f, -0.285156f, 0.00976562f, 0.967773f, -0.763672f,
+ -0.0283203f, -0.850586f, -0.222656f, -0.0136719f, 0.943359f,
+ -0.763672f, -0.0507812f, -0.640625f, -0.236328f, 0.0859375f,
+ 0.892578f, -0.742188f, 0.0302734f, -0.484375f, -0.269531f,
+ 0.0263672f, 0.913086f, -0.714844f, -0.00585938f, -0.745117f,
+ -0.275391f, 0.0927734f, 0.977539f, -0.776367f, -0.078125f,
+ -0.750977f, -0.155273f, -0.0341797f, 1.2334f, -1.06445f,
+ -0.0478516f, -0.823242f, -0.196289f, 0.046875f, 1.19141f,
+ -1.00391f, -0.140625f, -0.541016f, 0.0917969f, 0.21582f,
+ 0.717773f, -0.764648f, -0.0341797f, -0.607422f, -0.0351562f,
+ 0.0888672f, 0.207031f, -0.214844f, -0.18457f, -0.0664062f,
+ -0.0898438f, 0.0556641f, 0.418945f, -0.232422f, 0.43457f,
+ 0.0361328f, 0.143555f, 0.376953f, 1.23633f, -1.09082f,
+ 0.529297f, 0.0507812f, 0.205078f, 0.438477f, 1.66602f,
+ -1.59668f, 0.325195f, -1.20996f, -0.0791016f, 0.404297f,
+ 1.50977f, -1.40918f, 0.31543f, -1.30273f, -0.0654297f,
+ 0.141602f, 0.699219f, -0.589844f, 0.0732422f, -0.27832f,
+ 0.00488281f, 0.00683594f, 0.0566406f, -0.0410156f, -0.0292969f,
+ -0.0234375f, -0.0488281f, -0.00195312f, -0.0292969f, 0.0849609f,
+ -0.139648f, 0.0585938f, 0.677734f, 0.667969f, 1.36523f,
+ -1.11816f, 0.412109f, 0.844727f, 0.142578f, 0.790039f,
+ 1.73145f, -1.68066f, 0.464844f, -1.29492f, -0.0800781f,
+ 0.803711f, 0.879883f, -0.765625f, -0.0400391f, -0.616211f,
+ -0.170898f, 0.879883f, 0.510742f, 0.158203f, 0.381836f,
+ -0.270508f, -0.0693359f, 0.651367f, 0.431641f, 0.104492f,
+ 0.991211f, -0.0634766f, -0.0478516f, 0.750977f, 0.283203f,
+ -0.0332031f, 1.52051f, -0.00195312f, -0.201172f, 1.08984f,
+ 0.173828f, 0.0849609f, 1.44141f, -0.214844f, -0.0107422f,
+ 1.29785f, 0.520508f, 0.00488281f, 1.73047f, -0.523438f,
+ 0.136719f, 1.42188f, 0.987305f, 0.0527344f, 1.74707f,
+ -0.525391f, 0.34668f, 0.469727f, 0.428711f, 0.114258f,
+ -0.788086f, 0.177734f, 0.400391f, -0.106445f, 0.328125f,
+ -0.566406f, -0.948242f, 0.670898f, 0.467773f, -0.21875f,
+ 0.55957f, -0.767578f, -0.232422f, 0.195312f, 0.625f,
+ -0.271484f, 0.865234f, -0.765625f, 0.299805f, 0.0703125f,
+ 0.378906f, -0.526367f, 0.548828f, -0.231445f, -0.569336f,
+ 0.455078f, 0.303711f, -0.866211f, -0.485352f, 0.566406f,
+ -1.60547f, 0.481445f, 0.183594f, -0.782227f, -0.260742f,
+ 0.243164f, -1.41504f, 0.373047f, 0.172852f, -0.935547f,
+ -0.412109f, 0.133789f, -1.69727f, 0.178711f, 0.407227f,
+ -0.952148f, -0.227539f, 0.0751953f, -1.67188f, 0.339844f,
+ 0.498047f, -0.795898f, 0.209961f, 0.177734f, -1.3916f,
+ 0.458984f, 0.295898f, 0.0390625f, 0.697266f, 0.258789f,
+ -0.0703125f, -0.131836f, 0.56543f, 0.250977f, 0.913086f,
+ -0.353516f, 0.90332f, 0.191406f, 0.708008f, 0.352539f,
+ 0.853516f, -0.839844f, 0.955078f, 0.636719f, 0.657227f,
+ 0.389648f, 0.620117f, -0.725586f, 0.43457f, 0.485352f,
+ 0.424805f, 0.479492f, 0.287109f, -0.505859f, -0.209961f,
+ 0.0927734f, 0.21582f, 0.709961f, 0.492188f, -0.413086f,
+ -0.0869141f, 0.0673828f, -0.119141f, 1.20508f, 0.392578f,
+ 0.229492f, 0.927734f, -0.297852f, 0.142578f, 1.0293f,
+ 0.430664f, 0.0449219f, 1.71875f, -0.0283203f, 0.0107422f,
+ 1.18164f, 0.0517578f, 0.0751953f, 1.80273f, -0.0693359f,
+ -0.19043f, 1.1748f, 0.236328f, 0.0839844f, 1.78711f,
+ -0.472656f, -0.270508f, 1.10254f, 0.964844f, 0.118164f,
+ 1.75684f, -0.901367f, -0.211914f, 1.11133f, 0.65625f,
+ 0.308594f, 0.142578f, 0.396484f, 0.239258f, 0.0800781f,
+ 0.973633f, -0.824219f, -0.25293f, 0.485352f, 0.351562f,
+ -0.0771484f, 1.08984f, -0.632812f, 0.240234f, -0.258789f,
+ 0.436523f, -0.514648f, 0.491211f, 0.0664062f, -0.244141f,
+ -0.148438f, -0.171875f, -0.477539f, -0.459961f, 1.1084f,
+ -0.822266f, -0.114258f, -0.192383f, -0.608398f, -0.771484f,
+ 1.11133f, -1.25488f, 1.01953f, -0.0839844f, -0.620117f,
+ -0.794922f, 0.660156f, -0.876953f, 0.0957031f, -0.242188f,
+ -0.711914f, -0.55957f, 0.736328f, -0.649414f, -0.0263672f,
+ -0.258789f, -0.498047f, -0.973633f, 0.957031f, -0.660156f,
+ 0.186523f, -0.262695f, -0.595703f, -0.787109f, 0.893555f,
+ -0.429688f, -0.0234375f, -0.254883f, -0.449219f, -0.783203f,
+ 0.90918f, 0.106445f, -0.161133f, -0.287109f, -0.0800781f,
+ -0.729492f, 0.933594f, -0.126953f, -0.0742188f, -0.550781f,
+ -0.271484f, -0.989258f, 1.00098f, -0.879883f, 0.0234375f,
+ -0.543945f, -0.50293f, -1.18945f, 1.24023f, -1.33398f,
+ 0.325195f, -0.262695f, -0.307617f, -0.912109f, 1.39062f,
+ -1.06055f, 0.0107422f, -0.00292969f, -0.573242f, -0.4375f,
+ 1.15625f, -0.651367f, -0.310547f, 0.188477f, -0.730469f,
+ -0.121094f, 0.611328f, -0.779297f, 0.335938f, 0.731445f,
+ -0.475586f, -0.00390625f, 0.100586f, -0.693359f, 0.254883f,
+ 0.813477f, -0.345703f, 0.420898f, -0.400391f, -0.539062f,
+ 0.365234f, 0.720703f, 0.0214844f, 0.673828f, -0.370117f,
+ 0.0585938f, 0.499023f, 0.523438f, 0.198242f, 0.759766f,
+ -0.544922f, 0.543945f, 0.226562f, 0.473633f, 0.34082f,
+ 0.595703f, -0.682617f, 0.292969f, -0.217773f, 0.0742188f,
+ 0.553711f, 0.762695f, -0.504883f, 0.292969f, 0.0751953f,
+ 0.0126953f, 0.427734f, 0.769531f, -0.265625f, 0.552734f,
+ -0.0175781f, -0.30957f, 0.253906f, 0.322266f, 0.117188f,
+ 0.263672f, -0.706055f, -0.991211f, 0.266602f, 0.501953f,
+ 0.00585938f, 0.0341797f, -1.24805f, -1.21777f, 0.488281f,
+ 0.461914f, 0.0986328f, 0.362305f, -1.1709f, -1.17188f,
+ 0.50293f, 0.458984f, 0.108398f, 0.460938f, -1.52148f,
+ -1.27051f, 0.379883f, 0.90625f, 0.0400391f, 0.524414f,
+ -1.77832f, -0.951172f, 0.397461f, 0.589844f, 0.520508f,
+ 0.439453f, -1.99902f, -0.643555f, 0.313477f, 0.766602f,
+ 0.450195f, 0.286133f, -1.29883f, -0.375f, 0.225586f,
+ 0.697266f, 0.299805f, 0.108398f, -0.976562f, 0.09375f,
+ 0.0361328f, 0.851562f, -0.210938f, 0.0615234f, -0.0898438f,
+ 0.59082f, 0.313477f, 0.756836f, -0.731445f, 0.296875f,
+ -0.0927734f, 0.552734f, 0.223633f, 0.558594f, -0.806641f,
+ 0.00195312f, 0.03125f, 0.728516f, 0.276367f, 0.744141f,
+ -0.994141f, 0.197266f, -0.425781f, 0.316406f, 0.046875f,
+ 0.601562f, -0.633789f, -0.0576172f, -0.320312f, 0.786133f,
+ 0.0986328f, 1.0f, -1.19922f, 0.34668f, -0.546875f,
+ 0.481445f, 0.00390625f, 0.876953f, -1.04297f, -0.0507812f,
+ -0.775391f, 0.333984f, -0.0175781f, 1.02539f, -1.07129f,
+ -0.12207f, -0.212891f, 0.28125f, 0.00488281f, 0.998047f,
+ -0.97168f, 0.178711f, -0.444336f, 0.178711f, 0.0136719f,
+ 0.896484f, -0.9375f, 0.0117188f, -0.291992f, 0.132812f,
+ 0.0234375f, 0.975586f, -0.943359f, -0.0078125f, 0.0546875f,
+ 0.244141f, -0.0771484f, 1.05469f, -1.02148f, 0.313477f,
+ -0.349609f, 0.148438f, 0.0839844f, 0.619141f, -0.75f,
+ -0.589844f, -0.0488281f, 0.0263672f, -0.176758f, 0.697266f,
+ -0.691406f, -0.625977f, -0.417969f, 0.408203f, 0.265625f,
+ 1.01953f, -1.09863f, 0.106445f, 0.0117188f, 0.157227f,
+ 0.424805f, 1.07422f, -0.816406f, 0.498047f, 0.0996094f,
+ 0.00585938f, 0.53418f, 0.771484f, -0.610352f, 0.744141f,
+ 0.0195312f, 0.0478516f, 0.552734f, 0.734375f, -0.72168f,
+ 0.518555f, -0.144531f, -0.0361328f, 0.513672f, 0.822266f,
+ -0.736328f, 0.65918f, -0.179688f, -0.104492f, 0.425781f,
+ 1.00098f, -0.885742f, 0.739258f, -0.681641f, -0.443359f,
+ 0.375977f, 0.884766f, -0.724609f, 0.110352f, -0.289062f,
+ -0.414062f, 0.494141f, 0.53125f, -0.422852f, 0.216797f,
+ -0.786133f, -0.569336f, 0.749023f, 0.75293f, -0.529297f,
+ 0.730469f, -0.911133f, -0.68457f, 0.611328f, 0.959961f,
+ -0.623047f, 1.06543f, -0.499023f, -0.392578f, 0.761719f,
+ 0.43457f, -0.357422f, 0.631836f, -0.746094f, -0.370117f,
+ 0.777344f, 0.379883f, -0.225586f, 0.677734f, -0.478516f,
+ -0.358398f, 0.788086f, 0.569336f, -0.34082f, 0.939453f,
+ -0.238281f, -0.230469f, 0.861328f, 0.448242f, -0.219727f,
+ 0.966797f, -0.310547f, -0.242188f, 0.863281f, 0.369141f,
+ -0.0859375f, 0.87207f, -0.400391f, -0.385742f, 0.841797f,
+ 0.401367f, -0.0634766f, 0.912109f, -0.458008f, 0.0107422f,
+ 0.753906f, 0.758789f, -0.675781f, 0.765625f, -0.342773f,
+ -0.123047f, 0.855469f, 0.599609f, -0.490234f, 0.963867f,
+ -0.118164f, -0.0117188f, 0.889648f, 0.637695f, -0.607422f,
+ 0.803711f, -0.597656f, -0.242188f, 0.855469f, 0.550781f,
+ -0.607422f, 0.576172f, -0.759766f, -0.220703f, 0.832031f,
+ 0.477539f, -0.491211f, 0.470703f, -0.575195f, -0.0869141f,
+ 1.01074f, 0.371094f, -0.25293f, 0.678711f, -0.316406f,
+ -0.197266f, 1.04785f, 0.386719f, -0.046875f, 0.967773f,
+ -0.761719f, -0.282227f, 0.956055f, 0.270508f, 0.230469f,
+ 1.39746f, -0.864258f, -0.417969f, 0.761719f, 0.457031f,
+ 0.0263672f, 1.38379f, -0.714844f, -0.288086f, 0.535156f,
+ 0.689453f, -0.507812f, 0.68457f, -0.433594f, -0.0908203f,
+ 0.210938f, 0.825195f, -0.649414f, 0.326172f, -0.793945f,
+ 0.0527344f, 0.0546875f, 0.911133f, -0.616211f, -0.0214844f,
+ -0.00195312f, -0.229492f, -0.0253906f, 0.775391f, -0.611328f,
+ -0.360352f, 0.0371094f, 0.161133f, 0.0253906f, 0.625f,
+ -0.624023f, -0.344727f, -0.146484f, 0.371094f, 0.255859f,
+ 1.41797f, -1.27832f, 0.614258f, 0.764648f, 0.869141f,
+ 0.426758f, 0.758789f, -1.04395f, 0.401367f, 0.263672f,
+ 0.563477f, 0.450195f, 0.774414f, -0.908203f, 0.384766f,
+ -0.262695f, 0.664062f, 0.509766f, 0.798828f, -0.757812f,
+ 0.770508f, 0.491211f, 0.62207f, 0.487305f, 0.496094f,
+ -0.530273f, 0.375977f, 1.18652f, 0.736328f, 0.386719f,
+ 0.470703f, -0.647461f, 0.379883f, 0.47168f, 0.834961f,
+ 0.289062f, 0.475586f, -0.654297f, 0.448242f, 0.395508f,
+ 0.930664f, 0.0830078f, 0.157227f, -0.304688f, 0.0634766f,
+ 1.30078f, 0.905273f, -0.102539f, 0.0576172f, -0.303711f,
+ -0.334961f, 0.885742f, 0.709961f, -0.143555f, 0.0390625f,
+ -0.18457f, -0.498047f, 1.1084f, 0.744141f, 0.0283203f,
+ 0.383789f, -0.371094f, -0.126953f, 1.17285f, 0.506836f,
+ 0.109375f, 0.680664f, -0.244141f, -0.0830078f, 0.577148f,
+ 0.12793f, 0.25f, 0.972656f, -0.328125f, 0.34082f,
+ -0.234375f, -0.327148f, 0.470703f, 0.987305f, -0.535156f,
+ 0.730469f, -0.957031f, -0.509766f, 0.602539f, 0.938477f,
+ -0.640625f, 0.836914f, -1.13672f, -0.56543f, 0.450195f,
+ 0.737305f, -0.449219f, 0.649414f, -1.08105f, -0.364258f,
+ 0.338867f, 0.667969f, -0.533203f, 0.654297f, -1.0918f,
+ -0.505859f, 0.422852f, 0.745117f, -0.443359f, 0.319336f,
+ -0.753906f, -0.563477f, 0.374023f, 0.640625f, -0.435547f,
+ 0.220703f, -0.868164f, -0.701172f, 0.317383f, 0.702148f,
+ -0.527344f, 0.138672f, -0.848633f, -0.431641f, 0.220703f,
+ 0.329102f, -0.25293f, -0.232422f, -0.875977f, -0.442383f,
+ 0.550781f, 0.783203f, -0.441406f, 0.160156f, -0.107422f,
+ 0.0683594f, 0.317383f, 1.12012f, -1.02344f, 0.322266f,
+ -0.469727f, -0.151367f, 0.43457f, 0.65625f, -0.745117f,
+ 0.216797f, -1.03223f, -0.200195f, 0.240234f, 1.11035f,
+ -0.90332f, 0.239258f, 0.0429688f, -0.228516f, 0.00390625f,
+ 0.836914f, -0.770508f, -0.280273f, -0.18457f, 0.0117188f,
+ 0.214844f, 0.767578f, -0.774414f, -0.0703125f, -0.954102f,
+ -0.508789f, -0.046875f, 1.00391f, -0.930664f, 0.0292969f,
+ 0.407227f, -0.519531f, 0.0361328f, 0.753906f, -0.777344f,
+ -0.0214844f, 0.741211f, -0.27832f, -0.0332031f, 1.15625f,
+ -0.862305f, -0.115234f, 0.821289f, -0.598633f, 0.00488281f,
+ 0.929688f, -1.01172f, -0.0996094f, 0.351562f, -0.524414f,
+ 0.118164f, 1.1709f, -0.938477f, 0.00878906f, 0.948242f,
+ -0.475586f, 0.443359f, 0.893555f, -0.597656f, 0.0107422f,
+ 0.558594f, -0.87207f, 0.0810547f, 0.487305f, -0.808594f,
+ 0.212891f, 0.0878906f, -0.612305f, 0.263672f, 0.400391f,
+ -0.709961f, 0.380859f, -0.0839844f, -0.566406f, 0.466797f,
+ 0.445312f, -0.769531f, 0.636719f, -0.273438f, -0.648438f,
+ 0.34375f, 0.56543f, -0.829102f, 0.417969f, -0.272461f,
+ -0.746094f, 0.202148f, 0.421875f, -0.445312f, 0.229492f,
+ 0.178711f, -0.408203f, 0.477539f, 0.693359f, -0.675781f,
+ 0.145508f, 0.37207f, -0.576172f, 0.0449219f, 0.845703f,
+ -0.920898f, -0.0185547f, 0.487305f, -0.460938f, 0.0253906f,
+ 1.04785f, -0.87207f, 0.176758f, 0.356445f, -0.217773f,
+ 0.0332031f, 0.945312f, -0.556641f, -0.110352f, 0.725586f,
+ 0.0810547f, -0.0361328f, 1.11426f, -0.396484f, 0.00488281f,
+ 0.743164f, 0.27832f, 0.0175781f, 0.839844f, -0.0371094f,
+ -0.00878906f, 0.964844f, 0.547852f, 0.0224609f, 0.518555f,
+ 0.386719f, -0.0585938f, 1.11816f, 0.712891f, 0.19043f,
+ 0.523438f, 0.429688f, -0.179688f, 1.18164f, 0.40332f,
+ 0.241211f, 1.19043f, -0.0234375f, 0.119141f, 0.90918f,
+ -0.078125f, 0.250977f, 0.973633f, -0.277344f, 0.227539f,
+ 0.908203f, -0.232422f, 0.269531f, 0.807617f, -0.59668f,
+ 0.253906f, 0.398438f, -0.506836f, 0.255859f, 0.694336f,
+ -0.742188f, 0.345703f, 0.412109f, -0.576172f, 0.189453f,
+ 0.708984f, -0.808594f, 0.230469f, 0.242188f, -0.550781f,
+ 0.0693359f, 0.695312f, -0.856445f, -0.0253906f, 0.177734f,
+ -0.6875f, -0.00976562f, 0.731445f, -0.991211f, -0.03125f,
+ 0.0175781f, -0.805664f, -0.192383f, 0.827148f, -0.947266f,
+ 0.0820312f, 0.254883f, -0.504883f, -0.259766f, 0.87207f,
+ -0.693359f, -0.345703f, 0.639648f, -0.162109f, -0.443359f,
+ 1.05176f, -0.595703f, -0.496094f, 0.485352f, -0.0380859f,
+ -0.490234f, 0.763672f, -0.382812f, -0.634766f, 0.369141f,
+ 0.136719f, -0.650391f, 0.536133f, -0.126953f, -0.901367f,
+ 0.275391f, 0.155273f, -0.75293f, 0.476562f, -0.183594f,
+ -1.00488f, 0.206055f, -0.0908203f, -1.06836f, 0.3125f,
+ -0.183594f, -1.30762f, 0.37793f, -0.185547f, -0.885742f,
+ 0.496094f, -0.250977f, -1.14941f, 0.0517578f, -0.242188f,
+ -0.753906f, 0.395508f, -0.133789f, -1.10156f, 0.183594f,
+ -0.398438f, -0.767578f, 0.951172f, -0.359375f, -0.866211f,
+ 0.373047f, -0.0224609f, -0.0537109f, 0.921875f, -0.263672f,
+ -0.251953f, 0.455078f, 0.230469f, 0.485352f, 0.84082f,
+ 0.0351562f, 0.0810547f, 0.554688f, 0.186523f, 0.774414f,
+ 0.720703f, 0.381836f, 0.71875f, 0.495117f, 0.530273f,
+ 0.771484f, 0.90332f, 0.34668f, 0.897461f, 0.456055f,
+ 0.575195f, 0.560547f, 0.133789f, 0.62793f, 0.795898f,
+ 0.400391f, 0.594727f, 0.577148f, -0.142578f, 0.691406f,
+ 0.770508f, 0.12793f, 0.679688f, 0.751953f, -0.201172f,
+ 0.728516f, 0.805664f, -0.0175781f, 0.46875f, 0.655273f,
+ -0.608398f, 0.750977f, 0.540039f, -0.0166016f, 0.30957f,
+ 0.755859f, -0.563477f, 0.609375f, 0.763672f, -0.310547f,
+ 0.0791016f, 0.668945f, -0.575195f, 0.398438f, 0.767578f,
+ -0.47168f, -0.12793f, 0.631836f, -0.768555f, 0.293945f,
+ 0.760742f, -0.743164f, -0.311523f, 0.509766f, -0.755859f,
+ 0.15918f, 0.614258f, -0.832031f, -0.575195f, 0.448242f,
+ -0.771484f, -0.0605469f, 0.341797f, -0.652344f, -0.8125f,
+ 0.262695f, -0.205078f, -0.541992f, 0.337891f, -0.8125f,
+ -1.20996f, 0.179688f, -0.311523f, -0.682617f, 0.0556641f,
+ -0.944336f, -1.29102f, 0.09375f, 0.503906f, -0.87793f,
+ -0.0742188f, -0.805664f, -1.53613f, -0.107422f, 0.50293f,
+ -0.807617f, -0.423828f, 0.0888672f, -0.847656f, -0.342773f,
+ 0.719727f, -0.87793f, -0.336914f, 0.115234f, -0.500977f,
+ -0.487305f, 0.395508f, -0.398438f, -0.624023f, 0.3125f,
+ -0.0693359f, -0.605469f, 0.429688f, -0.283203f, -0.813477f,
+ 0.246094f, 0.0898438f, -0.764648f, 0.356445f, -0.106445f,
+ -1.05371f, 0.595703f, 0.251953f, -0.729492f, 0.336914f,
+ -0.0595703f, -1.06445f, 0.824219f, 0.320312f, -0.50293f,
+ 0.459961f, -0.161133f, -0.820312f, 0.516602f, 0.410156f,
+ -0.401367f, 0.407227f, -0.106445f, -0.740234f, 0.546875f,
+ 0.663086f, -0.170898f, 0.574219f, -0.419922f, -0.271484f,
+ -0.0273438f, 0.239258f, -0.0361328f, 0.80957f, -0.576172f,
+ 0.0664062f, 0.0332031f, 0.181641f, 0.245117f, 1.06641f,
+ -0.826172f, 0.30957f, -0.241211f, 0.03125f, 0.422852f,
+ 1.14648f, -0.916992f, 0.672852f, -0.242188f, 0.0234375f,
+ 0.425781f, 1.16895f, -1.08887f, 0.748047f, -0.384766f,
+ 0.102539f, 0.457031f, 0.992188f, -0.896484f, 0.65625f,
+ -0.144531f, 0.0332031f, 0.295898f, 0.8125f, -0.706055f,
+ 0.166016f, -0.237305f, 0.0996094f, 0.130859f, 0.723633f,
+ -0.769531f, -0.125f, -0.339844f, -0.277344f, -0.00390625f,
+ 1.2959f, -0.999023f, 0.0185547f, 0.0527344f, 0.270508f,
+ 0.104492f, 1.05469f, -1.0918f, 0.205078f, 0.00390625f,
+ 0.141602f, 0.000976562f, 1.15039f, -1.14844f, 0.0664062f,
+ -0.0566406f, 0.0732422f, 0.0302734f, 1.08398f, -1.04004f,
+ 0.124023f, -0.114258f, 0.19043f, 0.0263672f, 0.985352f,
+ -1.00293f, 0.0634766f, -0.0585938f, 0.257812f, -0.0527344f,
+ 0.96875f, -0.990234f, -0.0361328f, -0.179688f, 0.266602f,
+ -0.219727f, 0.882812f, -0.879883f, -0.289062f, -0.00292969f,
+ 0.351562f, -0.313477f, 0.826172f, -0.84668f, -0.322266f,
+ 0.337891f, 0.478516f, -0.426758f, 0.594727f, -0.621094f,
+ -0.435547f, 0.676758f, 0.47168f, -0.432617f, 0.333008f,
+ -0.338867f, -0.767578f, 0.419922f, 0.576172f, -0.673828f,
+ 0.321289f, -0.53125f, -0.96582f, 0.290039f, 0.426758f,
+ -0.526367f, 0.230469f, -0.508789f, -1.05859f, 0.195312f,
+ 0.493164f, -0.479492f, 0.78418f, -0.992188f, -0.453125f,
+ -0.185547f, 0.375977f, -0.291992f, 0.77832f, -0.884766f,
+ -0.361328f, 0.438477f, -0.118164f, -0.222656f, 0.923828f,
+ -0.796875f, 0.0234375f, -0.375f, 0.0332031f, -0.216797f,
+ 0.908203f, -0.984375f, -0.295898f, -0.384766f, 0.0234375f,
+ -0.305664f, 1.12695f, -1.04004f, -0.344727f, -0.136719f,
+ 0.119141f, -0.385742f, 1.06738f, -1.01855f, -0.245117f,
+ -0.106445f, -0.114258f, -0.365234f, 0.962891f, -0.923828f,
+ -0.430664f, -0.637695f, -0.347656f, -0.436523f, 0.702148f,
+ -0.547852f, -0.618164f, -0.447266f, -0.241211f, -0.462891f,
+ 0.729492f, -0.609375f, -0.578125f, -0.486328f, -0.0556641f,
+ -0.536133f, 0.50293f, -0.480469f, -0.526367f, -0.210938f,
+ -0.0585938f, -0.637695f, 0.723633f, -0.319336f, -0.348633f,
+ -0.00292969f, -0.305664f, -0.629883f, 0.431641f, 0.266602f,
+ -0.612305f, -0.260742f, 0.0166016f, -0.65332f, -0.272461f,
+ 0.800781f, -1.09863f, -0.166992f, -0.0859375f, -0.520508f,
+ -0.473633f, 0.586914f, -0.696289f, -0.682617f, -0.149414f,
+ 0.198242f, -0.805664f, 1.1377f, 0.444336f, -0.458984f,
+ -0.577148f, 0.522461f, -0.683594f, 1.25586f, 0.827148f,
+ -0.249023f, -0.851562f, 0.84668f, -0.448242f, 1.26953f,
+ 0.855469f, -0.155273f, -0.765625f, 1.0f, -0.337891f,
+ 0.973633f, 0.660156f, -0.0859375f, -0.476562f, 1.11035f,
+ -0.00976562f, 0.547852f, 0.958984f, -0.34082f, -0.504883f,
+ 0.853516f, 0.0664062f, 0.378906f, 0.758789f, -0.749023f,
+ -0.509766f, 0.739258f, 0.499023f, -0.144531f, 0.84668f,
+ -0.931641f, -0.329102f, 0.740234f, 0.791992f, -0.168945f,
+ 0.594727f, -0.435547f, -0.268555f, 0.336914f, 0.817383f,
+ -0.430664f, -0.0253906f, -0.735352f, -0.0683594f, 0.152344f,
+ 0.725586f, -0.68457f, -0.294922f, -1.25391f, -0.125f,
+ 0.0917969f, 0.907227f, -0.633789f, -0.28125f, -0.222656f,
+ 0.0f, 0.188477f, 1.06445f, -0.929688f, 0.144531f,
+ -0.139648f, -0.00390625f, -0.21582f, 1.21387f, -0.952148f,
+ -0.0253906f, -0.389648f, 0.148438f, -0.283203f, 1.14844f,
+ -0.890625f, -0.204102f, -0.222656f, -0.0332031f, -0.451172f,
+ 0.625f, -0.486328f, -0.716797f, -0.103516f, 0.265625f,
+ -0.667969f, 0.231445f, -0.385742f, -0.977539f, 0.111328f,
+ 0.222656f, -0.766602f, 0.300781f, -0.390625f, -1.07129f,
+ 0.230469f, 0.318359f, -0.787109f, 0.427734f, -0.512695f,
+ -0.886719f, 0.240234f, 0.260742f, -0.647461f, 0.566406f,
+ -0.686523f, -0.723633f, -0.198242f, 0.0722656f, -0.3125f,
+ 0.771484f, -0.725586f, -0.478516f, -0.176758f, -0.113281f,
+ -0.262695f, 0.78125f, -0.644531f, -0.210938f, -0.0126953f,
+ -0.317383f, 0.0673828f, 0.944336f, -0.764648f, 0.1875f,
+ -0.636719f, -0.401367f, 0.118164f, 0.982422f, -0.826172f,
+ 0.105469f, -1.0625f, -0.298828f, 0.0537109f, 0.949219f,
+ -0.788086f, 0.176758f, -0.611328f, -0.0322266f, 0.0439453f,
+ 0.885742f, -0.730469f, 0.301758f, -0.463867f, -0.144531f,
+ -0.180664f, 1.08398f, -0.97168f, -0.470703f, 0.128906f,
+ 0.0146484f, -0.112305f, 0.889648f, -0.946289f, -0.165039f,
+ -1.34277f, -0.258789f, -0.211914f, 0.962891f, -0.844727f,
+ -0.588867f, 0.144531f, -0.228516f, -0.207031f, 0.974609f,
+ -0.848633f, -0.0273438f, -0.570312f, -0.228516f, 0.00195312f,
+ 1.03125f, -0.977539f, -0.0605469f, -0.733398f, -0.0908203f,
+ 0.0996094f, 0.856445f, -0.854492f, -0.000976562f, -0.458008f,
+ -0.135742f, 0.222656f, 1.34082f, -1.13574f, 0.639648f,
+ 0.015625f, -0.234375f, 0.136719f, 0.835938f, -0.822266f,
+ -0.114258f, -0.673828f, -0.186523f, 0.169922f, 0.925781f,
+ -0.839844f, 0.175781f, -0.394531f, 0.224609f, -0.0458984f,
+ 0.94043f, -0.964844f, -0.0556641f, -0.15332f, 0.163086f,
+ -0.0175781f, 0.944336f, -0.951172f, -0.0478516f, -0.302734f,
+ 0.117188f, -0.00683594f, 0.973633f, -0.970703f, -0.0810547f,
+ -0.301758f, 0.09375f, -0.000976562f, 1.01953f, -0.978516f,
+ 0.0292969f, -0.293945f, 0.0683594f, -0.00683594f, 1.0127f,
+ -0.966797f, -0.0175781f, -0.314453f, 0.181641f, 0.0126953f,
+ 0.982422f, -0.990234f, 0.03125f, -0.194336f, 0.155273f,
+ -0.00292969f, 0.962891f, -0.932617f, -0.00390625f, -0.0976562f,
+ 0.144531f, -0.0205078f, 0.913086f, -0.914062f, -0.0908203f,
+ -0.296875f, 0.166992f, -0.015625f, 0.930664f, -0.950195f,
+ -0.0888672f, -0.28418f, 0.196289f, -0.0107422f, 0.953125f,
+ -0.960938f, -0.0273438f, -0.195312f, 0.125f, 0.0126953f,
+ 0.986328f, -0.951172f, 0.0634766f, -0.231445f, 0.162109f,
+ -0.0136719f, 0.981445f, -0.974609f, -0.0449219f, -0.0761719f,
+ 0.186523f, -0.015625f, 0.950195f, -0.962891f, -0.0576172f,
+ -0.162109f, 0.154297f, -0.0292969f, 0.970703f, -0.973633f,
+ -0.0136719f, -0.394531f, 0.102539f, -0.00878906f, 0.970703f,
+ -0.915039f, 0.0546875f, -0.313477f, 0.110352f, -0.0234375f,
+ 0.947266f, -0.922852f, -0.139648f, -0.181641f, 0.12207f,
+ 0.0625f, 0.780273f, -0.899414f, -0.84375f, -0.0888672f,
+ -0.318359f, 1.00781f, 0.888672f, 0.27832f, 0.0195312f,
+ -1.08594f, 0.137695f, 0.56543f, 1.12891f, -0.235352f,
+ 1.65039f, -0.0820312f, 0.100586f, 0.987305f, 0.261719f,
+ -0.0615234f, 1.32227f, 0.669922f, 0.0f, 1.04102f,
+ 0.231445f, -0.174805f, 1.11426f, -0.261719f, -0.0527344f,
+ 0.958008f, 0.332031f, -0.28418f, 1.26953f, -0.612305f,
+ 0.208984f, 0.964844f, 1.15625f, -0.486328f, 2.0f,
+ -0.760742f, 0.0458984f, 1.44629f, 1.21289f, 0.924805f,
+ 1.1875f, -0.259766f, 0.114258f, 0.210938f, 0.486328f,
+ -0.422852f, -0.984375f, 1.08789f, 0.453125f, -0.229492f,
+ 0.457031f, -0.682617f, -0.500977f, 0.210938f, 0.391602f,
+ -0.303711f, 0.725586f, -0.80957f, -0.391602f, 0.0976562f,
+ 0.958984f, 0.0185547f, 1.69922f, -1.36035f, 1.98242f,
+ -0.392578f, -0.461914f, -0.37793f, -0.0712891f, 0.928711f,
+ -1.60254f, 0.133789f, -0.0419922f, -1.12109f, -0.201172f,
+ 0.0732422f, -1.99902f, 0.629883f, -0.174805f, -0.894531f,
+ 0.0742188f, -0.147461f, -1.23633f, -0.259766f, 0.0410156f,
+ -1.00879f, -0.0166016f, -0.0205078f, -1.99902f, 0.267578f,
+ -0.0664062f, -0.164062f, 0.511719f, 0.825195f, -1.21191f,
+ -0.515625f, 0.46875f, 0.0898438f, 1.09766f, -0.144531f,
+ 1.59375f, 0.166016f, 0.428711f, 0.294922f, 0.8125f,
+ -0.770508f, 0.535156f, 0.280273f, 0.231445f, 0.504883f,
+ 0.864258f, -0.884766f, 0.524414f, -0.183594f, 0.0820312f,
+ 0.713867f, 0.405273f, -0.520508f, -0.326172f, 0.0126953f,
+ -0.310547f, 1.38086f, 0.831055f, 0.380859f, 1.3125f,
+ -1.60645f, 0.151367f, 1.01953f, 0.580078f, -0.0283203f,
+ 2.0f, 1.03516f, -0.0634766f, 1.03418f, 0.332031f,
+ -0.0859375f, 1.32129f, -0.234375f, 0.0917969f, 1.49219f,
+ 0.30957f, -0.118164f, 1.76953f, -0.717773f, 0.174805f,
+ 1.59863f, 0.0947266f, 1.1875f, 0.429688f, 0.442383f,
+ 0.00976562f, 0.435547f, 0.345703f, -0.114258f, 0.238281f,
+ -0.689453f, 0.30957f, 0.0732422f, 0.606445f, -0.650391f,
+ -0.0947266f, -0.03125f, 0.183594f, -0.144531f, 0.746094f,
+ -0.793945f, -0.574219f, -0.0742188f, 0.196289f, -0.199219f,
+ 1.13867f, -1.11816f, -0.227539f, -0.462891f, 0.0517578f,
+ -0.0341797f, 1.18945f, -1.1084f, -0.0283203f, -0.342773f,
+ 0.174805f, -0.0078125f, 1.05176f, -1.03906f, 0.0253906f,
+ -0.375977f, -0.169922f, 0.00292969f, 0.837891f, -0.716797f,
+ -0.0205078f, -0.373047f, 0.293945f, 0.0175781f, 0.833984f,
+ -0.916016f, -0.0996094f, -0.149414f, 0.200195f, -0.00195312f,
+ 0.865234f, -0.916016f, -0.0117188f, -0.390625f, 0.290039f,
+ 0.0234375f, 0.985352f, -0.987305f, 0.0439453f, -0.214844f,
+ 0.0917969f, 0.0615234f, 1.02832f, -1.00684f, 0.152344f,
+ -0.452148f, 0.0615234f, -0.00585938f, 1.02148f, -0.976562f,
+ -0.0927734f, -0.286133f, 0.189453f, -0.0644531f, 1.02539f,
+ -1.02246f, 0.0166016f, -0.243164f, 0.109375f, -0.09375f,
+ 0.981445f, -0.931641f, 0.0458984f, -0.460938f, 0.0537109f,
+ -0.0429688f, 1.05859f, -0.850586f, 0.0771484f, -0.0507812f,
+ 0.108398f, -0.177734f, 0.779297f, -0.74707f, -0.378906f,
+ -0.413086f, -0.205078f, -0.0488281f, 0.946289f, -0.760742f,
+ -0.180664f, -0.228516f, -0.208008f, -0.0615234f, 1.05371f,
+ -0.953125f, -0.34668f, -1.16797f, -0.0322266f, -0.276367f,
+ 1.06641f, -0.863281f, -0.0244141f, -0.290039f, -0.0429688f,
+ 0.0439453f, 1.28223f, -1.06348f, 0.181641f, -0.514648f,
+ -0.0214844f, 0.0f, 0.861328f, -0.738281f, -0.0449219f,
+ 0.0722656f, 0.125f, 0.193359f, 1.15039f, -1.0957f,
+ 0.225586f, -0.137695f, 0.12207f, -0.0400391f, 0.732422f,
+ -0.818359f, -0.40918f, -0.672852f, -0.425781f, 0.839844f,
+ 0.856445f, 0.198242f, -0.363281f, 0.206055f, -0.214844f,
+ 1.20215f, 0.943359f, 0.0195312f, 2.0f, 0.874023f,
+ 0.0839844f, 0.827148f, 0.587891f, -0.384766f, 1.57715f,
+ 0.108398f, -0.116211f, 0.952148f, 0.246094f, -0.336914f,
+ 0.463867f, -0.740234f, 0.0185547f, 0.950195f, 0.55957f,
+ -0.442383f, 1.09668f, 0.0585938f, 0.132812f, 1.37695f,
+ 2.0f, -0.59375f, 2.0f, -0.676758f, -0.199219f,
+ -0.0205078f, 0.268555f, -0.5f, -1.94629f, 1.2832f,
+ 0.0078125f, -0.201172f, 0.674805f, -0.708984f, -0.490234f,
+ -0.515625f, 0.0439453f, -0.0830078f, 1.14355f, -1.01953f,
+ -0.0224609f, -0.282227f, 0.0214844f, -0.078125f, 1.09668f,
+ -0.961914f, 0.0253906f, -0.56543f, 0.30957f, 0.964844f,
+ 1.56836f, -0.272461f, 1.91309f, -0.53418f, -0.695312f,
+ -0.878906f, -0.0146484f, 0.277344f, -1.6416f, 0.0244141f,
+ 0.0898438f, -0.785156f, 0.229492f, -0.259766f, -1.06055f,
+ -0.241211f, 0.0224609f, -0.769531f, 0.748047f, -0.680664f,
+ -0.629883f, -0.549805f, -0.195312f, -0.796875f, -0.399414f,
+ 0.0859375f, -1.99902f, 0.24707f, 0.208984f, 0.563477f,
+ 1.91797f, 0.0585938f, 2.0f, -0.990234f, 0.327148f,
+ -0.0917969f, 1.16797f, -0.94043f, 0.623047f, -1.1748f,
+ -0.0205078f, -0.0449219f, 0.883789f, -0.905273f, -0.370117f,
+ -0.601562f, 0.0332031f, -0.0527344f, 0.928711f, -0.833984f,
+ -0.180664f, -0.267578f, 0.0351562f, -0.0175781f, 0.998047f,
+ -0.922852f, -0.000976562f, -0.371094f, 0.0341797f, -0.0166016f,
+ 0.977539f, -0.900391f, -0.00292969f, -0.37207f, 0.0449219f,
+ -0.0439453f, 0.989258f, -0.904297f, -0.0576172f, -0.37207f,
+ 0.270508f, -0.368164f, 0.0576172f, -0.607422f, -1.95508f,
+ -0.182617f, -0.390625f, 1.62598f, 1.52734f, 1.2793f,
+ 2.0f, -1.99902f, 0.226562f, 1.01465f, 0.669922f,
+ -0.373047f, 1.71484f, 1.99707f, -0.0654297f, 1.00391f,
+ 0.330078f, -0.432617f, 0.704102f, -0.96875f, 0.0800781f,
+ 0.964844f, 0.702148f, -0.5625f, 1.39746f, -0.203125f,
+ 0.255859f, 1.74512f, 1.52539f, 0.417969f, 2.0f,
+ -0.0976562f, -0.482422f, 0.09375f, 0.151367f, -0.328125f,
+ -1.88867f, -0.0595703f, 0.117188f, 0.0751953f, 0.870117f,
+ -0.870117f, 0.046875f, -0.280273f, 0.125f, 0.124023f,
+ 1.0791f, -0.964844f, 0.338867f, -0.0791016f, 0.0751953f,
+ 0.12207f, 0.920898f, -0.888672f, 0.0273438f, -0.250977f,
+ 0.00488281f, 0.165039f, 1.01074f, -0.944336f, 0.137695f,
+ -0.387695f, -0.142578f, 0.238281f, 1.77246f, -1.42285f,
+ 0.90625f, -0.856445f, 0.0556641f, -0.219727f, -0.785156f,
+ 1.47266f, -1.99902f, 1.27246f, -0.132812f, -0.746094f,
+ 0.172852f, -0.0830078f, -1.3584f, 0.638672f, 0.0175781f,
+ -0.786133f, 0.754883f, -0.729492f, -0.808594f, -0.291992f,
+ 0.170898f, -0.746094f, 0.623047f, -0.667969f, -0.743164f,
+ -0.241211f, 0.0693359f, -0.725586f, 0.495117f, -0.545898f,
+ -0.969727f, -0.131836f, 0.0234375f, -0.52832f, 0.280273f,
+ -0.327148f, -1.0498f, -0.210938f, -0.253906f, 0.234375f,
+ 0.661133f, -0.0332031f, -0.708008f, -0.458984f, 0.31543f,
+ 0.480469f, 1.59082f, -1.22266f, 1.41602f, -0.270508f,
+ 0.263672f, 0.318359f, 1.21289f, -1.12207f, 0.853516f,
+ -0.272461f, 0.158203f, 1.84766f, 2.0f, 0.341797f,
+ 2.0f, -0.788086f, -0.264648f, -0.326172f, -1.25977f,
+ 0.842773f, -1.99902f, -0.947266f, 0.249023f, -0.642578f,
+ 0.745117f, -0.744141f, -0.404297f, -0.266602f, 0.0898438f,
+ -0.568359f, 0.501953f, -0.494141f, -0.858398f, 0.0722656f,
+ -0.543945f, 1.16895f, 1.12012f, 1.47461f, -1.12988f,
+ -0.27832f, 0.53125f, 0.875f, 0.845703f, -0.318359f,
+ 1.68555f, 1.29199f, -0.00195312f, 0.861328f, 0.601562f,
+ -0.519531f, 1.16211f, -1.05957f, 0.0507812f, 0.904297f,
+ 0.625977f, -0.525391f, 1.16797f, -0.163086f, 0.125977f,
+ 1.99902f, 2.0f, 2.0f, 2.0f, -0.00195312f,
+ -1.11719f, -0.3125f, -0.320312f, 0.585938f, -1.99902f,
+ 0.647461f, 0.198242f, -0.538086f, 0.993164f, -0.897461f,
+ -0.227539f, -0.354492f, 0.0976562f, -0.416016f, 0.623047f,
+ -0.682617f, -0.832031f, -0.223633f, -0.160156f, 0.0751953f,
+ -0.791992f, 1.13379f, -1.99902f, -0.755859f, 0.669922f,
+ 1.02637f, 1.26758f, -0.293945f, 2.0f, 1.93457f,
+ -0.0126953f, 0.773438f, 0.475586f, -0.59375f, 0.329102f,
+ -0.588867f, 0.113281f, 0.740234f, 0.749023f, -0.716797f,
+ 0.941406f, -0.0878906f, 0.71875f, 1.8125f, 2.0f,
+ -0.289062f, 2.0f, -1.01074f, 0.0117188f, -0.183594f,
+ -0.969727f, 0.893555f, -1.99902f, 0.333008f, 0.188477f,
+ -0.643555f, 0.504883f, -0.511719f, -0.804688f, -0.957031f,
+ 0.0546875f, -0.305664f, -0.0449219f, -0.145508f, -1.875f,
+ 0.0996094f, -0.155273f, 1.59668f, 1.5293f, 1.46973f,
+ 2.0f, -1.9834f, 0.375f, 1.20508f, 0.736328f,
+ -0.399414f, 2.0f, 2.0f, 0.123047f, 0.834961f,
+ 1.04004f, -0.808594f, 1.31934f, -0.634766f, 0.548828f,
+ 0.129883f, -1.64746f, 2.0f, -1.99902f, 0.819336f,
+ 0.0273438f, -0.254883f, 0.722656f, -0.691406f, -0.464844f,
+ -1.05566f, 0.0634766f, -0.206055f, 1.02148f, -0.90332f,
+ 0.0595703f, -0.03125f, 0.129883f, -0.177734f, 0.697266f,
+ -0.713867f, -0.351562f, -0.169922f, -0.119141f, -0.172852f,
+ 1.01855f, -0.989258f, -0.12793f, -0.670898f, -0.146484f,
+ -0.261719f, 1.16602f, -1.05664f, -0.302734f, -0.25293f,
+ -0.0458984f, -0.198242f, 0.90625f, -0.876953f, -0.144531f,
+ -0.424805f, -0.151367f, -0.147461f, 0.926758f, -0.835938f,
+ -0.191406f, -0.326172f, -0.128906f, -0.216797f, 0.910156f,
+ -0.851562f, -0.291992f, -0.549805f, -0.0517578f, -0.0869141f,
+ 1.07715f, -0.977539f, -0.0361328f, -0.418945f, -0.148438f,
+ -0.133789f, 0.907227f, -0.836914f, -0.213867f, -0.768555f,
+ -0.0664062f, 0.182617f, 1.0498f, -0.915039f, 0.400391f,
+ -0.523438f, 0.015625f, 0.0f, 1.13184f, -1.09961f,
+ -0.244141f, -0.330078f, -0.115234f, 0.0166016f, 0.944336f,
+ -0.868164f, -0.430664f, -0.246094f, -0.0185547f, -0.00976562f,
+ 0.819336f, -0.822266f, -0.380859f, -1.1709f, 0.0605469f,
+ -0.0498047f, 0.777344f, -0.703125f, 0.0800781f, -0.451172f,
+ 0.304688f, 0.0517578f, 0.825195f, -0.771484f, 0.145508f,
+ 0.495117f, -0.0888672f, -0.243164f, 1.48145f, -1.22168f,
+ 0.0615234f, -0.192383f, -0.0537109f, 0.0195312f, 1.21582f,
+ -1.06836f, 0.175781f, -0.394531f, 0.237305f, -0.0126953f,
+ 0.800781f, -0.920898f, -0.12207f, -0.391602f, -0.0917969f,
+ -0.0791016f, 1.08008f, -1.03613f, -0.0654297f, -0.423828f,
+ 0.0478516f, -0.0253906f, 0.873047f, -0.884766f, -0.0722656f,
+ -0.579102f, 0.0136719f, -0.0917969f, 0.954102f, -0.922852f,
+ -0.172852f, -0.244141f, 0.0f, -0.141602f, 0.929688f,
+ -0.894531f, -0.179688f, -0.291992f, 0.0283203f, -0.0947266f,
+ 0.961914f, -0.926758f, -0.135742f, -0.329102f, 0.0576172f,
+ -0.0351562f, 0.999023f, -0.958984f, -0.0498047f, -0.248047f,
+ 0.0869141f, -0.078125f, 1.01074f, -0.954102f, 0.00976562f,
+ -0.217773f, 0.0986328f, -0.0556641f, 0.916992f, -0.914062f,
+ -0.136719f, -0.219727f, 0.0488281f, -0.139648f, 0.985352f,
+ -0.952148f, -0.152344f, -0.286133f, 0.0166016f, -0.0917969f,
+ 1.0459f, -0.972656f, -0.0605469f, -0.228516f, 0.0507812f,
+ -0.0810547f, 0.956055f, -0.9375f, -0.18457f, -0.275391f,
+ 0.0703125f, -0.0986328f, 0.948242f, -0.928711f, -0.162109f,
+ -0.333008f
+};
const size_t kAccelerometerLaptopModeTestDataLength =
- ARRAY_SIZE(kAccelerometerLaptopModeTestData);
+ ARRAY_SIZE(kAccelerometerLaptopModeTestData);
const float kAccelerometerFullyOpenTestData[] = {
- 0.892578f, -0.0810547f, 0.0146484f, 0.929688f, -0.0644531f,
- -0.0234375f, 0.996094f, -0.0136719f, 0.0185547f, 1.02344f,
- -0.0615234f, -0.0449219f, 0.978516f, 0.125977f, 0.0400391f,
- 0.996094f, 0.0332031f, -0.0117188f, 0.963867f, 0.107422f,
- 0.0214844f, 0.980469f, 0.0185547f, -0.00683594f, 0.952148f,
- 0.0361328f, 0.0253906f, 0.976562f, -0.00390625f, -0.0126953f,
- 0.97168f, 0.0205078f, 0.0517578f, 1.01074f, 0.015625f,
- -0.0234375f, 0.953125f, -0.000976562f, 0.0390625f, 0.977539f,
- -0.0224609f, -0.00976562f, 0.954102f, 0.0244141f, 0.0439453f,
- 0.986328f, 0.00292969f, -0.000976562f, 0.967773f, 0.0537109f,
- 0.046875f, 0.99707f, 0.0175781f, -0.000976562f, 0.951172f,
- 0.0390625f, 0.0341797f, 0.974609f, -0.00878906f, -0.000976562f,
- 0.948242f, 0.0185547f, 0.0478516f, 0.976562f, -0.000976562f,
- -0.00683594f, 0.958984f, 0.0263672f, 0.078125f, 0.982422f,
- -0.0205078f, 0.0283203f, 0.930664f, 0.00878906f, 0.0664062f,
- 0.970703f, 0.00390625f, -0.0078125f, 0.945312f, 0.0380859f,
- -0.00585938f, 0.972656f, 0.0419922f, -0.0478516f, 1.01953f,
- 0.240234f, -0.182617f, 1.00977f, 0.18457f, -0.126953f,
- 1.05566f, 0.0751953f, -0.0888672f, 1.09766f, 0.0732422f,
- -0.0898438f, 1.21484f, 0.119141f, -0.000976562f, 1.23633f,
- 0.194336f, -0.447266f, 1.31445f, 0.213867f, -0.118164f,
- 1.30762f, 0.0908203f, -0.260742f, 0.860352f, 0.141602f,
- -0.166016f, 0.868164f, 0.0429688f, -0.258789f, 0.727539f,
- 0.0419922f, -0.21875f, 0.740234f, 0.0126953f, -0.162109f,
- 0.652344f, -0.00292969f, -0.185547f, 0.666992f, 0.0800781f,
- -0.272461f, 0.852539f, -0.0478516f, -0.228516f, 0.819336f,
- -0.0996094f, -0.180664f, 0.959961f, -0.0537109f, -0.240234f,
- 0.935547f, -0.0917969f, -0.269531f, 0.988281f, -0.0507812f,
- -0.197266f, 0.981445f, -0.0712891f, -0.323242f, 0.964844f,
- -0.0683594f, -0.203125f, 0.941406f, -0.0898438f, -0.236328f,
- 0.942383f, -0.0429688f, -0.206055f, 0.921875f, -0.0527344f,
- -0.239258f, 0.976562f, -0.0742188f, -0.261719f, 0.958008f,
- -0.09375f, -0.311523f, 0.949219f, -0.0839844f, -0.242188f,
- 0.949219f, -0.0742188f, -0.323242f, 0.973633f, -0.0263672f,
- -0.238281f, 0.958984f, -0.0488281f, -0.293945f, 0.931641f,
- -0.0214844f, -0.225586f, 0.931641f, 0.0195312f, -0.225586f,
- 0.810547f, -0.0947266f, -0.15332f, 0.947266f, 0.241211f,
- -0.100586f, 0.326172f, 0.286133f, -0.12207f, 0.855469f,
- 0.677734f, -0.228516f, 0.229492f, 1.08398f, 0.0224609f,
- 0.822266f, 0.759766f, -0.0722656f, 0.294922f, 1.42676f,
- 0.147461f, 0.239258f, 0.755859f, 0.142578f, -0.120117f,
- 1.00977f, -0.0722656f, -0.154297f, 0.832031f, -0.0576172f,
- -0.15332f, 1.10156f, -0.0273438f, -0.119141f, 1.05078f,
- 0.0166016f, -0.0927734f, 1.09961f, -0.0703125f, -0.0751953f,
- 1.04688f, -0.00195312f, -0.078125f, 0.897461f, -0.0625f,
- -0.078125f, 0.854492f, -0.0947266f, -0.123047f, 0.811523f,
- -0.0488281f, -0.113281f, 0.796875f, 0.0f, -0.0488281f,
- 0.961914f, -0.177734f, -0.0898438f, 0.859375f, -0.172852f,
- 0.0126953f, 1.1084f, -0.158203f, 0.0292969f, 1.0791f,
- -0.152344f, 0.154297f, 1.29492f, -0.126953f, 0.134766f,
- 1.23145f, -0.0878906f, -0.200195f, 0.667969f, -0.216797f,
- -0.0888672f, 0.935547f, -0.143555f, 0.000976562f, 1.13281f,
- -0.0498047f, 0.00195312f, 1.05469f, -0.231445f, 0.0927734f,
- 0.956055f, -0.292969f, 0.0625f, 0.927734f, -0.112305f,
- 0.0585938f, 0.975586f, -0.163086f, 0.0957031f, 1.03418f,
- -0.229492f, 0.000976562f, 0.985352f, -0.09375f, -0.00585938f,
- 0.945312f, -0.140625f, -0.0302734f, 0.998047f, -0.208008f,
- -0.0507812f, 0.916016f, -0.112305f, 0.123047f, 0.981445f,
- -0.205078f, 0.129883f, 1.02832f, -0.211914f, 0.105469f,
- 1.01367f, -0.142578f, 0.111328f, 1.00098f, -0.110352f,
- 0.0986328f, 0.999023f, -0.15918f, 0.0839844f, 0.922852f,
- -0.223633f, 0.261719f, 1.06641f, -0.138672f, 0.240234f,
- 0.916016f, -0.296875f, 0.00488281f, 1.04199f, -0.128906f,
- 0.0341797f, 1.0791f, -0.265625f, 0.015625f, 0.963867f,
- -0.161133f, 0.015625f, 0.958008f, -0.0722656f, -0.125f,
- 1.03125f, -0.19043f, -0.0722656f, 1.16602f, -0.126953f,
- -0.143555f, 1.12793f, -0.197266f, -0.120117f, 1.26465f,
- -0.232422f, -0.226562f, 1.125f, -0.0712891f, -0.0927734f,
- 1.26465f, -0.145508f, -0.551758f, 0.90918f, -0.163086f,
- -0.228516f, 1.2041f, -0.0371094f, -0.493164f, 0.827148f,
- 0.0371094f, -0.162109f, 0.568359f, -0.195312f, -0.641602f,
- 0.438477f, -0.212891f, -0.513672f, 0.208008f, -0.0488281f,
- -0.776367f, 0.0488281f, -0.115234f, -0.84375f, -0.314453f,
- 0.106445f, -0.966797f, -0.0078125f, 0.00976562f, -1.01953f,
- -0.220703f, -0.0322266f, -0.994141f, 0.0117188f, -0.248047f,
- -0.975586f, 0.121094f, -0.0205078f, -0.947266f, 0.00292969f,
- -0.160156f, -0.9375f, 0.0175781f, -0.0986328f, -0.916992f,
- -0.0195312f, -0.208008f, -0.9375f, -0.0654297f, -0.134766f,
- -0.948242f, -0.0185547f, -0.231445f, -0.977539f, -0.0537109f,
- -0.198242f, -1.0166f, 0.0439453f, -0.433594f, -0.994141f,
- -0.0595703f, -0.389648f, -1.07129f, 0.0859375f, -0.109375f,
- -1.01953f, 0.0966797f, -0.12207f, -1.01074f, 0.125977f,
- -0.192383f, -1.0f, 0.0820312f, -0.166016f, -1.04688f,
- 0.0751953f, -0.265625f, -1.00879f, 0.139648f, -0.135742f,
- -1.00977f, 0.0644531f, -0.235352f, -0.989258f, 0.100586f,
- -0.144531f, -0.858398f, 0.0273438f, -0.22168f, -0.878906f,
- -0.0634766f, -0.1875f, -0.905273f, -0.0195312f, -0.232422f,
- -0.926758f, -0.0732422f, -0.319336f, -1.05078f, -0.00878906f,
- -0.5625f, -1.05176f, 0.111328f, -0.456055f, -0.942383f,
- -0.0146484f, -0.171875f, -0.946289f, -0.0224609f, -0.174805f,
- -0.901367f, -0.0283203f, -0.332031f, -0.948242f, -0.0732422f,
- -0.262695f, -0.867188f, 0.0351562f, -0.271484f, -0.913086f,
- -0.0878906f, -0.259766f, -1.2793f, -0.226562f, -0.382812f,
- -1.2334f, 0.0400391f, -0.260742f, -1.22949f, -0.216797f,
- -0.432617f, -1.21191f, -0.131836f, -0.368164f, -1.10938f,
- -0.323242f, -0.505859f, -1.01953f, -0.197266f, -0.405273f,
- -1.25488f, -0.347656f, -0.448242f, -0.803711f, 0.0595703f,
- -0.253906f, -0.489258f, -0.00390625f, 0.101562f, 0.15332f,
- -0.423828f, -0.0195312f, 0.527344f, -0.350586f, -0.24707f,
- 0.363281f, -1.33789f, -0.214844f, 0.322266f, -0.768555f,
- -0.279297f, 0.266602f, -0.918945f, -0.320312f, 0.0634766f,
- -0.97168f, -0.102539f, 0.114258f, -0.891602f, -0.158203f,
- 0.0283203f, -0.998047f, -0.198242f, 0.0634766f, -0.931641f,
- -0.239258f, 0.147461f, -0.963867f, -0.219727f, 0.142578f,
- -1.02051f, -0.279297f, 0.105469f, -0.955078f, -0.238281f,
- 0.104492f, -1.02637f, -0.291992f, -0.0302734f, -1.02637f,
- -0.225586f, 0.000976562f, -0.907227f, -0.12793f, 0.03125f,
- -0.979492f, -0.100586f, 0.0625f, -0.921875f, -0.155273f,
- 0.146484f, -0.929688f, -0.158203f, 0.155273f, -0.981445f,
- -0.171875f, 0.212891f, -0.927734f, -0.166992f, 0.198242f,
- -1.05371f, -0.197266f, 0.189453f, -0.954102f, -0.113281f,
- 0.189453f, -1.00293f, -0.180664f, 0.111328f, -0.967773f,
- -0.109375f, 0.125977f, -0.966797f, -0.146484f, 0.0712891f,
- -0.982422f, -0.0908203f, 0.112305f, -0.928711f, -0.149414f,
- 0.0146484f, -1.00781f, -0.0996094f, 0.102539f, -0.810547f,
- -0.157227f, -0.0117188f, -0.820312f, -0.0371094f, 0.28418f,
- -0.446289f, -0.166016f, 0.208008f, -0.03125f, -0.0761719f,
- 0.755859f, -0.280273f, -0.316406f, 1.42188f, 0.198242f,
- -0.49707f, 1.37207f, -0.556641f, -0.382812f, 1.36523f,
- 0.110352f, -0.342773f, 1.25391f, -0.225586f, -0.570312f,
- 0.958984f, 0.0722656f, -0.237305f, 0.984375f, 0.0957031f,
- -0.416992f, 0.853516f, 0.0400391f, -0.416016f, 0.873047f,
- 0.0644531f, -0.370117f, 1.04004f, 0.0273438f, -0.408203f,
- 0.920898f, -0.0986328f, -0.514648f, 0.956055f, 0.0527344f,
- -0.428711f, 0.960938f, 0.109375f, -0.522461f, 0.801758f,
- -0.277344f, -0.634766f, 0.882812f, 0.0527344f, -0.34668f,
- 0.981445f, -0.09375f, -0.298828f, 0.952148f, -0.213867f,
- -0.25293f, 0.90918f, -0.132812f, -0.493164f, 0.885742f,
- -0.177734f, -0.525391f, 0.915039f, -0.0605469f, -0.439453f,
- 0.87207f, -0.0986328f, -0.506836f, 0.905273f, -0.0732422f,
- -0.462891f, 0.870117f, -0.0966797f, -0.511719f, 0.897461f,
- -0.0234375f, -0.464844f, 0.868164f, -0.0283203f, -0.474609f,
- 0.919922f, 0.0205078f, -0.34375f, 0.889648f, -0.00390625f,
- -0.445312f, 0.804688f, -0.0263672f, -0.417969f, 0.806641f,
- 0.0410156f, -0.399414f, 0.914062f, -0.0722656f, -0.386719f,
- 0.890625f, -0.0615234f, -0.40625f, 0.928711f, 0.0253906f,
- -0.118164f, 0.943359f, -0.000976562f, -0.398438f, 0.811523f,
- -0.0605469f, -0.234375f, 0.879883f, 0.198242f, -0.509766f,
- 0.958008f, 0.0361328f, -0.328125f, 0.938477f, -0.00976562f,
- -0.429688f, 0.916016f, -0.0185547f, -0.266602f, 0.898438f,
- -0.0380859f, -0.450195f, 0.870117f, 0.162109f, -0.210938f,
- 0.899414f, 0.117188f, -0.517578f, 0.756836f, -0.0820312f,
- -0.361328f, 0.868164f, -0.0576172f, -1.29883f, 0.515625f,
- -0.00195312f, -1.13281f, 0.628906f, 0.00390625f, -0.103516f,
- 0.485352f, -0.046875f, -0.922852f, 0.412109f, -0.108398f,
- -0.898438f, 0.446289f, -0.111328f, -0.925781f, 0.375977f,
- -0.125977f, -0.825195f, 0.446289f, -0.0966797f, -0.958008f,
- 0.389648f, -0.0810547f, -1.00781f, 0.532227f, -0.104492f,
- -1.0791f, 0.459961f, -0.138672f, -0.941406f, 0.509766f,
- -0.107422f, -1.14062f, 0.447266f, -0.195312f, -0.867188f,
- 0.474609f, -0.233398f, -0.751953f, 0.612305f, -0.126953f,
- -0.661133f, 0.702148f, -0.199219f, -0.260742f, 0.856445f,
- -0.0292969f, -0.743164f, 0.921875f, -0.0371094f, -0.293945f,
- 0.902344f, -0.103516f, -0.416016f, 0.955078f, -0.00488281f,
- -0.232422f, 0.951172f, -0.0498047f, -0.331055f, 0.871094f,
- 0.00390625f, -0.186523f, 0.905273f, 0.0566406f, -0.249023f,
- 0.677734f, 0.0253906f, 0.145508f, 0.826172f, 0.251953f,
- -0.428711f, 0.764648f, 0.488281f, -0.265625f, 0.886719f,
- 0.256836f, -0.408203f, 0.744141f, 0.689453f, -0.611328f,
- 0.755859f, 0.431641f, -0.525391f, 0.588867f, 0.637695f,
- -0.750977f, 0.578125f, 0.568359f, -0.540039f, 0.512695f,
- 0.530273f, -0.722656f, 0.498047f, 0.526367f, -0.788086f,
- 0.647461f, 0.522461f, -0.862305f, 0.567383f, 0.422852f,
- -0.765625f, 0.648438f, 0.405273f, -0.938477f, 0.583008f,
- 0.272461f, -1.15137f, 0.481445f, 0.00585938f, -0.788086f,
- 0.454102f, -0.0615234f, -0.885742f, 0.306641f, -0.333984f,
- -0.678711f, 0.322266f, -0.288086f, -0.615234f, 0.220703f,
- -0.476562f, -0.748047f, 0.223633f, -0.396484f, -0.729492f,
- 0.235352f, -0.510742f, -0.806641f, 0.227539f, -0.476562f,
- -0.665039f, 0.275391f, -0.47168f, -0.938477f, 0.345703f,
- -0.369141f, -0.709961f, 0.482422f, -0.393555f, -0.380859f,
- 0.759766f, -0.143555f, -0.529297f, 0.956055f, -0.0185547f,
- -0.12207f, 1.15527f, 0.0380859f, -0.529297f, 1.04102f,
- 0.203125f, -0.0283203f, 1.11719f, 0.0888672f, -0.258789f,
- 1.02734f, 0.297852f, -0.0244141f, 1.03223f, 0.211914f,
- -0.0859375f, 0.798828f, 0.216797f, 0.19043f, 0.891602f,
- 0.256836f, -0.102539f, 0.662109f, 0.263672f, 0.208984f,
- 0.810547f, 0.380859f, -0.235352f, 0.707031f, 0.507812f,
- -0.0800781f, 0.902344f, 0.470703f, -0.301758f, 0.577148f,
- 0.674805f, -0.500977f, 0.748047f, 0.472656f, -0.493164f,
- 0.478516f, 0.611328f, -1.04395f, 0.491211f, 0.651367f,
- -0.581055f, 0.25293f, 0.325195f, -0.950195f, 0.224609f,
- 0.404297f, -1.04883f, 0.116211f, -0.00292969f, -0.980469f,
- 0.0566406f, 0.0195312f, -0.821289f, 0.0166016f, -0.141602f,
- -0.959961f, -0.0322266f, -0.158203f, -0.837891f, 0.119141f,
- -0.224609f, -1.00781f, 0.09375f, -0.151367f, -1.00684f,
- 0.248047f, -0.238281f, -0.973633f, 0.271484f, -0.324219f,
- -0.942383f, 0.443359f, -0.298828f, -0.845703f, 0.581055f,
- -0.291992f, -0.700195f, 0.65918f, -0.319336f, -0.262695f,
- 0.818359f, -0.286133f, -0.579102f, 0.827148f, -0.272461f,
- -0.0908203f, 0.935547f, -0.233398f, -0.374023f, 0.920898f,
- -0.137695f, 0.000976562f, 0.964844f, -0.12793f, -0.285156f,
- 0.880859f, -0.0244141f, -0.0830078f, 0.930664f, 0.00976562f,
- -0.15332f, 0.731445f, 0.172852f, 0.0380859f, 0.876953f,
- 0.264648f, -0.194336f, 0.601562f, 0.613281f, -0.132812f,
- 0.803711f, 0.53418f, -0.268555f, 0.933594f, 0.899414f,
- -0.332031f, 0.923828f, 0.521484f, -0.425781f, 0.972656f,
- 0.959961f, -0.506836f, 0.797852f, 0.506836f, -0.125977f,
- 0.740234f, 0.756836f, -0.262695f, 0.783203f, 0.691406f,
- -0.422852f, 0.474609f, 0.459961f, 0.00390625f, 0.683594f,
- 0.941406f, -0.0625f, 0.0810547f, 1.06934f, 0.0625f,
- 0.546875f, 0.967773f, 0.0351562f, 0.202148f, 1.32422f,
- -0.148438f, 0.269531f, 0.818359f, -0.3125f, 0.0742188f,
- 1.23633f, -0.188477f, -0.0263672f, 0.713867f, -0.139648f,
- -0.230469f, 0.8125f, -0.134766f, -0.246094f, 0.734375f,
- -0.09375f, -0.22168f, 1.17188f, -0.158203f, -0.209961f,
- 1.09766f, -0.141602f, 0.00976562f, 0.991211f, -0.238281f,
- 0.0341797f, 0.979492f, -0.207031f, -0.0166016f, 1.00293f,
- -0.228516f, 0.0527344f, 1.28711f, -0.167969f, 0.164062f,
- 0.925781f, -0.255859f, 0.170898f, 0.956055f, -0.256836f,
- 0.191406f, 0.936523f, -0.145508f, 0.205078f, 0.904297f,
- -0.257812f, 0.117188f, 0.870117f, -0.188477f, 0.166992f,
- 1.02441f, -0.288086f, 0.163086f, 0.938477f, -0.262695f,
- 0.138672f, 0.947266f, -0.219727f, 0.0947266f, 0.992188f,
- -0.0732422f, 0.116211f, 1.00293f, -0.203125f, 0.0205078f,
- 0.933594f, -0.235352f, -0.0126953f, 0.844727f, -0.0693359f,
- 0.119141f, 1.00195f, -0.110352f, 0.135742f, 1.00391f,
- -0.101562f, 0.0546875f, 1.06543f, -0.18457f, 0.0507812f,
- 0.933594f, -0.112305f, 0.00976562f, 0.973633f, -0.193359f,
- -0.0185547f, 0.885742f, -0.279297f, -0.0107422f, 1.02344f,
- -0.078125f, -0.0107422f, 1.0127f, 0.140625f, -0.142578f,
- 0.994141f, -0.132812f, -0.145508f, 0.90918f, -0.000976562f,
- -0.22168f, 1.0498f, -0.148438f, -0.185547f, 1.2207f,
- -0.172852f, -0.196289f, 1.0957f, -0.183594f, -0.0390625f,
- 1.34863f, -0.21875f, -0.745117f, 0.952148f, 0.0126953f,
- -0.196289f, 1.29492f, -0.150391f, -0.768555f, 0.853516f,
- -0.163086f, -0.25f, 0.358398f, -0.0507812f, -0.80957f,
- 0.139648f, 0.125f, -0.790039f, -0.257812f, 0.175781f,
- -0.795898f, -0.135742f, 0.00585938f, -0.841797f, -0.279297f,
- 0.0419922f, -0.708984f, 0.0175781f, -0.0957031f, -0.75f,
- -0.204102f, 0.0419922f, -0.78125f, 0.0322266f, -0.125f,
- -0.787109f, -0.0380859f, -0.0683594f, -1.06641f, 0.0947266f,
- -0.238281f, -1.02148f, 0.117188f, -0.176758f, -1.77539f,
- 0.0117188f, -0.31543f, -1.80566f, -0.0625f, -0.273438f,
- -0.764648f, 0.143555f, -0.21875f, -0.746094f, 0.162109f,
- -0.0351562f, -0.858398f, 0.186523f, -0.250977f, -0.918945f,
- 0.0458984f, 0.135742f, -0.988281f, 0.241211f, -0.192383f,
- -0.963867f, 0.277344f, -0.129883f, -0.994141f, 0.22168f,
- -0.169922f, -0.96582f, 0.290039f, -0.217773f, -0.990234f,
- 0.185547f, -0.152344f, -0.978516f, 0.169922f, -0.0361328f,
- -0.912109f, 0.119141f, -0.352539f, -0.838867f, 0.183594f,
- -0.0380859f, -0.753906f, 0.274414f, -0.575195f, -0.770508f,
- 0.192383f, -0.482422f, -0.904297f, -0.0234375f, -0.498047f,
- -0.817383f, 0.0527344f, -0.277344f, -0.428711f, 0.114258f,
- -0.634766f, -0.427734f, -0.0429688f, -0.405273f, -0.318359f,
- 0.118164f, -0.870117f, -0.193359f, 0.171875f, -0.938477f,
- -0.1875f, 0.208008f, -1.04688f, -0.246094f, 0.0849609f,
- -1.72461f, -0.353516f, 0.234375f, -1.05859f, -0.304688f,
- 0.151367f, -1.38672f, -0.663086f, 0.242188f, -0.939453f,
- -0.481445f, 0.189453f, -0.87793f, -0.831055f, 0.358398f,
- -0.555664f, -0.621094f, 0.444336f, -0.287109f, -0.802734f,
- 0.367188f, -0.25293f, -0.753906f, 0.413086f, 0.0126953f,
- -1.0127f, 0.335938f, -0.250977f, -0.942383f, 0.563477f,
- 0.000976562f, -1.33691f, 0.138672f, -0.365234f, -0.996094f,
- 0.542969f, -0.0400391f, -1.44434f, 0.239258f, -0.655273f,
- -0.625977f, 0.313477f, -0.444336f, -0.589844f, -0.106445f,
- -0.217773f, 0.00585938f, -0.760742f, -0.219727f, 0.0654297f,
- -0.626953f, -0.0439453f, 0.0732422f, -1.22168f, 0.0126953f,
- 0.210938f, -0.754883f, -0.0839844f, 0.161133f, -0.980469f,
- -0.124023f, 0.141602f, -0.828125f, -0.199219f, 0.152344f,
- -0.80957f, -0.230469f, 0.231445f, -0.865234f, -0.259766f,
- 0.232422f, -0.892578f, -0.305664f, 0.323242f, -0.87793f,
- -0.294922f, 0.274414f, -1.0791f, -0.435547f, 0.222656f,
- -0.863281f, -0.375f, 0.219727f, -1.0166f, -0.525391f,
- 0.0341797f, -0.834961f, -0.454102f, 0.0371094f, -0.984375f,
- -0.486328f, -0.135742f, -0.700195f, -0.339844f, -0.0078125f,
- -1.20508f, -0.665039f, -0.791016f, 0.00390625f, -0.277344f,
- 0.0136719f, -0.492188f, -0.779297f, -1.49316f, 0.0957031f,
- -0.179688f, -0.587891f, 0.665039f, 0.398438f, -0.980469f,
- 0.428711f, 0.254883f, -0.828125f, 0.724609f, 0.663086f,
- -0.90625f, 0.555664f, 0.0791016f, -0.837891f, 0.591797f,
- 0.257812f, -0.806641f, 0.609375f, 0.0458984f, -0.779297f,
- 0.529297f, 0.00292969f, -0.829102f, 0.640625f, 0.0371094f,
- -0.797852f, 0.583008f, 0.208984f, -0.864258f, 0.583984f,
- -0.0615234f, -0.758789f, 0.72168f, 0.0947266f, -0.921875f,
- 0.605469f, -0.264648f, -0.75293f, 0.701172f, 0.107422f,
- -0.735352f, 0.44043f, -0.527344f, -0.398438f, 0.46875f,
- -0.421875f, -0.424805f, 0.0810547f, -0.754883f, -0.241211f,
- -0.107422f, -1.13574f, -0.410156f, -0.0400391f, -0.942383f,
- -0.454102f, -0.12207f, -1.24902f, -0.509766f, -0.393555f,
- -0.959961f, -0.511719f, -0.381836f, -1.04883f, -0.924805f,
- -0.756836f, -1.17969f, -0.521484f, -0.105469f, -1.16504f,
- -0.767578f, -0.477539f, -0.401367f, -0.0341797f, -0.341797f,
- 0.0507812f, 0.389648f, -0.507812f, 0.186523f, 0.438477f,
- -1.33594f, 0.625977f, 0.518555f, -0.671875f, 0.182617f,
- 0.432617f, -1.18359f, 0.132812f, 0.414062f, -0.782227f,
- 0.0615234f, 0.401367f, -1.30176f, -0.0683594f, -0.100586f,
- -0.586914f, 0.0302734f, 0.191406f, -0.983398f, -0.0273438f,
- -0.735352f, -0.224609f, -0.342773f, -0.241211f, -0.566406f,
- 0.015625f, -1.1084f, -0.00976562f, -0.652344f, -0.75293f,
- 0.239258f, -0.449219f, -1.08789f, 0.107422f, -0.572266f,
- -0.887695f, 0.407227f, -0.423828f, -0.919922f, 0.173828f,
- -0.705078f, -0.825195f, 0.411133f, -0.484375f, -0.799805f,
- 0.237305f, -0.776367f, -0.745117f, 0.459961f, -0.819336f,
- -0.749023f, 0.208008f, -0.788086f, -0.716797f, 0.226562f,
- -0.795898f, -0.72168f, 0.123047f, -0.790039f, -0.705078f,
- 0.101562f, -0.720703f, -0.745117f, -0.0517578f, -0.771484f,
- -0.701172f, -0.0175781f, -0.758789f, -0.765625f, -0.0917969f,
- -0.745117f, -0.751953f, -0.149414f, -0.6875f, -0.660156f,
- -0.0166016f, -0.782227f, -0.592773f, -0.0205078f, -0.726562f,
- -0.376953f, 0.119141f, -0.599609f, -0.371094f, 0.0107422f,
- -0.736328f, -0.325195f, 0.0771484f, -0.768555f, -0.388672f,
- -0.0273438f, -0.750977f, -0.477539f, 0.107422f, -0.919922f,
- -0.514648f, 0.125f, -0.961914f, -0.37793f, 0.0136719f,
- -0.981445f, -0.447266f, -0.0107422f, -0.823242f, -0.303711f,
- 0.0986328f, -1.00684f, -0.366211f, 0.0986328f, -1.14551f,
- -0.239258f, 0.140625f, -0.894531f, -0.297852f, 0.0849609f,
- -0.949219f, -0.341797f, 0.131836f, -0.966797f, -0.380859f,
- 0.0947266f, -0.75293f, -0.391602f, 0.0839844f, -0.908203f,
- -0.40625f, 0.161133f, -0.860352f, -0.452148f, 0.1875f,
- -0.950195f, -0.496094f, 0.200195f, -0.828125f, -0.581055f,
- 0.0771484f, -0.93457f, -0.607422f, 0.0996094f, -0.863281f,
- -0.59375f, 0.0927734f, -0.802734f, -0.604492f, 0.0947266f,
- -0.807617f, -0.722656f, 0.101562f, -0.844727f, -0.711914f,
- 0.149414f, -1.03125f, -0.77832f, 0.125977f, -0.78418f,
- -0.740234f, 0.121094f, -0.891602f, -0.808594f, 0.164062f,
- -0.650391f, -0.80957f, 0.0888672f, -0.416992f, -0.866211f,
- 0.155273f, -0.382812f, -0.880859f, 0.0849609f, -0.264648f,
- -0.775391f, 0.229492f, -0.389648f, -0.814453f, 0.0664062f,
- -0.226562f, -0.625f, 0.414062f, -0.274414f, -0.681641f,
- 0.0292969f, -0.0478516f, -0.711914f, 0.794922f, -0.388672f,
- -0.584961f, 0.368164f, -0.257812f, -0.545898f, 1.09277f,
- -0.277344f, -0.125977f, 0.822266f, -0.365234f, -0.467773f,
- 0.714844f, -0.413086f, -0.136719f, 1.57227f, -0.0947266f,
- -0.223633f, 0.817383f, -0.0556641f, -0.0322266f, 1.18945f,
- -0.191406f, -0.498047f, 0.991211f, -0.231445f, -0.246094f,
- 0.8125f, -0.239258f, -0.755859f, 0.853516f, -0.228516f,
- -0.821289f, 0.503906f, -0.121094f, -0.795898f, 0.523438f,
- -0.220703f, -0.773438f, 0.517578f, -0.274414f, -0.757812f,
- 0.539062f, -0.222656f, -0.770508f, 0.396484f, -0.115234f,
- -1.2334f, 0.485352f, -0.217773f, -0.94043f, 1.01758f,
- -0.202148f, -0.605469f, 0.0546875f, 0.0957031f, -0.639648f,
- -0.661133f, 0.245117f, -0.750977f, 0.0615234f, -0.726562f,
- -0.879883f, -0.432617f, -1.05859f, -1.29688f, 0.00488281f,
- 0.193359f, -0.939453f, 0.209961f, -0.209961f, -0.793945f,
- 0.251953f, 0.722656f, -0.447266f, 0.0615234f, 0.855469f,
- -0.454102f, -0.0126953f, 0.0527344f, -0.342773f, 0.154297f,
- 1.3877f, -0.65918f, 0.133789f, 0.0576172f, -0.233398f,
- -0.12207f, 0.46582f, -1.09961f, 0.438477f, -0.641602f,
- -0.861328f, 0.197266f, -1.99902f, -0.932617f, 0.234375f,
- 0.389648f, -0.792969f, -0.0908203f, 1.66797f, -1.0459f,
- 0.0107422f, -0.543945f, -0.80957f, 0.206055f, -0.27832f,
- -0.915039f, 0.104492f, -0.301758f, -0.891602f, 0.0556641f,
- -0.681641f, -0.901367f, 0.0498047f, -0.461914f, -0.927734f,
- -0.0390625f, -0.229492f, -1.04004f, 0.0869141f, -0.435547f,
- -1.02148f, 0.0947266f, -0.527344f, -0.979492f, 0.0751953f,
- 0.266602f, -0.786133f, -0.0224609f, -0.0947266f, -0.702148f,
- -0.00683594f, -0.316406f, -0.698242f, -0.317383f, 1.92578f,
- -1.0498f, 0.0273438f, -1.14258f, -0.226562f, 0.233398f,
- -0.995117f, -0.9375f, 0.0146484f, -0.223633f, -0.49707f,
- -0.0078125f, -1.95703f, -0.847656f, 0.157227f, 0.129883f,
- -0.459961f, -0.114258f, 2.0f, -1.13574f, -0.0839844f,
- -0.0878906f, -0.783203f, 0.131836f, -0.803711f, -0.90332f,
- 0.208984f, -0.365234f, -0.97168f, -0.0322266f, 0.186523f,
- -0.924805f, 0.00292969f, -0.272461f, -0.890625f, 0.015625f,
- -0.333008f, -0.932617f, 0.180664f, -0.459961f, -0.90918f,
- 0.240234f, -0.625977f, -1.1582f, 0.0996094f, -0.170898f,
- -1.08887f, -0.00976562f, -0.849609f, -0.430664f, 0.139648f,
- -0.308594f, -0.572266f, -0.722656f, 1.83496f, -1.00977f,
- 0.387695f, 0.487305f, -0.268555f, 0.0712891f, -0.0136719f,
- -1.5332f, 0.290039f, -0.0351562f, -0.861328f, 1.98535f,
- -1.16602f, -0.602539f, 0.441406f, 0.175781f, -0.605469f,
- -0.831055f, 0.686523f, -0.984375f, 0.494141f, -0.489258f,
- -0.895508f, 0.371094f, -0.665039f, -1.14258f, -0.214844f,
- -0.140625f, -1.06348f, -0.0996094f, 0.255859f, -0.874023f,
- 0.193359f, -0.0947266f, -0.959961f, -0.0966797f, 0.00195312f,
- -0.996094f, -0.0117188f, -0.174805f, -0.962891f, 0.106445f,
- -0.162109f, -1.04297f, -0.0283203f, -0.306641f, -1.06738f,
- -0.0224609f, -0.129883f, -1.03223f, 0.129883f, 0.195312f,
- -1.08789f, -0.130859f, 0.649414f, -0.572266f, -0.0136719f,
- -0.793945f, -0.382812f, 0.0f, -1.08301f, -0.78125f,
- -0.0224609f, -0.339844f, -0.629883f, -0.0947266f, -1.83789f,
- -1.01562f, 0.046875f, 0.223633f, -0.808594f, 0.0957031f,
- 1.09766f, -0.756836f, -0.0488281f, 0.157227f, -0.59082f,
- -0.103516f, 0.929688f, -0.816406f, -0.0322266f, -0.426758f,
- -0.868164f, -0.209961f, -1.99902f, -0.986328f, -0.00878906f,
- -0.365234f, -0.980469f, 0.0439453f, 0.59375f, -0.994141f,
- 0.0253906f, 0.0371094f, -0.970703f, -0.0273438f, -0.120117f,
- -0.935547f, 0.00195312f, -0.235352f, -0.952148f, -0.0263672f,
- -0.194336f, -0.917969f, -0.0195312f, -0.261719f, -0.928711f,
- -0.0234375f, -0.219727f, -0.945312f, 0.0107422f, -0.228516f,
- -0.938477f, 0.00683594f, -0.178711f, -0.791016f, 0.03125f,
- -0.255859f, -0.789062f, 0.0f, -0.141602f, -0.789062f,
- 0.232422f, -0.285156f, -0.788086f, 0.228516f, -0.28125f,
- -1.0f, 0.258789f, -0.277344f, -0.999023f, 0.28125f,
- -0.25293f, -1.06152f, 0.046875f, -0.421875f, -1.07715f,
- 0.0390625f, -0.224609f, -0.923828f, -0.0205078f, -0.335938f,
- -0.984375f, -0.0966797f, -0.34668f, -0.990234f, -0.191406f,
- -0.301758f, -1.03613f, -0.241211f, -0.37207f, -0.975586f,
- -0.267578f, -0.460938f, -1.00977f, -0.320312f, -0.382812f,
- -0.913086f, -0.257812f, -0.457031f, -0.925781f, -0.256836f,
- -0.34668f, -0.889648f, -0.237305f, -0.393555f, -0.897461f,
- -0.239258f, -0.429688f, -0.844727f, -0.21875f, -0.428711f,
- -0.87207f, -0.203125f, -0.368164f, -0.84668f, -0.101562f,
- -0.423828f, -0.875977f, -0.165039f, -0.363281f, -0.884766f,
- -0.0625f, -0.473633f, -0.90332f, -0.078125f, -0.138672f,
- -0.918945f, -0.198242f, -0.25f, -0.928711f, -0.138672f,
- -0.267578f, -1.08203f, 0.00488281f, -0.575195f, -1.125f,
- -0.0332031f, -0.4375f, -0.924805f, 0.078125f, -0.305664f,
- -0.93457f, -0.0166016f, -0.475586f, -0.94043f, -0.00488281f,
- -0.533203f, -0.956055f, 0.00292969f, -0.391602f, -1.00293f,
- 0.0361328f, -0.711914f, -1.0166f, 0.0332031f, -0.448242f,
- -0.806641f, -0.21582f, -0.556641f, -0.759766f, -0.0214844f,
- -0.626953f, -0.700195f, -0.263672f, -0.308594f, -0.608398f,
- -0.236328f, -0.253906f, -0.616211f, -0.378906f, 0.224609f,
- -0.498047f, -0.399414f, 0.206055f, -0.516602f, -0.228516f,
- 0.743164f, -0.174805f, -0.125f, 0.760742f, -0.0214844f,
- -0.135742f, 0.966797f, 0.240234f, 0.0332031f, 1.01855f,
- 0.105469f, 0.15332f, 0.950195f, 0.240234f, 0.0732422f,
- 1.16895f, 0.245117f, 0.206055f, 0.952148f, 0.273438f,
- -0.0390625f, 1.2793f, 0.404297f, 0.303711f, 0.720703f,
- 0.369141f, 0.0966797f, 0.918945f, 0.329102f, 0.0390625f,
- 0.991211f, 0.397461f, -0.124023f, 0.866211f, 0.210938f,
- 0.130859f, 1.08789f, 0.317383f, 0.0537109f, 0.858398f,
- 0.245117f, 0.0732422f, 0.741211f, 0.419922f, 0.0302734f,
- 0.681641f, 0.485352f, -0.0214844f, 0.641602f, 0.520508f,
- -0.129883f, 0.839844f, 0.490234f, 0.00390625f, 0.676758f,
- 0.581055f, -0.0146484f, 0.692383f, 0.432617f, -0.0371094f,
- 0.807617f, 0.664062f, 0.255859f, 0.216797f, 1.22559f,
- 0.0195312f, 1.22168f, 1.2793f, -0.405273f, 1.72559f,
- 0.708984f, -0.209961f, 0.579102f, 0.821289f, 0.0380859f,
- 0.605469f, 0.80957f, 0.147461f, 0.419922f, 0.869141f,
- 0.0390625f, 0.5625f, 0.786133f, 0.0654297f, 0.594727f,
- 0.879883f, 0.0166016f, 0.480469f, 0.835938f, 0.00195312f,
- 0.414062f, 0.899414f, -0.03125f, 0.344727f, 0.889648f,
- 0.0185547f, 0.236328f, 0.932617f, -0.00585938f, 0.255859f,
- 0.910156f, 0.0898438f, 0.262695f, 0.945312f, 0.0126953f,
- 0.279297f, 0.860352f, 0.0507812f, 0.322266f, 0.913086f,
- 0.00195312f, 0.296875f, 0.875977f, 0.0078125f, 0.373047f,
- 0.922852f, -0.0244141f, 0.267578f, 0.884766f, 0.0117188f,
- 0.347656f, 0.926758f, -0.0371094f, 0.266602f, 0.894531f,
- -0.00683594f, 0.345703f, 0.926758f, -0.0478516f, 0.269531f,
- 0.887695f, 0.0146484f, 0.360352f, 0.927734f, -0.03125f,
- 0.272461f};
+ 0.892578f, -0.0810547f, 0.0146484f, 0.929688f, -0.0644531f,
+ -0.0234375f, 0.996094f, -0.0136719f, 0.0185547f, 1.02344f,
+ -0.0615234f, -0.0449219f, 0.978516f, 0.125977f, 0.0400391f,
+ 0.996094f, 0.0332031f, -0.0117188f, 0.963867f, 0.107422f,
+ 0.0214844f, 0.980469f, 0.0185547f, -0.00683594f, 0.952148f,
+ 0.0361328f, 0.0253906f, 0.976562f, -0.00390625f, -0.0126953f,
+ 0.97168f, 0.0205078f, 0.0517578f, 1.01074f, 0.015625f,
+ -0.0234375f, 0.953125f, -0.000976562f, 0.0390625f, 0.977539f,
+ -0.0224609f, -0.00976562f, 0.954102f, 0.0244141f, 0.0439453f,
+ 0.986328f, 0.00292969f, -0.000976562f, 0.967773f, 0.0537109f,
+ 0.046875f, 0.99707f, 0.0175781f, -0.000976562f, 0.951172f,
+ 0.0390625f, 0.0341797f, 0.974609f, -0.00878906f, -0.000976562f,
+ 0.948242f, 0.0185547f, 0.0478516f, 0.976562f, -0.000976562f,
+ -0.00683594f, 0.958984f, 0.0263672f, 0.078125f, 0.982422f,
+ -0.0205078f, 0.0283203f, 0.930664f, 0.00878906f, 0.0664062f,
+ 0.970703f, 0.00390625f, -0.0078125f, 0.945312f, 0.0380859f,
+ -0.00585938f, 0.972656f, 0.0419922f, -0.0478516f, 1.01953f,
+ 0.240234f, -0.182617f, 1.00977f, 0.18457f, -0.126953f,
+ 1.05566f, 0.0751953f, -0.0888672f, 1.09766f, 0.0732422f,
+ -0.0898438f, 1.21484f, 0.119141f, -0.000976562f, 1.23633f,
+ 0.194336f, -0.447266f, 1.31445f, 0.213867f, -0.118164f,
+ 1.30762f, 0.0908203f, -0.260742f, 0.860352f, 0.141602f,
+ -0.166016f, 0.868164f, 0.0429688f, -0.258789f, 0.727539f,
+ 0.0419922f, -0.21875f, 0.740234f, 0.0126953f, -0.162109f,
+ 0.652344f, -0.00292969f, -0.185547f, 0.666992f, 0.0800781f,
+ -0.272461f, 0.852539f, -0.0478516f, -0.228516f, 0.819336f,
+ -0.0996094f, -0.180664f, 0.959961f, -0.0537109f, -0.240234f,
+ 0.935547f, -0.0917969f, -0.269531f, 0.988281f, -0.0507812f,
+ -0.197266f, 0.981445f, -0.0712891f, -0.323242f, 0.964844f,
+ -0.0683594f, -0.203125f, 0.941406f, -0.0898438f, -0.236328f,
+ 0.942383f, -0.0429688f, -0.206055f, 0.921875f, -0.0527344f,
+ -0.239258f, 0.976562f, -0.0742188f, -0.261719f, 0.958008f,
+ -0.09375f, -0.311523f, 0.949219f, -0.0839844f, -0.242188f,
+ 0.949219f, -0.0742188f, -0.323242f, 0.973633f, -0.0263672f,
+ -0.238281f, 0.958984f, -0.0488281f, -0.293945f, 0.931641f,
+ -0.0214844f, -0.225586f, 0.931641f, 0.0195312f, -0.225586f,
+ 0.810547f, -0.0947266f, -0.15332f, 0.947266f, 0.241211f,
+ -0.100586f, 0.326172f, 0.286133f, -0.12207f, 0.855469f,
+ 0.677734f, -0.228516f, 0.229492f, 1.08398f, 0.0224609f,
+ 0.822266f, 0.759766f, -0.0722656f, 0.294922f, 1.42676f,
+ 0.147461f, 0.239258f, 0.755859f, 0.142578f, -0.120117f,
+ 1.00977f, -0.0722656f, -0.154297f, 0.832031f, -0.0576172f,
+ -0.15332f, 1.10156f, -0.0273438f, -0.119141f, 1.05078f,
+ 0.0166016f, -0.0927734f, 1.09961f, -0.0703125f, -0.0751953f,
+ 1.04688f, -0.00195312f, -0.078125f, 0.897461f, -0.0625f,
+ -0.078125f, 0.854492f, -0.0947266f, -0.123047f, 0.811523f,
+ -0.0488281f, -0.113281f, 0.796875f, 0.0f, -0.0488281f,
+ 0.961914f, -0.177734f, -0.0898438f, 0.859375f, -0.172852f,
+ 0.0126953f, 1.1084f, -0.158203f, 0.0292969f, 1.0791f,
+ -0.152344f, 0.154297f, 1.29492f, -0.126953f, 0.134766f,
+ 1.23145f, -0.0878906f, -0.200195f, 0.667969f, -0.216797f,
+ -0.0888672f, 0.935547f, -0.143555f, 0.000976562f, 1.13281f,
+ -0.0498047f, 0.00195312f, 1.05469f, -0.231445f, 0.0927734f,
+ 0.956055f, -0.292969f, 0.0625f, 0.927734f, -0.112305f,
+ 0.0585938f, 0.975586f, -0.163086f, 0.0957031f, 1.03418f,
+ -0.229492f, 0.000976562f, 0.985352f, -0.09375f, -0.00585938f,
+ 0.945312f, -0.140625f, -0.0302734f, 0.998047f, -0.208008f,
+ -0.0507812f, 0.916016f, -0.112305f, 0.123047f, 0.981445f,
+ -0.205078f, 0.129883f, 1.02832f, -0.211914f, 0.105469f,
+ 1.01367f, -0.142578f, 0.111328f, 1.00098f, -0.110352f,
+ 0.0986328f, 0.999023f, -0.15918f, 0.0839844f, 0.922852f,
+ -0.223633f, 0.261719f, 1.06641f, -0.138672f, 0.240234f,
+ 0.916016f, -0.296875f, 0.00488281f, 1.04199f, -0.128906f,
+ 0.0341797f, 1.0791f, -0.265625f, 0.015625f, 0.963867f,
+ -0.161133f, 0.015625f, 0.958008f, -0.0722656f, -0.125f,
+ 1.03125f, -0.19043f, -0.0722656f, 1.16602f, -0.126953f,
+ -0.143555f, 1.12793f, -0.197266f, -0.120117f, 1.26465f,
+ -0.232422f, -0.226562f, 1.125f, -0.0712891f, -0.0927734f,
+ 1.26465f, -0.145508f, -0.551758f, 0.90918f, -0.163086f,
+ -0.228516f, 1.2041f, -0.0371094f, -0.493164f, 0.827148f,
+ 0.0371094f, -0.162109f, 0.568359f, -0.195312f, -0.641602f,
+ 0.438477f, -0.212891f, -0.513672f, 0.208008f, -0.0488281f,
+ -0.776367f, 0.0488281f, -0.115234f, -0.84375f, -0.314453f,
+ 0.106445f, -0.966797f, -0.0078125f, 0.00976562f, -1.01953f,
+ -0.220703f, -0.0322266f, -0.994141f, 0.0117188f, -0.248047f,
+ -0.975586f, 0.121094f, -0.0205078f, -0.947266f, 0.00292969f,
+ -0.160156f, -0.9375f, 0.0175781f, -0.0986328f, -0.916992f,
+ -0.0195312f, -0.208008f, -0.9375f, -0.0654297f, -0.134766f,
+ -0.948242f, -0.0185547f, -0.231445f, -0.977539f, -0.0537109f,
+ -0.198242f, -1.0166f, 0.0439453f, -0.433594f, -0.994141f,
+ -0.0595703f, -0.389648f, -1.07129f, 0.0859375f, -0.109375f,
+ -1.01953f, 0.0966797f, -0.12207f, -1.01074f, 0.125977f,
+ -0.192383f, -1.0f, 0.0820312f, -0.166016f, -1.04688f,
+ 0.0751953f, -0.265625f, -1.00879f, 0.139648f, -0.135742f,
+ -1.00977f, 0.0644531f, -0.235352f, -0.989258f, 0.100586f,
+ -0.144531f, -0.858398f, 0.0273438f, -0.22168f, -0.878906f,
+ -0.0634766f, -0.1875f, -0.905273f, -0.0195312f, -0.232422f,
+ -0.926758f, -0.0732422f, -0.319336f, -1.05078f, -0.00878906f,
+ -0.5625f, -1.05176f, 0.111328f, -0.456055f, -0.942383f,
+ -0.0146484f, -0.171875f, -0.946289f, -0.0224609f, -0.174805f,
+ -0.901367f, -0.0283203f, -0.332031f, -0.948242f, -0.0732422f,
+ -0.262695f, -0.867188f, 0.0351562f, -0.271484f, -0.913086f,
+ -0.0878906f, -0.259766f, -1.2793f, -0.226562f, -0.382812f,
+ -1.2334f, 0.0400391f, -0.260742f, -1.22949f, -0.216797f,
+ -0.432617f, -1.21191f, -0.131836f, -0.368164f, -1.10938f,
+ -0.323242f, -0.505859f, -1.01953f, -0.197266f, -0.405273f,
+ -1.25488f, -0.347656f, -0.448242f, -0.803711f, 0.0595703f,
+ -0.253906f, -0.489258f, -0.00390625f, 0.101562f, 0.15332f,
+ -0.423828f, -0.0195312f, 0.527344f, -0.350586f, -0.24707f,
+ 0.363281f, -1.33789f, -0.214844f, 0.322266f, -0.768555f,
+ -0.279297f, 0.266602f, -0.918945f, -0.320312f, 0.0634766f,
+ -0.97168f, -0.102539f, 0.114258f, -0.891602f, -0.158203f,
+ 0.0283203f, -0.998047f, -0.198242f, 0.0634766f, -0.931641f,
+ -0.239258f, 0.147461f, -0.963867f, -0.219727f, 0.142578f,
+ -1.02051f, -0.279297f, 0.105469f, -0.955078f, -0.238281f,
+ 0.104492f, -1.02637f, -0.291992f, -0.0302734f, -1.02637f,
+ -0.225586f, 0.000976562f, -0.907227f, -0.12793f, 0.03125f,
+ -0.979492f, -0.100586f, 0.0625f, -0.921875f, -0.155273f,
+ 0.146484f, -0.929688f, -0.158203f, 0.155273f, -0.981445f,
+ -0.171875f, 0.212891f, -0.927734f, -0.166992f, 0.198242f,
+ -1.05371f, -0.197266f, 0.189453f, -0.954102f, -0.113281f,
+ 0.189453f, -1.00293f, -0.180664f, 0.111328f, -0.967773f,
+ -0.109375f, 0.125977f, -0.966797f, -0.146484f, 0.0712891f,
+ -0.982422f, -0.0908203f, 0.112305f, -0.928711f, -0.149414f,
+ 0.0146484f, -1.00781f, -0.0996094f, 0.102539f, -0.810547f,
+ -0.157227f, -0.0117188f, -0.820312f, -0.0371094f, 0.28418f,
+ -0.446289f, -0.166016f, 0.208008f, -0.03125f, -0.0761719f,
+ 0.755859f, -0.280273f, -0.316406f, 1.42188f, 0.198242f,
+ -0.49707f, 1.37207f, -0.556641f, -0.382812f, 1.36523f,
+ 0.110352f, -0.342773f, 1.25391f, -0.225586f, -0.570312f,
+ 0.958984f, 0.0722656f, -0.237305f, 0.984375f, 0.0957031f,
+ -0.416992f, 0.853516f, 0.0400391f, -0.416016f, 0.873047f,
+ 0.0644531f, -0.370117f, 1.04004f, 0.0273438f, -0.408203f,
+ 0.920898f, -0.0986328f, -0.514648f, 0.956055f, 0.0527344f,
+ -0.428711f, 0.960938f, 0.109375f, -0.522461f, 0.801758f,
+ -0.277344f, -0.634766f, 0.882812f, 0.0527344f, -0.34668f,
+ 0.981445f, -0.09375f, -0.298828f, 0.952148f, -0.213867f,
+ -0.25293f, 0.90918f, -0.132812f, -0.493164f, 0.885742f,
+ -0.177734f, -0.525391f, 0.915039f, -0.0605469f, -0.439453f,
+ 0.87207f, -0.0986328f, -0.506836f, 0.905273f, -0.0732422f,
+ -0.462891f, 0.870117f, -0.0966797f, -0.511719f, 0.897461f,
+ -0.0234375f, -0.464844f, 0.868164f, -0.0283203f, -0.474609f,
+ 0.919922f, 0.0205078f, -0.34375f, 0.889648f, -0.00390625f,
+ -0.445312f, 0.804688f, -0.0263672f, -0.417969f, 0.806641f,
+ 0.0410156f, -0.399414f, 0.914062f, -0.0722656f, -0.386719f,
+ 0.890625f, -0.0615234f, -0.40625f, 0.928711f, 0.0253906f,
+ -0.118164f, 0.943359f, -0.000976562f, -0.398438f, 0.811523f,
+ -0.0605469f, -0.234375f, 0.879883f, 0.198242f, -0.509766f,
+ 0.958008f, 0.0361328f, -0.328125f, 0.938477f, -0.00976562f,
+ -0.429688f, 0.916016f, -0.0185547f, -0.266602f, 0.898438f,
+ -0.0380859f, -0.450195f, 0.870117f, 0.162109f, -0.210938f,
+ 0.899414f, 0.117188f, -0.517578f, 0.756836f, -0.0820312f,
+ -0.361328f, 0.868164f, -0.0576172f, -1.29883f, 0.515625f,
+ -0.00195312f, -1.13281f, 0.628906f, 0.00390625f, -0.103516f,
+ 0.485352f, -0.046875f, -0.922852f, 0.412109f, -0.108398f,
+ -0.898438f, 0.446289f, -0.111328f, -0.925781f, 0.375977f,
+ -0.125977f, -0.825195f, 0.446289f, -0.0966797f, -0.958008f,
+ 0.389648f, -0.0810547f, -1.00781f, 0.532227f, -0.104492f,
+ -1.0791f, 0.459961f, -0.138672f, -0.941406f, 0.509766f,
+ -0.107422f, -1.14062f, 0.447266f, -0.195312f, -0.867188f,
+ 0.474609f, -0.233398f, -0.751953f, 0.612305f, -0.126953f,
+ -0.661133f, 0.702148f, -0.199219f, -0.260742f, 0.856445f,
+ -0.0292969f, -0.743164f, 0.921875f, -0.0371094f, -0.293945f,
+ 0.902344f, -0.103516f, -0.416016f, 0.955078f, -0.00488281f,
+ -0.232422f, 0.951172f, -0.0498047f, -0.331055f, 0.871094f,
+ 0.00390625f, -0.186523f, 0.905273f, 0.0566406f, -0.249023f,
+ 0.677734f, 0.0253906f, 0.145508f, 0.826172f, 0.251953f,
+ -0.428711f, 0.764648f, 0.488281f, -0.265625f, 0.886719f,
+ 0.256836f, -0.408203f, 0.744141f, 0.689453f, -0.611328f,
+ 0.755859f, 0.431641f, -0.525391f, 0.588867f, 0.637695f,
+ -0.750977f, 0.578125f, 0.568359f, -0.540039f, 0.512695f,
+ 0.530273f, -0.722656f, 0.498047f, 0.526367f, -0.788086f,
+ 0.647461f, 0.522461f, -0.862305f, 0.567383f, 0.422852f,
+ -0.765625f, 0.648438f, 0.405273f, -0.938477f, 0.583008f,
+ 0.272461f, -1.15137f, 0.481445f, 0.00585938f, -0.788086f,
+ 0.454102f, -0.0615234f, -0.885742f, 0.306641f, -0.333984f,
+ -0.678711f, 0.322266f, -0.288086f, -0.615234f, 0.220703f,
+ -0.476562f, -0.748047f, 0.223633f, -0.396484f, -0.729492f,
+ 0.235352f, -0.510742f, -0.806641f, 0.227539f, -0.476562f,
+ -0.665039f, 0.275391f, -0.47168f, -0.938477f, 0.345703f,
+ -0.369141f, -0.709961f, 0.482422f, -0.393555f, -0.380859f,
+ 0.759766f, -0.143555f, -0.529297f, 0.956055f, -0.0185547f,
+ -0.12207f, 1.15527f, 0.0380859f, -0.529297f, 1.04102f,
+ 0.203125f, -0.0283203f, 1.11719f, 0.0888672f, -0.258789f,
+ 1.02734f, 0.297852f, -0.0244141f, 1.03223f, 0.211914f,
+ -0.0859375f, 0.798828f, 0.216797f, 0.19043f, 0.891602f,
+ 0.256836f, -0.102539f, 0.662109f, 0.263672f, 0.208984f,
+ 0.810547f, 0.380859f, -0.235352f, 0.707031f, 0.507812f,
+ -0.0800781f, 0.902344f, 0.470703f, -0.301758f, 0.577148f,
+ 0.674805f, -0.500977f, 0.748047f, 0.472656f, -0.493164f,
+ 0.478516f, 0.611328f, -1.04395f, 0.491211f, 0.651367f,
+ -0.581055f, 0.25293f, 0.325195f, -0.950195f, 0.224609f,
+ 0.404297f, -1.04883f, 0.116211f, -0.00292969f, -0.980469f,
+ 0.0566406f, 0.0195312f, -0.821289f, 0.0166016f, -0.141602f,
+ -0.959961f, -0.0322266f, -0.158203f, -0.837891f, 0.119141f,
+ -0.224609f, -1.00781f, 0.09375f, -0.151367f, -1.00684f,
+ 0.248047f, -0.238281f, -0.973633f, 0.271484f, -0.324219f,
+ -0.942383f, 0.443359f, -0.298828f, -0.845703f, 0.581055f,
+ -0.291992f, -0.700195f, 0.65918f, -0.319336f, -0.262695f,
+ 0.818359f, -0.286133f, -0.579102f, 0.827148f, -0.272461f,
+ -0.0908203f, 0.935547f, -0.233398f, -0.374023f, 0.920898f,
+ -0.137695f, 0.000976562f, 0.964844f, -0.12793f, -0.285156f,
+ 0.880859f, -0.0244141f, -0.0830078f, 0.930664f, 0.00976562f,
+ -0.15332f, 0.731445f, 0.172852f, 0.0380859f, 0.876953f,
+ 0.264648f, -0.194336f, 0.601562f, 0.613281f, -0.132812f,
+ 0.803711f, 0.53418f, -0.268555f, 0.933594f, 0.899414f,
+ -0.332031f, 0.923828f, 0.521484f, -0.425781f, 0.972656f,
+ 0.959961f, -0.506836f, 0.797852f, 0.506836f, -0.125977f,
+ 0.740234f, 0.756836f, -0.262695f, 0.783203f, 0.691406f,
+ -0.422852f, 0.474609f, 0.459961f, 0.00390625f, 0.683594f,
+ 0.941406f, -0.0625f, 0.0810547f, 1.06934f, 0.0625f,
+ 0.546875f, 0.967773f, 0.0351562f, 0.202148f, 1.32422f,
+ -0.148438f, 0.269531f, 0.818359f, -0.3125f, 0.0742188f,
+ 1.23633f, -0.188477f, -0.0263672f, 0.713867f, -0.139648f,
+ -0.230469f, 0.8125f, -0.134766f, -0.246094f, 0.734375f,
+ -0.09375f, -0.22168f, 1.17188f, -0.158203f, -0.209961f,
+ 1.09766f, -0.141602f, 0.00976562f, 0.991211f, -0.238281f,
+ 0.0341797f, 0.979492f, -0.207031f, -0.0166016f, 1.00293f,
+ -0.228516f, 0.0527344f, 1.28711f, -0.167969f, 0.164062f,
+ 0.925781f, -0.255859f, 0.170898f, 0.956055f, -0.256836f,
+ 0.191406f, 0.936523f, -0.145508f, 0.205078f, 0.904297f,
+ -0.257812f, 0.117188f, 0.870117f, -0.188477f, 0.166992f,
+ 1.02441f, -0.288086f, 0.163086f, 0.938477f, -0.262695f,
+ 0.138672f, 0.947266f, -0.219727f, 0.0947266f, 0.992188f,
+ -0.0732422f, 0.116211f, 1.00293f, -0.203125f, 0.0205078f,
+ 0.933594f, -0.235352f, -0.0126953f, 0.844727f, -0.0693359f,
+ 0.119141f, 1.00195f, -0.110352f, 0.135742f, 1.00391f,
+ -0.101562f, 0.0546875f, 1.06543f, -0.18457f, 0.0507812f,
+ 0.933594f, -0.112305f, 0.00976562f, 0.973633f, -0.193359f,
+ -0.0185547f, 0.885742f, -0.279297f, -0.0107422f, 1.02344f,
+ -0.078125f, -0.0107422f, 1.0127f, 0.140625f, -0.142578f,
+ 0.994141f, -0.132812f, -0.145508f, 0.90918f, -0.000976562f,
+ -0.22168f, 1.0498f, -0.148438f, -0.185547f, 1.2207f,
+ -0.172852f, -0.196289f, 1.0957f, -0.183594f, -0.0390625f,
+ 1.34863f, -0.21875f, -0.745117f, 0.952148f, 0.0126953f,
+ -0.196289f, 1.29492f, -0.150391f, -0.768555f, 0.853516f,
+ -0.163086f, -0.25f, 0.358398f, -0.0507812f, -0.80957f,
+ 0.139648f, 0.125f, -0.790039f, -0.257812f, 0.175781f,
+ -0.795898f, -0.135742f, 0.00585938f, -0.841797f, -0.279297f,
+ 0.0419922f, -0.708984f, 0.0175781f, -0.0957031f, -0.75f,
+ -0.204102f, 0.0419922f, -0.78125f, 0.0322266f, -0.125f,
+ -0.787109f, -0.0380859f, -0.0683594f, -1.06641f, 0.0947266f,
+ -0.238281f, -1.02148f, 0.117188f, -0.176758f, -1.77539f,
+ 0.0117188f, -0.31543f, -1.80566f, -0.0625f, -0.273438f,
+ -0.764648f, 0.143555f, -0.21875f, -0.746094f, 0.162109f,
+ -0.0351562f, -0.858398f, 0.186523f, -0.250977f, -0.918945f,
+ 0.0458984f, 0.135742f, -0.988281f, 0.241211f, -0.192383f,
+ -0.963867f, 0.277344f, -0.129883f, -0.994141f, 0.22168f,
+ -0.169922f, -0.96582f, 0.290039f, -0.217773f, -0.990234f,
+ 0.185547f, -0.152344f, -0.978516f, 0.169922f, -0.0361328f,
+ -0.912109f, 0.119141f, -0.352539f, -0.838867f, 0.183594f,
+ -0.0380859f, -0.753906f, 0.274414f, -0.575195f, -0.770508f,
+ 0.192383f, -0.482422f, -0.904297f, -0.0234375f, -0.498047f,
+ -0.817383f, 0.0527344f, -0.277344f, -0.428711f, 0.114258f,
+ -0.634766f, -0.427734f, -0.0429688f, -0.405273f, -0.318359f,
+ 0.118164f, -0.870117f, -0.193359f, 0.171875f, -0.938477f,
+ -0.1875f, 0.208008f, -1.04688f, -0.246094f, 0.0849609f,
+ -1.72461f, -0.353516f, 0.234375f, -1.05859f, -0.304688f,
+ 0.151367f, -1.38672f, -0.663086f, 0.242188f, -0.939453f,
+ -0.481445f, 0.189453f, -0.87793f, -0.831055f, 0.358398f,
+ -0.555664f, -0.621094f, 0.444336f, -0.287109f, -0.802734f,
+ 0.367188f, -0.25293f, -0.753906f, 0.413086f, 0.0126953f,
+ -1.0127f, 0.335938f, -0.250977f, -0.942383f, 0.563477f,
+ 0.000976562f, -1.33691f, 0.138672f, -0.365234f, -0.996094f,
+ 0.542969f, -0.0400391f, -1.44434f, 0.239258f, -0.655273f,
+ -0.625977f, 0.313477f, -0.444336f, -0.589844f, -0.106445f,
+ -0.217773f, 0.00585938f, -0.760742f, -0.219727f, 0.0654297f,
+ -0.626953f, -0.0439453f, 0.0732422f, -1.22168f, 0.0126953f,
+ 0.210938f, -0.754883f, -0.0839844f, 0.161133f, -0.980469f,
+ -0.124023f, 0.141602f, -0.828125f, -0.199219f, 0.152344f,
+ -0.80957f, -0.230469f, 0.231445f, -0.865234f, -0.259766f,
+ 0.232422f, -0.892578f, -0.305664f, 0.323242f, -0.87793f,
+ -0.294922f, 0.274414f, -1.0791f, -0.435547f, 0.222656f,
+ -0.863281f, -0.375f, 0.219727f, -1.0166f, -0.525391f,
+ 0.0341797f, -0.834961f, -0.454102f, 0.0371094f, -0.984375f,
+ -0.486328f, -0.135742f, -0.700195f, -0.339844f, -0.0078125f,
+ -1.20508f, -0.665039f, -0.791016f, 0.00390625f, -0.277344f,
+ 0.0136719f, -0.492188f, -0.779297f, -1.49316f, 0.0957031f,
+ -0.179688f, -0.587891f, 0.665039f, 0.398438f, -0.980469f,
+ 0.428711f, 0.254883f, -0.828125f, 0.724609f, 0.663086f,
+ -0.90625f, 0.555664f, 0.0791016f, -0.837891f, 0.591797f,
+ 0.257812f, -0.806641f, 0.609375f, 0.0458984f, -0.779297f,
+ 0.529297f, 0.00292969f, -0.829102f, 0.640625f, 0.0371094f,
+ -0.797852f, 0.583008f, 0.208984f, -0.864258f, 0.583984f,
+ -0.0615234f, -0.758789f, 0.72168f, 0.0947266f, -0.921875f,
+ 0.605469f, -0.264648f, -0.75293f, 0.701172f, 0.107422f,
+ -0.735352f, 0.44043f, -0.527344f, -0.398438f, 0.46875f,
+ -0.421875f, -0.424805f, 0.0810547f, -0.754883f, -0.241211f,
+ -0.107422f, -1.13574f, -0.410156f, -0.0400391f, -0.942383f,
+ -0.454102f, -0.12207f, -1.24902f, -0.509766f, -0.393555f,
+ -0.959961f, -0.511719f, -0.381836f, -1.04883f, -0.924805f,
+ -0.756836f, -1.17969f, -0.521484f, -0.105469f, -1.16504f,
+ -0.767578f, -0.477539f, -0.401367f, -0.0341797f, -0.341797f,
+ 0.0507812f, 0.389648f, -0.507812f, 0.186523f, 0.438477f,
+ -1.33594f, 0.625977f, 0.518555f, -0.671875f, 0.182617f,
+ 0.432617f, -1.18359f, 0.132812f, 0.414062f, -0.782227f,
+ 0.0615234f, 0.401367f, -1.30176f, -0.0683594f, -0.100586f,
+ -0.586914f, 0.0302734f, 0.191406f, -0.983398f, -0.0273438f,
+ -0.735352f, -0.224609f, -0.342773f, -0.241211f, -0.566406f,
+ 0.015625f, -1.1084f, -0.00976562f, -0.652344f, -0.75293f,
+ 0.239258f, -0.449219f, -1.08789f, 0.107422f, -0.572266f,
+ -0.887695f, 0.407227f, -0.423828f, -0.919922f, 0.173828f,
+ -0.705078f, -0.825195f, 0.411133f, -0.484375f, -0.799805f,
+ 0.237305f, -0.776367f, -0.745117f, 0.459961f, -0.819336f,
+ -0.749023f, 0.208008f, -0.788086f, -0.716797f, 0.226562f,
+ -0.795898f, -0.72168f, 0.123047f, -0.790039f, -0.705078f,
+ 0.101562f, -0.720703f, -0.745117f, -0.0517578f, -0.771484f,
+ -0.701172f, -0.0175781f, -0.758789f, -0.765625f, -0.0917969f,
+ -0.745117f, -0.751953f, -0.149414f, -0.6875f, -0.660156f,
+ -0.0166016f, -0.782227f, -0.592773f, -0.0205078f, -0.726562f,
+ -0.376953f, 0.119141f, -0.599609f, -0.371094f, 0.0107422f,
+ -0.736328f, -0.325195f, 0.0771484f, -0.768555f, -0.388672f,
+ -0.0273438f, -0.750977f, -0.477539f, 0.107422f, -0.919922f,
+ -0.514648f, 0.125f, -0.961914f, -0.37793f, 0.0136719f,
+ -0.981445f, -0.447266f, -0.0107422f, -0.823242f, -0.303711f,
+ 0.0986328f, -1.00684f, -0.366211f, 0.0986328f, -1.14551f,
+ -0.239258f, 0.140625f, -0.894531f, -0.297852f, 0.0849609f,
+ -0.949219f, -0.341797f, 0.131836f, -0.966797f, -0.380859f,
+ 0.0947266f, -0.75293f, -0.391602f, 0.0839844f, -0.908203f,
+ -0.40625f, 0.161133f, -0.860352f, -0.452148f, 0.1875f,
+ -0.950195f, -0.496094f, 0.200195f, -0.828125f, -0.581055f,
+ 0.0771484f, -0.93457f, -0.607422f, 0.0996094f, -0.863281f,
+ -0.59375f, 0.0927734f, -0.802734f, -0.604492f, 0.0947266f,
+ -0.807617f, -0.722656f, 0.101562f, -0.844727f, -0.711914f,
+ 0.149414f, -1.03125f, -0.77832f, 0.125977f, -0.78418f,
+ -0.740234f, 0.121094f, -0.891602f, -0.808594f, 0.164062f,
+ -0.650391f, -0.80957f, 0.0888672f, -0.416992f, -0.866211f,
+ 0.155273f, -0.382812f, -0.880859f, 0.0849609f, -0.264648f,
+ -0.775391f, 0.229492f, -0.389648f, -0.814453f, 0.0664062f,
+ -0.226562f, -0.625f, 0.414062f, -0.274414f, -0.681641f,
+ 0.0292969f, -0.0478516f, -0.711914f, 0.794922f, -0.388672f,
+ -0.584961f, 0.368164f, -0.257812f, -0.545898f, 1.09277f,
+ -0.277344f, -0.125977f, 0.822266f, -0.365234f, -0.467773f,
+ 0.714844f, -0.413086f, -0.136719f, 1.57227f, -0.0947266f,
+ -0.223633f, 0.817383f, -0.0556641f, -0.0322266f, 1.18945f,
+ -0.191406f, -0.498047f, 0.991211f, -0.231445f, -0.246094f,
+ 0.8125f, -0.239258f, -0.755859f, 0.853516f, -0.228516f,
+ -0.821289f, 0.503906f, -0.121094f, -0.795898f, 0.523438f,
+ -0.220703f, -0.773438f, 0.517578f, -0.274414f, -0.757812f,
+ 0.539062f, -0.222656f, -0.770508f, 0.396484f, -0.115234f,
+ -1.2334f, 0.485352f, -0.217773f, -0.94043f, 1.01758f,
+ -0.202148f, -0.605469f, 0.0546875f, 0.0957031f, -0.639648f,
+ -0.661133f, 0.245117f, -0.750977f, 0.0615234f, -0.726562f,
+ -0.879883f, -0.432617f, -1.05859f, -1.29688f, 0.00488281f,
+ 0.193359f, -0.939453f, 0.209961f, -0.209961f, -0.793945f,
+ 0.251953f, 0.722656f, -0.447266f, 0.0615234f, 0.855469f,
+ -0.454102f, -0.0126953f, 0.0527344f, -0.342773f, 0.154297f,
+ 1.3877f, -0.65918f, 0.133789f, 0.0576172f, -0.233398f,
+ -0.12207f, 0.46582f, -1.09961f, 0.438477f, -0.641602f,
+ -0.861328f, 0.197266f, -1.99902f, -0.932617f, 0.234375f,
+ 0.389648f, -0.792969f, -0.0908203f, 1.66797f, -1.0459f,
+ 0.0107422f, -0.543945f, -0.80957f, 0.206055f, -0.27832f,
+ -0.915039f, 0.104492f, -0.301758f, -0.891602f, 0.0556641f,
+ -0.681641f, -0.901367f, 0.0498047f, -0.461914f, -0.927734f,
+ -0.0390625f, -0.229492f, -1.04004f, 0.0869141f, -0.435547f,
+ -1.02148f, 0.0947266f, -0.527344f, -0.979492f, 0.0751953f,
+ 0.266602f, -0.786133f, -0.0224609f, -0.0947266f, -0.702148f,
+ -0.00683594f, -0.316406f, -0.698242f, -0.317383f, 1.92578f,
+ -1.0498f, 0.0273438f, -1.14258f, -0.226562f, 0.233398f,
+ -0.995117f, -0.9375f, 0.0146484f, -0.223633f, -0.49707f,
+ -0.0078125f, -1.95703f, -0.847656f, 0.157227f, 0.129883f,
+ -0.459961f, -0.114258f, 2.0f, -1.13574f, -0.0839844f,
+ -0.0878906f, -0.783203f, 0.131836f, -0.803711f, -0.90332f,
+ 0.208984f, -0.365234f, -0.97168f, -0.0322266f, 0.186523f,
+ -0.924805f, 0.00292969f, -0.272461f, -0.890625f, 0.015625f,
+ -0.333008f, -0.932617f, 0.180664f, -0.459961f, -0.90918f,
+ 0.240234f, -0.625977f, -1.1582f, 0.0996094f, -0.170898f,
+ -1.08887f, -0.00976562f, -0.849609f, -0.430664f, 0.139648f,
+ -0.308594f, -0.572266f, -0.722656f, 1.83496f, -1.00977f,
+ 0.387695f, 0.487305f, -0.268555f, 0.0712891f, -0.0136719f,
+ -1.5332f, 0.290039f, -0.0351562f, -0.861328f, 1.98535f,
+ -1.16602f, -0.602539f, 0.441406f, 0.175781f, -0.605469f,
+ -0.831055f, 0.686523f, -0.984375f, 0.494141f, -0.489258f,
+ -0.895508f, 0.371094f, -0.665039f, -1.14258f, -0.214844f,
+ -0.140625f, -1.06348f, -0.0996094f, 0.255859f, -0.874023f,
+ 0.193359f, -0.0947266f, -0.959961f, -0.0966797f, 0.00195312f,
+ -0.996094f, -0.0117188f, -0.174805f, -0.962891f, 0.106445f,
+ -0.162109f, -1.04297f, -0.0283203f, -0.306641f, -1.06738f,
+ -0.0224609f, -0.129883f, -1.03223f, 0.129883f, 0.195312f,
+ -1.08789f, -0.130859f, 0.649414f, -0.572266f, -0.0136719f,
+ -0.793945f, -0.382812f, 0.0f, -1.08301f, -0.78125f,
+ -0.0224609f, -0.339844f, -0.629883f, -0.0947266f, -1.83789f,
+ -1.01562f, 0.046875f, 0.223633f, -0.808594f, 0.0957031f,
+ 1.09766f, -0.756836f, -0.0488281f, 0.157227f, -0.59082f,
+ -0.103516f, 0.929688f, -0.816406f, -0.0322266f, -0.426758f,
+ -0.868164f, -0.209961f, -1.99902f, -0.986328f, -0.00878906f,
+ -0.365234f, -0.980469f, 0.0439453f, 0.59375f, -0.994141f,
+ 0.0253906f, 0.0371094f, -0.970703f, -0.0273438f, -0.120117f,
+ -0.935547f, 0.00195312f, -0.235352f, -0.952148f, -0.0263672f,
+ -0.194336f, -0.917969f, -0.0195312f, -0.261719f, -0.928711f,
+ -0.0234375f, -0.219727f, -0.945312f, 0.0107422f, -0.228516f,
+ -0.938477f, 0.00683594f, -0.178711f, -0.791016f, 0.03125f,
+ -0.255859f, -0.789062f, 0.0f, -0.141602f, -0.789062f,
+ 0.232422f, -0.285156f, -0.788086f, 0.228516f, -0.28125f,
+ -1.0f, 0.258789f, -0.277344f, -0.999023f, 0.28125f,
+ -0.25293f, -1.06152f, 0.046875f, -0.421875f, -1.07715f,
+ 0.0390625f, -0.224609f, -0.923828f, -0.0205078f, -0.335938f,
+ -0.984375f, -0.0966797f, -0.34668f, -0.990234f, -0.191406f,
+ -0.301758f, -1.03613f, -0.241211f, -0.37207f, -0.975586f,
+ -0.267578f, -0.460938f, -1.00977f, -0.320312f, -0.382812f,
+ -0.913086f, -0.257812f, -0.457031f, -0.925781f, -0.256836f,
+ -0.34668f, -0.889648f, -0.237305f, -0.393555f, -0.897461f,
+ -0.239258f, -0.429688f, -0.844727f, -0.21875f, -0.428711f,
+ -0.87207f, -0.203125f, -0.368164f, -0.84668f, -0.101562f,
+ -0.423828f, -0.875977f, -0.165039f, -0.363281f, -0.884766f,
+ -0.0625f, -0.473633f, -0.90332f, -0.078125f, -0.138672f,
+ -0.918945f, -0.198242f, -0.25f, -0.928711f, -0.138672f,
+ -0.267578f, -1.08203f, 0.00488281f, -0.575195f, -1.125f,
+ -0.0332031f, -0.4375f, -0.924805f, 0.078125f, -0.305664f,
+ -0.93457f, -0.0166016f, -0.475586f, -0.94043f, -0.00488281f,
+ -0.533203f, -0.956055f, 0.00292969f, -0.391602f, -1.00293f,
+ 0.0361328f, -0.711914f, -1.0166f, 0.0332031f, -0.448242f,
+ -0.806641f, -0.21582f, -0.556641f, -0.759766f, -0.0214844f,
+ -0.626953f, -0.700195f, -0.263672f, -0.308594f, -0.608398f,
+ -0.236328f, -0.253906f, -0.616211f, -0.378906f, 0.224609f,
+ -0.498047f, -0.399414f, 0.206055f, -0.516602f, -0.228516f,
+ 0.743164f, -0.174805f, -0.125f, 0.760742f, -0.0214844f,
+ -0.135742f, 0.966797f, 0.240234f, 0.0332031f, 1.01855f,
+ 0.105469f, 0.15332f, 0.950195f, 0.240234f, 0.0732422f,
+ 1.16895f, 0.245117f, 0.206055f, 0.952148f, 0.273438f,
+ -0.0390625f, 1.2793f, 0.404297f, 0.303711f, 0.720703f,
+ 0.369141f, 0.0966797f, 0.918945f, 0.329102f, 0.0390625f,
+ 0.991211f, 0.397461f, -0.124023f, 0.866211f, 0.210938f,
+ 0.130859f, 1.08789f, 0.317383f, 0.0537109f, 0.858398f,
+ 0.245117f, 0.0732422f, 0.741211f, 0.419922f, 0.0302734f,
+ 0.681641f, 0.485352f, -0.0214844f, 0.641602f, 0.520508f,
+ -0.129883f, 0.839844f, 0.490234f, 0.00390625f, 0.676758f,
+ 0.581055f, -0.0146484f, 0.692383f, 0.432617f, -0.0371094f,
+ 0.807617f, 0.664062f, 0.255859f, 0.216797f, 1.22559f,
+ 0.0195312f, 1.22168f, 1.2793f, -0.405273f, 1.72559f,
+ 0.708984f, -0.209961f, 0.579102f, 0.821289f, 0.0380859f,
+ 0.605469f, 0.80957f, 0.147461f, 0.419922f, 0.869141f,
+ 0.0390625f, 0.5625f, 0.786133f, 0.0654297f, 0.594727f,
+ 0.879883f, 0.0166016f, 0.480469f, 0.835938f, 0.00195312f,
+ 0.414062f, 0.899414f, -0.03125f, 0.344727f, 0.889648f,
+ 0.0185547f, 0.236328f, 0.932617f, -0.00585938f, 0.255859f,
+ 0.910156f, 0.0898438f, 0.262695f, 0.945312f, 0.0126953f,
+ 0.279297f, 0.860352f, 0.0507812f, 0.322266f, 0.913086f,
+ 0.00195312f, 0.296875f, 0.875977f, 0.0078125f, 0.373047f,
+ 0.922852f, -0.0244141f, 0.267578f, 0.884766f, 0.0117188f,
+ 0.347656f, 0.926758f, -0.0371094f, 0.266602f, 0.894531f,
+ -0.00683594f, 0.345703f, 0.926758f, -0.0478516f, 0.269531f,
+ 0.887695f, 0.0146484f, 0.360352f, 0.927734f, -0.03125f,
+ 0.272461f
+};
const size_t kAccelerometerFullyOpenTestDataLength =
- ARRAY_SIZE(kAccelerometerFullyOpenTestData);
+ ARRAY_SIZE(kAccelerometerFullyOpenTestData);
diff --git a/test/motion_angle_data_literals_tablet.c b/test/motion_angle_data_literals_tablet.c
index 456779f457..f5b00f5fba 100644
--- a/test/motion_angle_data_literals_tablet.c
+++ b/test/motion_angle_data_literals_tablet.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -11,1030 +11,1030 @@
* The arrays contain actual accelerator readings.
*/
const float kAccelerometerVerticalHingeTestData[] = {
- -0.0766145f, 6.02381f, 7.85298f, -0.268151f, -8.84897f,
- -1.3216f, -0.402226f, 5.11401f, 8.77236f, -1.10133f,
- -10.1706f, 1.24498f, -1.18752f, 6.40688f, 8.0924f,
- -2.60489f, -8.99262f, 2.58574f, 0.632069f, 9.05008f,
- 3.61046f, 1.50356f, -9.67257f, 1.93451f, 0.411803f,
- 8.81066f, 0.268151f, -0.00957681f, -8.7532f, 2.15478f,
- -0.0191536f, 9.49062f, -0.68953f, 0.0383072f, -8.94474f,
- 2.99754f, -0.871489f, 9.80665f, 1.53229f, -0.92895f,
- -9.88326f, 0.957681f, 0.507571f, 9.19373f, 1.71425f,
- 0.287304f, -9.03093f, 0.651223f, 0.363919f, 9.71088f,
- 1.18752f, 1.10133f, -10.0556f, 2.98796f, 0.23942f,
- 9.39485f, 1.0343f, 0.842759f, -9.73961f, -1.12049f,
- 0.172383f, 9.50977f, 1.18752f, 0.0383072f, -9.9503f,
- 0.957681f, -0.373495f, 9.96946f, 1.01514f, 0.794875f,
- -10.1897f, -1.38864f, -9.50977f, -1.04387f, 0.325611f,
- -9.76834f, 1.05345f, -0.679953f, -9.76834f, -0.641646f,
- 0.488417f, -9.2895f, 0.316035f, 0.258574f, -9.29908f,
- -0.890643f, 0.469264f, -9.33739f, 0.823605f, -0.45011f,
- -9.69173f, -1.02472f, 0.536301f, -9.52892f, 0.90022f,
- -0.411803f, -9.34696f, -0.890643f, 0.430956f, -9.48104f,
- 0.823605f, -0.603339f, -9.7875f, -0.565032f, 0.574608f,
- -9.96946f, 0.536301f, -0.699107f, -9.57681f, -0.823605f,
- 0.641646f, -9.43316f, 0.593762f, -0.775721f, -9.35654f,
- -1.04387f, 0.440533f, -9.77792f, 1.01514f, -0.881066f,
- -9.32781f, -1.10133f, 0.306458f, -9.414f, 0.995988f,
- 0.0287304f, -9.26077f, -1.01514f, 0.268151f, -9.29908f,
- 0.881066f, 0.00957681f, -9.42358f, -0.679953f, 0.201113f,
- -9.49062f, 0.488417f, -0.00957681f, -9.47146f, -0.363919f,
- 0.191536f, -9.32781f, 0.124498f, 0.124498f, -9.5385f,
- -0.0766145f, 0.268151f, -9.32781f, -0.172383f, 0.0574608f,
- -9.69173f, 0.21069f, 0.354342f, -9.50019f, -0.306458f,
- 0.0383072f, -9.54808f, 0.507571f, 0.363919f, -9.20331f,
- -0.775721f, 0.0574608f, -9.59596f, 0.651223f, 0.679953f,
- -9.56723f, -0.794875f, -0.0287304f, -9.49062f, 0.794875f,
- 0.612916f, -9.06924f, -1.10133f, -0.201113f, -9.20331f,
- 1.90578f, 1.46525f, -9.29908f, -2.17394f, 0.603339f,
- -0.995988f, 0.0766145f, 9.58638f, -0.344765f, -0.92895f,
- -9.1267f, -2.03986f, -0.497994f, 10.477f, -2.49955f,
- -0.0957681f, -10.4866f, -1.5706f, -0.23942f, 9.13627f,
- -1.92494f, -0.325611f, -9.05008f, -1.5706f, -0.0383072f,
- 10.1323f, -1.87705f, -0.632069f, -9.52892f, -1.20668f,
- 0.105345f, 9.14585f, -1.13964f, -0.718261f, -9.02135f,
- -1.58975f, 0.296881f, 9.50019f, -1.74298f, -1.00556f,
- -9.27993f, -1.09176f, 0.23942f, 9.87369f, -1.04387f,
- -0.995988f, -9.35654f, -2.08774f, -0.526724f, 9.89284f,
- -1.40779f, -0.459687f, -9.50977f, -2.70066f, -1.47483f,
- 8.95431f, -1.92494f, 0.526724f, -8.95431f, -1.05345f,
- -0.938527f, 9.14585f, -3.02627f, 1.04387f, -8.78193f,
- 1.00556f, -3.56257f, 9.0022f, 1.96325f, 2.36547f,
- -9.83538f, 1.02472f, -2.59531f, 9.49062f, 1.0726f,
- 1.77171f, -9.06924f, 0.0861913f, -2.17394f, 9.21289f,
- -0.823605f, 1.52271f, -10.1323f, 0.316035f, -3.09331f,
- 10.0844f, 0.555455f, 2.00155f, -9.75877f, 1.51314f,
- -2.24097f, 9.61511f, 0.670376f, 1.35033f, -9.77792f,
- 0.986411f, -3.36146f, 9.59596f, 1.77171f, 2.29843f,
- -9.48104f, 1.4461f, -2.8922f, 8.88728f, 1.84832f,
- 2.38462f, -9.19373f, 1.75256f, -2.6432f, 9.89284f,
- 1.38864f, 2.19309f, -9.20331f, 9.98861f, -0.718261f,
- -0.746991f, 10.6111f, 0.632069f, 0.948104f, 8.99262f,
- -0.258574f, 0.517148f, 9.10754f, 0.21069f, -1.21625f,
- 9.90242f, -0.162806f, 0.0287304f, 10.5249f, -0.0861913f,
- 0.229843f, 9.83538f, 0.0f, 0.181959f, 10.4291f,
- -0.172383f, -0.47884f, 9.43316f, 0.201113f, -0.268151f,
- 9.76834f, -0.134075f, -0.354342f, 10.0556f, 1.0726f,
- 0.277727f, 9.93115f, -1.05345f, 0.363919f, 9.79707f,
- 0.651223f, 0.699107f, 10.0173f, -0.775721f, 0.0670376f,
- 9.49062f, 0.296881f, 0.919373f, 10.1801f, -0.68953f,
- -0.651223f, 9.70131f, 1.00556f, 0.248997f, 9.42358f,
- -0.995988f, 1.45567f, 9.13627f, -1.35033f, 2.36547f,
- 9.40442f, 0.976834f, -4.34787f, 8.79151f, -0.90022f,
- 1.56102f, 8.92558f, 0.6608f, -2.3942f, 9.59596f,
- -0.363919f, 1.40779f, 9.05966f, 0.181959f, -2.1452f,
- 9.48104f, -0.612916f, 2.36547f, 9.03093f, 0.21069f,
- -2.18351f, 9.74919f, -1.5706f, 2.07817f, 8.85855f,
- 1.04387f, -2.30801f, 8.81066f, -1.66636f, 3.4285f,
- 8.52336f, 0.440533f, -4.52983f, 9.27993f, -2.19309f,
- 2.2697f, 8.83939f, 0.90022f, -2.48039f, 9.1267f,
- -2.77727f, 1.4461f, 8.78193f, 0.814029f, -4.24253f,
- 8.90643f, -3.39977f, 0.651223f, 8.86812f, 1.08218f,
- -2.34632f, 9.42358f, -3.26569f, 0.402226f, 8.94474f,
- 0.526724f, -2.65278f, 9.38527f, -3.21781f, 0.0f,
- 9.20331f, 0.143652f, -2.71024f, 9.44273f, -2.8922f,
- -0.497994f, 9.35654f, 0.105345f, -2.78685f, 9.09797f,
- -3.4285f, -1.00556f, 8.81066f, 0.785298f, -3.84988f,
- 9.31823f, -3.09331f, -1.4461f, 8.68616f, 0.555455f,
- -3.27527f, 9.414f, -2.5187f, -1.79086f, 8.59997f,
- 0.766145f, -3.47638f, 9.0022f, -2.67193f, -2.43251f,
- 8.77236f, 1.39821f, -2.85389f, 8.25521f, -3.29442f,
- -2.46124f, 8.15944f, 1.09176f, -3.51469f, 8.72447f,
- -2.69108f, -2.48997f, 8.91601f, 0.881066f, -3.66792f,
- 8.92558f, -2.33674f, -2.31759f, 8.84897f, 1.06303f,
- -3.055f, 8.92558f, -2.49955f, -2.29843f, 8.81066f,
- 0.919373f, -2.56658f, 9.31823f, -2.78685f, -1.81959f,
- 9.06924f, 0.411803f, -2.86347f, 9.38527f, -2.78685f,
- -1.70467f, 9.25119f, 0.335188f, -4.67348f, 9.165f,
- -3.9648f, -0.622492f, 8.65743f, 0.248997f, -3.055f,
- 9.414f, -3.67749f, 0.0287304f, 8.82982f, 0.852336f,
- -2.50912f, 8.82024f, -3.47638f, 0.201113f, 8.98304f,
- 1.06303f, -3.33273f, 8.89685f, -3.64876f, 0.718261f,
- 8.91601f, 1.52271f, -2.70066f, 8.95431f, -3.56257f,
- 1.35991f, 9.05008f, 1.67594f, -3.16992f, 9.08839f,
- -3.16035f, 2.03028f, 9.07881f, 1.64721f, -3.04542f,
- 8.91601f, -3.11246f, 2.52828f, 8.88728f, 2.07817f,
- -1.99198f, 9.1267f, -2.806f, 0.162806f, 9.1267f,
- 2.806f, -2.07817f, 9.14585f, -2.31759f, 2.16436f,
- 8.8777f, 2.19309f, -1.88663f, 9.88326f, -2.5187f,
- 1.94409f, 9.1267f, 2.46124f, -2.806f, 7.64229f,
- -6.0717f, 2.9305f, 8.07325f, 5.64074f, -2.63362f,
- 4.29999f, -7.9679f, 0.622492f, 4.71179f, 7.74764f,
- -3.41892f, 4.42448f, -8.99262f, 1.13964f, 3.98395f,
- 8.47547f, -1.9824f, -0.699107f, -9.46189f, -0.794875f,
- -0.593762f, 9.24162f, -2.74854f, 1.88663f, -8.8777f,
- -0.153229f, 0.861913f, 8.98304f, -2.48039f, -1.52271f,
- -9.32781f, -3.39977f, 0.0574608f, 8.99262f, -5.88974f,
- -0.746991f, -3.93607f, -8.01579f, -1.17795f, 8.41801f,
- -4.17549f, -2.30801f, -2.61447f, -9.44273f, -2.3942f,
- 7.46991f, -5.01825f, -1.0343f, 1.89621f, -8.8777f,
- -0.890643f, 8.65743f, -4.31914f, -2.16436f, 1.49398f,
- -9.69173f, -1.37906f, 9.05008f, -2.43251f, -1.87705f,
- 0.402226f, -8.95431f, -2.01113f, 8.72447f, -3.54342f,
- -0.344765f, -2.95923f, -8.42759f, -0.92895f, 8.99262f,
- -2.34632f, -0.392649f, -6.70376f, -6.55054f, -0.919373f,
- 8.80109f, -2.35589f, -0.0766145f, -8.8777f, -5.89931f,
- 0.890643f, 9.7875f, 2.24097f, -0.536301f, -8.08282f,
- -4.88417f, -0.191536f, 9.21289f, 1.16837f, -0.440533f,
- -7.93917f, -4.81713f, -0.890643f, 9.08839f, 1.75256f,
- -1.20668f, -9.414f, -2.57616f, -0.708684f, 9.50977f,
- 1.40779f, -1.14922f, -9.8258f, -1.24498f, -0.584185f,
- 9.63427f, 0.727837f, -0.181959f, -9.25119f, -2.31759f,
- -0.0574608f, 9.64384f, -0.612916f, 1.21625f, -9.50977f,
- -1.16837f, 0.756568f, 9.45231f, -0.316035f, 1.21625f,
- -10.5441f, -0.45011f, 1.5706f, 9.7875f, -1.22583f,
- 9.07881f, 0.0766145f, -2.34632f, 9.26077f, 0.316035f,
- 4.28083f, 8.72447f, 0.584185f, -3.27527f, 8.39886f,
- 0.47884f, 3.98395f, 9.26077f, 2.35589f, -2.98796f,
- 9.52892f, -1.61848f, 3.73495f, 8.91601f, 2.98796f,
- -3.36146f, 9.7875f, -2.31759f, 3.60088f, 8.86812f,
- 3.32315f, -3.62961f, 9.76834f, -2.46124f, 2.72939f,
- 2.31759f, 10.2089f, -2.3942f, 0.995988f, -8.68616f,
- 5.5737f, 1.13006f, 9.04051f, -2.09732f, 1.26414f,
- -8.51378f, 4.40533f, 0.852336f, 9.91199f, -2.07817f,
- 0.622492f, -9.18416f, 4.29999f, 0.229843f, 10.0269f,
- -1.08218f, 0.220267f, -9.40442f, 4.40533f, 0.0766145f,
- 9.54808f, -1.89621f, 0.967257f, -9.05966f, 3.92649f,
- 0.335188f, 9.62469f, -0.497994f, 0.430956f, -9.71088f,
- 4.02226f, 0.718261f, 9.63427f, 1.59933f, 0.383072f,
- -8.88728f, 3.24654f, 0.42138f, 8.71489f, 2.55701f,
- 0.68953f, -9.64384f, 1.67594f, 1.0726f, -7.0198f,
- 7.20176f, 0.641646f, -9.17458f, 4.18506f, -0.402226f,
- -2.46124f, 8.78193f, -0.0383072f, -8.31267f, 4.03184f,
- 0.23942f, 2.27928f, 10.4675f, -0.517148f, -9.47146f,
- 4.14676f, -1.37906f, 9.59596f, -4.07972f, 3.45723f,
- -9.663f, 1.71425f, -0.134075f, 6.95276f, -5.80354f,
- 0.268151f, -5.38217f, 7.03895f, 0.00957681f, 5.20978f,
- -7.75721f, -0.047884f, -2.83473f, 8.53294f, -0.306458f,
- 1.64721f, -8.64786f, 0.766145f, 0.162806f, 8.84897f,
- -0.191536f, -2.58574f, -9.19373f, 0.0f, 4.05099f,
- 8.52336f, -0.0383072f, -3.10289f, -9.17458f, 0.45011f,
- 4.11803f, 9.19373f, 0.0957681f, -2.47082f, -9.61511f,
- 0.804452f, 3.98395f, 8.52336f, 0.114922f, 4.00311f,
- -8.76278f, 0.699107f, 4.53941f, 8.28394f, -0.0383072f,
- 7.95833f, -6.57927f, -0.124498f, 3.52426f, 10.1035f,
- -0.229843f, 6.68461f, -6.2345f, -0.153229f, 3.04542f,
- 9.59596f, -0.344765f, 7.47949f, -7.29753f, 0.114922f,
- 3.90734f, 9.03093f, -0.383072f, 7.57525f, -7.20176f,
- -0.172383f, 3.70622f, 9.8258f, -0.335188f, 7.21134f,
- -6.7325f, -0.172383f, 2.71024f, 10.2855f, -0.114922f,
- 6.608f, -7.41245f, -0.201113f, 1.87705f, 9.39485f,
- 1.37906f, -0.0670376f, -9.47146f, 1.1971f, 1.8579f,
- 9.49062f, 0.842759f, -1.63763f, -8.95431f, 0.679953f,
- 2.8922f, 9.1267f, 1.43652f, -1.58017f, -9.01178f,
- 0.890643f, 3.66792f, 9.22246f, 0.746991f, -1.18752f,
- -9.04051f, 2.12605f, 2.72939f, 9.52892f, 3.79242f,
- 1.48441f, -9.04051f, 4.57771f, -0.785298f, 9.61511f,
- 4.61602f, 1.21625f, -8.4659f, 4.94163f, -0.574608f,
- 8.4659f, 4.67348f, 1.48441f, -8.23605f, 4.86502f,
- -0.852336f, 9.24162f, 5.12359f, 0.92895f, -9.03093f,
- 5.84185f, -0.430956f, 8.92558f, 5.38217f, 0.440533f,
- -8.37971f, 6.72292f, -0.220267f, 8.02536f, 6.608f,
- 1.6089f, -6.30154f, 6.33985f, 0.277727f, 6.58884f,
- 9.85453f, 1.39821f, 0.153229f, 10.0844f, -1.46525f,
- 0.45011f, 9.68215f, 1.90578f, -0.0766145f, 9.98861f,
- -1.96325f, 0.536301f, 9.90242f, 2.20267f, 0.143652f,
- 9.94073f, -2.20267f, 0.191536f, 9.46189f, 1.95367f,
- 0.0957681f, 9.74919f, -2.06859f, 0.296881f, 9.30866f,
- 1.64721f, 0.153229f, 9.84496f, -1.92494f, 0.574608f,
- 7.38372f, 0.488417f, 6.76123f, 8.83939f, -1.37906f,
- -3.11246f, 9.2895f, 0.153229f, -0.976834f, 9.86411f,
- -0.0574608f, -0.957681f, 9.26077f, 0.833182f, 2.07817f,
- 9.26077f, -0.938527f, -0.957681f, 10.0269f, -0.354342f,
- 2.43251f, 9.84496f, 0.153229f, -0.957681f, 0.986411f,
- -8.74362f, 1.34075f, 2.09732f, 9.165f, -1.84832f,
- -1.25456f, -10.228f, 2.19309f, 0.42138f, 9.73004f,
- -1.23541f, -1.49398f, -10.1706f, 0.172383f, -1.22583f,
- 10.2089f, -0.593762f, -2.2314f, -9.663f, -0.526724f,
- -1.6089f, 9.65342f, 0.593762f, -2.38462f, -9.165f,
- -1.4461f, -2.46124f, 9.42358f, 0.430956f, -2.38462f,
- -9.73004f, 0.0383072f, -2.31759f, 9.57681f, -0.47884f,
- -2.44209f, -9.5385f, -0.746991f, -2.32716f, 9.58638f,
- 0.612916f, -2.34632f, -10.1418f, -1.0726f, -1.92494f,
- 9.90242f, 0.890643f, -2.84431f, 9.38527f, -2.38462f,
- -1.69509f, -9.50977f, 2.73897f, -3.88818f, 7.9296f,
- -2.40378f, -1.5706f, -8.4659f, 2.62405f, -8.91601f,
- -2.98796f, 0.497994f, -8.97347f, 2.79643f, 0.373495f,
- -10.3717f, 1.02472f, -0.105345f, -10.0461f, -1.02472f,
- 0.679953f, -4.89375f, 8.17859f, 0.0766145f, -6.12916f,
- -7.61356f, 0.172383f, -6.4835f, 7.5561f, -0.363919f,
- -6.09085f, -7.46991f, 0.699107f, -6.19619f, 7.62314f,
- -0.248997f, -5.78439f, -7.52737f, 1.55144f, -6.33985f,
- 7.50822f, -0.45011f, -5.6982f, -7.48906f, 1.48441f,
- -6.36858f, 7.46991f, -0.373495f, -5.72693f, -7.44118f,
- 1.63763f, -6.33027f, 7.8434f, -0.316035f, -6.54096f,
- -7.57525f, 1.37906f, -6.69419f, 7.52737f, -0.258574f,
- -6.41646f, -7.37414f, 1.21625f, -6.62715f, 7.61356f,
- -0.392649f, -6.24408f, -7.48906f, 1.23541f, -6.18662f,
- 7.60398f, -0.201113f, -5.9472f, -7.45076f, 1.39821f,
- -6.14831f, 7.86256f, -0.584185f, -6.26323f, -7.50822f,
- 1.6089f, -5.26724f, 8.74362f, -0.153229f, -4.57771f,
- -8.41801f, 0.6608f, -3.56257f, 8.82024f, 0.114922f,
- -2.86347f, -8.82982f, 0.948104f, -2.53785f, 9.27035f,
- 0.23942f, -2.33674f, -9.29908f, 1.02472f, -2.12605f,
- 9.67257f, 0.354342f, -2.1452f, -9.45231f, 0.335188f,
- -1.71425f, 9.36612f, 0.287304f, -1.41737f, -9.27035f,
- -0.229843f, -2.65278f, 8.94474f, -0.306458f, -0.737414f,
- -9.414f, 0.172383f, -8.72447f, 5.46836f, 0.325611f,
- -10.2663f, -1.80044f, -0.143652f, -9.35654f, -0.794875f,
- -0.756568f, -10.1801f, 1.0343f, 1.20668f, -9.54808f,
- -0.986411f, -0.766145f, -9.165f, 0.890643f, 1.13964f,
- -8.92558f, -0.555455f, -1.22583f, -9.68215f, 0.976834f,
- 0.344765f, -9.14585f, 4.05099f, -1.31202f, -9.57681f,
- 0.68953f, 1.51314f, -9.54808f, 0.0957681f, 1.45567f,
- -9.18416f, -0.229843f, -0.6608f, -9.71088f, 0.047884f,
- 1.35033f, -9.87369f, 0.0383072f, -0.909797f, -8.57124f,
- 1.1971f, 3.86903f, -9.76834f, -1.13964f, -2.2697f,
- -9.38527f, 0.890643f, 2.74854f, -9.38527f, -1.20668f,
- -2.3942f, -8.74362f, 1.4461f, 3.45723f, -8.99262f,
- -1.72383f, -2.56658f, -9.48104f, 1.13006f, 2.98796f,
- -8.80109f, -1.76213f, -2.52828f, -9.69173f, 1.15879f,
- 2.3942f, -8.98304f, -1.68552f, -1.71425f, -8.93516f,
- 1.25456f, 3.26569f, -9.61511f, -1.38864f, -2.46124f,
- -9.37569f, 1.4461f, 3.40934f, -8.83939f, -2.1069f,
- -2.42293f, -9.165f, 1.61848f, 2.9305f, -9.165f,
- -2.04944f, -2.50912f, -9.31823f, 0.823605f, 0.0f,
- -9.48104f, -0.909797f, 0.497994f, -9.30866f, 1.0343f,
- -0.775721f, -9.01178f, -1.15879f, 0.814029f, -9.25119f,
- 0.948104f, -0.00957681f, -8.80109f, -1.16837f, 0.737414f,
- -9.62469f, 1.39821f, -0.248997f, -9.39485f, -1.45567f,
- 0.957681f, -9.57681f, 1.79086f, -0.296881f, -9.50019f,
- -1.81002f, 0.842759f, -10.0652f, 1.45567f, -0.248997f,
- -9.05966f, -1.61848f, 0.871489f, -9.69173f, 1.56102f,
- -0.459687f, -8.91601f, -1.77171f, 0.890643f, -9.48104f,
- -0.47884f, -0.497994f, -9.48104f, 0.296881f, 0.632069f,
- -10.094f, 0.191536f, -0.248997f, -10.4387f, -0.0670376f,
- 0.6608f, -8.08282f, 4.95121f, -1.31202f, -8.17859f,
- -4.70221f, 1.80044f, -7.9296f, 5.04698f, -0.536301f,
- -8.38928f, -4.80756f, 0.68953f, -8.10198f, 5.23851f,
- -0.507571f, -7.97748f, -5.17148f, 1.21625f, -8.37013f,
- 5.22894f, -0.497994f, -8.01579f, -5.23851f, 0.976834f,
- -8.20732f, 5.20978f, -0.335188f, -7.99663f, -5.19063f,
- 0.995988f, -8.26478f, 5.02782f, -0.0957681f, -8.0924f,
- -5.0374f, 0.948104f, -8.36055f, 5.02782f, -0.268151f,
- -8.02536f, -5.09486f, 0.995988f, -8.28394f, 5.01825f,
- -0.191536f, -8.20732f, -5.06613f, 0.861913f, -8.37971f,
- 5.06613f, -0.325611f, -8.20732f, -5.00867f, 0.92895f,
- -8.3414f, 5.04698f, -0.124498f, -8.13071f, -5.14275f,
- 0.852336f, -8.29351f, 5.07571f, -0.0766145f, -8.07325f,
- -5.10444f, 0.976834f, -8.47547f, 4.77883f, -0.392649f,
- -8.13071f, -4.86502f, 1.05345f, -8.60955f, 2.71981f,
- 2.79643f, -9.25119f, 1.31202f, -0.306458f, -9.14585f,
- 1.02472f, 1.51314f, -8.64786f, -1.33118f, -1.13964f,
- -9.35654f, 1.01514f, 2.31759f, -8.72447f, -1.49398f,
- -1.72383f, -9.73004f, 1.58017f, 2.7677f, -9.73004f,
- -1.84832f, -1.93451f, -9.15543f, 1.33118f, 2.20267f,
- -8.93516f, -1.64721f, -0.995988f, -9.45231f, 0.727837f,
- 1.81959f, -9.51935f, -0.909797f, -2.78685f, -9.93115f,
- 0.191536f, 0.890643f, -9.84496f, -0.23942f, -0.976834f,
- -9.61511f, -0.21069f, 0.517148f, -8.80109f, -0.153229f,
- -0.430956f, -9.50019f, 0.373495f, 0.948104f, -9.27035f,
- -0.555455f, -0.344765f, -9.57681f, 0.172383f, 0.881066f,
- -9.43316f, -0.335188f, -0.756568f, -9.50977f, -0.0191536f,
- 0.497994f, -9.42358f, -0.181959f, -0.737414f, -9.92157f,
- 0.306458f, 0.545878f, -10.0173f, -0.248997f, -0.134075f,
- -9.79707f, 0.0287304f, 0.536301f, -9.71088f, -0.162806f,
- -0.181959f, -9.60554f, -0.047884f, 0.804452f, -9.39485f,
- -0.181959f, -0.593762f, -9.64384f, -0.047884f, 0.612916f,
- -9.58638f, -0.201113f, -0.363919f, -9.56723f, 0.248997f,
- 0.411803f, -10.1706f, -0.316035f, -0.526724f, -9.63427f,
- 0.459687f, 1.09176f, -9.71088f, -0.603339f, -0.23942f,
- -9.62469f, -0.0383072f, 0.68953f, -9.50019f, -0.0861913f,
- -1.13006f, -9.80665f, -0.134075f, 0.335188f, -9.40442f,
- -0.114922f, -0.354342f, -9.34696f, 0.153229f, 1.54187f,
- -9.10754f, -0.526724f, -1.00556f, -9.7875f, 0.0287304f,
- 0.775721f, -9.58638f, -0.172383f, -0.641646f, -9.60554f,
- 0.258574f, 0.919373f, -9.31823f, -0.402226f, -0.603339f,
- -9.5385f, -0.0766145f, 0.92895f, -9.09797f, -0.220267f,
- -0.354342f, -9.61511f, -0.335188f, 0.316035f, -9.27993f,
- 0.0766145f, -0.47884f, -9.40442f, 0.23942f, 0.6608f,
- -9.40442f, -0.335188f, -0.603339f, -9.85453f, -0.0766145f,
- 0.459687f, -9.54808f, -0.0670376f, -0.287304f, -9.63427f,
- -0.344765f, 0.296881f, -9.32781f, 0.0574608f, -0.220267f,
- -9.71088f, 0.181959f, 0.354342f, -9.95988f, -0.248997f,
- 0.201113f, -9.8258f, -0.0383072f, 0.833182f, -9.83538f,
- -0.047884f, -0.670376f, -9.44273f, 0.0670376f, 0.6608f,
- -8.90643f, -0.392649f, -0.354342f, -9.54808f, 0.0957681f,
- 0.90022f, -9.05008f, -0.411803f, -0.335188f, -9.52892f,
- 0.201113f, 1.12049f, -9.23204f, -0.459687f, -0.842759f,
- -9.61511f, -0.162806f, 0.248997f, -9.87369f, 0.124498f,
- -1.12049f, -9.70131f, -0.0383072f, 0.670376f, -9.50977f,
- -0.162806f, -0.890643f, -9.15543f, 0.488417f, 1.51314f,
- -8.94474f, -0.852336f, -0.90022f, -9.60554f, -0.23942f,
- 0.622492f, -9.35654f, 0.0f, -0.948104f, -9.64384f,
- -0.191536f, 1.21625f, -9.2895f, -0.0766145f, -0.785298f,
- -9.55765f, -0.306458f, 0.555455f, -9.73004f, 0.172383f,
- -0.603339f, -9.663f, -0.306458f, 0.383072f, -9.63427f,
- 0.172383f, -0.354342f, -9.70131f, -0.373495f, 0.68953f,
- -9.69173f, 0.181959f, -1.0343f, -9.47146f, -0.526724f,
- 0.823605f, -9.23204f, 0.220267f, -1.36948f, -9.36612f,
- -0.0670376f, 1.05345f, -8.91601f, -0.316035f, -0.814029f,
- -9.93115f, -0.268151f, 1.58017f, -10.0748f, 0.143652f,
- -1.26414f, -9.87369f, 0.047884f, 2.09732f, -9.39485f,
- -0.344765f, -1.48441f, -9.48104f, 0.967257f, 0.699107f,
- -9.34696f, -1.15879f, -0.105345f, -9.414f, 0.852336f,
- 0.756568f, -9.62469f, -1.0343f, -0.114922f, -9.80665f,
- 0.814029f, 0.737414f, -9.23204f, -1.0726f, -0.23942f,
- -9.47146f, 0.890643f, 0.392649f, -9.24162f, -1.08218f,
- -0.229843f, -9.42358f, 0.775721f, 0.325611f, -9.21289f,
- -0.986411f, -0.201113f, -9.52892f, 1.79086f, 2.04944f,
- -9.32781f, -2.15478f, -1.39821f, -8.86812f, 2.07817f,
- 2.2697f, -8.91601f, -2.24097f, -1.7334f, -9.34696f,
- 1.68552f, 2.29843f, -8.78193f, -2.19309f, -1.58017f,
- -9.62469f, 1.7334f, 2.35589f, -9.165f, -2.18351f,
- -1.63763f, -9.99819f, 2.28886f, 2.27928f, -10.0365f,
- -2.36547f, -1.69509f, -10.726f, -0.488417f, -0.363919f,
- -9.25119f, 0.976834f, -3.03585f, -9.31823f, 1.41737f,
- 2.09732f, -8.8777f, -1.76213f, 0.651223f, -9.71088f,
- 1.00556f, 2.28886f, -9.36612f, -1.13006f, -1.53229f,
- -9.87369f, 0.814029f, 1.46525f, -9.92157f, -0.919373f,
- -0.957681f, -9.35654f, 0.0191536f, 1.09176f, -9.9503f,
- -0.0574608f, -1.0726f, -9.50977f, -0.181959f, 0.603339f,
- -8.90643f, -0.172383f, -0.0766145f, -9.85453f, -0.287304f,
- 0.833182f, -9.76834f, 0.181959f, -0.402226f, -9.50977f,
- -0.0957681f, 0.287304f, -9.7875f, 0.0191536f, -0.47884f,
- -9.58638f, 0.047884f, 0.344765f, -9.44273f, -0.181959f,
- -0.0861913f, -9.57681f, 0.0287304f, 0.555455f, -9.42358f,
- -0.220267f, 0.0f, -9.73004f, -0.229843f, 0.21069f,
- -9.51935f, 0.0670376f, -0.21069f, -10.0173f, -0.00957681f,
- 0.105345f, -9.68215f, -0.0670376f, -0.124498f, -9.50977f,
- 0.114922f, 0.287304f, -9.42358f, -0.229843f, 0.0957681f,
- -9.57681f, -0.181959f, 0.181959f, -9.32781f, -0.047884f,
- 0.105345f, -10.0078f, -0.258574f, -2.19309f, -9.70131f,
- 0.248997f, 1.64721f, -9.55765f, -0.612916f, 0.105345f,
- -8.76278f, 0.191536f, 0.919373f, -9.414f, -0.0383072f,
- -0.641646f, -9.74919f, 0.0670376f, 0.814029f, -9.80665f,
- -0.134075f, -0.804452f, -9.44273f, 0.0957681f, 1.01514f,
- -9.71088f, 0.220267f, -0.584185f, -9.32781f, -0.248997f,
- 0.957681f, -9.76834f, 0.0766145f, -0.440533f, -9.414f,
- -0.21069f, 0.708684f, -9.73004f, 0.0574608f, -0.593762f,
- -9.27035f, -0.172383f, 0.756568f, -9.663f, 0.287304f,
- 0.172383f, -9.10754f, -0.507571f, 0.718261f, -9.49062f,
- 0.229843f, 0.0574608f, -9.50977f, -0.402226f, 0.162806f,
- -10.1418f, -0.0670376f, -0.411803f, -9.32781f, -0.0383072f,
- 0.804452f, -9.57681f, 0.229843f, -0.21069f, -9.57681f,
- -0.296881f, 0.469264f, -9.54808f, 2.03986f, 0.641646f,
- -10.0269f, -1.00556f, -0.45011f, -8.77236f, 0.402226f,
- 0.718261f, -9.37569f, -0.047884f, -0.344765f, -9.98861f,
- -1.48441f, 0.047884f, -9.33739f, 1.33118f, -0.23942f,
- -9.30866f, -0.68953f, 0.220267f, -10.0556f, 0.708684f,
- 0.201113f, -7.12514f, 6.70376f, 0.105345f, -6.81869f,
- -6.33985f, 0.92895f, -8.70532f, 5.46836f, 0.220267f,
- -8.41801f, -5.36301f, 0.0574608f, -9.84496f, 3.82115f,
- 0.248997f, -9.9503f, -3.5913f, -0.229843f, -10.3238f,
- 3.09331f, -0.0574608f, -9.71088f, -2.66235f, 0.6608f,
- -8.68616f, 1.53229f, 0.641646f, -9.17458f, -1.22583f,
- 0.507571f, -10.0078f, -1.09176f, -0.622492f, -10.0078f,
- 1.3216f, -0.497994f, -9.46189f, -1.17795f, 0.0766145f,
- -9.23204f, 1.01514f, 0.248997f, -9.38527f, -1.94409f,
- 0.296881f, -9.21289f, 1.79086f, -0.21069f, -9.10754f,
- -2.12605f, 0.440533f, -9.09797f, 1.82917f, 0.172383f,
- -9.02135f, -1.54187f, 0.047884f, -9.35654f, 1.54187f,
- 0.047884f, -8.99262f, -1.66636f, -0.0191536f, -9.29908f,
- 1.49398f, 0.344765f, -9.663f, -1.65679f, -0.593762f,
- -9.29908f, 1.58975f, 0.296881f, -9.69173f, -1.1971f,
- -0.153229f, -9.5385f, 1.16837f, 0.114922f, -9.80665f,
- -1.22583f, 0.268151f, -9.43316f, 1.08218f, -0.114922f,
- -9.74919f, -1.27372f, 0.775721f, -9.38527f, 1.11091f,
- -0.440533f, -9.49062f, -1.20668f, 0.574608f, -9.37569f,
- 0.995988f, -0.536301f, -9.33739f, -1.06303f, 0.871489f,
- -9.5385f, 0.948104f, -0.699107f, -9.44273f, -0.976834f,
- 0.871489f, -9.72046f, 0.890643f, -0.746991f, -9.87369f,
- -1.33118f, 0.488417f, -9.46189f, 1.13006f, 0.248997f,
- -8.92558f, -1.0343f, -0.134075f, -9.07881f, 1.04387f,
- 0.737414f, -8.82982f, -0.814029f, -1.46525f, -9.20331f,
- 1.06303f, 0.105345f, -9.94073f, -0.957681f, -0.153229f,
- -9.35654f, 0.948104f, -0.603339f, -9.31823f, 1.34075f,
- 2.03028f, -8.82024f, -1.76213f, -0.861913f, -8.42759f,
- -0.440533f, 4.67348f, -8.94474f, 0.201113f, -5.08528f,
- -7.51779f, -0.948104f, 5.77481f, -8.15944f, 0.833182f,
- -5.63116f, -9.69173f, -0.948104f, 2.36547f, -10.1801f,
- 0.679953f, -2.2314f, -9.11712f, 1.72383f, 0.574608f,
- -8.83939f, -2.03986f, -0.0287304f, -9.31823f, 1.92494f,
- 0.804452f, -9.79707f, -2.03028f, -0.517148f, -8.3414f,
- 2.68151f, 1.9824f, -8.24563f, -2.71024f, -2.1069f,
- -9.15543f, 2.41336f, 2.28886f, -7.49864f, -3.03585f,
- -3.66792f, -8.59997f, 2.00155f, 2.59531f, -9.07881f,
- -2.11647f, -2.52828f, -9.64384f, 1.89621f, 2.11647f,
- -9.36612f, -2.16436f, -1.83875f, -9.01178f, 1.69509f,
- 2.19309f, -9.17458f, -1.94409f, -1.56102f, -9.27993f,
- 1.49398f, 2.28886f, -9.51935f, -1.72383f, -2.2697f,
- -9.10754f, 1.52271f, 2.43251f, -8.84897f, -2.02071f,
- -2.02071f, -9.08839f, 1.51314f, 2.55701f, -9.11712f,
- -1.8579f, -2.21224f, -9.09797f, 1.47483f, 2.52828f,
- -9.13627f, -1.8579f, -2.09732f, -9.06924f, 1.46525f,
- 2.43251f, -8.92558f, -1.90578f, -2.09732f, -9.19373f,
- 1.50356f, 2.3942f, -9.21289f, -1.82917f, -2.26013f,
- -8.5904f, 2.16436f, 2.33674f, -8.51378f, -2.36547f,
- -1.83875f, -8.25521f, 3.62961f, 2.03028f, -7.91044f,
- -3.74453f, -1.12049f, -8.61913f, 3.84988f, 1.62806f,
- -8.83939f, -3.97437f, -1.26414f, -8.23605f, 4.52025f,
- 2.13563f, -8.83939f, -4.35745f, -1.14922f, -7.4316f,
- 6.02381f, 2.34632f, -7.33583f, -5.84185f, -1.79086f,
- -6.63673f, 6.67503f, 2.37505f, -6.44519f, -6.359f,
- -1.62806f, -6.06212f, 7.51779f, 2.38462f, -6.25365f,
- -7.23049f, -1.80044f, -5.25767f, 8.64786f, 2.09732f,
- -4.32872f, -8.68616f, -2.03986f, -4.39575f, 7.97748f,
- 2.00155f, -3.77326f, -8.42759f, -0.775721f, -4.64475f,
- 8.32224f, 1.61848f, -4.29999f, -8.60955f, -0.622492f,
- -4.7501f, 8.5042f, 1.81959f, -4.79798f, -8.4659f,
- -1.08218f, -4.64475f, 8.37013f, 1.92494f, -4.53941f,
- -8.5904f, -1.13964f, -4.77883f, 8.73405f, 2.11647f,
- -3.33273f, -9.414f, -1.37906f, -9.73004f, -0.92895f,
- 0.603339f, -9.67257f, 0.852336f, -1.11091f, -9.87369f,
- -0.047884f, 0.153229f, -9.98861f, 0.0670376f, -0.440533f,
- -9.61511f, 0.651223f, 0.181959f, -9.5385f, -0.785298f,
- 0.612916f, -9.50019f, 0.335188f, -0.23942f, -8.88728f,
- -0.536301f, 0.00957681f, -9.95988f, 0.670376f, 0.134075f,
- -9.29908f, -0.881066f, 0.0861913f, -9.67257f, 0.488417f,
- 0.220267f, -9.62469f, -0.545878f, 0.306458f, -9.58638f,
- 0.344765f, 0.306458f, -9.165f, -0.574608f, 0.0287304f,
- -9.65342f, 0.143652f, 0.287304f, -10.0844f, -0.191536f,
- 0.440533f, -9.40442f, 0.679953f, 0.21069f, -9.37569f,
- -0.881066f, 0.402226f, -9.79707f, 1.34075f, 0.785298f,
- -10.1801f, -1.13964f, -0.220267f, -9.14585f, 2.29843f,
- 0.794875f, -9.36612f, -2.24097f, -0.316035f, -8.83939f,
- 3.37104f, 0.727837f, -8.70532f, -3.25611f, 0.0766145f,
- -8.24563f, 4.42448f, 0.814029f, -8.14029f, -4.27126f,
- -0.392649f, -7.63272f, 5.38217f, 0.957681f, -7.05811f,
- -5.5737f, -0.0383072f, -7.57525f, 5.93762f, 1.29287f,
- -7.02938f, -6.02381f, -0.651223f, -7.46991f, 6.18662f,
- 1.76213f, -7.35499f, -6.21535f, -1.37906f, -7.35499f,
- 6.38773f, 1.47483f, -7.40287f, -6.27281f, -0.967257f,
- -7.02938f, 6.79953f, 1.30245f, -6.95276f, -6.68461f,
- -0.890643f, -6.42604f, 7.32626f, 1.09176f, -6.4835f,
- -7.19218f, -0.354342f, -6.41646f, 7.57525f, 0.938527f,
- -6.11958f, -7.50822f, -0.229843f, -5.88016f, 7.71891f,
- 0.794875f, -5.17148f, -7.70933f, 0.105345f, -5.74608f,
- 7.85298f, 0.727837f, -5.09486f, -7.72848f, 0.114922f,
- -5.9472f, 7.83383f, 0.727837f, -5.91847f, -7.65187f,
- -0.0287304f, -5.97593f, 7.77637f, 0.718261f, -6.01423f,
- -7.63272f, 0.191536f, -5.95677f, 7.78594f, 0.526724f,
- -5.73651f, -7.6806f, 0.507571f, -5.95677f, 7.89129f,
- 0.459687f, -5.66947f, -7.74764f, 0.517148f, -5.93762f,
- 7.85298f, 0.430956f, -5.81312f, -7.69018f, 0.459687f,
- -5.9855f, 7.78594f, 0.469264f, -5.86101f, -7.65187f,
- 0.517148f, -6.03339f, 7.82425f, 0.411803f, -5.75566f,
- -7.67102f, 0.526724f, -6.00466f, 7.79552f, 0.402226f,
- -5.68862f, -7.67102f, 0.42138f, -6.00466f, 7.79552f,
- 0.497994f, -5.60243f, -7.69975f, 0.201113f, -6.13873f,
- 7.65187f, 0.42138f, -5.3247f, -7.62314f, 0.172383f,
- -6.608f, 7.40287f, 0.258574f, -5.77481f, -7.46991f,
- 0.593762f, -7.18261f, 6.82826f, 0.134075f, -6.75165f,
- -6.71334f, 0.526724f, -7.88171f, 5.79397f, -0.181959f,
- -7.19218f, -5.70778f, 1.54187f, -8.4659f, 4.54898f,
- -0.842759f, -7.90087f, -4.30956f, 1.95367f, -10.5728f,
- 0.632069f, -1.96325f, -9.84496f, 0.153229f, 1.82917f,
- -9.27993f, -0.0861913f, -0.92895f, -9.31823f, 0.047884f,
- 1.46525f, -9.93115f, 0.325611f, -1.1971f, -10.2759f,
- -0.114922f, 2.3942f, -9.59596f, -0.0766145f, -0.316035f,
- -9.97903f, 0.363919f, -1.13964f, -9.04051f, 2.50912f,
- 1.31202f, -8.67659f, -2.58574f, -0.603339f, -9.83538f,
- 1.00556f, 1.40779f, -9.09797f, -0.92895f, -0.948104f,
- -9.165f, 0.699107f, 1.24498f, -8.8777f, -0.517148f,
- -0.699107f, -9.57681f, 0.507571f, 0.641646f, -9.65342f,
- -0.229843f, -0.565032f, -9.55765f, 0.287304f, 0.47884f,
- -8.91601f, -0.201113f, -0.833182f, -9.69173f, 0.134075f,
- 0.411803f, -9.47146f, 0.162806f, 0.172383f, -9.5385f,
- -0.21069f, 0.143652f, -9.30866f, 0.497994f, -0.105345f,
- -9.8258f, 0.507571f, 0.507571f, -9.50977f, -0.248997f,
- 0.383072f, -9.60554f, 0.641646f, 0.948104f, -9.27993f,
- -0.220267f, -0.0766145f, -10.0844f, 0.430956f, 0.986411f,
- -9.52892f, -0.00957681f, 0.517148f, -9.02135f, 0.411803f,
- 1.43652f, -9.42358f, -0.00957681f, -0.258574f, -9.27035f,
- 1.54187f, 0.45011f, -9.84496f, -0.995988f, 0.316035f,
- -9.8258f, -0.402226f, 0.842759f, -8.93516f, 0.967257f,
- -0.785298f, -8.94474f, 2.63362f, 0.545878f, -9.25119f,
- -2.78685f, 0.0383072f, -7.71891f, 5.74608f, 0.909797f,
- -9.34696f, -5.07571f, -0.651223f, -8.63828f, 4.58729f,
- 0.430956f, -8.69574f, -4.29041f, -1.16837f, -7.39329f,
- 7.83383f, 0.612916f, -7.62314f, -7.28795f, -0.229843f,
- -6.17704f, 7.59441f, 1.89621f, -5.58328f, -7.56568f,
- 0.153229f, -5.53539f, 8.00621f, 0.967257f, -4.83629f,
- -7.9679f, 0.411803f, -4.95121f, 8.04452f, 0.248997f,
- -4.46279f, -8.20732f, 0.201113f, -4.99909f, 8.42759f,
- 0.105345f, -4.89375f, -8.30309f, -0.0287304f, -4.52983f,
- 8.5042f, 0.306458f, -4.72137f, -8.5042f, 0.0f,
- -4.36702f, 8.72447f, 0.0f, -4.43406f, -8.68616f,
- 0.181959f, -4.15633f, 8.8777f, 0.430956f, -3.98395f,
- -9.02135f, 0.584185f, -4.14676f, 8.68616f, 0.0670376f,
- -3.9648f, -8.85855f, 1.09176f, -4.18506f, 8.84897f,
- -0.114922f, -4.35745f, -8.77236f, 0.248997f, -4.22337f,
- 8.07325f, 0.325611f, -3.67749f, -8.5042f, 1.37906f,
- -9.15543f, 3.87861f, 2.11647f, -9.27993f, -2.25055f,
- -1.5706f, -9.31823f, 0.0670376f, 1.47483f, -10.1897f,
- -0.0766145f, -0.354342f, -9.24162f, -0.162806f, 0.0670376f,
- -9.81623f, 0.325611f, -1.0343f, -5.88016f, 7.79552f,
- 1.65679f, -8.16902f, -5.56412f, -2.83473f, -8.38928f,
- 4.31914f, 1.39821f, -8.81066f, -4.41491f, -1.08218f,
- -8.82982f, 4.46279f, 0.986411f, -8.61913f, -4.73094f,
- -0.727837f, -8.06367f, 3.85945f, 1.38864f, -8.16902f,
- -3.98395f, -0.766145f, -8.73405f, 3.92649f, 1.63763f,
- -8.71489f, -4.10845f, -1.61848f, -8.91601f, 3.36146f,
- 2.04944f, -9.08839f, -3.47638f, -1.97282f, -8.82024f,
- 3.40934f, 2.29843f, -8.83939f, -3.66792f, -2.24097f,
- -8.88728f, 3.553f, 2.17394f, -8.84897f, -3.78284f,
- -2.21224f, -8.73405f, 4.01268f, 2.21224f, -8.74362f,
- -4.22337f, -2.07817f, -8.63828f, 3.90734f, 2.20267f,
- -8.97347f, -3.77326f, -1.87705f, -8.39886f, 4.48195f,
- 2.08774f, -9.06924f, -4.30956f, -1.71425f, -7.44118f,
- 6.41646f, 1.83875f, -7.72848f, -6.76123f, -1.05345f,
- -6.08127f, 7.51779f, 1.35991f, -4.92248f, -7.63272f,
- 0.0766145f, -6.33027f, 7.44118f, 1.49398f, -6.03339f,
- -7.42203f, -0.430956f, -6.13873f, 7.53695f, 1.42694f,
- -6.27281f, -7.45076f, -0.90022f, -6.17704f, 7.54652f,
- 1.37906f, -6.14831f, -7.51779f, -0.42138f, -6.06212f,
- 7.56568f, 1.47483f, -6.2345f, -7.46033f, -0.316035f,
- -6.02381f, 7.67102f, 1.49398f, -6.22492f, -7.50822f,
- -0.497994f, -5.67905f, 7.85298f, 1.71425f, -6.03339f,
- -7.57525f, -1.05345f, -5.06613f, 8.05409f, 1.83875f,
- -4.82671f, -7.97748f, -0.565032f, -4.54898f, 8.23605f,
- 1.99198f, -4.42448f, -8.42759f, -1.06303f, -4.24253f,
- 8.7532f, 2.17394f, -4.40533f, -8.81066f, -2.05901f,
- -3.44765f, 9.10754f, 1.92494f, -3.01669f, -9.39485f,
- -0.68953f, -3.055f, 8.68616f, 2.11647f, -3.4285f,
- -8.73405f, -1.3216f, -2.72939f, 8.88728f, 2.11647f,
- -2.61447f, -9.02135f, -1.21625f, -2.55701f, 9.38527f,
- 2.30801f, -2.15478f, -9.663f, -2.33674f, -2.48039f,
- 9.23204f, 2.2314f, -1.53229f, -9.71088f, -1.13964f,
- -3.66792f, 8.72447f, 2.24097f, -2.29843f, -8.88728f,
- -2.31759f, -8.54251f, 3.89776f, 1.75256f, -9.05966f,
- -2.90177f, -2.06859f, -9.29908f, 2.04944f, 1.6089f,
- -9.86411f, -1.71425f, -1.16837f, -10.2855f, 1.29287f,
- 0.766145f, -10.1993f, -1.1971f, -0.373495f, -9.89284f,
- 1.1971f, 0.995988f, -9.14585f, -1.48441f, -0.201113f,
- -9.43316f, 0.306458f, 1.45567f, -9.19373f, -0.6608f,
- -0.727837f, -9.15543f, -0.0287304f, 0.047884f, -9.40442f,
- 0.0287304f, 0.392649f, -9.9503f, -0.948104f, 0.0287304f,
- -10.1323f, 1.06303f, -0.47884f, -10.0078f, -0.45011f,
- 0.23942f, -9.52892f, 0.287304f, -0.191536f, -9.45231f,
- -0.545878f, 0.42138f, -9.52892f, 0.354342f, -0.584185f,
- -9.86411f, -0.258574f, 0.699107f, -9.44273f, 0.0f,
- -0.42138f, -8.4659f, 3.95522f, 0.354342f, -8.57124f,
- -4.1276f, 0.430956f, -8.71489f, 4.04141f, 0.306458f,
- -8.95431f, -3.9648f, -0.603339f, -8.89685f, 3.58173f,
- 0.354342f, -8.52336f, -3.85945f, 0.258574f, -9.35654f,
- 3.54342f, -0.785298f, -9.02135f, -3.69665f, 0.92895f,
- -8.76278f, 2.84431f, -1.17795f, -8.56167f, -2.806f,
- 2.07817f, -8.89685f, 3.13162f, -1.49398f, -8.5042f,
- -3.16035f, 2.03028f, -9.09797f, 4.00311f, -0.995988f,
- -9.71088f, -3.79242f, 2.70066f, -9.04051f, 3.58173f,
- -1.01514f, -8.04452f, -3.64876f, 1.81002f, -7.86256f,
- 4.94163f, -0.201113f, -7.46991f, -5.02782f, 1.81959f,
- -7.41245f, 6.46434f, -0.47884f, -7.44118f, -6.31112f,
- 0.976834f, -6.57927f, 6.68461f, -0.114922f, -6.36858f,
- -6.40688f, 2.35589f, -6.02381f, 7.31668f, -0.469264f,
- -5.43005f, -7.24007f, 2.43251f, -6.87615f, 7.48906f,
- -0.536301f, -7.03895f, -7.15387f, 0.90022f, -5.9855f,
- 7.72848f, -0.201113f, -5.78439f, -7.47949f, 1.13964f,
- -6.06212f, 7.9296f, -0.268151f, -5.25767f, -7.76679f,
- 1.63763f, -5.70778f, 8.29351f, -0.162806f, -4.72137f,
- -8.14029f, 1.20668f, -5.29597f, 8.42759f, 0.143652f,
- -4.75967f, -8.42759f, 0.603339f, -5.11401f, 8.44674f,
- 0.565032f, -4.85544f, -8.43717f, -0.00957681f, -5.43963f,
- 8.23605f, 0.919373f, -5.1619f, -8.05409f, -0.325611f,
- -5.60243f, 8.0924f, 0.718261f, -5.48751f, -7.86256f,
- -0.047884f, -5.84185f, 7.98706f, 1.11091f, -5.58328f,
- -7.91044f, 0.162806f, -5.79397f, 7.8434f, 1.16837f,
- -5.47793f, -7.69975f, -0.392649f, -5.78439f, 7.77637f,
- 1.36948f, -5.63116f, -7.61356f, -0.651223f, -5.95677f,
- 7.73806f, 1.55144f, -5.19063f, -7.69975f, -0.833182f,
- -6.22492f, 7.5561f, 1.49398f, -5.46836f, -7.53695f,
- -0.833182f, -6.87615f, 6.98149f, 1.25456f, -6.53138f,
- -6.82826f, -0.871489f, -7.40287f, 6.03339f, 0.6608f,
- -6.67503f, -5.9855f, 0.344765f, -8.00621f, 4.66391f,
- 0.574608f, -7.71891f, -4.67348f, 0.641646f, -9.48104f,
- 2.24097f, 1.0343f, -9.77792f, -2.03028f, -0.995988f,
- -9.76834f, 1.30245f, 1.05345f, -9.72046f, -1.25456f,
- -0.593762f, -9.47146f, 0.507571f, 1.1971f, -10.4675f,
- -0.459687f, -0.804452f, -9.67257f, 0.201113f, 1.15879f,
- -9.60554f, -0.383072f, -1.13006f, -9.42358f, -0.0191536f,
- 1.08218f, -10.0844f, -0.0574608f, -0.823605f, -7.12514f,
- 6.99107f, -0.488417f, -7.20176f, -6.6463f, 1.63763f,
- -7.16345f, 6.86657f, -0.430956f, -7.46991f, -6.47392f,
- 0.823605f, -7.09641f, 7.1443f, -0.804452f, -6.6463f,
- -7.00065f, 1.76213f, -7.50822f, 6.62715f, -0.277727f,
- -5.86101f, -7.06768f, 0.986411f, -7.2688f, 7.23049f,
- -0.47884f, -7.28795f, -6.97192f, 1.51314f, -7.37414f,
- 6.62715f, -0.287304f, -7.24964f, -6.39731f, 0.995988f,
- -7.40287f, 6.56969f, -0.392649f, -7.11557f, -6.44519f,
- 1.14922f, -7.3071f, 6.8953f, -0.584185f, -6.56011f,
- -6.91445f, 1.78129f, -7.51779f, 6.78038f, -0.612916f,
- -5.74608f, -7.02938f, 3.48596f, -7.24007f, 6.33985f,
- -0.325611f, -6.8953f, -6.03339f, 0.536301f, -8.99262f,
- 5.01825f, -0.258574f, -9.73961f, -4.56814f, 0.632069f,
- -9.79707f, 1.66636f, 0.287304f, -9.21289f, -1.87705f,
- -0.105345f, -9.77792f, 1.10133f, 0.995988f, -8.88728f,
- -1.47483f, -0.335188f, -9.44273f, 1.24498f, 0.497994f,
- -9.44273f, -1.34075f, -0.268151f, -9.7875f, 1.0726f,
- 0.68953f, -9.39485f, -1.27372f, -0.162806f, -8.86812f,
- 2.24097f, 0.545878f, -8.61913f, -2.47082f, 0.632069f,
- -9.0022f, 2.02071f, 0.718261f, -9.36612f, -2.12605f,
- -0.440533f, -9.22246f, 2.29843f, 1.05345f, -9.10754f,
- -2.46124f, -0.402226f, -9.55765f, 2.32716f, 0.842759f,
- -9.19373f, -2.50912f, -0.497994f, -8.95431f, 2.62405f,
- 1.0726f, -9.15543f, -2.73897f, -0.737414f, -9.54808f,
- 2.34632f, 1.11091f, -9.05966f, -2.55701f, -0.440533f,
- -10.0556f, -0.746991f, 1.15879f, -8.90643f, 1.48441f,
- -1.74298f, -8.53294f, -2.1452f, 2.67193f, -9.15543f,
- 2.84431f, -1.62806f, -8.94474f, 1.81959f, 0.42138f,
- -9.30866f, -1.75256f, -0.746991f, -9.92157f, 2.12605f,
- 0.670376f, -9.35654f, -2.24097f, -0.699107f, -9.49062f,
- 2.12605f, 1.25456f, -8.91601f, -2.36547f, -0.411803f,
- -8.86812f, 2.40378f, 0.948104f, -8.95431f, -2.47082f,
- -0.871489f, -8.90643f, 2.65278f, 1.49398f, -8.95431f,
- -2.88262f, -1.18752f, -8.95431f, 3.15077f, 1.25456f,
- -9.05966f, -3.34231f, -1.10133f, -9.02135f, 2.9305f,
- 1.25456f, -9.03093f, -3.26569f, -1.0726f, -9.32781f,
- 2.87304f, 1.0726f, -8.97347f, -3.26569f, -0.794875f,
- -9.1267f, 2.94966f, 1.10133f, -9.06924f, -3.20823f,
- -0.679953f, -9.06924f, 3.01669f, 1.01514f, -8.98304f,
- -3.21781f, -0.507571f, -9.165f, 3.18908f, 0.555455f,
- -9.03093f, -3.49553f, -0.354342f, -9.04051f, 3.32315f,
- 0.344765f, -9.05966f, -3.48596f, -0.181959f, -8.76278f,
- 3.02627f, 0.708684f, -8.90643f, -3.23696f, -0.248997f,
- -8.85855f, 2.79643f, 0.641646f, -8.90643f, -2.96881f,
- -0.306458f, -8.92558f, 2.7677f, 0.833182f, -8.91601f,
- -3.02627f, -0.430956f, -8.94474f, 2.86347f, 1.00556f,
- -8.86812f, -3.16035f, -0.565032f, -8.98304f, 2.94966f,
- 1.1971f, -9.07881f, -3.20823f, -0.766145f, -8.89685f,
- 2.92093f, 1.12049f, -8.89685f, -3.09331f, -0.842759f,
- -8.83939f, 2.97839f, 0.967257f, -8.85855f, -3.1795f,
- -0.919373f, -8.93516f, 3.15077f, 1.42694f, -8.90643f,
- -3.43807f, -0.948104f, -8.99262f, 3.20823f, 1.33118f,
- -8.92558f, -3.43807f, -1.0726f, -8.86812f, 3.01669f,
- 1.52271f, -8.77236f, -3.33273f, -1.08218f, -8.81066f,
- 3.23696f, 1.50356f, -8.82024f, -3.4668f, -1.13964f,
- -8.86812f, 3.41892f, 1.40779f, -8.90643f, -3.62961f,
- -1.06303f, -8.82982f, 3.38061f, 1.55144f, -8.79151f,
- -3.62003f, -1.08218f, -8.82024f, 3.12204f, 1.67594f,
- -8.82024f, -3.41892f, -1.15879f, -8.73405f, 3.25611f,
- 1.75256f, -8.72447f, -3.4285f, -1.28329f, -8.79151f,
- 3.32315f, 1.96325f, -8.78193f, -3.5913f, -1.55144f,
- -8.71489f, 3.27527f, 2.02071f, -8.73405f, -3.48596f,
- -1.67594f, -8.82024f, 3.16035f, 2.02071f, -8.7532f,
- -3.41892f, -1.62806f, -8.73405f, 3.40934f, 1.90578f,
- -8.74362f, -3.62003f, -1.38864f, -8.74362f, 3.41892f,
- 1.93451f, -8.68616f, -3.66792f, -1.45567f, -8.70532f,
- 3.40934f, 1.99198f, -8.68616f, -3.62961f, -1.78129f,
- -8.69574f, 3.56257f, 1.93451f, -8.72447f, -3.77326f,
- -1.45567f, -8.79151f, 3.45723f, 2.13563f, -8.74362f,
- -3.68707f, -1.54187f, -8.79151f, 3.25611f, 2.03986f,
- -8.65743f, -3.62003f, -1.6089f, -8.80109f, 3.32315f,
- 1.92494f, -8.69574f, -3.5913f, -1.88663f, -8.99262f,
- 3.13162f, 1.91536f, -8.63828f, -3.50511f, -1.42694f,
- -8.69574f, 3.19865f, 2.22182f, -8.86812f, -3.43807f,
- -1.80044f, -8.89685f, 2.61447f, 2.05901f, -8.7532f,
- -2.85389f, -1.39821f, -9.32781f, 2.38462f, 2.08774f,
- -8.85855f, -2.67193f, -1.5706f, -9.72046f, 1.13006f,
- 1.86748f, -9.03093f, -0.756568f, -1.0343f, -10.3334f,
- 0.42138f, -1.53229f, -9.57681f, -0.220267f, 1.26414f,
- -8.95431f, -0.383072f, 0.201113f, -9.73961f, 0.651223f,
- -0.565032f, -10.3334f, -0.651223f, -0.0574608f, -9.68215f,
- 0.536301f, 1.02472f, -9.56723f, -0.823605f, -0.296881f,
- -9.58638f, 0.890643f, 0.0287304f, -9.50977f, -0.957681f,
- -0.0957681f, -9.54808f, 0.890643f, 0.0861913f, -9.72046f,
- -1.04387f, -0.248997f, -9.35654f, 1.00556f, 0.335188f,
- -9.47146f, -0.948104f, -0.325611f, -9.45231f, 0.90022f,
- 0.0383072f, -9.70131f, -0.814029f, -0.191536f, -9.51935f,
- 0.756568f, 0.335188f, -9.69173f, -0.861913f, -0.0383072f,
- -9.58638f, 0.775721f, 0.306458f, -9.73004f, -0.986411f,
- 0.00957681f, -9.47146f, 0.833182f, 0.258574f, -9.64384f,
- -0.766145f, -0.287304f, -9.5385f, 0.699107f, 0.335188f,
- -9.60554f, -0.842759f, -0.153229f, -9.5385f, 0.785298f,
- 0.402226f, -9.73961f, -0.890643f, -0.191536f, -9.43316f,
- 0.785298f, 0.411803f, -9.663f, -0.737414f, -0.392649f,
- -9.56723f, 0.775721f, 0.335188f, -9.60554f, -0.766145f,
- -0.287304f, -9.49062f, 0.679953f, 0.344765f, -9.67257f,
- -0.785298f, -0.201113f, -9.44273f, 0.699107f, 0.316035f,
- -9.62469f, -0.737414f, -0.220267f, -9.54808f, 0.679953f,
- 0.440533f, -9.96946f, -0.497994f, -0.392649f, -9.61511f,
- 0.440533f, 0.363919f, -9.46189f, -0.383072f, -0.383072f,
- -9.48104f, 0.306458f, 0.565032f, -9.69173f, -1.0726f,
- -0.766145f, -9.05008f, 0.909797f, 0.775721f, -9.63427f,
- -0.430956f, -0.737414f, -9.54808f, 0.344765f, 0.718261f,
- -9.58638f, -0.383072f, -0.229843f, -9.5385f, 0.172383f,
- 0.632069f, -9.62469f, -0.335188f, -0.545878f, -9.52892f,
- 0.306458f, 0.622492f, -9.48104f, -0.383072f, -0.392649f,
- -9.44273f, 0.23942f, 0.68953f, -9.70131f, -0.344765f,
- -0.354342f, -9.59596f, 0.229843f, 0.565032f, -9.40442f,
- -0.392649f, -0.497994f, -9.43316f, 0.248997f, 0.555455f,
- -9.34696f, -0.373495f, -0.220267f, -9.34696f, 0.181959f,
- 0.392649f, -10.4579f, 0.0670376f, 0.181959f, -9.5385f,
- -0.229843f, 0.296881f, -9.29908f, -0.0287304f, -0.42138f,
- -9.45231f, 0.00957681f, 0.565032f, -9.84496f, -0.0766145f,
- 0.105345f, -9.64384f, -0.0574608f, 0.277727f, -9.67257f,
- -0.21069f, -0.306458f, -9.29908f, 0.047884f, 0.469264f,
- -9.64384f, -0.248997f, 0.114922f, -9.52892f, 0.0191536f,
- 0.201113f, -9.64384f, -0.411803f, -0.0861913f, -9.67257f,
- 0.248997f, 0.0670376f, -9.73004f, -0.383072f, -0.00957681f,
- -9.59596f, 0.268151f, -0.047884f, -9.77792f, -0.162806f,
- 0.0766145f, -9.68215f, 0.00957681f, 0.153229f, -9.68215f,
- -0.0957681f, 0.143652f, -9.50977f, -0.0957681f, 0.23942f,
- -9.60554f, -0.316035f, 0.0f, -9.43316f, 0.124498f,
- 0.134075f, -9.52892f, -0.47884f, -0.134075f, -9.50019f,
- 0.316035f, -0.00957681f, -9.88326f, -0.23942f, -0.0670376f,
- -9.5385f, 0.0861913f, 0.316035f, -9.60554f, -0.0766145f,
- 0.220267f, -9.62469f, -0.00957681f, -0.172383f, -9.74919f,
- -0.00957681f, 0.0766145f, -9.43316f, -0.105345f, 0.0957681f,
- -9.69173f, -0.0670376f, 0.00957681f, -9.51935f, -0.0383072f,
- -0.0383072f, -9.71088f, 0.0191536f, 0.0766145f, -9.50977f,
- -0.0957681f, 0.0766145f, -9.56723f, -0.105345f, 0.0861913f,
- -9.2895f, -0.114922f, 0.153229f, -9.71088f, -0.162806f,
- 0.0861913f, -9.50019f, 0.0287304f, 0.0861913f, -9.64384f,
- -0.0191536f, 0.287304f, -9.50977f, -0.134075f, -0.0383072f,
- -9.50019f, 0.143652f, 0.21069f, -9.44273f, -0.23942f,
- -0.344765f, -9.64384f, -0.0287304f, 0.172383f, -9.48104f,
- -0.0574608f, -0.0957681f, -9.69173f, -0.181959f, 0.201113f,
- -9.48104f, 0.114922f, -0.0574608f, -9.75877f, -0.0670376f,
- 0.0191536f, -9.55765f, 0.0383072f, 0.172383f, -9.61511f,
- -0.0574608f, 0.268151f, -9.24162f, -0.0957681f, -0.0574608f,
- -9.56723f, 0.047884f, 0.325611f, -9.51935f, -0.134075f,
- -0.459687f, -9.47146f, 0.0f, 0.622492f, -9.49062f,
- -0.0670376f, -0.488417f, -9.59596f, 0.0f, 0.823605f,
- -9.48104f, -0.0383072f, -0.574608f, -9.5385f, -0.335188f,
- 0.641646f, -9.54808f, 0.296881f, -0.536301f, -9.48104f,
- -0.363919f, 0.641646f, -9.50977f, 0.287304f, -0.45011f,
- -9.46189f, -0.047884f, 1.13964f, -9.57681f, 0.0f,
- -0.632069f, -9.57681f, -0.316035f, 0.909797f, -9.63427f,
- 0.258574f, -0.517148f, -9.64384f, -0.344765f, 0.545878f,
- -9.59596f, 0.296881f, -0.440533f, -9.54808f, -0.0574608f,
- 0.746991f, -9.59596f, -0.0383072f, -0.296881f, -9.49062f,
- 0.00957681f, 0.852336f, -9.46189f, -0.124498f, -0.21069f,
- -9.57681f, 0.0766145f, 0.641646f, -9.37569f, -0.181959f,
- -0.42138f, -9.70131f, 0.344765f, 0.737414f, -9.24162f,
- -0.469264f, -0.794875f, -9.47146f, 0.0f, 0.699107f,
- -9.76834f, 0.0287304f, -0.746991f, -9.48104f, -0.153229f,
- 1.33118f, -9.36612f, 0.0957681f, -0.948104f, -9.74919f,
- -0.201113f, 1.10133f, -9.35654f, 0.181959f, -0.909797f,
- -9.54808f, 0.0957681f, 0.881066f, -9.73961f, 0.153229f,
- -1.05345f, -9.49062f, -0.306458f, 1.04387f, -9.51935f,
- 0.584185f, -0.766145f, -9.93115f, -0.814029f, 0.727837f,
- -9.75877f, 1.0726f, -0.316035f, -9.72046f, -0.296881f,
- 0.162806f, -9.47146f, 0.392649f, 0.0766145f, -9.40442f,
- 0.21069f, 0.287304f, -9.37569f, -0.248997f, 0.536301f,
- -9.5385f, 0.0861913f, 0.114922f, -9.40442f, -0.0287304f,
- -0.0383072f, -10.0461f, 0.181959f, -0.00957681f, -9.32781f,
- -0.181959f, 0.622492f, -9.46189f, 0.296881f, -0.201113f,
- -9.35654f, -0.201113f, 0.201113f, -9.31823f, -0.402226f,
- 0.21069f, -9.91199f, 0.517148f, 1.01514f, -9.87369f,
- 0.047884f, -0.047884f, -9.56723f, 0.248997f, -0.114922f,
- -9.76834f, -0.335188f, 0.0383072f, -9.02135f, 0.316035f,
- 0.105345f, -9.5385f, -0.335188f, 0.0287304f, -9.59596f,
- 0.344765f, 0.670376f, -9.70131f, 0.0287304f, -0.383072f,
- -10.4579f, 0.402226f, 0.411803f, -10.4291f, -0.45011f,
- 0.306458f, -9.44273f, 0.545878f, 0.430956f, -9.79707f,
- 0.507571f, -0.679953f, -9.26077f, -0.469264f, 1.26414f,
- -9.51935f, 0.775721f, -0.114922f, -9.19373f, -0.718261f,
- 0.718261f, -9.68215f, 0.881066f, -0.316035f, -9.01178f,
- -0.890643f, 0.938527f, -9.25119f, 1.04387f, -0.861913f,
- -8.76278f, -0.881066f, -0.823605f, -9.71088f, 0.354342f,
- -0.181959f, -9.32781f, -0.248997f, -0.0957681f, -10.4387f,
- 0.995988f, -0.268151f, -10.2376f, -0.699107f, 0.536301f,
- -9.98861f, 0.555455f, -0.0574608f, -9.49062f, -0.459687f,
- 0.823605f, -9.79707f, 0.316035f, 0.268151f, -8.85855f,
- -0.488417f, -0.574608f, -9.663f, 0.373495f, -0.287304f,
- -9.42358f, 0.0191536f, -1.65679f, -9.42358f, 1.0726f,
- 1.80044f, -9.63427f, -0.21069f, -1.66636f, -9.31823f,
- 0.306458f, 2.83473f, -9.17458f, 0.814029f, -2.98796f,
- -8.67659f, 0.143652f, 1.7334f, -9.31823f, 1.23541f,
- -1.15879f, -9.13627f, -1.75256f, 0.785298f, -8.80109f,
- 2.54743f, -0.0766145f, -9.91199f, -0.134075f, 1.21625f,
- -9.72046f, 0.488417f, 0.363919f, -9.14585f, -0.277727f,
- 1.0343f, -9.21289f, 0.718261f, -0.143652f, -9.48104f,
- -0.296881f, -0.114922f, -9.2895f, 0.565032f, 0.565032f,
- -10.2663f, 0.459687f, -0.143652f, -9.56723f, -0.105345f,
- 0.459687f, -10.094f, 0.68953f, -0.306458f, -9.59596f,
- -0.172383f, 0.957681f, -10.094f, 0.0861913f, -0.220267f,
- -9.34696f, 0.191536f, 0.392649f, -9.79707f, -0.181959f,
- -0.488417f, -9.55765f, 0.555455f, 1.0343f, -10.1227f,
- 0.0191536f, -0.976834f, -9.40442f, 0.354342f, 0.871489f,
- -9.69173f, 0.593762f, -0.296881f, -9.14585f, -0.517148f,
- 1.31202f, -9.69173f, 0.861913f, -0.775721f, -9.07881f,
- -0.68953f, 0.497994f, -9.90242f, 0.919373f, 0.00957681f,
- -9.43316f, -0.68953f, 0.325611f, -9.79707f, 0.507571f,
- 0.114922f, -9.40442f, -0.316035f, 0.430956f, -9.8258f,
- 0.536301f, -0.0191536f, -9.32781f, -0.258574f, 0.258574f,
- -9.93115f, 0.383072f, 0.143652f, -9.48104f, -0.181959f,
- 0.6608f, -9.55765f, 0.0861913f, -0.0383072f, -9.37569f,
- 0.0287304f, 0.430956f, -9.39485f, 0.325611f, 0.0287304f,
- -9.32781f, -0.0861913f, 0.392649f, -9.50019f, 0.651223f,
- 0.23942f, -9.40442f, -0.469264f, 0.545878f, -9.75877f,
- 0.536301f, 0.0574608f, -9.38527f, -0.411803f, 0.47884f,
- -9.87369f, 0.574608f, 0.0383072f, -9.54808f, -0.402226f,
- 0.258574f, -9.65342f, 0.325611f, 0.23942f, -9.56723f,
- -0.220267f, 0.6608f, -9.50977f, 0.134075f, 0.0766145f,
- -9.38527f, -0.047884f, 0.536301f, -9.70131f, 0.0f,
- -0.42138f, -9.35654f, 0.181959f, 0.881066f, -9.71088f,
- 0.181959f, -0.402226f, -9.50019f, -0.00957681f, 0.727837f,
- -9.49062f, 0.306458f, -0.0766145f, -9.27993f, -0.268151f,
- 0.766145f, -9.73961f, 0.181959f, -0.517148f, -9.49062f,
- -0.0287304f, 0.986411f, -9.86411f, 0.0383072f, -0.383072f,
- -9.47146f, 0.0383072f, 0.986411f, -9.50977f, 0.402226f,
- -0.383072f, -9.10754f, -0.363919f, 0.823605f, -10.0365f,
- 0.90022f, -0.497994f, -9.59596f, -0.651223f, 0.833182f,
- -9.73961f, 0.517148f, -0.0957681f, -9.31823f, -0.440533f,
- 0.641646f, -9.56723f, 0.0191536f, -0.114922f, -9.33739f,
- -0.047884f, 0.593762f, -9.67257f, -0.23942f, -0.459687f,
- -9.51935f, 0.258574f, 0.794875f, -9.39485f, 0.0574608f,
- -0.172383f, -9.29908f, -0.0574608f, 0.440533f, -10.0078f,
- 0.134075f, -0.536301f, -9.45231f, -0.0670376f, 0.766145f,
- -10.0748f, -0.0287304f, -0.584185f, -9.55765f, -0.0766145f,
- 1.06303f, -9.73961f, 0.392649f, -0.402226f, -9.50019f,
- -0.316035f, 1.35991f, -9.75877f, 0.229843f, -0.373495f,
- -9.51935f, -0.248997f, 1.39821f, -10.2855f, 0.191536f,
- -0.181959f, -10.1514f, -0.124498f, 1.23541f, -10.0461f,
- 0.105345f, -0.440533f, -9.88326f, 0.0574608f, -0.0191536f,
- -9.60554f, -0.201113f, 0.0957681f, -9.33739f, 0.047884f,
- -0.248997f, -9.29908f, -0.23942f, 0.373495f, -9.04051f,
- -0.0861913f, -0.00957681f, -9.24162f, -0.114922f, 1.78129f,
- -9.414f, -0.124498f, -1.16837f, -9.68215f, -0.181959f,
- 1.35033f, -9.60554f, 0.0191536f, -1.4461f, -9.19373f,
- -0.220267f, 1.84832f, -9.23204f, -0.00957681f, -1.70467f,
- -9.11712f, -0.181959f, 1.50356f, -8.74362f, -0.143652f,
- -1.97282f, -8.89685f, 0.143652f, 1.88663f, -8.90643f,
- -0.373495f, -1.25456f, -8.81066f, -0.124498f, 1.31202f,
- -8.79151f, -0.134075f, -0.92895f, -8.99262f, -0.536301f,
- 0.430956f, -9.31823f, 0.373495f, -0.181959f, -10.2855f,
- -0.153229f, 0.708684f, -10.5536f, 0.229843f, -0.105345f,
- -10.2855f, -0.220267f, -0.105345f, -9.95988f, 0.296881f,
- -0.162806f, -9.79707f, -0.0861913f, 0.536301f, -9.39485f,
- -0.124498f, -0.392649f, -10.2759f, 0.047884f, 1.09176f,
- -9.61511f, -0.191536f, -0.517148f, -10.0461f, 0.229843f,
- 1.5706f, -9.56723f, -0.430956f, -0.584185f, -9.5385f,
- 0.287304f, 0.938527f, -9.49062f, -0.47884f, -0.287304f,
- -9.56723f, -0.248997f, 0.497994f, -9.50977f, 0.0766145f,
- -0.957681f, -9.79707f, -0.191536f, 0.296881f, -9.40442f,
- 0.00957681f, -0.0383072f, -9.61511f, 0.0191536f, 0.268151f,
- -9.31823f, -0.201113f, -0.344765f, -9.48104f, 0.45011f,
- 0.555455f, -9.29908f, -0.746991f, 0.0191536f, -9.03093f,
- 0.248997f, 0.612916f, -8.97347f, -0.459687f, 0.459687f,
- -9.11712f, -0.277727f, -0.402226f, -9.0022f, 0.191536f,
- 0.191536f, -10.6207f, -0.0766145f, 0.641646f, -10.1897f,
- -0.00957681f, 0.344765f, -10.0844f, 0.0574608f, 0.201113f,
- -10.1131f, -0.124498f, 0.191536f, -9.38527f, -0.153229f,
- -0.0191536f, -9.43316f, -0.0574608f, -0.134075f, -9.42358f,
- -0.47884f, 0.172383f, -9.27035f, 0.143652f, 0.21069f,
- -10.343f, -0.0383072f, -0.373495f, -9.8258f, 0.0861913f,
- 0.316035f, -10.1706f, -0.181959f, -0.143652f, -9.74919f,
- 0.114922f, 0.258574f, -9.50977f, -0.430956f, 0.0670376f,
- -9.29908f, 0.172383f, 0.344765f, -9.86411f, -0.68953f,
- 0.0191536f, -10.0748f, 0.737414f, 0.440533f, -9.91199f,
- -0.622492f, -0.430956f, -9.86411f, 0.708684f, 0.335188f,
- -9.88326f, -0.392649f, 0.153229f, -9.77792f, 0.354342f,
- -0.191536f, -9.60554f, 0.0670376f, 0.0670376f, -9.31823f,
- -0.277727f, -0.0957681f, -9.55765f, 0.593762f, 0.153229f,
- -9.23204f, -0.852336f, -0.201113f, -9.63427f, 0.42138f,
- 0.507571f, -9.42358f, -0.603339f, -0.641646f, -9.64384f,
- 0.42138f, 0.718261f, -9.47146f, -0.507571f, -0.995988f,
- -9.83538f, 0.134075f, 0.603339f, -9.32781f, -0.172383f,
- -0.861913f, -9.60554f, 0.181959f, 1.05345f, -9.72046f,
- -0.0574608f, -1.21625f, -9.57681f, -0.00957681f, 1.1971f,
- -9.69173f, 0.363919f, -1.31202f, -9.29908f, -0.306458f,
- 1.37906f, -9.33739f, 0.766145f, -1.41737f, -9.05008f,
- -0.0574608f, 1.09176f, -9.07881f, 0.727837f, -0.861913f,
- -9.42358f, -0.785298f, 0.632069f, -9.48104f, 1.01514f,
- 0.047884f, -9.69173f, -1.04387f, -0.124498f, -8.99262f,
- 1.11091f, 0.325611f, -9.70131f, -0.363919f, -0.325611f,
- -9.50019f, 0.737414f, 1.31202f, -9.76834f, -0.162806f,
- -1.10133f, -9.68215f, 0.296881f, 1.04387f, -9.77792f,
- 0.603339f, -0.0957681f, -9.83538f, -0.47884f, 0.909797f,
- -10.4387f, 0.0766145f, -0.459687f, -9.9503f, 0.047884f,
- 1.38864f, -9.60554f, -0.584185f, 0.459687f, -9.75877f,
- 0.536301f, -0.124498f, -9.74919f, -0.172383f, 0.651223f,
- -10.4483f, 0.229843f, -0.268151f, -9.50019f, -1.58975f,
- 0.622492f, -9.64384f, 1.58975f, -0.114922f, -8.96389f,
- -1.69509f, 1.16837f, -8.72447f, 1.71425f, -1.04387f,
- -8.91601f, -0.90022f, 1.92494f, -8.84897f, 1.04387f,
- -0.833182f, -8.86812f, -0.0574608f, 1.17795f, -8.91601f,
- 0.47884f, -1.47483f, -9.22246f, 1.25456f, 1.76213f,
- -8.88728f, -1.42694f, -2.36547f, -10.1227f, 2.24097f,
- 2.09732f, -9.09797f, -2.35589f, -3.11246f, -9.84496f,
- 2.75812f, 2.1069f, -9.26077f, -2.98796f, -2.33674f,
- -9.01178f, 0.0766145f, 4.2138f, -8.45632f, 1.02472f,
- -3.69665f, -8.51378f, -0.344765f, 3.95522f, -8.90643f,
- 2.00155f, -3.78284f, -9.05966f, -0.497994f, 3.50511f,
- -9.42358f, 1.86748f, -3.62003f, -9.68215f, -0.488417f,
- 3.74453f, -9.48104f, 1.69509f, -3.18908f, -9.93115f,
- -0.871489f, 3.54342f, -9.68215f, 2.03986f, -2.8922f,
- -9.85453f, -0.861913f, 3.16035f, -9.81623f, 2.08774f,
- -2.66235f, -9.95988f, -0.852336f, 2.74854f, -9.59596f,
- 1.83875f, -2.15478f, -10.0652f, -0.622492f, 2.28886f,
- -9.5385f, 1.46525f, -2.18351f, -9.67257f, -0.632069f,
- 2.01113f, -9.43316f, 1.3216f, -1.67594f, -9.42358f,
- -0.679953f, 1.05345f, -9.45231f, 1.5706f, -1.23541f,
- -9.2895f, -0.459687f, 1.39821f, -9.5385f, 1.46525f,
- -1.16837f, -9.58638f, -0.316035f, 1.47483f, -9.54808f,
- 1.20668f, -1.26414f, -9.60554f, -0.411803f, 1.39821f,
- -9.31823f, 1.14922f, -1.14922f, -9.76834f, -0.354342f,
- 1.35991f, -9.52892f, 1.11091f, -1.35991f, -9.81623f,
- 0.0574608f, 1.46525f, -9.663f, 0.833182f, -1.1971f,
- -9.80665f, 0.21069f, 1.62806f, -9.70131f, 0.641646f,
- -1.24498f, -9.9503f, 0.497994f, 1.53229f, -9.88326f,
- 0.325611f, -1.05345f, -9.86411f, 0.565032f, 1.58017f,
- -9.87369f, 0.220267f, -1.24498f, -9.94073f, 0.268151f,
- 1.97282f, -9.91199f, 0.584185f, -1.35033f, -9.25119f,
- 0.306458f, 1.13006f, -9.46189f, 0.383072f, -1.11091f,
- -8.97347f, -0.0670376f, 1.22583f, -8.98304f, 0.459687f,
- -0.488417f, -9.30866f, -0.737414f, 1.23541f, -9.13627f,
- 1.00556f, -0.526724f, -10.6781f, -0.775721f, 0.373495f,
- -10.5919f, 1.13964f, 0.42138f, -9.54808f, -2.07817f,
- 0.68953f, -9.26077f, 1.82917f, -0.105345f, -9.03093f,
- -0.976834f, 0.430956f, -9.47146f, 0.995988f, -0.181959f,
- -9.86411f, -0.23942f, 0.124498f, -9.73004f, 0.153229f,
- 0.871489f, -9.97903f, -0.220267f, 0.162806f, -9.59596f,
- 0.153229f, 0.430956f, -9.8258f, -0.114922f, 0.0957681f,
- -9.76834f, 0.00957681f, -0.0287304f, -10.1801f, -0.268151f,
- 0.258574f, -10.0844f, 0.23942f, 0.0766145f, -10.1131f,
- 0.794875f, 0.0f, -9.86411f, -0.593762f, 0.909797f,
- -9.29908f, -2.09732f, 1.72383f, -9.17458f, 1.89621f,
- -1.58975f, -8.91601f, -2.16436f, 1.94409f, -9.1267f,
- 2.03986f, -1.96325f, -9.30866f, -2.42293f, 2.02071f,
- -9.43316f, 2.26013f, -1.38864f, -9.8258f, -2.2697f,
- 1.16837f, -9.44273f, 2.16436f, -1.09176f, -9.14585f,
- -2.03986f, 1.26414f, -9.01178f, 1.82917f, -1.28329f,
- -8.89685f, -2.09732f, 1.64721f, -8.95431f, 1.93451f,
- -1.69509f, -8.8777f, -2.19309f, 1.28329f, -9.03093f,
- 2.11647f, -1.40779f, -9.31823f, -2.2697f, 1.09176f,
- -9.11712f, 2.06859f, -1.3216f, -9.2895f, -2.21224f,
- 1.4461f, -9.165f, 2.00155f, -1.48441f, -8.98304f,
- -2.20267f, 1.46525f, -8.83939f, 2.00155f, -1.24498f,
- -9.14585f, -2.26013f, 1.43652f, -9.01178f, 2.1069f,
- -1.45567f, -9.1267f, -2.29843f, 1.63763f, -9.04051f,
- 2.12605f, -1.76213f, -9.18416f, -2.27928f, 1.9824f,
- -9.09797f, 2.07817f, -1.79086f, -9.08839f, -2.00155f,
- 1.79086f, -9.44273f, 1.87705f, -1.62806f, -9.14585f,
- -2.31759f, 1.84832f, -8.86812f, 2.06859f, 1.61848f,
- -9.165f, -2.24097f, 2.05901f, -9.0022f, 2.02071f,
- -1.7334f, -9.04051f, -2.1452f, 2.04944f, -9.2895f,
- 2.06859f, -1.70467f, -9.20331f, -2.22182f, 2.06859f,
- -9.33739f, 2.09732f, -1.76213f, -9.34696f, -2.13563f,
- 1.99198f, -9.1267f, 1.9824f, -1.84832f, -8.88728f,
- -1.79086f, 1.55144f, -9.03093f, 1.62806f, -1.61848f,
- -9.1267f, -1.58975f, 1.47483f, -9.19373f, 1.49398f,
- -1.47483f, -8.92558f, -1.48441f, 1.76213f, -8.69574f,
- 1.18752f, -1.76213f, -9.24162f, -1.35991f, 1.49398f,
- -9.48104f, 1.23541f, -1.61848f, -9.51935f, 1.86748f,
- 2.00155f, -8.71489f, -1.24498f, -2.11647f, -5.6982f,
- 8.15944f, 1.27372f, -4.52983f, -7.99663f, -0.775721f,
- -4.00311f, 8.31267f, 0.632069f, -3.68707f, -8.03494f,
- 0.344765f, -2.16436f, 7.79552f, 3.7158f, -1.7334f,
- -7.74764f, -4.22337f, -1.56102f, 8.78193f, 4.39575f,
- -1.58017f, -8.76278f, -4.5011f, -1.72383f, 9.05008f,
- 5.25767f, -1.93451f, -9.11712f, -3.9648f, -0.995988f,
- 7.97748f, 5.34386f, -1.33118f, -7.92002f, -4.03184f,
- -0.670376f, 9.17458f, 4.3766f, 0.220267f, -9.60554f,
- -4.13718f, -0.746991f, 7.33583f, 5.34386f, -1.1971f,
- -7.28795f, -5.14275f, 0.871489f, 7.90087f, 5.80354f,
- 0.584185f, -8.33182f, -3.04542f, 0.986411f, 7.59441f,
- 6.49307f, -0.0670376f, -7.85298f, -5.92804f, 2.07817f,
- 8.83939f, 5.4109f, 0.325611f, -9.59596f, -3.83072f,
- 0.718261f, 7.38372f, 5.99508f, 0.248997f, -8.29351f,
- -5.10444f, 1.72383f, 7.83383f, 5.85143f, 2.12605f,
- -9.15543f, -4.03184f, 2.05901f, 7.37414f, 5.79397f,
- 2.19309f, -8.49463f, -4.95121f, 2.13563f, 7.91044f,
- 4.29999f, 2.1452f, -8.76278f, -2.24097f, 1.31202f,
- 8.59997f, 5.72693f, 0.746991f, -9.55765f, -3.54342f,
- 1.36948f, 8.5042f, 5.09486f, 1.17795f, -9.62469f,
- -4.1276f, 1.77171f, 8.69574f, 5.46836f, 1.63763f,
- -9.40442f, -2.32716f, 1.91536f, 7.75721f, 5.25767f,
- 2.04944f, -8.81066f, -2.40378f, 0.392649f, 7.73806f,
- 5.63116f, 1.45567f, -9.24162f, -1.49398f, -0.258574f,
- 6.82826f, 7.34541f, -0.42138f, -9.07881f, -1.30245f,
- -0.517148f, 6.97192f, 7.6806f, -0.890643f, -9.58638f,
- -4.81713f, -0.21069f, 3.13162f, 9.20331f, -0.967257f,
- -10.0748f, 0.181959f, -0.948104f, -5.9855f, 7.4316f,
- -1.00556f, -9.5385f, 0.497994f, 0.162806f, -8.47547f,
- 4.32872f, 0.248997f, -9.165f, -2.27928f, 0.143652f,
- -8.6287f, 4.47237f, 0.354342f, -9.51935f, 0.986411f,
+ -0.0766145f, 6.02381f, 7.85298f, -0.268151f, -8.84897f,
+ -1.3216f, -0.402226f, 5.11401f, 8.77236f, -1.10133f,
+ -10.1706f, 1.24498f, -1.18752f, 6.40688f, 8.0924f,
+ -2.60489f, -8.99262f, 2.58574f, 0.632069f, 9.05008f,
+ 3.61046f, 1.50356f, -9.67257f, 1.93451f, 0.411803f,
+ 8.81066f, 0.268151f, -0.00957681f, -8.7532f, 2.15478f,
+ -0.0191536f, 9.49062f, -0.68953f, 0.0383072f, -8.94474f,
+ 2.99754f, -0.871489f, 9.80665f, 1.53229f, -0.92895f,
+ -9.88326f, 0.957681f, 0.507571f, 9.19373f, 1.71425f,
+ 0.287304f, -9.03093f, 0.651223f, 0.363919f, 9.71088f,
+ 1.18752f, 1.10133f, -10.0556f, 2.98796f, 0.23942f,
+ 9.39485f, 1.0343f, 0.842759f, -9.73961f, -1.12049f,
+ 0.172383f, 9.50977f, 1.18752f, 0.0383072f, -9.9503f,
+ 0.957681f, -0.373495f, 9.96946f, 1.01514f, 0.794875f,
+ -10.1897f, -1.38864f, -9.50977f, -1.04387f, 0.325611f,
+ -9.76834f, 1.05345f, -0.679953f, -9.76834f, -0.641646f,
+ 0.488417f, -9.2895f, 0.316035f, 0.258574f, -9.29908f,
+ -0.890643f, 0.469264f, -9.33739f, 0.823605f, -0.45011f,
+ -9.69173f, -1.02472f, 0.536301f, -9.52892f, 0.90022f,
+ -0.411803f, -9.34696f, -0.890643f, 0.430956f, -9.48104f,
+ 0.823605f, -0.603339f, -9.7875f, -0.565032f, 0.574608f,
+ -9.96946f, 0.536301f, -0.699107f, -9.57681f, -0.823605f,
+ 0.641646f, -9.43316f, 0.593762f, -0.775721f, -9.35654f,
+ -1.04387f, 0.440533f, -9.77792f, 1.01514f, -0.881066f,
+ -9.32781f, -1.10133f, 0.306458f, -9.414f, 0.995988f,
+ 0.0287304f, -9.26077f, -1.01514f, 0.268151f, -9.29908f,
+ 0.881066f, 0.00957681f, -9.42358f, -0.679953f, 0.201113f,
+ -9.49062f, 0.488417f, -0.00957681f, -9.47146f, -0.363919f,
+ 0.191536f, -9.32781f, 0.124498f, 0.124498f, -9.5385f,
+ -0.0766145f, 0.268151f, -9.32781f, -0.172383f, 0.0574608f,
+ -9.69173f, 0.21069f, 0.354342f, -9.50019f, -0.306458f,
+ 0.0383072f, -9.54808f, 0.507571f, 0.363919f, -9.20331f,
+ -0.775721f, 0.0574608f, -9.59596f, 0.651223f, 0.679953f,
+ -9.56723f, -0.794875f, -0.0287304f, -9.49062f, 0.794875f,
+ 0.612916f, -9.06924f, -1.10133f, -0.201113f, -9.20331f,
+ 1.90578f, 1.46525f, -9.29908f, -2.17394f, 0.603339f,
+ -0.995988f, 0.0766145f, 9.58638f, -0.344765f, -0.92895f,
+ -9.1267f, -2.03986f, -0.497994f, 10.477f, -2.49955f,
+ -0.0957681f, -10.4866f, -1.5706f, -0.23942f, 9.13627f,
+ -1.92494f, -0.325611f, -9.05008f, -1.5706f, -0.0383072f,
+ 10.1323f, -1.87705f, -0.632069f, -9.52892f, -1.20668f,
+ 0.105345f, 9.14585f, -1.13964f, -0.718261f, -9.02135f,
+ -1.58975f, 0.296881f, 9.50019f, -1.74298f, -1.00556f,
+ -9.27993f, -1.09176f, 0.23942f, 9.87369f, -1.04387f,
+ -0.995988f, -9.35654f, -2.08774f, -0.526724f, 9.89284f,
+ -1.40779f, -0.459687f, -9.50977f, -2.70066f, -1.47483f,
+ 8.95431f, -1.92494f, 0.526724f, -8.95431f, -1.05345f,
+ -0.938527f, 9.14585f, -3.02627f, 1.04387f, -8.78193f,
+ 1.00556f, -3.56257f, 9.0022f, 1.96325f, 2.36547f,
+ -9.83538f, 1.02472f, -2.59531f, 9.49062f, 1.0726f,
+ 1.77171f, -9.06924f, 0.0861913f, -2.17394f, 9.21289f,
+ -0.823605f, 1.52271f, -10.1323f, 0.316035f, -3.09331f,
+ 10.0844f, 0.555455f, 2.00155f, -9.75877f, 1.51314f,
+ -2.24097f, 9.61511f, 0.670376f, 1.35033f, -9.77792f,
+ 0.986411f, -3.36146f, 9.59596f, 1.77171f, 2.29843f,
+ -9.48104f, 1.4461f, -2.8922f, 8.88728f, 1.84832f,
+ 2.38462f, -9.19373f, 1.75256f, -2.6432f, 9.89284f,
+ 1.38864f, 2.19309f, -9.20331f, 9.98861f, -0.718261f,
+ -0.746991f, 10.6111f, 0.632069f, 0.948104f, 8.99262f,
+ -0.258574f, 0.517148f, 9.10754f, 0.21069f, -1.21625f,
+ 9.90242f, -0.162806f, 0.0287304f, 10.5249f, -0.0861913f,
+ 0.229843f, 9.83538f, 0.0f, 0.181959f, 10.4291f,
+ -0.172383f, -0.47884f, 9.43316f, 0.201113f, -0.268151f,
+ 9.76834f, -0.134075f, -0.354342f, 10.0556f, 1.0726f,
+ 0.277727f, 9.93115f, -1.05345f, 0.363919f, 9.79707f,
+ 0.651223f, 0.699107f, 10.0173f, -0.775721f, 0.0670376f,
+ 9.49062f, 0.296881f, 0.919373f, 10.1801f, -0.68953f,
+ -0.651223f, 9.70131f, 1.00556f, 0.248997f, 9.42358f,
+ -0.995988f, 1.45567f, 9.13627f, -1.35033f, 2.36547f,
+ 9.40442f, 0.976834f, -4.34787f, 8.79151f, -0.90022f,
+ 1.56102f, 8.92558f, 0.6608f, -2.3942f, 9.59596f,
+ -0.363919f, 1.40779f, 9.05966f, 0.181959f, -2.1452f,
+ 9.48104f, -0.612916f, 2.36547f, 9.03093f, 0.21069f,
+ -2.18351f, 9.74919f, -1.5706f, 2.07817f, 8.85855f,
+ 1.04387f, -2.30801f, 8.81066f, -1.66636f, 3.4285f,
+ 8.52336f, 0.440533f, -4.52983f, 9.27993f, -2.19309f,
+ 2.2697f, 8.83939f, 0.90022f, -2.48039f, 9.1267f,
+ -2.77727f, 1.4461f, 8.78193f, 0.814029f, -4.24253f,
+ 8.90643f, -3.39977f, 0.651223f, 8.86812f, 1.08218f,
+ -2.34632f, 9.42358f, -3.26569f, 0.402226f, 8.94474f,
+ 0.526724f, -2.65278f, 9.38527f, -3.21781f, 0.0f,
+ 9.20331f, 0.143652f, -2.71024f, 9.44273f, -2.8922f,
+ -0.497994f, 9.35654f, 0.105345f, -2.78685f, 9.09797f,
+ -3.4285f, -1.00556f, 8.81066f, 0.785298f, -3.84988f,
+ 9.31823f, -3.09331f, -1.4461f, 8.68616f, 0.555455f,
+ -3.27527f, 9.414f, -2.5187f, -1.79086f, 8.59997f,
+ 0.766145f, -3.47638f, 9.0022f, -2.67193f, -2.43251f,
+ 8.77236f, 1.39821f, -2.85389f, 8.25521f, -3.29442f,
+ -2.46124f, 8.15944f, 1.09176f, -3.51469f, 8.72447f,
+ -2.69108f, -2.48997f, 8.91601f, 0.881066f, -3.66792f,
+ 8.92558f, -2.33674f, -2.31759f, 8.84897f, 1.06303f,
+ -3.055f, 8.92558f, -2.49955f, -2.29843f, 8.81066f,
+ 0.919373f, -2.56658f, 9.31823f, -2.78685f, -1.81959f,
+ 9.06924f, 0.411803f, -2.86347f, 9.38527f, -2.78685f,
+ -1.70467f, 9.25119f, 0.335188f, -4.67348f, 9.165f,
+ -3.9648f, -0.622492f, 8.65743f, 0.248997f, -3.055f,
+ 9.414f, -3.67749f, 0.0287304f, 8.82982f, 0.852336f,
+ -2.50912f, 8.82024f, -3.47638f, 0.201113f, 8.98304f,
+ 1.06303f, -3.33273f, 8.89685f, -3.64876f, 0.718261f,
+ 8.91601f, 1.52271f, -2.70066f, 8.95431f, -3.56257f,
+ 1.35991f, 9.05008f, 1.67594f, -3.16992f, 9.08839f,
+ -3.16035f, 2.03028f, 9.07881f, 1.64721f, -3.04542f,
+ 8.91601f, -3.11246f, 2.52828f, 8.88728f, 2.07817f,
+ -1.99198f, 9.1267f, -2.806f, 0.162806f, 9.1267f,
+ 2.806f, -2.07817f, 9.14585f, -2.31759f, 2.16436f,
+ 8.8777f, 2.19309f, -1.88663f, 9.88326f, -2.5187f,
+ 1.94409f, 9.1267f, 2.46124f, -2.806f, 7.64229f,
+ -6.0717f, 2.9305f, 8.07325f, 5.64074f, -2.63362f,
+ 4.29999f, -7.9679f, 0.622492f, 4.71179f, 7.74764f,
+ -3.41892f, 4.42448f, -8.99262f, 1.13964f, 3.98395f,
+ 8.47547f, -1.9824f, -0.699107f, -9.46189f, -0.794875f,
+ -0.593762f, 9.24162f, -2.74854f, 1.88663f, -8.8777f,
+ -0.153229f, 0.861913f, 8.98304f, -2.48039f, -1.52271f,
+ -9.32781f, -3.39977f, 0.0574608f, 8.99262f, -5.88974f,
+ -0.746991f, -3.93607f, -8.01579f, -1.17795f, 8.41801f,
+ -4.17549f, -2.30801f, -2.61447f, -9.44273f, -2.3942f,
+ 7.46991f, -5.01825f, -1.0343f, 1.89621f, -8.8777f,
+ -0.890643f, 8.65743f, -4.31914f, -2.16436f, 1.49398f,
+ -9.69173f, -1.37906f, 9.05008f, -2.43251f, -1.87705f,
+ 0.402226f, -8.95431f, -2.01113f, 8.72447f, -3.54342f,
+ -0.344765f, -2.95923f, -8.42759f, -0.92895f, 8.99262f,
+ -2.34632f, -0.392649f, -6.70376f, -6.55054f, -0.919373f,
+ 8.80109f, -2.35589f, -0.0766145f, -8.8777f, -5.89931f,
+ 0.890643f, 9.7875f, 2.24097f, -0.536301f, -8.08282f,
+ -4.88417f, -0.191536f, 9.21289f, 1.16837f, -0.440533f,
+ -7.93917f, -4.81713f, -0.890643f, 9.08839f, 1.75256f,
+ -1.20668f, -9.414f, -2.57616f, -0.708684f, 9.50977f,
+ 1.40779f, -1.14922f, -9.8258f, -1.24498f, -0.584185f,
+ 9.63427f, 0.727837f, -0.181959f, -9.25119f, -2.31759f,
+ -0.0574608f, 9.64384f, -0.612916f, 1.21625f, -9.50977f,
+ -1.16837f, 0.756568f, 9.45231f, -0.316035f, 1.21625f,
+ -10.5441f, -0.45011f, 1.5706f, 9.7875f, -1.22583f,
+ 9.07881f, 0.0766145f, -2.34632f, 9.26077f, 0.316035f,
+ 4.28083f, 8.72447f, 0.584185f, -3.27527f, 8.39886f,
+ 0.47884f, 3.98395f, 9.26077f, 2.35589f, -2.98796f,
+ 9.52892f, -1.61848f, 3.73495f, 8.91601f, 2.98796f,
+ -3.36146f, 9.7875f, -2.31759f, 3.60088f, 8.86812f,
+ 3.32315f, -3.62961f, 9.76834f, -2.46124f, 2.72939f,
+ 2.31759f, 10.2089f, -2.3942f, 0.995988f, -8.68616f,
+ 5.5737f, 1.13006f, 9.04051f, -2.09732f, 1.26414f,
+ -8.51378f, 4.40533f, 0.852336f, 9.91199f, -2.07817f,
+ 0.622492f, -9.18416f, 4.29999f, 0.229843f, 10.0269f,
+ -1.08218f, 0.220267f, -9.40442f, 4.40533f, 0.0766145f,
+ 9.54808f, -1.89621f, 0.967257f, -9.05966f, 3.92649f,
+ 0.335188f, 9.62469f, -0.497994f, 0.430956f, -9.71088f,
+ 4.02226f, 0.718261f, 9.63427f, 1.59933f, 0.383072f,
+ -8.88728f, 3.24654f, 0.42138f, 8.71489f, 2.55701f,
+ 0.68953f, -9.64384f, 1.67594f, 1.0726f, -7.0198f,
+ 7.20176f, 0.641646f, -9.17458f, 4.18506f, -0.402226f,
+ -2.46124f, 8.78193f, -0.0383072f, -8.31267f, 4.03184f,
+ 0.23942f, 2.27928f, 10.4675f, -0.517148f, -9.47146f,
+ 4.14676f, -1.37906f, 9.59596f, -4.07972f, 3.45723f,
+ -9.663f, 1.71425f, -0.134075f, 6.95276f, -5.80354f,
+ 0.268151f, -5.38217f, 7.03895f, 0.00957681f, 5.20978f,
+ -7.75721f, -0.047884f, -2.83473f, 8.53294f, -0.306458f,
+ 1.64721f, -8.64786f, 0.766145f, 0.162806f, 8.84897f,
+ -0.191536f, -2.58574f, -9.19373f, 0.0f, 4.05099f,
+ 8.52336f, -0.0383072f, -3.10289f, -9.17458f, 0.45011f,
+ 4.11803f, 9.19373f, 0.0957681f, -2.47082f, -9.61511f,
+ 0.804452f, 3.98395f, 8.52336f, 0.114922f, 4.00311f,
+ -8.76278f, 0.699107f, 4.53941f, 8.28394f, -0.0383072f,
+ 7.95833f, -6.57927f, -0.124498f, 3.52426f, 10.1035f,
+ -0.229843f, 6.68461f, -6.2345f, -0.153229f, 3.04542f,
+ 9.59596f, -0.344765f, 7.47949f, -7.29753f, 0.114922f,
+ 3.90734f, 9.03093f, -0.383072f, 7.57525f, -7.20176f,
+ -0.172383f, 3.70622f, 9.8258f, -0.335188f, 7.21134f,
+ -6.7325f, -0.172383f, 2.71024f, 10.2855f, -0.114922f,
+ 6.608f, -7.41245f, -0.201113f, 1.87705f, 9.39485f,
+ 1.37906f, -0.0670376f, -9.47146f, 1.1971f, 1.8579f,
+ 9.49062f, 0.842759f, -1.63763f, -8.95431f, 0.679953f,
+ 2.8922f, 9.1267f, 1.43652f, -1.58017f, -9.01178f,
+ 0.890643f, 3.66792f, 9.22246f, 0.746991f, -1.18752f,
+ -9.04051f, 2.12605f, 2.72939f, 9.52892f, 3.79242f,
+ 1.48441f, -9.04051f, 4.57771f, -0.785298f, 9.61511f,
+ 4.61602f, 1.21625f, -8.4659f, 4.94163f, -0.574608f,
+ 8.4659f, 4.67348f, 1.48441f, -8.23605f, 4.86502f,
+ -0.852336f, 9.24162f, 5.12359f, 0.92895f, -9.03093f,
+ 5.84185f, -0.430956f, 8.92558f, 5.38217f, 0.440533f,
+ -8.37971f, 6.72292f, -0.220267f, 8.02536f, 6.608f,
+ 1.6089f, -6.30154f, 6.33985f, 0.277727f, 6.58884f,
+ 9.85453f, 1.39821f, 0.153229f, 10.0844f, -1.46525f,
+ 0.45011f, 9.68215f, 1.90578f, -0.0766145f, 9.98861f,
+ -1.96325f, 0.536301f, 9.90242f, 2.20267f, 0.143652f,
+ 9.94073f, -2.20267f, 0.191536f, 9.46189f, 1.95367f,
+ 0.0957681f, 9.74919f, -2.06859f, 0.296881f, 9.30866f,
+ 1.64721f, 0.153229f, 9.84496f, -1.92494f, 0.574608f,
+ 7.38372f, 0.488417f, 6.76123f, 8.83939f, -1.37906f,
+ -3.11246f, 9.2895f, 0.153229f, -0.976834f, 9.86411f,
+ -0.0574608f, -0.957681f, 9.26077f, 0.833182f, 2.07817f,
+ 9.26077f, -0.938527f, -0.957681f, 10.0269f, -0.354342f,
+ 2.43251f, 9.84496f, 0.153229f, -0.957681f, 0.986411f,
+ -8.74362f, 1.34075f, 2.09732f, 9.165f, -1.84832f,
+ -1.25456f, -10.228f, 2.19309f, 0.42138f, 9.73004f,
+ -1.23541f, -1.49398f, -10.1706f, 0.172383f, -1.22583f,
+ 10.2089f, -0.593762f, -2.2314f, -9.663f, -0.526724f,
+ -1.6089f, 9.65342f, 0.593762f, -2.38462f, -9.165f,
+ -1.4461f, -2.46124f, 9.42358f, 0.430956f, -2.38462f,
+ -9.73004f, 0.0383072f, -2.31759f, 9.57681f, -0.47884f,
+ -2.44209f, -9.5385f, -0.746991f, -2.32716f, 9.58638f,
+ 0.612916f, -2.34632f, -10.1418f, -1.0726f, -1.92494f,
+ 9.90242f, 0.890643f, -2.84431f, 9.38527f, -2.38462f,
+ -1.69509f, -9.50977f, 2.73897f, -3.88818f, 7.9296f,
+ -2.40378f, -1.5706f, -8.4659f, 2.62405f, -8.91601f,
+ -2.98796f, 0.497994f, -8.97347f, 2.79643f, 0.373495f,
+ -10.3717f, 1.02472f, -0.105345f, -10.0461f, -1.02472f,
+ 0.679953f, -4.89375f, 8.17859f, 0.0766145f, -6.12916f,
+ -7.61356f, 0.172383f, -6.4835f, 7.5561f, -0.363919f,
+ -6.09085f, -7.46991f, 0.699107f, -6.19619f, 7.62314f,
+ -0.248997f, -5.78439f, -7.52737f, 1.55144f, -6.33985f,
+ 7.50822f, -0.45011f, -5.6982f, -7.48906f, 1.48441f,
+ -6.36858f, 7.46991f, -0.373495f, -5.72693f, -7.44118f,
+ 1.63763f, -6.33027f, 7.8434f, -0.316035f, -6.54096f,
+ -7.57525f, 1.37906f, -6.69419f, 7.52737f, -0.258574f,
+ -6.41646f, -7.37414f, 1.21625f, -6.62715f, 7.61356f,
+ -0.392649f, -6.24408f, -7.48906f, 1.23541f, -6.18662f,
+ 7.60398f, -0.201113f, -5.9472f, -7.45076f, 1.39821f,
+ -6.14831f, 7.86256f, -0.584185f, -6.26323f, -7.50822f,
+ 1.6089f, -5.26724f, 8.74362f, -0.153229f, -4.57771f,
+ -8.41801f, 0.6608f, -3.56257f, 8.82024f, 0.114922f,
+ -2.86347f, -8.82982f, 0.948104f, -2.53785f, 9.27035f,
+ 0.23942f, -2.33674f, -9.29908f, 1.02472f, -2.12605f,
+ 9.67257f, 0.354342f, -2.1452f, -9.45231f, 0.335188f,
+ -1.71425f, 9.36612f, 0.287304f, -1.41737f, -9.27035f,
+ -0.229843f, -2.65278f, 8.94474f, -0.306458f, -0.737414f,
+ -9.414f, 0.172383f, -8.72447f, 5.46836f, 0.325611f,
+ -10.2663f, -1.80044f, -0.143652f, -9.35654f, -0.794875f,
+ -0.756568f, -10.1801f, 1.0343f, 1.20668f, -9.54808f,
+ -0.986411f, -0.766145f, -9.165f, 0.890643f, 1.13964f,
+ -8.92558f, -0.555455f, -1.22583f, -9.68215f, 0.976834f,
+ 0.344765f, -9.14585f, 4.05099f, -1.31202f, -9.57681f,
+ 0.68953f, 1.51314f, -9.54808f, 0.0957681f, 1.45567f,
+ -9.18416f, -0.229843f, -0.6608f, -9.71088f, 0.047884f,
+ 1.35033f, -9.87369f, 0.0383072f, -0.909797f, -8.57124f,
+ 1.1971f, 3.86903f, -9.76834f, -1.13964f, -2.2697f,
+ -9.38527f, 0.890643f, 2.74854f, -9.38527f, -1.20668f,
+ -2.3942f, -8.74362f, 1.4461f, 3.45723f, -8.99262f,
+ -1.72383f, -2.56658f, -9.48104f, 1.13006f, 2.98796f,
+ -8.80109f, -1.76213f, -2.52828f, -9.69173f, 1.15879f,
+ 2.3942f, -8.98304f, -1.68552f, -1.71425f, -8.93516f,
+ 1.25456f, 3.26569f, -9.61511f, -1.38864f, -2.46124f,
+ -9.37569f, 1.4461f, 3.40934f, -8.83939f, -2.1069f,
+ -2.42293f, -9.165f, 1.61848f, 2.9305f, -9.165f,
+ -2.04944f, -2.50912f, -9.31823f, 0.823605f, 0.0f,
+ -9.48104f, -0.909797f, 0.497994f, -9.30866f, 1.0343f,
+ -0.775721f, -9.01178f, -1.15879f, 0.814029f, -9.25119f,
+ 0.948104f, -0.00957681f, -8.80109f, -1.16837f, 0.737414f,
+ -9.62469f, 1.39821f, -0.248997f, -9.39485f, -1.45567f,
+ 0.957681f, -9.57681f, 1.79086f, -0.296881f, -9.50019f,
+ -1.81002f, 0.842759f, -10.0652f, 1.45567f, -0.248997f,
+ -9.05966f, -1.61848f, 0.871489f, -9.69173f, 1.56102f,
+ -0.459687f, -8.91601f, -1.77171f, 0.890643f, -9.48104f,
+ -0.47884f, -0.497994f, -9.48104f, 0.296881f, 0.632069f,
+ -10.094f, 0.191536f, -0.248997f, -10.4387f, -0.0670376f,
+ 0.6608f, -8.08282f, 4.95121f, -1.31202f, -8.17859f,
+ -4.70221f, 1.80044f, -7.9296f, 5.04698f, -0.536301f,
+ -8.38928f, -4.80756f, 0.68953f, -8.10198f, 5.23851f,
+ -0.507571f, -7.97748f, -5.17148f, 1.21625f, -8.37013f,
+ 5.22894f, -0.497994f, -8.01579f, -5.23851f, 0.976834f,
+ -8.20732f, 5.20978f, -0.335188f, -7.99663f, -5.19063f,
+ 0.995988f, -8.26478f, 5.02782f, -0.0957681f, -8.0924f,
+ -5.0374f, 0.948104f, -8.36055f, 5.02782f, -0.268151f,
+ -8.02536f, -5.09486f, 0.995988f, -8.28394f, 5.01825f,
+ -0.191536f, -8.20732f, -5.06613f, 0.861913f, -8.37971f,
+ 5.06613f, -0.325611f, -8.20732f, -5.00867f, 0.92895f,
+ -8.3414f, 5.04698f, -0.124498f, -8.13071f, -5.14275f,
+ 0.852336f, -8.29351f, 5.07571f, -0.0766145f, -8.07325f,
+ -5.10444f, 0.976834f, -8.47547f, 4.77883f, -0.392649f,
+ -8.13071f, -4.86502f, 1.05345f, -8.60955f, 2.71981f,
+ 2.79643f, -9.25119f, 1.31202f, -0.306458f, -9.14585f,
+ 1.02472f, 1.51314f, -8.64786f, -1.33118f, -1.13964f,
+ -9.35654f, 1.01514f, 2.31759f, -8.72447f, -1.49398f,
+ -1.72383f, -9.73004f, 1.58017f, 2.7677f, -9.73004f,
+ -1.84832f, -1.93451f, -9.15543f, 1.33118f, 2.20267f,
+ -8.93516f, -1.64721f, -0.995988f, -9.45231f, 0.727837f,
+ 1.81959f, -9.51935f, -0.909797f, -2.78685f, -9.93115f,
+ 0.191536f, 0.890643f, -9.84496f, -0.23942f, -0.976834f,
+ -9.61511f, -0.21069f, 0.517148f, -8.80109f, -0.153229f,
+ -0.430956f, -9.50019f, 0.373495f, 0.948104f, -9.27035f,
+ -0.555455f, -0.344765f, -9.57681f, 0.172383f, 0.881066f,
+ -9.43316f, -0.335188f, -0.756568f, -9.50977f, -0.0191536f,
+ 0.497994f, -9.42358f, -0.181959f, -0.737414f, -9.92157f,
+ 0.306458f, 0.545878f, -10.0173f, -0.248997f, -0.134075f,
+ -9.79707f, 0.0287304f, 0.536301f, -9.71088f, -0.162806f,
+ -0.181959f, -9.60554f, -0.047884f, 0.804452f, -9.39485f,
+ -0.181959f, -0.593762f, -9.64384f, -0.047884f, 0.612916f,
+ -9.58638f, -0.201113f, -0.363919f, -9.56723f, 0.248997f,
+ 0.411803f, -10.1706f, -0.316035f, -0.526724f, -9.63427f,
+ 0.459687f, 1.09176f, -9.71088f, -0.603339f, -0.23942f,
+ -9.62469f, -0.0383072f, 0.68953f, -9.50019f, -0.0861913f,
+ -1.13006f, -9.80665f, -0.134075f, 0.335188f, -9.40442f,
+ -0.114922f, -0.354342f, -9.34696f, 0.153229f, 1.54187f,
+ -9.10754f, -0.526724f, -1.00556f, -9.7875f, 0.0287304f,
+ 0.775721f, -9.58638f, -0.172383f, -0.641646f, -9.60554f,
+ 0.258574f, 0.919373f, -9.31823f, -0.402226f, -0.603339f,
+ -9.5385f, -0.0766145f, 0.92895f, -9.09797f, -0.220267f,
+ -0.354342f, -9.61511f, -0.335188f, 0.316035f, -9.27993f,
+ 0.0766145f, -0.47884f, -9.40442f, 0.23942f, 0.6608f,
+ -9.40442f, -0.335188f, -0.603339f, -9.85453f, -0.0766145f,
+ 0.459687f, -9.54808f, -0.0670376f, -0.287304f, -9.63427f,
+ -0.344765f, 0.296881f, -9.32781f, 0.0574608f, -0.220267f,
+ -9.71088f, 0.181959f, 0.354342f, -9.95988f, -0.248997f,
+ 0.201113f, -9.8258f, -0.0383072f, 0.833182f, -9.83538f,
+ -0.047884f, -0.670376f, -9.44273f, 0.0670376f, 0.6608f,
+ -8.90643f, -0.392649f, -0.354342f, -9.54808f, 0.0957681f,
+ 0.90022f, -9.05008f, -0.411803f, -0.335188f, -9.52892f,
+ 0.201113f, 1.12049f, -9.23204f, -0.459687f, -0.842759f,
+ -9.61511f, -0.162806f, 0.248997f, -9.87369f, 0.124498f,
+ -1.12049f, -9.70131f, -0.0383072f, 0.670376f, -9.50977f,
+ -0.162806f, -0.890643f, -9.15543f, 0.488417f, 1.51314f,
+ -8.94474f, -0.852336f, -0.90022f, -9.60554f, -0.23942f,
+ 0.622492f, -9.35654f, 0.0f, -0.948104f, -9.64384f,
+ -0.191536f, 1.21625f, -9.2895f, -0.0766145f, -0.785298f,
+ -9.55765f, -0.306458f, 0.555455f, -9.73004f, 0.172383f,
+ -0.603339f, -9.663f, -0.306458f, 0.383072f, -9.63427f,
+ 0.172383f, -0.354342f, -9.70131f, -0.373495f, 0.68953f,
+ -9.69173f, 0.181959f, -1.0343f, -9.47146f, -0.526724f,
+ 0.823605f, -9.23204f, 0.220267f, -1.36948f, -9.36612f,
+ -0.0670376f, 1.05345f, -8.91601f, -0.316035f, -0.814029f,
+ -9.93115f, -0.268151f, 1.58017f, -10.0748f, 0.143652f,
+ -1.26414f, -9.87369f, 0.047884f, 2.09732f, -9.39485f,
+ -0.344765f, -1.48441f, -9.48104f, 0.967257f, 0.699107f,
+ -9.34696f, -1.15879f, -0.105345f, -9.414f, 0.852336f,
+ 0.756568f, -9.62469f, -1.0343f, -0.114922f, -9.80665f,
+ 0.814029f, 0.737414f, -9.23204f, -1.0726f, -0.23942f,
+ -9.47146f, 0.890643f, 0.392649f, -9.24162f, -1.08218f,
+ -0.229843f, -9.42358f, 0.775721f, 0.325611f, -9.21289f,
+ -0.986411f, -0.201113f, -9.52892f, 1.79086f, 2.04944f,
+ -9.32781f, -2.15478f, -1.39821f, -8.86812f, 2.07817f,
+ 2.2697f, -8.91601f, -2.24097f, -1.7334f, -9.34696f,
+ 1.68552f, 2.29843f, -8.78193f, -2.19309f, -1.58017f,
+ -9.62469f, 1.7334f, 2.35589f, -9.165f, -2.18351f,
+ -1.63763f, -9.99819f, 2.28886f, 2.27928f, -10.0365f,
+ -2.36547f, -1.69509f, -10.726f, -0.488417f, -0.363919f,
+ -9.25119f, 0.976834f, -3.03585f, -9.31823f, 1.41737f,
+ 2.09732f, -8.8777f, -1.76213f, 0.651223f, -9.71088f,
+ 1.00556f, 2.28886f, -9.36612f, -1.13006f, -1.53229f,
+ -9.87369f, 0.814029f, 1.46525f, -9.92157f, -0.919373f,
+ -0.957681f, -9.35654f, 0.0191536f, 1.09176f, -9.9503f,
+ -0.0574608f, -1.0726f, -9.50977f, -0.181959f, 0.603339f,
+ -8.90643f, -0.172383f, -0.0766145f, -9.85453f, -0.287304f,
+ 0.833182f, -9.76834f, 0.181959f, -0.402226f, -9.50977f,
+ -0.0957681f, 0.287304f, -9.7875f, 0.0191536f, -0.47884f,
+ -9.58638f, 0.047884f, 0.344765f, -9.44273f, -0.181959f,
+ -0.0861913f, -9.57681f, 0.0287304f, 0.555455f, -9.42358f,
+ -0.220267f, 0.0f, -9.73004f, -0.229843f, 0.21069f,
+ -9.51935f, 0.0670376f, -0.21069f, -10.0173f, -0.00957681f,
+ 0.105345f, -9.68215f, -0.0670376f, -0.124498f, -9.50977f,
+ 0.114922f, 0.287304f, -9.42358f, -0.229843f, 0.0957681f,
+ -9.57681f, -0.181959f, 0.181959f, -9.32781f, -0.047884f,
+ 0.105345f, -10.0078f, -0.258574f, -2.19309f, -9.70131f,
+ 0.248997f, 1.64721f, -9.55765f, -0.612916f, 0.105345f,
+ -8.76278f, 0.191536f, 0.919373f, -9.414f, -0.0383072f,
+ -0.641646f, -9.74919f, 0.0670376f, 0.814029f, -9.80665f,
+ -0.134075f, -0.804452f, -9.44273f, 0.0957681f, 1.01514f,
+ -9.71088f, 0.220267f, -0.584185f, -9.32781f, -0.248997f,
+ 0.957681f, -9.76834f, 0.0766145f, -0.440533f, -9.414f,
+ -0.21069f, 0.708684f, -9.73004f, 0.0574608f, -0.593762f,
+ -9.27035f, -0.172383f, 0.756568f, -9.663f, 0.287304f,
+ 0.172383f, -9.10754f, -0.507571f, 0.718261f, -9.49062f,
+ 0.229843f, 0.0574608f, -9.50977f, -0.402226f, 0.162806f,
+ -10.1418f, -0.0670376f, -0.411803f, -9.32781f, -0.0383072f,
+ 0.804452f, -9.57681f, 0.229843f, -0.21069f, -9.57681f,
+ -0.296881f, 0.469264f, -9.54808f, 2.03986f, 0.641646f,
+ -10.0269f, -1.00556f, -0.45011f, -8.77236f, 0.402226f,
+ 0.718261f, -9.37569f, -0.047884f, -0.344765f, -9.98861f,
+ -1.48441f, 0.047884f, -9.33739f, 1.33118f, -0.23942f,
+ -9.30866f, -0.68953f, 0.220267f, -10.0556f, 0.708684f,
+ 0.201113f, -7.12514f, 6.70376f, 0.105345f, -6.81869f,
+ -6.33985f, 0.92895f, -8.70532f, 5.46836f, 0.220267f,
+ -8.41801f, -5.36301f, 0.0574608f, -9.84496f, 3.82115f,
+ 0.248997f, -9.9503f, -3.5913f, -0.229843f, -10.3238f,
+ 3.09331f, -0.0574608f, -9.71088f, -2.66235f, 0.6608f,
+ -8.68616f, 1.53229f, 0.641646f, -9.17458f, -1.22583f,
+ 0.507571f, -10.0078f, -1.09176f, -0.622492f, -10.0078f,
+ 1.3216f, -0.497994f, -9.46189f, -1.17795f, 0.0766145f,
+ -9.23204f, 1.01514f, 0.248997f, -9.38527f, -1.94409f,
+ 0.296881f, -9.21289f, 1.79086f, -0.21069f, -9.10754f,
+ -2.12605f, 0.440533f, -9.09797f, 1.82917f, 0.172383f,
+ -9.02135f, -1.54187f, 0.047884f, -9.35654f, 1.54187f,
+ 0.047884f, -8.99262f, -1.66636f, -0.0191536f, -9.29908f,
+ 1.49398f, 0.344765f, -9.663f, -1.65679f, -0.593762f,
+ -9.29908f, 1.58975f, 0.296881f, -9.69173f, -1.1971f,
+ -0.153229f, -9.5385f, 1.16837f, 0.114922f, -9.80665f,
+ -1.22583f, 0.268151f, -9.43316f, 1.08218f, -0.114922f,
+ -9.74919f, -1.27372f, 0.775721f, -9.38527f, 1.11091f,
+ -0.440533f, -9.49062f, -1.20668f, 0.574608f, -9.37569f,
+ 0.995988f, -0.536301f, -9.33739f, -1.06303f, 0.871489f,
+ -9.5385f, 0.948104f, -0.699107f, -9.44273f, -0.976834f,
+ 0.871489f, -9.72046f, 0.890643f, -0.746991f, -9.87369f,
+ -1.33118f, 0.488417f, -9.46189f, 1.13006f, 0.248997f,
+ -8.92558f, -1.0343f, -0.134075f, -9.07881f, 1.04387f,
+ 0.737414f, -8.82982f, -0.814029f, -1.46525f, -9.20331f,
+ 1.06303f, 0.105345f, -9.94073f, -0.957681f, -0.153229f,
+ -9.35654f, 0.948104f, -0.603339f, -9.31823f, 1.34075f,
+ 2.03028f, -8.82024f, -1.76213f, -0.861913f, -8.42759f,
+ -0.440533f, 4.67348f, -8.94474f, 0.201113f, -5.08528f,
+ -7.51779f, -0.948104f, 5.77481f, -8.15944f, 0.833182f,
+ -5.63116f, -9.69173f, -0.948104f, 2.36547f, -10.1801f,
+ 0.679953f, -2.2314f, -9.11712f, 1.72383f, 0.574608f,
+ -8.83939f, -2.03986f, -0.0287304f, -9.31823f, 1.92494f,
+ 0.804452f, -9.79707f, -2.03028f, -0.517148f, -8.3414f,
+ 2.68151f, 1.9824f, -8.24563f, -2.71024f, -2.1069f,
+ -9.15543f, 2.41336f, 2.28886f, -7.49864f, -3.03585f,
+ -3.66792f, -8.59997f, 2.00155f, 2.59531f, -9.07881f,
+ -2.11647f, -2.52828f, -9.64384f, 1.89621f, 2.11647f,
+ -9.36612f, -2.16436f, -1.83875f, -9.01178f, 1.69509f,
+ 2.19309f, -9.17458f, -1.94409f, -1.56102f, -9.27993f,
+ 1.49398f, 2.28886f, -9.51935f, -1.72383f, -2.2697f,
+ -9.10754f, 1.52271f, 2.43251f, -8.84897f, -2.02071f,
+ -2.02071f, -9.08839f, 1.51314f, 2.55701f, -9.11712f,
+ -1.8579f, -2.21224f, -9.09797f, 1.47483f, 2.52828f,
+ -9.13627f, -1.8579f, -2.09732f, -9.06924f, 1.46525f,
+ 2.43251f, -8.92558f, -1.90578f, -2.09732f, -9.19373f,
+ 1.50356f, 2.3942f, -9.21289f, -1.82917f, -2.26013f,
+ -8.5904f, 2.16436f, 2.33674f, -8.51378f, -2.36547f,
+ -1.83875f, -8.25521f, 3.62961f, 2.03028f, -7.91044f,
+ -3.74453f, -1.12049f, -8.61913f, 3.84988f, 1.62806f,
+ -8.83939f, -3.97437f, -1.26414f, -8.23605f, 4.52025f,
+ 2.13563f, -8.83939f, -4.35745f, -1.14922f, -7.4316f,
+ 6.02381f, 2.34632f, -7.33583f, -5.84185f, -1.79086f,
+ -6.63673f, 6.67503f, 2.37505f, -6.44519f, -6.359f,
+ -1.62806f, -6.06212f, 7.51779f, 2.38462f, -6.25365f,
+ -7.23049f, -1.80044f, -5.25767f, 8.64786f, 2.09732f,
+ -4.32872f, -8.68616f, -2.03986f, -4.39575f, 7.97748f,
+ 2.00155f, -3.77326f, -8.42759f, -0.775721f, -4.64475f,
+ 8.32224f, 1.61848f, -4.29999f, -8.60955f, -0.622492f,
+ -4.7501f, 8.5042f, 1.81959f, -4.79798f, -8.4659f,
+ -1.08218f, -4.64475f, 8.37013f, 1.92494f, -4.53941f,
+ -8.5904f, -1.13964f, -4.77883f, 8.73405f, 2.11647f,
+ -3.33273f, -9.414f, -1.37906f, -9.73004f, -0.92895f,
+ 0.603339f, -9.67257f, 0.852336f, -1.11091f, -9.87369f,
+ -0.047884f, 0.153229f, -9.98861f, 0.0670376f, -0.440533f,
+ -9.61511f, 0.651223f, 0.181959f, -9.5385f, -0.785298f,
+ 0.612916f, -9.50019f, 0.335188f, -0.23942f, -8.88728f,
+ -0.536301f, 0.00957681f, -9.95988f, 0.670376f, 0.134075f,
+ -9.29908f, -0.881066f, 0.0861913f, -9.67257f, 0.488417f,
+ 0.220267f, -9.62469f, -0.545878f, 0.306458f, -9.58638f,
+ 0.344765f, 0.306458f, -9.165f, -0.574608f, 0.0287304f,
+ -9.65342f, 0.143652f, 0.287304f, -10.0844f, -0.191536f,
+ 0.440533f, -9.40442f, 0.679953f, 0.21069f, -9.37569f,
+ -0.881066f, 0.402226f, -9.79707f, 1.34075f, 0.785298f,
+ -10.1801f, -1.13964f, -0.220267f, -9.14585f, 2.29843f,
+ 0.794875f, -9.36612f, -2.24097f, -0.316035f, -8.83939f,
+ 3.37104f, 0.727837f, -8.70532f, -3.25611f, 0.0766145f,
+ -8.24563f, 4.42448f, 0.814029f, -8.14029f, -4.27126f,
+ -0.392649f, -7.63272f, 5.38217f, 0.957681f, -7.05811f,
+ -5.5737f, -0.0383072f, -7.57525f, 5.93762f, 1.29287f,
+ -7.02938f, -6.02381f, -0.651223f, -7.46991f, 6.18662f,
+ 1.76213f, -7.35499f, -6.21535f, -1.37906f, -7.35499f,
+ 6.38773f, 1.47483f, -7.40287f, -6.27281f, -0.967257f,
+ -7.02938f, 6.79953f, 1.30245f, -6.95276f, -6.68461f,
+ -0.890643f, -6.42604f, 7.32626f, 1.09176f, -6.4835f,
+ -7.19218f, -0.354342f, -6.41646f, 7.57525f, 0.938527f,
+ -6.11958f, -7.50822f, -0.229843f, -5.88016f, 7.71891f,
+ 0.794875f, -5.17148f, -7.70933f, 0.105345f, -5.74608f,
+ 7.85298f, 0.727837f, -5.09486f, -7.72848f, 0.114922f,
+ -5.9472f, 7.83383f, 0.727837f, -5.91847f, -7.65187f,
+ -0.0287304f, -5.97593f, 7.77637f, 0.718261f, -6.01423f,
+ -7.63272f, 0.191536f, -5.95677f, 7.78594f, 0.526724f,
+ -5.73651f, -7.6806f, 0.507571f, -5.95677f, 7.89129f,
+ 0.459687f, -5.66947f, -7.74764f, 0.517148f, -5.93762f,
+ 7.85298f, 0.430956f, -5.81312f, -7.69018f, 0.459687f,
+ -5.9855f, 7.78594f, 0.469264f, -5.86101f, -7.65187f,
+ 0.517148f, -6.03339f, 7.82425f, 0.411803f, -5.75566f,
+ -7.67102f, 0.526724f, -6.00466f, 7.79552f, 0.402226f,
+ -5.68862f, -7.67102f, 0.42138f, -6.00466f, 7.79552f,
+ 0.497994f, -5.60243f, -7.69975f, 0.201113f, -6.13873f,
+ 7.65187f, 0.42138f, -5.3247f, -7.62314f, 0.172383f,
+ -6.608f, 7.40287f, 0.258574f, -5.77481f, -7.46991f,
+ 0.593762f, -7.18261f, 6.82826f, 0.134075f, -6.75165f,
+ -6.71334f, 0.526724f, -7.88171f, 5.79397f, -0.181959f,
+ -7.19218f, -5.70778f, 1.54187f, -8.4659f, 4.54898f,
+ -0.842759f, -7.90087f, -4.30956f, 1.95367f, -10.5728f,
+ 0.632069f, -1.96325f, -9.84496f, 0.153229f, 1.82917f,
+ -9.27993f, -0.0861913f, -0.92895f, -9.31823f, 0.047884f,
+ 1.46525f, -9.93115f, 0.325611f, -1.1971f, -10.2759f,
+ -0.114922f, 2.3942f, -9.59596f, -0.0766145f, -0.316035f,
+ -9.97903f, 0.363919f, -1.13964f, -9.04051f, 2.50912f,
+ 1.31202f, -8.67659f, -2.58574f, -0.603339f, -9.83538f,
+ 1.00556f, 1.40779f, -9.09797f, -0.92895f, -0.948104f,
+ -9.165f, 0.699107f, 1.24498f, -8.8777f, -0.517148f,
+ -0.699107f, -9.57681f, 0.507571f, 0.641646f, -9.65342f,
+ -0.229843f, -0.565032f, -9.55765f, 0.287304f, 0.47884f,
+ -8.91601f, -0.201113f, -0.833182f, -9.69173f, 0.134075f,
+ 0.411803f, -9.47146f, 0.162806f, 0.172383f, -9.5385f,
+ -0.21069f, 0.143652f, -9.30866f, 0.497994f, -0.105345f,
+ -9.8258f, 0.507571f, 0.507571f, -9.50977f, -0.248997f,
+ 0.383072f, -9.60554f, 0.641646f, 0.948104f, -9.27993f,
+ -0.220267f, -0.0766145f, -10.0844f, 0.430956f, 0.986411f,
+ -9.52892f, -0.00957681f, 0.517148f, -9.02135f, 0.411803f,
+ 1.43652f, -9.42358f, -0.00957681f, -0.258574f, -9.27035f,
+ 1.54187f, 0.45011f, -9.84496f, -0.995988f, 0.316035f,
+ -9.8258f, -0.402226f, 0.842759f, -8.93516f, 0.967257f,
+ -0.785298f, -8.94474f, 2.63362f, 0.545878f, -9.25119f,
+ -2.78685f, 0.0383072f, -7.71891f, 5.74608f, 0.909797f,
+ -9.34696f, -5.07571f, -0.651223f, -8.63828f, 4.58729f,
+ 0.430956f, -8.69574f, -4.29041f, -1.16837f, -7.39329f,
+ 7.83383f, 0.612916f, -7.62314f, -7.28795f, -0.229843f,
+ -6.17704f, 7.59441f, 1.89621f, -5.58328f, -7.56568f,
+ 0.153229f, -5.53539f, 8.00621f, 0.967257f, -4.83629f,
+ -7.9679f, 0.411803f, -4.95121f, 8.04452f, 0.248997f,
+ -4.46279f, -8.20732f, 0.201113f, -4.99909f, 8.42759f,
+ 0.105345f, -4.89375f, -8.30309f, -0.0287304f, -4.52983f,
+ 8.5042f, 0.306458f, -4.72137f, -8.5042f, 0.0f,
+ -4.36702f, 8.72447f, 0.0f, -4.43406f, -8.68616f,
+ 0.181959f, -4.15633f, 8.8777f, 0.430956f, -3.98395f,
+ -9.02135f, 0.584185f, -4.14676f, 8.68616f, 0.0670376f,
+ -3.9648f, -8.85855f, 1.09176f, -4.18506f, 8.84897f,
+ -0.114922f, -4.35745f, -8.77236f, 0.248997f, -4.22337f,
+ 8.07325f, 0.325611f, -3.67749f, -8.5042f, 1.37906f,
+ -9.15543f, 3.87861f, 2.11647f, -9.27993f, -2.25055f,
+ -1.5706f, -9.31823f, 0.0670376f, 1.47483f, -10.1897f,
+ -0.0766145f, -0.354342f, -9.24162f, -0.162806f, 0.0670376f,
+ -9.81623f, 0.325611f, -1.0343f, -5.88016f, 7.79552f,
+ 1.65679f, -8.16902f, -5.56412f, -2.83473f, -8.38928f,
+ 4.31914f, 1.39821f, -8.81066f, -4.41491f, -1.08218f,
+ -8.82982f, 4.46279f, 0.986411f, -8.61913f, -4.73094f,
+ -0.727837f, -8.06367f, 3.85945f, 1.38864f, -8.16902f,
+ -3.98395f, -0.766145f, -8.73405f, 3.92649f, 1.63763f,
+ -8.71489f, -4.10845f, -1.61848f, -8.91601f, 3.36146f,
+ 2.04944f, -9.08839f, -3.47638f, -1.97282f, -8.82024f,
+ 3.40934f, 2.29843f, -8.83939f, -3.66792f, -2.24097f,
+ -8.88728f, 3.553f, 2.17394f, -8.84897f, -3.78284f,
+ -2.21224f, -8.73405f, 4.01268f, 2.21224f, -8.74362f,
+ -4.22337f, -2.07817f, -8.63828f, 3.90734f, 2.20267f,
+ -8.97347f, -3.77326f, -1.87705f, -8.39886f, 4.48195f,
+ 2.08774f, -9.06924f, -4.30956f, -1.71425f, -7.44118f,
+ 6.41646f, 1.83875f, -7.72848f, -6.76123f, -1.05345f,
+ -6.08127f, 7.51779f, 1.35991f, -4.92248f, -7.63272f,
+ 0.0766145f, -6.33027f, 7.44118f, 1.49398f, -6.03339f,
+ -7.42203f, -0.430956f, -6.13873f, 7.53695f, 1.42694f,
+ -6.27281f, -7.45076f, -0.90022f, -6.17704f, 7.54652f,
+ 1.37906f, -6.14831f, -7.51779f, -0.42138f, -6.06212f,
+ 7.56568f, 1.47483f, -6.2345f, -7.46033f, -0.316035f,
+ -6.02381f, 7.67102f, 1.49398f, -6.22492f, -7.50822f,
+ -0.497994f, -5.67905f, 7.85298f, 1.71425f, -6.03339f,
+ -7.57525f, -1.05345f, -5.06613f, 8.05409f, 1.83875f,
+ -4.82671f, -7.97748f, -0.565032f, -4.54898f, 8.23605f,
+ 1.99198f, -4.42448f, -8.42759f, -1.06303f, -4.24253f,
+ 8.7532f, 2.17394f, -4.40533f, -8.81066f, -2.05901f,
+ -3.44765f, 9.10754f, 1.92494f, -3.01669f, -9.39485f,
+ -0.68953f, -3.055f, 8.68616f, 2.11647f, -3.4285f,
+ -8.73405f, -1.3216f, -2.72939f, 8.88728f, 2.11647f,
+ -2.61447f, -9.02135f, -1.21625f, -2.55701f, 9.38527f,
+ 2.30801f, -2.15478f, -9.663f, -2.33674f, -2.48039f,
+ 9.23204f, 2.2314f, -1.53229f, -9.71088f, -1.13964f,
+ -3.66792f, 8.72447f, 2.24097f, -2.29843f, -8.88728f,
+ -2.31759f, -8.54251f, 3.89776f, 1.75256f, -9.05966f,
+ -2.90177f, -2.06859f, -9.29908f, 2.04944f, 1.6089f,
+ -9.86411f, -1.71425f, -1.16837f, -10.2855f, 1.29287f,
+ 0.766145f, -10.1993f, -1.1971f, -0.373495f, -9.89284f,
+ 1.1971f, 0.995988f, -9.14585f, -1.48441f, -0.201113f,
+ -9.43316f, 0.306458f, 1.45567f, -9.19373f, -0.6608f,
+ -0.727837f, -9.15543f, -0.0287304f, 0.047884f, -9.40442f,
+ 0.0287304f, 0.392649f, -9.9503f, -0.948104f, 0.0287304f,
+ -10.1323f, 1.06303f, -0.47884f, -10.0078f, -0.45011f,
+ 0.23942f, -9.52892f, 0.287304f, -0.191536f, -9.45231f,
+ -0.545878f, 0.42138f, -9.52892f, 0.354342f, -0.584185f,
+ -9.86411f, -0.258574f, 0.699107f, -9.44273f, 0.0f,
+ -0.42138f, -8.4659f, 3.95522f, 0.354342f, -8.57124f,
+ -4.1276f, 0.430956f, -8.71489f, 4.04141f, 0.306458f,
+ -8.95431f, -3.9648f, -0.603339f, -8.89685f, 3.58173f,
+ 0.354342f, -8.52336f, -3.85945f, 0.258574f, -9.35654f,
+ 3.54342f, -0.785298f, -9.02135f, -3.69665f, 0.92895f,
+ -8.76278f, 2.84431f, -1.17795f, -8.56167f, -2.806f,
+ 2.07817f, -8.89685f, 3.13162f, -1.49398f, -8.5042f,
+ -3.16035f, 2.03028f, -9.09797f, 4.00311f, -0.995988f,
+ -9.71088f, -3.79242f, 2.70066f, -9.04051f, 3.58173f,
+ -1.01514f, -8.04452f, -3.64876f, 1.81002f, -7.86256f,
+ 4.94163f, -0.201113f, -7.46991f, -5.02782f, 1.81959f,
+ -7.41245f, 6.46434f, -0.47884f, -7.44118f, -6.31112f,
+ 0.976834f, -6.57927f, 6.68461f, -0.114922f, -6.36858f,
+ -6.40688f, 2.35589f, -6.02381f, 7.31668f, -0.469264f,
+ -5.43005f, -7.24007f, 2.43251f, -6.87615f, 7.48906f,
+ -0.536301f, -7.03895f, -7.15387f, 0.90022f, -5.9855f,
+ 7.72848f, -0.201113f, -5.78439f, -7.47949f, 1.13964f,
+ -6.06212f, 7.9296f, -0.268151f, -5.25767f, -7.76679f,
+ 1.63763f, -5.70778f, 8.29351f, -0.162806f, -4.72137f,
+ -8.14029f, 1.20668f, -5.29597f, 8.42759f, 0.143652f,
+ -4.75967f, -8.42759f, 0.603339f, -5.11401f, 8.44674f,
+ 0.565032f, -4.85544f, -8.43717f, -0.00957681f, -5.43963f,
+ 8.23605f, 0.919373f, -5.1619f, -8.05409f, -0.325611f,
+ -5.60243f, 8.0924f, 0.718261f, -5.48751f, -7.86256f,
+ -0.047884f, -5.84185f, 7.98706f, 1.11091f, -5.58328f,
+ -7.91044f, 0.162806f, -5.79397f, 7.8434f, 1.16837f,
+ -5.47793f, -7.69975f, -0.392649f, -5.78439f, 7.77637f,
+ 1.36948f, -5.63116f, -7.61356f, -0.651223f, -5.95677f,
+ 7.73806f, 1.55144f, -5.19063f, -7.69975f, -0.833182f,
+ -6.22492f, 7.5561f, 1.49398f, -5.46836f, -7.53695f,
+ -0.833182f, -6.87615f, 6.98149f, 1.25456f, -6.53138f,
+ -6.82826f, -0.871489f, -7.40287f, 6.03339f, 0.6608f,
+ -6.67503f, -5.9855f, 0.344765f, -8.00621f, 4.66391f,
+ 0.574608f, -7.71891f, -4.67348f, 0.641646f, -9.48104f,
+ 2.24097f, 1.0343f, -9.77792f, -2.03028f, -0.995988f,
+ -9.76834f, 1.30245f, 1.05345f, -9.72046f, -1.25456f,
+ -0.593762f, -9.47146f, 0.507571f, 1.1971f, -10.4675f,
+ -0.459687f, -0.804452f, -9.67257f, 0.201113f, 1.15879f,
+ -9.60554f, -0.383072f, -1.13006f, -9.42358f, -0.0191536f,
+ 1.08218f, -10.0844f, -0.0574608f, -0.823605f, -7.12514f,
+ 6.99107f, -0.488417f, -7.20176f, -6.6463f, 1.63763f,
+ -7.16345f, 6.86657f, -0.430956f, -7.46991f, -6.47392f,
+ 0.823605f, -7.09641f, 7.1443f, -0.804452f, -6.6463f,
+ -7.00065f, 1.76213f, -7.50822f, 6.62715f, -0.277727f,
+ -5.86101f, -7.06768f, 0.986411f, -7.2688f, 7.23049f,
+ -0.47884f, -7.28795f, -6.97192f, 1.51314f, -7.37414f,
+ 6.62715f, -0.287304f, -7.24964f, -6.39731f, 0.995988f,
+ -7.40287f, 6.56969f, -0.392649f, -7.11557f, -6.44519f,
+ 1.14922f, -7.3071f, 6.8953f, -0.584185f, -6.56011f,
+ -6.91445f, 1.78129f, -7.51779f, 6.78038f, -0.612916f,
+ -5.74608f, -7.02938f, 3.48596f, -7.24007f, 6.33985f,
+ -0.325611f, -6.8953f, -6.03339f, 0.536301f, -8.99262f,
+ 5.01825f, -0.258574f, -9.73961f, -4.56814f, 0.632069f,
+ -9.79707f, 1.66636f, 0.287304f, -9.21289f, -1.87705f,
+ -0.105345f, -9.77792f, 1.10133f, 0.995988f, -8.88728f,
+ -1.47483f, -0.335188f, -9.44273f, 1.24498f, 0.497994f,
+ -9.44273f, -1.34075f, -0.268151f, -9.7875f, 1.0726f,
+ 0.68953f, -9.39485f, -1.27372f, -0.162806f, -8.86812f,
+ 2.24097f, 0.545878f, -8.61913f, -2.47082f, 0.632069f,
+ -9.0022f, 2.02071f, 0.718261f, -9.36612f, -2.12605f,
+ -0.440533f, -9.22246f, 2.29843f, 1.05345f, -9.10754f,
+ -2.46124f, -0.402226f, -9.55765f, 2.32716f, 0.842759f,
+ -9.19373f, -2.50912f, -0.497994f, -8.95431f, 2.62405f,
+ 1.0726f, -9.15543f, -2.73897f, -0.737414f, -9.54808f,
+ 2.34632f, 1.11091f, -9.05966f, -2.55701f, -0.440533f,
+ -10.0556f, -0.746991f, 1.15879f, -8.90643f, 1.48441f,
+ -1.74298f, -8.53294f, -2.1452f, 2.67193f, -9.15543f,
+ 2.84431f, -1.62806f, -8.94474f, 1.81959f, 0.42138f,
+ -9.30866f, -1.75256f, -0.746991f, -9.92157f, 2.12605f,
+ 0.670376f, -9.35654f, -2.24097f, -0.699107f, -9.49062f,
+ 2.12605f, 1.25456f, -8.91601f, -2.36547f, -0.411803f,
+ -8.86812f, 2.40378f, 0.948104f, -8.95431f, -2.47082f,
+ -0.871489f, -8.90643f, 2.65278f, 1.49398f, -8.95431f,
+ -2.88262f, -1.18752f, -8.95431f, 3.15077f, 1.25456f,
+ -9.05966f, -3.34231f, -1.10133f, -9.02135f, 2.9305f,
+ 1.25456f, -9.03093f, -3.26569f, -1.0726f, -9.32781f,
+ 2.87304f, 1.0726f, -8.97347f, -3.26569f, -0.794875f,
+ -9.1267f, 2.94966f, 1.10133f, -9.06924f, -3.20823f,
+ -0.679953f, -9.06924f, 3.01669f, 1.01514f, -8.98304f,
+ -3.21781f, -0.507571f, -9.165f, 3.18908f, 0.555455f,
+ -9.03093f, -3.49553f, -0.354342f, -9.04051f, 3.32315f,
+ 0.344765f, -9.05966f, -3.48596f, -0.181959f, -8.76278f,
+ 3.02627f, 0.708684f, -8.90643f, -3.23696f, -0.248997f,
+ -8.85855f, 2.79643f, 0.641646f, -8.90643f, -2.96881f,
+ -0.306458f, -8.92558f, 2.7677f, 0.833182f, -8.91601f,
+ -3.02627f, -0.430956f, -8.94474f, 2.86347f, 1.00556f,
+ -8.86812f, -3.16035f, -0.565032f, -8.98304f, 2.94966f,
+ 1.1971f, -9.07881f, -3.20823f, -0.766145f, -8.89685f,
+ 2.92093f, 1.12049f, -8.89685f, -3.09331f, -0.842759f,
+ -8.83939f, 2.97839f, 0.967257f, -8.85855f, -3.1795f,
+ -0.919373f, -8.93516f, 3.15077f, 1.42694f, -8.90643f,
+ -3.43807f, -0.948104f, -8.99262f, 3.20823f, 1.33118f,
+ -8.92558f, -3.43807f, -1.0726f, -8.86812f, 3.01669f,
+ 1.52271f, -8.77236f, -3.33273f, -1.08218f, -8.81066f,
+ 3.23696f, 1.50356f, -8.82024f, -3.4668f, -1.13964f,
+ -8.86812f, 3.41892f, 1.40779f, -8.90643f, -3.62961f,
+ -1.06303f, -8.82982f, 3.38061f, 1.55144f, -8.79151f,
+ -3.62003f, -1.08218f, -8.82024f, 3.12204f, 1.67594f,
+ -8.82024f, -3.41892f, -1.15879f, -8.73405f, 3.25611f,
+ 1.75256f, -8.72447f, -3.4285f, -1.28329f, -8.79151f,
+ 3.32315f, 1.96325f, -8.78193f, -3.5913f, -1.55144f,
+ -8.71489f, 3.27527f, 2.02071f, -8.73405f, -3.48596f,
+ -1.67594f, -8.82024f, 3.16035f, 2.02071f, -8.7532f,
+ -3.41892f, -1.62806f, -8.73405f, 3.40934f, 1.90578f,
+ -8.74362f, -3.62003f, -1.38864f, -8.74362f, 3.41892f,
+ 1.93451f, -8.68616f, -3.66792f, -1.45567f, -8.70532f,
+ 3.40934f, 1.99198f, -8.68616f, -3.62961f, -1.78129f,
+ -8.69574f, 3.56257f, 1.93451f, -8.72447f, -3.77326f,
+ -1.45567f, -8.79151f, 3.45723f, 2.13563f, -8.74362f,
+ -3.68707f, -1.54187f, -8.79151f, 3.25611f, 2.03986f,
+ -8.65743f, -3.62003f, -1.6089f, -8.80109f, 3.32315f,
+ 1.92494f, -8.69574f, -3.5913f, -1.88663f, -8.99262f,
+ 3.13162f, 1.91536f, -8.63828f, -3.50511f, -1.42694f,
+ -8.69574f, 3.19865f, 2.22182f, -8.86812f, -3.43807f,
+ -1.80044f, -8.89685f, 2.61447f, 2.05901f, -8.7532f,
+ -2.85389f, -1.39821f, -9.32781f, 2.38462f, 2.08774f,
+ -8.85855f, -2.67193f, -1.5706f, -9.72046f, 1.13006f,
+ 1.86748f, -9.03093f, -0.756568f, -1.0343f, -10.3334f,
+ 0.42138f, -1.53229f, -9.57681f, -0.220267f, 1.26414f,
+ -8.95431f, -0.383072f, 0.201113f, -9.73961f, 0.651223f,
+ -0.565032f, -10.3334f, -0.651223f, -0.0574608f, -9.68215f,
+ 0.536301f, 1.02472f, -9.56723f, -0.823605f, -0.296881f,
+ -9.58638f, 0.890643f, 0.0287304f, -9.50977f, -0.957681f,
+ -0.0957681f, -9.54808f, 0.890643f, 0.0861913f, -9.72046f,
+ -1.04387f, -0.248997f, -9.35654f, 1.00556f, 0.335188f,
+ -9.47146f, -0.948104f, -0.325611f, -9.45231f, 0.90022f,
+ 0.0383072f, -9.70131f, -0.814029f, -0.191536f, -9.51935f,
+ 0.756568f, 0.335188f, -9.69173f, -0.861913f, -0.0383072f,
+ -9.58638f, 0.775721f, 0.306458f, -9.73004f, -0.986411f,
+ 0.00957681f, -9.47146f, 0.833182f, 0.258574f, -9.64384f,
+ -0.766145f, -0.287304f, -9.5385f, 0.699107f, 0.335188f,
+ -9.60554f, -0.842759f, -0.153229f, -9.5385f, 0.785298f,
+ 0.402226f, -9.73961f, -0.890643f, -0.191536f, -9.43316f,
+ 0.785298f, 0.411803f, -9.663f, -0.737414f, -0.392649f,
+ -9.56723f, 0.775721f, 0.335188f, -9.60554f, -0.766145f,
+ -0.287304f, -9.49062f, 0.679953f, 0.344765f, -9.67257f,
+ -0.785298f, -0.201113f, -9.44273f, 0.699107f, 0.316035f,
+ -9.62469f, -0.737414f, -0.220267f, -9.54808f, 0.679953f,
+ 0.440533f, -9.96946f, -0.497994f, -0.392649f, -9.61511f,
+ 0.440533f, 0.363919f, -9.46189f, -0.383072f, -0.383072f,
+ -9.48104f, 0.306458f, 0.565032f, -9.69173f, -1.0726f,
+ -0.766145f, -9.05008f, 0.909797f, 0.775721f, -9.63427f,
+ -0.430956f, -0.737414f, -9.54808f, 0.344765f, 0.718261f,
+ -9.58638f, -0.383072f, -0.229843f, -9.5385f, 0.172383f,
+ 0.632069f, -9.62469f, -0.335188f, -0.545878f, -9.52892f,
+ 0.306458f, 0.622492f, -9.48104f, -0.383072f, -0.392649f,
+ -9.44273f, 0.23942f, 0.68953f, -9.70131f, -0.344765f,
+ -0.354342f, -9.59596f, 0.229843f, 0.565032f, -9.40442f,
+ -0.392649f, -0.497994f, -9.43316f, 0.248997f, 0.555455f,
+ -9.34696f, -0.373495f, -0.220267f, -9.34696f, 0.181959f,
+ 0.392649f, -10.4579f, 0.0670376f, 0.181959f, -9.5385f,
+ -0.229843f, 0.296881f, -9.29908f, -0.0287304f, -0.42138f,
+ -9.45231f, 0.00957681f, 0.565032f, -9.84496f, -0.0766145f,
+ 0.105345f, -9.64384f, -0.0574608f, 0.277727f, -9.67257f,
+ -0.21069f, -0.306458f, -9.29908f, 0.047884f, 0.469264f,
+ -9.64384f, -0.248997f, 0.114922f, -9.52892f, 0.0191536f,
+ 0.201113f, -9.64384f, -0.411803f, -0.0861913f, -9.67257f,
+ 0.248997f, 0.0670376f, -9.73004f, -0.383072f, -0.00957681f,
+ -9.59596f, 0.268151f, -0.047884f, -9.77792f, -0.162806f,
+ 0.0766145f, -9.68215f, 0.00957681f, 0.153229f, -9.68215f,
+ -0.0957681f, 0.143652f, -9.50977f, -0.0957681f, 0.23942f,
+ -9.60554f, -0.316035f, 0.0f, -9.43316f, 0.124498f,
+ 0.134075f, -9.52892f, -0.47884f, -0.134075f, -9.50019f,
+ 0.316035f, -0.00957681f, -9.88326f, -0.23942f, -0.0670376f,
+ -9.5385f, 0.0861913f, 0.316035f, -9.60554f, -0.0766145f,
+ 0.220267f, -9.62469f, -0.00957681f, -0.172383f, -9.74919f,
+ -0.00957681f, 0.0766145f, -9.43316f, -0.105345f, 0.0957681f,
+ -9.69173f, -0.0670376f, 0.00957681f, -9.51935f, -0.0383072f,
+ -0.0383072f, -9.71088f, 0.0191536f, 0.0766145f, -9.50977f,
+ -0.0957681f, 0.0766145f, -9.56723f, -0.105345f, 0.0861913f,
+ -9.2895f, -0.114922f, 0.153229f, -9.71088f, -0.162806f,
+ 0.0861913f, -9.50019f, 0.0287304f, 0.0861913f, -9.64384f,
+ -0.0191536f, 0.287304f, -9.50977f, -0.134075f, -0.0383072f,
+ -9.50019f, 0.143652f, 0.21069f, -9.44273f, -0.23942f,
+ -0.344765f, -9.64384f, -0.0287304f, 0.172383f, -9.48104f,
+ -0.0574608f, -0.0957681f, -9.69173f, -0.181959f, 0.201113f,
+ -9.48104f, 0.114922f, -0.0574608f, -9.75877f, -0.0670376f,
+ 0.0191536f, -9.55765f, 0.0383072f, 0.172383f, -9.61511f,
+ -0.0574608f, 0.268151f, -9.24162f, -0.0957681f, -0.0574608f,
+ -9.56723f, 0.047884f, 0.325611f, -9.51935f, -0.134075f,
+ -0.459687f, -9.47146f, 0.0f, 0.622492f, -9.49062f,
+ -0.0670376f, -0.488417f, -9.59596f, 0.0f, 0.823605f,
+ -9.48104f, -0.0383072f, -0.574608f, -9.5385f, -0.335188f,
+ 0.641646f, -9.54808f, 0.296881f, -0.536301f, -9.48104f,
+ -0.363919f, 0.641646f, -9.50977f, 0.287304f, -0.45011f,
+ -9.46189f, -0.047884f, 1.13964f, -9.57681f, 0.0f,
+ -0.632069f, -9.57681f, -0.316035f, 0.909797f, -9.63427f,
+ 0.258574f, -0.517148f, -9.64384f, -0.344765f, 0.545878f,
+ -9.59596f, 0.296881f, -0.440533f, -9.54808f, -0.0574608f,
+ 0.746991f, -9.59596f, -0.0383072f, -0.296881f, -9.49062f,
+ 0.00957681f, 0.852336f, -9.46189f, -0.124498f, -0.21069f,
+ -9.57681f, 0.0766145f, 0.641646f, -9.37569f, -0.181959f,
+ -0.42138f, -9.70131f, 0.344765f, 0.737414f, -9.24162f,
+ -0.469264f, -0.794875f, -9.47146f, 0.0f, 0.699107f,
+ -9.76834f, 0.0287304f, -0.746991f, -9.48104f, -0.153229f,
+ 1.33118f, -9.36612f, 0.0957681f, -0.948104f, -9.74919f,
+ -0.201113f, 1.10133f, -9.35654f, 0.181959f, -0.909797f,
+ -9.54808f, 0.0957681f, 0.881066f, -9.73961f, 0.153229f,
+ -1.05345f, -9.49062f, -0.306458f, 1.04387f, -9.51935f,
+ 0.584185f, -0.766145f, -9.93115f, -0.814029f, 0.727837f,
+ -9.75877f, 1.0726f, -0.316035f, -9.72046f, -0.296881f,
+ 0.162806f, -9.47146f, 0.392649f, 0.0766145f, -9.40442f,
+ 0.21069f, 0.287304f, -9.37569f, -0.248997f, 0.536301f,
+ -9.5385f, 0.0861913f, 0.114922f, -9.40442f, -0.0287304f,
+ -0.0383072f, -10.0461f, 0.181959f, -0.00957681f, -9.32781f,
+ -0.181959f, 0.622492f, -9.46189f, 0.296881f, -0.201113f,
+ -9.35654f, -0.201113f, 0.201113f, -9.31823f, -0.402226f,
+ 0.21069f, -9.91199f, 0.517148f, 1.01514f, -9.87369f,
+ 0.047884f, -0.047884f, -9.56723f, 0.248997f, -0.114922f,
+ -9.76834f, -0.335188f, 0.0383072f, -9.02135f, 0.316035f,
+ 0.105345f, -9.5385f, -0.335188f, 0.0287304f, -9.59596f,
+ 0.344765f, 0.670376f, -9.70131f, 0.0287304f, -0.383072f,
+ -10.4579f, 0.402226f, 0.411803f, -10.4291f, -0.45011f,
+ 0.306458f, -9.44273f, 0.545878f, 0.430956f, -9.79707f,
+ 0.507571f, -0.679953f, -9.26077f, -0.469264f, 1.26414f,
+ -9.51935f, 0.775721f, -0.114922f, -9.19373f, -0.718261f,
+ 0.718261f, -9.68215f, 0.881066f, -0.316035f, -9.01178f,
+ -0.890643f, 0.938527f, -9.25119f, 1.04387f, -0.861913f,
+ -8.76278f, -0.881066f, -0.823605f, -9.71088f, 0.354342f,
+ -0.181959f, -9.32781f, -0.248997f, -0.0957681f, -10.4387f,
+ 0.995988f, -0.268151f, -10.2376f, -0.699107f, 0.536301f,
+ -9.98861f, 0.555455f, -0.0574608f, -9.49062f, -0.459687f,
+ 0.823605f, -9.79707f, 0.316035f, 0.268151f, -8.85855f,
+ -0.488417f, -0.574608f, -9.663f, 0.373495f, -0.287304f,
+ -9.42358f, 0.0191536f, -1.65679f, -9.42358f, 1.0726f,
+ 1.80044f, -9.63427f, -0.21069f, -1.66636f, -9.31823f,
+ 0.306458f, 2.83473f, -9.17458f, 0.814029f, -2.98796f,
+ -8.67659f, 0.143652f, 1.7334f, -9.31823f, 1.23541f,
+ -1.15879f, -9.13627f, -1.75256f, 0.785298f, -8.80109f,
+ 2.54743f, -0.0766145f, -9.91199f, -0.134075f, 1.21625f,
+ -9.72046f, 0.488417f, 0.363919f, -9.14585f, -0.277727f,
+ 1.0343f, -9.21289f, 0.718261f, -0.143652f, -9.48104f,
+ -0.296881f, -0.114922f, -9.2895f, 0.565032f, 0.565032f,
+ -10.2663f, 0.459687f, -0.143652f, -9.56723f, -0.105345f,
+ 0.459687f, -10.094f, 0.68953f, -0.306458f, -9.59596f,
+ -0.172383f, 0.957681f, -10.094f, 0.0861913f, -0.220267f,
+ -9.34696f, 0.191536f, 0.392649f, -9.79707f, -0.181959f,
+ -0.488417f, -9.55765f, 0.555455f, 1.0343f, -10.1227f,
+ 0.0191536f, -0.976834f, -9.40442f, 0.354342f, 0.871489f,
+ -9.69173f, 0.593762f, -0.296881f, -9.14585f, -0.517148f,
+ 1.31202f, -9.69173f, 0.861913f, -0.775721f, -9.07881f,
+ -0.68953f, 0.497994f, -9.90242f, 0.919373f, 0.00957681f,
+ -9.43316f, -0.68953f, 0.325611f, -9.79707f, 0.507571f,
+ 0.114922f, -9.40442f, -0.316035f, 0.430956f, -9.8258f,
+ 0.536301f, -0.0191536f, -9.32781f, -0.258574f, 0.258574f,
+ -9.93115f, 0.383072f, 0.143652f, -9.48104f, -0.181959f,
+ 0.6608f, -9.55765f, 0.0861913f, -0.0383072f, -9.37569f,
+ 0.0287304f, 0.430956f, -9.39485f, 0.325611f, 0.0287304f,
+ -9.32781f, -0.0861913f, 0.392649f, -9.50019f, 0.651223f,
+ 0.23942f, -9.40442f, -0.469264f, 0.545878f, -9.75877f,
+ 0.536301f, 0.0574608f, -9.38527f, -0.411803f, 0.47884f,
+ -9.87369f, 0.574608f, 0.0383072f, -9.54808f, -0.402226f,
+ 0.258574f, -9.65342f, 0.325611f, 0.23942f, -9.56723f,
+ -0.220267f, 0.6608f, -9.50977f, 0.134075f, 0.0766145f,
+ -9.38527f, -0.047884f, 0.536301f, -9.70131f, 0.0f,
+ -0.42138f, -9.35654f, 0.181959f, 0.881066f, -9.71088f,
+ 0.181959f, -0.402226f, -9.50019f, -0.00957681f, 0.727837f,
+ -9.49062f, 0.306458f, -0.0766145f, -9.27993f, -0.268151f,
+ 0.766145f, -9.73961f, 0.181959f, -0.517148f, -9.49062f,
+ -0.0287304f, 0.986411f, -9.86411f, 0.0383072f, -0.383072f,
+ -9.47146f, 0.0383072f, 0.986411f, -9.50977f, 0.402226f,
+ -0.383072f, -9.10754f, -0.363919f, 0.823605f, -10.0365f,
+ 0.90022f, -0.497994f, -9.59596f, -0.651223f, 0.833182f,
+ -9.73961f, 0.517148f, -0.0957681f, -9.31823f, -0.440533f,
+ 0.641646f, -9.56723f, 0.0191536f, -0.114922f, -9.33739f,
+ -0.047884f, 0.593762f, -9.67257f, -0.23942f, -0.459687f,
+ -9.51935f, 0.258574f, 0.794875f, -9.39485f, 0.0574608f,
+ -0.172383f, -9.29908f, -0.0574608f, 0.440533f, -10.0078f,
+ 0.134075f, -0.536301f, -9.45231f, -0.0670376f, 0.766145f,
+ -10.0748f, -0.0287304f, -0.584185f, -9.55765f, -0.0766145f,
+ 1.06303f, -9.73961f, 0.392649f, -0.402226f, -9.50019f,
+ -0.316035f, 1.35991f, -9.75877f, 0.229843f, -0.373495f,
+ -9.51935f, -0.248997f, 1.39821f, -10.2855f, 0.191536f,
+ -0.181959f, -10.1514f, -0.124498f, 1.23541f, -10.0461f,
+ 0.105345f, -0.440533f, -9.88326f, 0.0574608f, -0.0191536f,
+ -9.60554f, -0.201113f, 0.0957681f, -9.33739f, 0.047884f,
+ -0.248997f, -9.29908f, -0.23942f, 0.373495f, -9.04051f,
+ -0.0861913f, -0.00957681f, -9.24162f, -0.114922f, 1.78129f,
+ -9.414f, -0.124498f, -1.16837f, -9.68215f, -0.181959f,
+ 1.35033f, -9.60554f, 0.0191536f, -1.4461f, -9.19373f,
+ -0.220267f, 1.84832f, -9.23204f, -0.00957681f, -1.70467f,
+ -9.11712f, -0.181959f, 1.50356f, -8.74362f, -0.143652f,
+ -1.97282f, -8.89685f, 0.143652f, 1.88663f, -8.90643f,
+ -0.373495f, -1.25456f, -8.81066f, -0.124498f, 1.31202f,
+ -8.79151f, -0.134075f, -0.92895f, -8.99262f, -0.536301f,
+ 0.430956f, -9.31823f, 0.373495f, -0.181959f, -10.2855f,
+ -0.153229f, 0.708684f, -10.5536f, 0.229843f, -0.105345f,
+ -10.2855f, -0.220267f, -0.105345f, -9.95988f, 0.296881f,
+ -0.162806f, -9.79707f, -0.0861913f, 0.536301f, -9.39485f,
+ -0.124498f, -0.392649f, -10.2759f, 0.047884f, 1.09176f,
+ -9.61511f, -0.191536f, -0.517148f, -10.0461f, 0.229843f,
+ 1.5706f, -9.56723f, -0.430956f, -0.584185f, -9.5385f,
+ 0.287304f, 0.938527f, -9.49062f, -0.47884f, -0.287304f,
+ -9.56723f, -0.248997f, 0.497994f, -9.50977f, 0.0766145f,
+ -0.957681f, -9.79707f, -0.191536f, 0.296881f, -9.40442f,
+ 0.00957681f, -0.0383072f, -9.61511f, 0.0191536f, 0.268151f,
+ -9.31823f, -0.201113f, -0.344765f, -9.48104f, 0.45011f,
+ 0.555455f, -9.29908f, -0.746991f, 0.0191536f, -9.03093f,
+ 0.248997f, 0.612916f, -8.97347f, -0.459687f, 0.459687f,
+ -9.11712f, -0.277727f, -0.402226f, -9.0022f, 0.191536f,
+ 0.191536f, -10.6207f, -0.0766145f, 0.641646f, -10.1897f,
+ -0.00957681f, 0.344765f, -10.0844f, 0.0574608f, 0.201113f,
+ -10.1131f, -0.124498f, 0.191536f, -9.38527f, -0.153229f,
+ -0.0191536f, -9.43316f, -0.0574608f, -0.134075f, -9.42358f,
+ -0.47884f, 0.172383f, -9.27035f, 0.143652f, 0.21069f,
+ -10.343f, -0.0383072f, -0.373495f, -9.8258f, 0.0861913f,
+ 0.316035f, -10.1706f, -0.181959f, -0.143652f, -9.74919f,
+ 0.114922f, 0.258574f, -9.50977f, -0.430956f, 0.0670376f,
+ -9.29908f, 0.172383f, 0.344765f, -9.86411f, -0.68953f,
+ 0.0191536f, -10.0748f, 0.737414f, 0.440533f, -9.91199f,
+ -0.622492f, -0.430956f, -9.86411f, 0.708684f, 0.335188f,
+ -9.88326f, -0.392649f, 0.153229f, -9.77792f, 0.354342f,
+ -0.191536f, -9.60554f, 0.0670376f, 0.0670376f, -9.31823f,
+ -0.277727f, -0.0957681f, -9.55765f, 0.593762f, 0.153229f,
+ -9.23204f, -0.852336f, -0.201113f, -9.63427f, 0.42138f,
+ 0.507571f, -9.42358f, -0.603339f, -0.641646f, -9.64384f,
+ 0.42138f, 0.718261f, -9.47146f, -0.507571f, -0.995988f,
+ -9.83538f, 0.134075f, 0.603339f, -9.32781f, -0.172383f,
+ -0.861913f, -9.60554f, 0.181959f, 1.05345f, -9.72046f,
+ -0.0574608f, -1.21625f, -9.57681f, -0.00957681f, 1.1971f,
+ -9.69173f, 0.363919f, -1.31202f, -9.29908f, -0.306458f,
+ 1.37906f, -9.33739f, 0.766145f, -1.41737f, -9.05008f,
+ -0.0574608f, 1.09176f, -9.07881f, 0.727837f, -0.861913f,
+ -9.42358f, -0.785298f, 0.632069f, -9.48104f, 1.01514f,
+ 0.047884f, -9.69173f, -1.04387f, -0.124498f, -8.99262f,
+ 1.11091f, 0.325611f, -9.70131f, -0.363919f, -0.325611f,
+ -9.50019f, 0.737414f, 1.31202f, -9.76834f, -0.162806f,
+ -1.10133f, -9.68215f, 0.296881f, 1.04387f, -9.77792f,
+ 0.603339f, -0.0957681f, -9.83538f, -0.47884f, 0.909797f,
+ -10.4387f, 0.0766145f, -0.459687f, -9.9503f, 0.047884f,
+ 1.38864f, -9.60554f, -0.584185f, 0.459687f, -9.75877f,
+ 0.536301f, -0.124498f, -9.74919f, -0.172383f, 0.651223f,
+ -10.4483f, 0.229843f, -0.268151f, -9.50019f, -1.58975f,
+ 0.622492f, -9.64384f, 1.58975f, -0.114922f, -8.96389f,
+ -1.69509f, 1.16837f, -8.72447f, 1.71425f, -1.04387f,
+ -8.91601f, -0.90022f, 1.92494f, -8.84897f, 1.04387f,
+ -0.833182f, -8.86812f, -0.0574608f, 1.17795f, -8.91601f,
+ 0.47884f, -1.47483f, -9.22246f, 1.25456f, 1.76213f,
+ -8.88728f, -1.42694f, -2.36547f, -10.1227f, 2.24097f,
+ 2.09732f, -9.09797f, -2.35589f, -3.11246f, -9.84496f,
+ 2.75812f, 2.1069f, -9.26077f, -2.98796f, -2.33674f,
+ -9.01178f, 0.0766145f, 4.2138f, -8.45632f, 1.02472f,
+ -3.69665f, -8.51378f, -0.344765f, 3.95522f, -8.90643f,
+ 2.00155f, -3.78284f, -9.05966f, -0.497994f, 3.50511f,
+ -9.42358f, 1.86748f, -3.62003f, -9.68215f, -0.488417f,
+ 3.74453f, -9.48104f, 1.69509f, -3.18908f, -9.93115f,
+ -0.871489f, 3.54342f, -9.68215f, 2.03986f, -2.8922f,
+ -9.85453f, -0.861913f, 3.16035f, -9.81623f, 2.08774f,
+ -2.66235f, -9.95988f, -0.852336f, 2.74854f, -9.59596f,
+ 1.83875f, -2.15478f, -10.0652f, -0.622492f, 2.28886f,
+ -9.5385f, 1.46525f, -2.18351f, -9.67257f, -0.632069f,
+ 2.01113f, -9.43316f, 1.3216f, -1.67594f, -9.42358f,
+ -0.679953f, 1.05345f, -9.45231f, 1.5706f, -1.23541f,
+ -9.2895f, -0.459687f, 1.39821f, -9.5385f, 1.46525f,
+ -1.16837f, -9.58638f, -0.316035f, 1.47483f, -9.54808f,
+ 1.20668f, -1.26414f, -9.60554f, -0.411803f, 1.39821f,
+ -9.31823f, 1.14922f, -1.14922f, -9.76834f, -0.354342f,
+ 1.35991f, -9.52892f, 1.11091f, -1.35991f, -9.81623f,
+ 0.0574608f, 1.46525f, -9.663f, 0.833182f, -1.1971f,
+ -9.80665f, 0.21069f, 1.62806f, -9.70131f, 0.641646f,
+ -1.24498f, -9.9503f, 0.497994f, 1.53229f, -9.88326f,
+ 0.325611f, -1.05345f, -9.86411f, 0.565032f, 1.58017f,
+ -9.87369f, 0.220267f, -1.24498f, -9.94073f, 0.268151f,
+ 1.97282f, -9.91199f, 0.584185f, -1.35033f, -9.25119f,
+ 0.306458f, 1.13006f, -9.46189f, 0.383072f, -1.11091f,
+ -8.97347f, -0.0670376f, 1.22583f, -8.98304f, 0.459687f,
+ -0.488417f, -9.30866f, -0.737414f, 1.23541f, -9.13627f,
+ 1.00556f, -0.526724f, -10.6781f, -0.775721f, 0.373495f,
+ -10.5919f, 1.13964f, 0.42138f, -9.54808f, -2.07817f,
+ 0.68953f, -9.26077f, 1.82917f, -0.105345f, -9.03093f,
+ -0.976834f, 0.430956f, -9.47146f, 0.995988f, -0.181959f,
+ -9.86411f, -0.23942f, 0.124498f, -9.73004f, 0.153229f,
+ 0.871489f, -9.97903f, -0.220267f, 0.162806f, -9.59596f,
+ 0.153229f, 0.430956f, -9.8258f, -0.114922f, 0.0957681f,
+ -9.76834f, 0.00957681f, -0.0287304f, -10.1801f, -0.268151f,
+ 0.258574f, -10.0844f, 0.23942f, 0.0766145f, -10.1131f,
+ 0.794875f, 0.0f, -9.86411f, -0.593762f, 0.909797f,
+ -9.29908f, -2.09732f, 1.72383f, -9.17458f, 1.89621f,
+ -1.58975f, -8.91601f, -2.16436f, 1.94409f, -9.1267f,
+ 2.03986f, -1.96325f, -9.30866f, -2.42293f, 2.02071f,
+ -9.43316f, 2.26013f, -1.38864f, -9.8258f, -2.2697f,
+ 1.16837f, -9.44273f, 2.16436f, -1.09176f, -9.14585f,
+ -2.03986f, 1.26414f, -9.01178f, 1.82917f, -1.28329f,
+ -8.89685f, -2.09732f, 1.64721f, -8.95431f, 1.93451f,
+ -1.69509f, -8.8777f, -2.19309f, 1.28329f, -9.03093f,
+ 2.11647f, -1.40779f, -9.31823f, -2.2697f, 1.09176f,
+ -9.11712f, 2.06859f, -1.3216f, -9.2895f, -2.21224f,
+ 1.4461f, -9.165f, 2.00155f, -1.48441f, -8.98304f,
+ -2.20267f, 1.46525f, -8.83939f, 2.00155f, -1.24498f,
+ -9.14585f, -2.26013f, 1.43652f, -9.01178f, 2.1069f,
+ -1.45567f, -9.1267f, -2.29843f, 1.63763f, -9.04051f,
+ 2.12605f, -1.76213f, -9.18416f, -2.27928f, 1.9824f,
+ -9.09797f, 2.07817f, -1.79086f, -9.08839f, -2.00155f,
+ 1.79086f, -9.44273f, 1.87705f, -1.62806f, -9.14585f,
+ -2.31759f, 1.84832f, -8.86812f, 2.06859f, 1.61848f,
+ -9.165f, -2.24097f, 2.05901f, -9.0022f, 2.02071f,
+ -1.7334f, -9.04051f, -2.1452f, 2.04944f, -9.2895f,
+ 2.06859f, -1.70467f, -9.20331f, -2.22182f, 2.06859f,
+ -9.33739f, 2.09732f, -1.76213f, -9.34696f, -2.13563f,
+ 1.99198f, -9.1267f, 1.9824f, -1.84832f, -8.88728f,
+ -1.79086f, 1.55144f, -9.03093f, 1.62806f, -1.61848f,
+ -9.1267f, -1.58975f, 1.47483f, -9.19373f, 1.49398f,
+ -1.47483f, -8.92558f, -1.48441f, 1.76213f, -8.69574f,
+ 1.18752f, -1.76213f, -9.24162f, -1.35991f, 1.49398f,
+ -9.48104f, 1.23541f, -1.61848f, -9.51935f, 1.86748f,
+ 2.00155f, -8.71489f, -1.24498f, -2.11647f, -5.6982f,
+ 8.15944f, 1.27372f, -4.52983f, -7.99663f, -0.775721f,
+ -4.00311f, 8.31267f, 0.632069f, -3.68707f, -8.03494f,
+ 0.344765f, -2.16436f, 7.79552f, 3.7158f, -1.7334f,
+ -7.74764f, -4.22337f, -1.56102f, 8.78193f, 4.39575f,
+ -1.58017f, -8.76278f, -4.5011f, -1.72383f, 9.05008f,
+ 5.25767f, -1.93451f, -9.11712f, -3.9648f, -0.995988f,
+ 7.97748f, 5.34386f, -1.33118f, -7.92002f, -4.03184f,
+ -0.670376f, 9.17458f, 4.3766f, 0.220267f, -9.60554f,
+ -4.13718f, -0.746991f, 7.33583f, 5.34386f, -1.1971f,
+ -7.28795f, -5.14275f, 0.871489f, 7.90087f, 5.80354f,
+ 0.584185f, -8.33182f, -3.04542f, 0.986411f, 7.59441f,
+ 6.49307f, -0.0670376f, -7.85298f, -5.92804f, 2.07817f,
+ 8.83939f, 5.4109f, 0.325611f, -9.59596f, -3.83072f,
+ 0.718261f, 7.38372f, 5.99508f, 0.248997f, -8.29351f,
+ -5.10444f, 1.72383f, 7.83383f, 5.85143f, 2.12605f,
+ -9.15543f, -4.03184f, 2.05901f, 7.37414f, 5.79397f,
+ 2.19309f, -8.49463f, -4.95121f, 2.13563f, 7.91044f,
+ 4.29999f, 2.1452f, -8.76278f, -2.24097f, 1.31202f,
+ 8.59997f, 5.72693f, 0.746991f, -9.55765f, -3.54342f,
+ 1.36948f, 8.5042f, 5.09486f, 1.17795f, -9.62469f,
+ -4.1276f, 1.77171f, 8.69574f, 5.46836f, 1.63763f,
+ -9.40442f, -2.32716f, 1.91536f, 7.75721f, 5.25767f,
+ 2.04944f, -8.81066f, -2.40378f, 0.392649f, 7.73806f,
+ 5.63116f, 1.45567f, -9.24162f, -1.49398f, -0.258574f,
+ 6.82826f, 7.34541f, -0.42138f, -9.07881f, -1.30245f,
+ -0.517148f, 6.97192f, 7.6806f, -0.890643f, -9.58638f,
+ -4.81713f, -0.21069f, 3.13162f, 9.20331f, -0.967257f,
+ -10.0748f, 0.181959f, -0.948104f, -5.9855f, 7.4316f,
+ -1.00556f, -9.5385f, 0.497994f, 0.162806f, -8.47547f,
+ 4.32872f, 0.248997f, -9.165f, -2.27928f, 0.143652f,
+ -8.6287f, 4.47237f, 0.354342f, -9.51935f, 0.986411f,
};
const size_t kAccelerometerVerticalHingeTestDataLength =
- ARRAY_SIZE(kAccelerometerVerticalHingeTestData);
+ ARRAY_SIZE(kAccelerometerVerticalHingeTestData);
const float kAccelerometerVerticalHingeUnstableTestData[] = {
- 8.5904f, -1.36948f, -3.74453f, 8.72447f, 1.1971f, 4.00311f,
- 8.80109f, -3.08373f, 2.27928f, 8.95431f, -1.90578f, -1.10133f,
- 8.93516f, -2.03986f, 0.248997f, 9.05008f, 1.53229f, -0.708684f,
- -8.78193f, 1.43652f, -2.63362f, -8.66701f, 0.220267f, 2.79643f,
- -8.66701f, -2.06859f, 2.42293f, -8.79151f, -2.88262f, -1.16837f,
- 8.74362f, -1.9824f, 3.53384f, 9.04051f, 0.0574608f, -1.36948f,
- 8.78193f, -4.1276f, 2.58574f, 8.8777f, 0.201113f, -1.80044f,
- 8.70532f, -0.296881f, 1.52271f, 9.02135f, -0.871489f, -2.43251f,
- -9.09797f, -1.3216f, -3.60088f, -8.97347f, 2.52828f, 2.6432f,
- -8.82024f, 1.87705f, 0.354342f, -7.93917f, -4.38618f, 0.258574f,
- -8.81066f, 1.91536f, -2.92093f, -8.04452f, -5.4492f, 3.28484f,
- -8.86812f, 2.05901f, 0.890643f, -8.01579f, -5.65989f, -2.20267f,
- -9.0022f, 2.18351f, -2.9305f, -8.80109f, -4.01268f, 3.055f,
- -9.37569f, -1.04387f, 0.277727f, -6.80911f, 2.806f, -6.0717f,
- -8.79151f, -8.79151f, -2.11647f, -8.6287f, -1.53229f, 3.58173f,
- -8.97347f, -0.335188f, 1.26414f, 8.5042f, 1.51314f, -2.20267f,
- -9.19373f, -1.37906f, 1.41737f, -7.67102f, 2.8922f, -5.09486f,
- -8.81066f, 0.986411f, 2.30801f, -8.53294f, 3.26569f, -3.11246f,
- -9.03093f, 1.06303f, 1.39821f, -8.8777f, -4.47237f, -0.632069f,
- -8.74362f, -1.83875f, -0.0957681f, -7.92002f, 1.0343f, -3.84988f,
- -8.92558f, 0.440533f, 1.26414f, -8.71489f, -0.153229f, -3.64876f,
+ 8.5904f, -1.36948f, -3.74453f, 8.72447f, 1.1971f, 4.00311f,
+ 8.80109f, -3.08373f, 2.27928f, 8.95431f, -1.90578f, -1.10133f,
+ 8.93516f, -2.03986f, 0.248997f, 9.05008f, 1.53229f, -0.708684f,
+ -8.78193f, 1.43652f, -2.63362f, -8.66701f, 0.220267f, 2.79643f,
+ -8.66701f, -2.06859f, 2.42293f, -8.79151f, -2.88262f, -1.16837f,
+ 8.74362f, -1.9824f, 3.53384f, 9.04051f, 0.0574608f, -1.36948f,
+ 8.78193f, -4.1276f, 2.58574f, 8.8777f, 0.201113f, -1.80044f,
+ 8.70532f, -0.296881f, 1.52271f, 9.02135f, -0.871489f, -2.43251f,
+ -9.09797f, -1.3216f, -3.60088f, -8.97347f, 2.52828f, 2.6432f,
+ -8.82024f, 1.87705f, 0.354342f, -7.93917f, -4.38618f, 0.258574f,
+ -8.81066f, 1.91536f, -2.92093f, -8.04452f, -5.4492f, 3.28484f,
+ -8.86812f, 2.05901f, 0.890643f, -8.01579f, -5.65989f, -2.20267f,
+ -9.0022f, 2.18351f, -2.9305f, -8.80109f, -4.01268f, 3.055f,
+ -9.37569f, -1.04387f, 0.277727f, -6.80911f, 2.806f, -6.0717f,
+ -8.79151f, -8.79151f, -2.11647f, -8.6287f, -1.53229f, 3.58173f,
+ -8.97347f, -0.335188f, 1.26414f, 8.5042f, 1.51314f, -2.20267f,
+ -9.19373f, -1.37906f, 1.41737f, -7.67102f, 2.8922f, -5.09486f,
+ -8.81066f, 0.986411f, 2.30801f, -8.53294f, 3.26569f, -3.11246f,
+ -9.03093f, 1.06303f, 1.39821f, -8.8777f, -4.47237f, -0.632069f,
+ -8.74362f, -1.83875f, -0.0957681f, -7.92002f, 1.0343f, -3.84988f,
+ -8.92558f, 0.440533f, 1.26414f, -8.71489f, -0.153229f, -3.64876f,
};
const size_t kAccelerometerVerticalHingeUnstableTestDataLength =
- ARRAY_SIZE(kAccelerometerVerticalHingeUnstableTestData);
+ ARRAY_SIZE(kAccelerometerVerticalHingeUnstableTestData);
diff --git a/test/motion_angle_tablet.c b/test/motion_angle_tablet.c
index 8eea053405..2c0c15c828 100644
--- a/test/motion_angle_tablet.c
+++ b/test/motion_angle_tablet.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -19,25 +19,24 @@
#include "test_util.h"
#include "util.h"
-
/*****************************************************************************/
/* Test utilities */
/* convert array value from g to m.s^2. */
int filler(const struct motion_sensor_t *s, const float v)
{
- return FP_TO_INT( fp_div(
- FLOAT_TO_FP(v) * MOTION_SCALING_FACTOR,
- fp_mul(INT_TO_FP(s->current_range), MOTION_ONE_G)));
+ return FP_TO_INT(
+ fp_div(FLOAT_TO_FP(v) * MOTION_SCALING_FACTOR,
+ fp_mul(INT_TO_FP(s->current_range), MOTION_ONE_G)));
}
static int test_lid_angle_less180(void)
{
int index = 0, lid_angle;
- struct motion_sensor_t *lid = &motion_sensors[
- CONFIG_LID_ANGLE_SENSOR_LID];
- struct motion_sensor_t *base = &motion_sensors[
- CONFIG_LID_ANGLE_SENSOR_BASE];
+ struct motion_sensor_t *lid =
+ &motion_sensors[CONFIG_LID_ANGLE_SENSOR_LID];
+ struct motion_sensor_t *base =
+ &motion_sensors[CONFIG_LID_ANGLE_SENSOR_BASE];
/* We don't have TASK_CHIP so simulate init ourselves */
hook_notify(HOOK_CHIPSET_SHUTDOWN);
@@ -61,18 +60,17 @@ static int test_lid_angle_less180(void)
/* Check we stay in tablet mode, even when hinge is vertical. */
while (index < kAccelerometerVerticalHingeTestDataLength) {
- feed_accel_data(kAccelerometerVerticalHingeTestData,
- &index, filler);
+ feed_accel_data(kAccelerometerVerticalHingeTestData, &index,
+ filler);
wait_for_valid_sample();
lid_angle = motion_lid_get_angle();
cprints(CC_ACCEL, "%d : LID(%d, %d, %d)/BASE(%d, %d, %d): %d",
- index / TEST_LID_SAMPLE_SIZE,
- lid->xyz[X], lid->xyz[Y], lid->xyz[Z],
- base->xyz[X], base->xyz[Y], base->xyz[Z],
- lid_angle);
+ index / TEST_LID_SAMPLE_SIZE, lid->xyz[X], lid->xyz[Y],
+ lid->xyz[Z], base->xyz[X], base->xyz[Y], base->xyz[Z],
+ lid_angle);
/* We need few sample to debounce and enter laptop mode. */
- TEST_ASSERT(index < 2 * TEST_LID_SAMPLE_SIZE * \
- (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
+ TEST_ASSERT(index < 2 * TEST_LID_SAMPLE_SIZE *
+ (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
tablet_get_mode());
}
/*
@@ -86,20 +84,18 @@ static int test_lid_angle_less180(void)
wait_for_valid_sample();
lid_angle = motion_lid_get_angle();
cprints(CC_ACCEL, "%d : LID(%d, %d, %d)/BASE(%d, %d, %d): %d",
- index / TEST_LID_SAMPLE_SIZE,
- lid->xyz[X], lid->xyz[Y], lid->xyz[Z],
- base->xyz[X], base->xyz[Y], base->xyz[Z],
- lid_angle);
+ index / TEST_LID_SAMPLE_SIZE, lid->xyz[X], lid->xyz[Y],
+ lid->xyz[Z], base->xyz[X], base->xyz[Y], base->xyz[Z],
+ lid_angle);
/* We need few sample to debounce and enter laptop mode. */
TEST_ASSERT(index < TEST_LID_SAMPLE_SIZE *
- (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
+ (TABLET_MODE_DEBOUNCE_COUNT + 2) ||
tablet_get_mode());
}
return EC_SUCCESS;
}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/motion_angle_tablet.tasklist b/test/motion_angle_tablet.tasklist
index 0b774ebb4a..6c99c23eea 100644
--- a/test/motion_angle_tablet.tasklist
+++ b/test/motion_angle_tablet.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/motion_common.c b/test/motion_common.c
index c7c3395fc4..e274b206a9 100644
--- a/test/motion_common.c
+++ b/test/motion_common.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -43,9 +43,8 @@ static int accel_get_resolution(const struct motion_sensor_t *s)
int test_data_rate[2] = { 0 };
-static int accel_set_data_rate(const struct motion_sensor_t *s,
- const int rate,
- const int rnd)
+static int accel_set_data_rate(const struct motion_sensor_t *s, const int rate,
+ const int rnd)
{
test_data_rate[s - motion_sensors] = rate | (rnd ? ROUND_UP_FLAG : 0);
return EC_SUCCESS;
@@ -62,8 +61,8 @@ static int accel_get_rms_noise(const struct motion_sensor_t *s)
/* Assume we are using BMI160 */
fp_t rate = INT_TO_FP(accel_get_data_rate(s) / 1000);
fp_t noise_100hz = INT_TO_FP(BMI160_ACCEL_RMS_NOISE_100HZ);
- fp_t sqrt_rate_ratio = fp_sqrtf(fp_div(rate,
- INT_TO_FP(BMI_ACCEL_100HZ)));
+ fp_t sqrt_rate_ratio =
+ fp_sqrtf(fp_div(rate, INT_TO_FP(BMI_ACCEL_100HZ)));
return FP_TO_INT(fp_mul(noise_100hz, sqrt_rate_ratio));
}
#endif
@@ -118,7 +117,7 @@ const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
/* Read 6 samples from array to sensor vectors, convert units if necessary. */
void feed_accel_data(const float *array, int *idx,
- int (filler)(const struct motion_sensor_t*, const float))
+ int(filler)(const struct motion_sensor_t *, const float))
{
int i, j;
diff --git a/test/motion_common.h b/test/motion_common.h
index 45d856d9ef..71e23cd9da 100644
--- a/test/motion_common.h
+++ b/test/motion_common.h
@@ -1,4 +1,4 @@
-/* Copyright 2018 The Chromium OS Authors. All rights reserved.
+/* Copyright 2018 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -13,7 +13,7 @@
* The task will read the vectors at that interval
*/
#define TEST_LID_EC_RATE (1 * MSEC)
-#define TEST_LID_FREQUENCY (1e9 / TEST_LID_EC_RATE) /* mHz */
+#define TEST_LID_FREQUENCY (1e9 / TEST_LID_EC_RATE) /* mHz */
/*
* Time in ms to wait for the task to read the vectors.
@@ -30,7 +30,8 @@ extern const unsigned int motion_sensor_count;
void wait_for_valid_sample(void);
void feed_accel_data(const float *array, int *idx,
- int (filler)(const struct motion_sensor_t *s, const float f));
+ int(filler)(const struct motion_sensor_t *s,
+ const float f));
/*
* External data - from
@@ -65,4 +66,4 @@ extern const float kAccelerometerVerticalHingeTestData[];
extern const size_t kAccelerometerVerticalHingeTestDataLength;
extern const float kAccelerometerVerticalHingeUnstableTestData[];
extern const size_t kAccelerometerVerticalHingeUnstableTestDataLength;
-#endif /* __CROS_EC_MOTION_COMMON_H */
+#endif /* __CROS_EC_MOTION_COMMON_H */
diff --git a/test/motion_lid.c b/test/motion_lid.c
index 9935767a68..39b83ce6fc 100644
--- a/test/motion_lid.c
+++ b/test/motion_lid.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -48,8 +48,7 @@ static int accel_read(const struct motion_sensor_t *s, intv3_t v)
return EC_SUCCESS;
}
-static int accel_set_range(struct motion_sensor_t *s,
- const int range,
+static int accel_set_range(struct motion_sensor_t *s, const int range,
const int rnd)
{
s->current_range = range;
@@ -63,9 +62,8 @@ static int accel_get_resolution(const struct motion_sensor_t *s)
int test_data_rate[2] = { 0 };
-static int accel_set_data_rate(const struct motion_sensor_t *s,
- const int rate,
- const int rnd)
+static int accel_set_data_rate(const struct motion_sensor_t *s, const int rate,
+ const int rnd)
{
test_data_rate[s - motion_sensors] = rate;
return EC_SUCCESS;
@@ -148,11 +146,10 @@ static void wait_for_valid_sample(void)
static int test_lid_angle(void)
{
-
- struct motion_sensor_t *base = &motion_sensors[
- CONFIG_LID_ANGLE_SENSOR_BASE];
- struct motion_sensor_t *lid = &motion_sensors[
- CONFIG_LID_ANGLE_SENSOR_LID];
+ struct motion_sensor_t *base =
+ &motion_sensors[CONFIG_LID_ANGLE_SENSOR_BASE];
+ struct motion_sensor_t *lid =
+ &motion_sensors[CONFIG_LID_ANGLE_SENSOR_LID];
int lid_angle;
/* We don't have TASK_CHIP so simulate init ourselves */
@@ -189,10 +186,9 @@ static int test_lid_angle(void)
wait_for_valid_sample();
lid_angle = motion_lid_get_angle();
- cprints(CC_ACCEL, "LID(%d, %d, %d)/BASE(%d, %d, %d): %d",
- lid->xyz[X], lid->xyz[Y], lid->xyz[Z],
- base->xyz[X], base->xyz[Y], base->xyz[Z],
- lid_angle);
+ cprints(CC_ACCEL, "LID(%d, %d, %d)/BASE(%d, %d, %d): %d", lid->xyz[X],
+ lid->xyz[Y], lid->xyz[Z], base->xyz[X], base->xyz[Y],
+ base->xyz[Z], lid_angle);
TEST_ASSERT(lid_angle == 0);
/* Set lid open to 90 degrees. */
@@ -319,8 +315,7 @@ static int test_lid_angle(void)
return EC_SUCCESS;
}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/motion_lid.tasklist b/test/motion_lid.tasklist
index 0b774ebb4a..6c99c23eea 100644
--- a/test/motion_lid.tasklist
+++ b/test/motion_lid.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/motion_sense_fifo.c b/test/motion_sense_fifo.c
index afa9a4f5cf..c93e67951b 100644
--- a/test/motion_sense_fifo.c
+++ b/test/motion_sense_fifo.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -153,7 +153,11 @@ static int test_stage_data_removed_oversample(void)
static int test_stage_data_remove_all_oversampling(void)
{
- struct ec_response_motion_sense_fifo_info fifo_info;
+ uint8_t fifo_info_buffer
+ [sizeof(struct ec_response_motion_sense_fifo_info) +
+ sizeof(uint16_t) * MAX_MOTION_SENSORS];
+ struct ec_response_motion_sense_fifo_info *fifo_info =
+ (void *)fifo_info_buffer;
int read_count;
motion_sensors->oversampling_ratio = 0;
@@ -172,9 +176,9 @@ static int test_stage_data_remove_all_oversampling(void)
* Check that count is 0 and total_lost is 0, oversampling should be
* removing the data before it touches the FIFO.
*/
- motion_sense_fifo_get_info(&fifo_info, /*reset=*/false);
- TEST_EQ(fifo_info.count, 0, "%d");
- TEST_EQ(fifo_info.total_lost, 0, "%d");
+ motion_sense_fifo_get_info(fifo_info, /*reset=*/false);
+ TEST_EQ(fifo_info->count, 0, "%d");
+ TEST_EQ(fifo_info->total_lost, 0, "%d");
motion_sense_fifo_commit_data();
@@ -191,7 +195,11 @@ static int test_stage_data_remove_all_oversampling(void)
static int test_stage_data_evicts_data_with_timestamp(void)
{
- struct ec_response_motion_sense_fifo_info fifo_info;
+ uint8_t fifo_info_buffer
+ [sizeof(struct ec_response_motion_sense_fifo_info) +
+ sizeof(uint16_t) * MAX_MOTION_SENSORS];
+ struct ec_response_motion_sense_fifo_info *fifo_info =
+ (void *)fifo_info_buffer;
int i, read_count;
/* Fill the fifo */
@@ -206,9 +214,9 @@ static int test_stage_data_evicts_data_with_timestamp(void)
* Check that count is 1 smaller than the total size and total_lost is 2
* because 2 entries were evicted together.
*/
- motion_sense_fifo_get_info(&fifo_info, /*reset=*/false);
- TEST_EQ(fifo_info.count, CONFIG_ACCEL_FIFO_SIZE - 1, "%d");
- TEST_EQ(fifo_info.total_lost, 2, "%d");
+ motion_sense_fifo_get_info(fifo_info, /*reset=*/false);
+ TEST_EQ(fifo_info->count, CONFIG_ACCEL_FIFO_SIZE - 1, "%d");
+ TEST_EQ(fifo_info->total_lost, 2, "%d");
read_count = motion_sense_fifo_read(
sizeof(data), CONFIG_ACCEL_FIFO_SIZE, data, &data_bytes_read);
@@ -273,7 +281,7 @@ static int test_spread_data_in_window(void)
int read_count;
motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[0].collection_rate = 20; /* us */
+ motion_sense_set_data_period(0, 20 /* us */);
now = __hw_clock_source_read();
motion_sense_fifo_stage_data(data, motion_sensors, 3, now - 18);
@@ -300,9 +308,9 @@ static int test_spread_data_on_overflow(void)
int i, read_count;
/* Set up the sensors */
- motion_sensors[0].collection_rate = 20; /* us */
motion_sensors[0].oversampling_ratio = 1;
motion_sensors[1].oversampling_ratio = 1;
+ motion_sense_set_data_period(0, 20 /* us */);
/* Add 1 sample for sensor [1]. This will be evicted. */
data->sensor_num = 1;
@@ -351,7 +359,7 @@ static int test_spread_data_by_collection_rate(void)
int read_count;
motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[0].collection_rate = 20; /* us */
+ motion_sense_set_data_period(0, 20 /* us */);
motion_sense_fifo_stage_data(data, motion_sensors, 3, now - 25);
motion_sense_fifo_stage_data(data, motion_sensors, 3, now - 25);
motion_sense_fifo_commit_data();
@@ -366,42 +374,13 @@ static int test_spread_data_by_collection_rate(void)
return EC_SUCCESS;
}
-static int test_spread_double_commit_same_timestamp(void)
-{
- const uint32_t now = __hw_clock_source_read();
- int read_count;
-
- /*
- * Stage and commit the same sample. This is not expected to happen
- * since batches of sensor samples should be staged together and only
- * commit once. We assume that the driver did this on purpose and will
- * allow the same timestamp to be sent.
- */
- motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[0].collection_rate = 20; /* us */
- motion_sense_fifo_stage_data(data, motion_sensors, 3, now - 25);
- motion_sense_fifo_commit_data();
- motion_sense_fifo_stage_data(data, motion_sensors, 3, now - 25);
- motion_sense_fifo_commit_data();
-
- read_count = motion_sense_fifo_read(
- sizeof(data), CONFIG_ACCEL_FIFO_SIZE, data, &data_bytes_read);
- TEST_EQ(read_count, 4, "%d");
- TEST_BITS_SET(data[0].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[0].timestamp, now - 25, "%u");
- TEST_BITS_SET(data[2].flags, MOTIONSENSE_SENSOR_FLAG_TIMESTAMP);
- TEST_EQ(data[2].timestamp, now - 25, "%u");
-
- return EC_SUCCESS;
-}
-
static int test_commit_non_data_or_timestamp_entries(void)
{
const uint32_t now = __hw_clock_source_read();
int read_count;
motion_sensors[0].oversampling_ratio = 1;
- motion_sensors[0].collection_rate = 20; /* us */
+ motion_sense_set_data_period(0, 20 /* us */);
/* Insert non-data entry */
data[0].flags = MOTIONSENSE_SENSOR_FLAG_ODR;
@@ -426,28 +405,29 @@ static int test_commit_non_data_or_timestamp_entries(void)
static int test_get_info_size(void)
{
- struct ec_response_motion_sense_fifo_info fifo_info;
+ uint8_t fifo_info_buffer
+ [sizeof(struct ec_response_motion_sense_fifo_info) +
+ sizeof(uint16_t) * MAX_MOTION_SENSORS];
+ struct ec_response_motion_sense_fifo_info *fifo_info =
+ (void *)fifo_info_buffer;
- motion_sense_fifo_get_info(&fifo_info, /*reset=*/false);
- TEST_EQ(fifo_info.size, CONFIG_ACCEL_FIFO_SIZE, "%d");
+ motion_sense_fifo_get_info(fifo_info, /*reset=*/false);
+ TEST_EQ(fifo_info->size, CONFIG_ACCEL_FIFO_SIZE, "%d");
return EC_SUCCESS;
}
void before_test(void)
{
- static struct ec_response_motion_sense_fifo_info fifo_info;
-
motion_sense_fifo_commit_data();
motion_sense_fifo_read(sizeof(data), CONFIG_ACCEL_FIFO_SIZE, &data,
&data_bytes_read);
motion_sense_fifo_reset_needed_flags();
memset(data, 0, sizeof(data));
motion_sense_fifo_reset();
- motion_sense_fifo_get_info(&fifo_info, /*reset=*/true);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
motion_sense_fifo_init();
@@ -465,7 +445,6 @@ void run_test(int argc, char **argv)
RUN_TEST(test_spread_data_in_window);
RUN_TEST(test_spread_data_on_overflow);
RUN_TEST(test_spread_data_by_collection_rate);
- RUN_TEST(test_spread_double_commit_same_timestamp);
RUN_TEST(test_commit_non_data_or_timestamp_entries);
RUN_TEST(test_get_info_size);
diff --git a/test/motion_sense_fifo.tasklist b/test/motion_sense_fifo.tasklist
index 9fc1a80f4d..844ddb6c10 100644
--- a/test/motion_sense_fifo.tasklist
+++ b/test/motion_sense_fifo.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/mpu.c b/test/mpu.c
index 25b2c58903..2193c0c617 100644
--- a/test/mpu.c
+++ b/test/mpu.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -17,22 +17,18 @@ struct mpu_info {
};
#if defined(CHIP_VARIANT_STM32F412)
-struct mpu_info mpu_info = {
- .has_mpu = true,
- .num_mpu_regions = 8,
- .mpu_is_unified = true
-};
+struct mpu_info mpu_info = { .has_mpu = true,
+ .num_mpu_regions = 8,
+ .mpu_is_unified = true };
struct mpu_rw_regions expected_rw_regions = { .num_regions = 2,
.addr = { 0x08060000,
0x08080000 },
.size = { 0x20000, 0x80000 } };
#elif defined(CHIP_VARIANT_STM32H7X3)
-struct mpu_info mpu_info = {
- .has_mpu = true,
- .num_mpu_regions = 16,
- .mpu_is_unified = true
-};
+struct mpu_info mpu_info = { .has_mpu = true,
+ .num_mpu_regions = 16,
+ .mpu_is_unified = true };
struct mpu_rw_regions expected_rw_regions = { .num_regions = 1,
.addr = { 0x08100000,
@@ -75,7 +71,7 @@ test_static int test_mpu_update_region_valid_region(void)
{
volatile char data __maybe_unused;
- char * const ram_base = (char * const)CONFIG_RAM_BASE;
+ char *const ram_base = (char *const)CONFIG_RAM_BASE;
const uint8_t size_bit = 5;
uint16_t mpu_attr = MPU_ATTR_NO_NO;
@@ -176,7 +172,7 @@ test_static int test_mpu_get_rw_regions(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
enum ec_image cur_image = system_get_image_copy();
diff --git a/test/mpu.tasklist b/test/mpu.tasklist
index 51734f058d..a1f1a94e2d 100644
--- a/test/mpu.tasklist
+++ b/test/mpu.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/mutex.c b/test/mutex.c
index 4fbf7d5cae..a03e504a0a 100644
--- a/test/mutex.c
+++ b/test/mutex.c
@@ -1,7 +1,7 @@
-/* Copyright 2011 The Chromium OS Authors. All rights reserved.
+/* Copyright 2011 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
- * Copyright 2011 Google Inc.
+ * Copyright 2011 Google LLC
*
* Tasks for mutexes basic tests.
*/
@@ -22,7 +22,7 @@ static struct mutex mtx;
int mutex_random_task(void *unused)
{
- char letter = 'A'+(TASK_ID_MTX3A - task_get_current());
+ char letter = 'A' + (TASK_ID_MTX3A - task_get_current());
/* wait to be activated */
while (1) {
@@ -110,7 +110,7 @@ int mutex_main_task(void *unused)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
wait_for_task_started();
task_wake(TASK_ID_MTX1);
diff --git a/test/mutex.tasklist b/test/mutex.tasklist
index 8e3d08ddc2..46cdad7fa1 100644
--- a/test/mutex.tasklist
+++ b/test/mutex.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/newton_fit.c b/test/newton_fit.c
index 9648fbfd9a..07c35aad2a 100644
--- a/test/newton_fit.c
+++ b/test/newton_fit.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -126,7 +126,7 @@ static int test_newton_fit_calculate(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/newton_fit.tasklist b/test/newton_fit.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/newton_fit.tasklist
+++ b/test/newton_fit.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/nvidia_gpu.c b/test/nvidia_gpu.c
new file mode 100644
index 0000000000..d6086cc8c4
--- /dev/null
+++ b/test/nvidia_gpu.c
@@ -0,0 +1,215 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * Tests for Nvidia GPU.
+ */
+#include <stdio.h>
+
+#include "charge_manager.h"
+#include "charge_state.h"
+#include "common.h"
+#include "console.h"
+#include "hooks.h"
+#include "host_command.h"
+#include "task.h"
+#include "test_util.h"
+#include "throttle_ap.h"
+#include "timer.h"
+#include "util.h"
+
+#include "driver/nvidia_gpu.h"
+
+struct d_notify_policy d_notify_policies[] = {
+ AC_ATLEAST_W(100), AC_ATLEAST_W(65), AC_DC,
+ DC_ATLEAST_SOC(20), DC_ATLEAST_SOC(5),
+};
+
+extern enum d_notify_level d_notify_level;
+extern bool policy_initialized;
+extern const struct d_notify_policy *d_notify_policy;
+static int extpower_presence = 1;
+static int nvidia_gpu_acoff_odl = 1;
+static int charge_percent = 100;
+static int charge_power = 100;
+static uint8_t *memmap_gpu;
+
+__override int charge_get_percent(void)
+{
+ return charge_percent;
+}
+
+__override int charge_manager_get_power_limit_uw(void)
+{
+ return charge_power * 1000000;
+}
+
+__override int extpower_is_present(void)
+{
+ return extpower_presence;
+}
+
+__override int gpio_get_level(enum gpio_signal signal)
+{
+ if (signal == GPIO_NVIDIA_GPU_ACOFF_ODL)
+ return nvidia_gpu_acoff_odl;
+ return 0;
+}
+
+__override void gpio_set_level(enum gpio_signal signal, int value)
+{
+ if (signal == GPIO_NVIDIA_GPU_ACOFF_ODL)
+ nvidia_gpu_acoff_odl = value;
+}
+
+static void setup(int extpower, int gpio_acoff, int percent, int power,
+ enum d_notify_level level)
+{
+ extpower_presence = extpower;
+ nvidia_gpu_acoff_odl = gpio_acoff;
+ charge_percent = percent;
+ charge_power = power;
+ d_notify_level = level;
+ *memmap_gpu = level;
+}
+
+static void plug_ac(int plug)
+{
+ extpower_presence = plug;
+ hook_notify(HOOK_AC_CHANGE);
+}
+
+static int check_d_notify_level(enum d_notify_level expected_level)
+{
+ TEST_EQ(d_notify_level, expected_level, "%d");
+ TEST_EQ(*memmap_gpu, expected_level, "%d");
+
+ return EC_SUCCESS;
+}
+
+static int test_startup(void)
+{
+ /* Test initial values after HOOK_INIT. Don't call setup(). */
+
+ TEST_ASSERT(IS_ENABLED(HAS_GPU_DRIVER));
+ TEST_ASSERT(policy_initialized);
+ TEST_NE(d_notify_policy, NULL, "%p");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_1), EC_SUCCESS, "%d");
+
+ return EC_SUCCESS;
+}
+
+static int test_ac_unplug(void)
+{
+ setup(1, 1, 100, 100, D_NOTIFY_1);
+
+ /* Unplug AC. D1 -> D5 */
+ plug_ac(0);
+ throttle_gpu(THROTTLE_ON, THROTTLE_HARD, THROTTLE_SRC_AC);
+ TEST_EQ(nvidia_gpu_acoff_odl, 0, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_5), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ /* Wait half of NVIDIA_GPU_ACOFF_DURATION. D5 -> D5. */
+ usleep(NVIDIA_GPU_ACOFF_DURATION / 2);
+ TEST_EQ(nvidia_gpu_acoff_odl, 0, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_5), EC_SUCCESS, "%d");
+ TEST_ASSERT(!host_is_event_set(EC_HOST_EVENT_GPU));
+
+ /* Wait another half of NVIDIA_GPU_ACOFF_DURATION. D5 -> D3. */
+ usleep(NVIDIA_GPU_ACOFF_DURATION / 2);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_3), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ /* Discharge to 60%. D3 -> D3. */
+ charge_percent = 60;
+ hook_notify(HOOK_BATTERY_SOC_CHANGE);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_3), EC_SUCCESS, "%d");
+ TEST_ASSERT(!host_is_event_set(EC_HOST_EVENT_GPU));
+
+ /* Discharge to 20%. D3 -> D4 */
+ charge_percent = 20;
+ hook_notify(HOOK_BATTERY_SOC_CHANGE);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_4), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ /* Discharge to 5%. D4 -> D5 */
+ charge_percent = 5;
+ hook_notify(HOOK_BATTERY_SOC_CHANGE);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_5), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ return EC_SUCCESS;
+}
+
+static int test_ac_plug(void)
+{
+ /* Plug 100W AC. D5 -> D1. */
+ setup(0, 1, 5, 100, D_NOTIFY_5);
+ plug_ac(1);
+ throttle_gpu(THROTTLE_OFF, THROTTLE_HARD, THROTTLE_SRC_AC);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_1), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ /* Plug 65W AC. D5 -> D2. */
+ setup(0, 1, 5, 65, D_NOTIFY_5);
+ plug_ac(1);
+ throttle_gpu(THROTTLE_OFF, THROTTLE_HARD, THROTTLE_SRC_AC);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_2), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ /* Plug 35W AC. D5 -> D3. */
+ setup(0, 1, 5, 35, D_NOTIFY_5);
+ plug_ac(1);
+ throttle_gpu(THROTTLE_OFF, THROTTLE_HARD, THROTTLE_SRC_AC);
+ TEST_EQ(nvidia_gpu_acoff_odl, 1, "%d");
+ TEST_EQ(check_d_notify_level(D_NOTIFY_3), EC_SUCCESS, "%d");
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+ host_clear_events(EC_HOST_EVENT_MASK(EC_HOST_EVENT_GPU));
+
+ return EC_SUCCESS;
+}
+
+static int test_overt(void)
+{
+ nvidia_gpu_over_temp(1);
+ TEST_ASSERT(*memmap_gpu & EC_MEMMAP_GPU_OVERT_BIT);
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+
+ nvidia_gpu_over_temp(0);
+ TEST_ASSERT(!(*memmap_gpu & EC_MEMMAP_GPU_OVERT_BIT));
+ TEST_ASSERT(host_is_event_set(EC_HOST_EVENT_GPU));
+
+ return EC_SUCCESS;
+}
+
+static void board_gpu_init(void)
+{
+ nvidia_gpu_init_policy(d_notify_policies);
+}
+DECLARE_HOOK(HOOK_INIT, board_gpu_init, HOOK_PRIO_DEFAULT);
+
+void run_test(int argc, const char **argv)
+{
+ memmap_gpu = (uint8_t *)host_get_memmap(EC_MEMMAP_GPU);
+
+ test_chipset_on();
+
+ RUN_TEST(test_startup);
+ RUN_TEST(test_ac_unplug);
+ RUN_TEST(test_ac_plug);
+ RUN_TEST(test_overt);
+ test_print_result();
+}
diff --git a/test/nvidia_gpu.tasklist b/test/nvidia_gpu.tasklist
new file mode 100644
index 0000000000..8918b4ee2f
--- /dev/null
+++ b/test/nvidia_gpu.tasklist
@@ -0,0 +1,10 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * See CONFIG_TASK_LIST in config.h for details.
+ */
+#define CONFIG_TEST_TASK_LIST \
+ TASK_TEST(CHIPSET, chipset_task, NULL, TASK_STACK_SIZE)
diff --git a/test/online_calibration.c b/test/online_calibration.c
index 1b3abf51bc..cecb543eef 100644
--- a/test/online_calibration.c
+++ b/test/online_calibration.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -48,17 +48,14 @@ static struct accelgyro_drv mock_sensor_driver = {
.read_temp = mock_read_temp,
};
-static struct accel_cal_algo base_accel_cal_algos[] = {
- {
- .newton_fit = NEWTON_FIT(4, 15, FLOAT_TO_FP(0.01f),
- FLOAT_TO_FP(0.25f),
- FLOAT_TO_FP(1.0e-8f), 100),
- }
-};
+static struct accel_cal_algo base_accel_cal_algos[] = { {
+ .newton_fit = NEWTON_FIT(4, 15, FLOAT_TO_FP(0.01f), FLOAT_TO_FP(0.25f),
+ FLOAT_TO_FP(1.0e-8f), 100),
+} };
static struct accel_cal base_accel_cal_data = {
- .still_det = STILL_DET(FLOAT_TO_FP(0.00025f), 800 * MSEC, 1200 * MSEC,
- 5),
+ .still_det =
+ STILL_DET(FLOAT_TO_FP(0.00025f), 800 * MSEC, 1200 * MSEC, 5),
.algos = base_accel_cal_algos,
.num_temp_windows = ARRAY_SIZE(base_accel_cal_algos),
};
@@ -68,9 +65,8 @@ static struct mag_cal_t lid_mag_cal_data;
static bool next_accel_cal_accumulate_result;
static fpv3_t next_accel_cal_bias;
-bool accel_cal_accumulate(
- struct accel_cal *cal, uint32_t sample_time, fp_t x, fp_t y, fp_t z,
- fp_t temp)
+bool accel_cal_accumulate(struct accel_cal *cal, uint32_t sample_time, fp_t x,
+ fp_t y, fp_t z, fp_t temp)
{
if (next_accel_cal_accumulate_result) {
cal->bias[X] = next_accel_cal_bias[X];
@@ -110,8 +106,8 @@ static int test_read_temp_on_stage(void)
mock_read_temp_results = &expected;
data.sensor_num = BASE;
- rc = online_calibration_process_data(
- &data, &motion_sensors[0], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[0],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
TEST_EQ(expected.used_count, 1, "%d");
@@ -128,12 +124,12 @@ static int test_read_temp_from_cache_on_stage(void)
mock_read_temp_results = &expected;
data.sensor_num = BASE;
- rc = online_calibration_process_data(
- &data, &motion_sensors[0], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[0],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
- rc = online_calibration_process_data(
- &data, &motion_sensors[0], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[0],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
TEST_EQ(expected.used_count, 1, "%d");
@@ -150,13 +146,13 @@ static int test_read_temp_twice_after_cache_stale(void)
mock_read_temp_results = &expected;
data.sensor_num = BASE;
- rc = online_calibration_process_data(
- &data, &motion_sensors[0], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[0],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
sleep(2);
- rc = online_calibration_process_data(
- &data, &motion_sensors[0], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[0],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
TEST_EQ(expected.used_count, 2, "%d");
@@ -176,17 +172,17 @@ static int test_new_calibration_value(void)
next_accel_cal_accumulate_result = false;
data.sensor_num = BASE;
- rc = online_calibration_process_data(
- &data, &motion_sensors[BASE], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[BASE],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
TEST_EQ(online_calibration_has_new_values(), false, "%d");
next_accel_cal_accumulate_result = true;
- next_accel_cal_bias[X] = 0.01f; /* expect: 81 */
- next_accel_cal_bias[Y] = -0.02f; /* expect: -163 */
- next_accel_cal_bias[Z] = 0; /* expect: 0 */
- rc = online_calibration_process_data(
- &data, &motion_sensors[BASE], __hw_clock_source_read());
+ next_accel_cal_bias[X] = 0.01f; /* expect: 81 */
+ next_accel_cal_bias[Y] = -0.02f; /* expect: -163 */
+ next_accel_cal_bias[Z] = 0; /* expect: 0 */
+ rc = online_calibration_process_data(&data, &motion_sensors[BASE],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
TEST_EQ(online_calibration_has_new_values(), true, "%d");
@@ -216,8 +212,8 @@ int test_mag_reading_updated_cal(void)
init_mag_cal(&expected_results);
mag_cal_update(&expected_results, test_values);
- rc = online_calibration_process_data(
- &data, &motion_sensors[LID], __hw_clock_source_read());
+ rc = online_calibration_process_data(&data, &motion_sensors[LID],
+ __hw_clock_source_read());
TEST_EQ(rc, EC_SUCCESS, "%d");
TEST_EQ(expected_results.kasa_fit.nsamples,
lid_mag_cal_data.kasa_fit.nsamples, "%d");
@@ -231,7 +227,7 @@ void before_test(void)
online_calibration_init();
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/online_calibration.tasklist b/test/online_calibration.tasklist
index 5b67239ff8..a9ba96907d 100644
--- a/test/online_calibration.tasklist
+++ b/test/online_calibration.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/online_calibration_spoof.c b/test/online_calibration_spoof.c
index 66ef5d01de..44a3b812d9 100644
--- a/test/online_calibration_spoof.c
+++ b/test/online_calibration_spoof.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -184,7 +184,7 @@ void before_test(void)
gyro_cal_initialization_for_test(&gyro_cal_data);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/online_calibration_spoof.tasklist b/test/online_calibration_spoof.tasklist
index 7d28eb5b64..7209a7441e 100644
--- a/test/online_calibration_spoof.tasklist
+++ b/test/online_calibration_spoof.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/panic_data.c b/test/panic_data.c
index 9abbcb7745..334b766dfc 100644
--- a/test/panic_data.c
+++ b/test/panic_data.c
@@ -1,11 +1,11 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "test_util.h"
-#include "assert.h"
+#include "builtin/assert.h"
#include "panic.h"
#include "system.h"
#include "task.h"
@@ -132,7 +132,7 @@ int task_test(void *unused)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
msleep(30); /* Wait for TASK_ID_TEST to initialize */
diff --git a/test/panic_data.tasklist b/test/panic_data.tasklist
index 6a2f1834ca..273a9664c0 100644
--- a/test/panic_data.tasklist
+++ b/test/panic_data.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/pingpong.c b/test/pingpong.c
index 9d3a7ed7af..cb8c5af8c9 100644
--- a/test/pingpong.c
+++ b/test/pingpong.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -60,7 +60,7 @@ int task_tick(void *data)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
wait_for_task_started();
task_wake(TASK_ID_TICK);
diff --git a/test/pingpong.tasklist b/test/pingpong.tasklist
index 760d204b67..7db2ce33a6 100644
--- a/test/pingpong.tasklist
+++ b/test/pingpong.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/power_button.c b/test/power_button.c
index 5fe9136105..dc64e607fa 100644
--- a/test/power_button.c
+++ b/test/power_button.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -89,7 +89,7 @@ static int test_debounce(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/power_button.tasklist b/test/power_button.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/power_button.tasklist
+++ b/test/power_button.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/powerdemo.c b/test/powerdemo.c
index e695bb8e5e..7a4f0c5ccb 100644
--- a/test/powerdemo.c
+++ b/test/powerdemo.c
@@ -1,4 +1,4 @@
-/* Copyright 2012 The Chromium OS Authors. All rights reserved.
+/* Copyright 2012 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -13,17 +13,16 @@
#include "registers.h"
static volatile enum {
- POWER_STATE_IDLE = 0, /* Idle */
- POWER_STATE_DOWN1, /* Assert output for 1ms */
- POWER_STATE_UP1, /* Deassert output for 1ms */
- POWER_STATE_DOWN10, /* Assert output for 10ms */
- POWER_STATE_UP5, /* Deassert output for 5ms */
- POWER_STATE_DOWN15, /* Assert output for 15ms */
- POWER_STATE_WAIT, /* Wait for button to be released */
- POWER_STATE_DOWN2 /* Assert output for 2ms */
+ POWER_STATE_IDLE = 0, /* Idle */
+ POWER_STATE_DOWN1, /* Assert output for 1ms */
+ POWER_STATE_UP1, /* Deassert output for 1ms */
+ POWER_STATE_DOWN10, /* Assert output for 10ms */
+ POWER_STATE_UP5, /* Deassert output for 5ms */
+ POWER_STATE_DOWN15, /* Assert output for 15ms */
+ POWER_STATE_WAIT, /* Wait for button to be released */
+ POWER_STATE_DOWN2 /* Assert output for 2ms */
} state = POWER_STATE_IDLE;
-
/* Stops the timer. */
static void __stop_timer(void)
{
@@ -33,7 +32,6 @@ static void __stop_timer(void)
LM4_TIMER_ICR(7) = LM4_TIMER_RIS(7);
}
-
/* Starts the timer with the specified delay. If the timer is already
* started, resets it. */
static void __start_timer(int usec)
@@ -46,7 +44,6 @@ static void __start_timer(int usec)
LM4_TIMER_CTL(7) |= 0x01;
}
-
static void __set_state(int new_state, int pin_value, int timeout)
{
LM4_GPIO_DATA(LM4_GPIO_D, 0x08) = (pin_value ? 0x08 : 0);
@@ -57,7 +54,6 @@ static void __set_state(int new_state, int pin_value, int timeout)
state = new_state;
}
-
int power_demo_init(void)
{
volatile uint32_t scratch __attribute__((unused));
@@ -102,7 +98,6 @@ int power_demo_init(void)
return EC_SUCCESS;
}
-
/* GPIO interrupt handler */
static void __gpio_d_interrupt(void)
{
@@ -125,7 +120,6 @@ static void __gpio_d_interrupt(void)
DECLARE_IRQ(LM4_IRQ_GPIOD, __gpio_d_interrupt, 1);
-
/* Timer interrupt handler */
static void __timer_w1_interrupt(void)
{
diff --git a/test/powerdemo.h b/test/powerdemo.h
index 17ed482042..a8ee854acb 100644
--- a/test/powerdemo.h
+++ b/test/powerdemo.h
@@ -1,4 +1,4 @@
-/* Copyright 2011 The Chromium OS Authors. All rights reserved.
+/* Copyright 2011 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -13,4 +13,4 @@
/* Initializes the module. */
int power_demo_init(void);
-#endif /* __TEST_POWERDEMO_H */
+#endif /* __TEST_POWERDEMO_H */
diff --git a/test/powerdemo.tasklist b/test/powerdemo.tasklist
index a4fff562e3..3824306072 100644
--- a/test/powerdemo.tasklist
+++ b/test/powerdemo.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/printf.c b/test/printf.c
index f7e9b9dd2d..728aa9b4a8 100644
--- a/test/printf.c
+++ b/test/printf.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -12,14 +12,31 @@
#include "test_util.h"
#include "util.h"
+#ifdef USE_BUILTIN_STDLIB
+/*
+ * When USE_BUILTIN_STDLIB is defined, we want to test the EC printf
+ * implementation. We need to include the builtin header file directly so
+ * that we can call the EC version (crec_vsnprintf) when linking with the
+ * standard library on the host.
+ */
+#include "builtin/stdio.h"
+#define VSNPRINTF crec_vsnprintf
+#define SNPRINTF crec_snprintf
+static const bool use_builtin_stdlib = true;
+#else
+#include <stdio.h>
+#define VSNPRINTF vsnprintf
+#define SNPRINTF snprintf
+static const bool use_builtin_stdlib = false;
+#endif
+
#define INIT_VALUE 0x5E
#define NO_BYTES_TOUCHED NULL
static const char err_str[] = "ERROR";
static char output[1024];
-int run(int expect_ret, const char *expect,
- bool output_null, size_t size_limit,
+int run(int expect_ret, const char *expect, bool output_null, size_t size_limit,
const char *format, va_list args)
{
size_t expect_size = expect ? strlen(expect) + 1 : 0;
@@ -34,10 +51,8 @@ int run(int expect_ret, const char *expect,
TEST_ASSERT(expect_size <= size_limit);
memset(output, INIT_VALUE, sizeof(output));
- rv = vsnprintf(output_null ? NULL : output, size_limit,
- format, args);
- ccprintf("received='%.*s' | ret =%d\n",
- 30, output, rv);
+ rv = VSNPRINTF(output_null ? NULL : output, size_limit, format, args);
+ ccprintf("received='%.*s' | ret =%d\n", 30, output, rv);
TEST_ASSERT_ARRAY_EQ(output, expect, expect_size);
TEST_ASSERT_MEMSET(&output[expect_size], INIT_VALUE,
@@ -59,252 +74,621 @@ int expect_success(const char *expect, const char *format, ...)
int rv;
va_start(args, format);
- rv = run(EC_SUCCESS, expect,
- false, sizeof(output),
- format, args);
+ rv = run(EC_SUCCESS, expect, false, sizeof(output), format, args);
va_end(args);
return rv;
}
-int expect(int expect_ret, const char *expect,
- bool output_null, size_t size_limit,
- const char *format, ...)
+int expect(int expect_ret, const char *expect, bool output_null,
+ size_t size_limit, const char *format, ...)
{
va_list args;
int rv;
va_start(args, format);
- rv = run(expect_ret, expect,
- output_null, size_limit,
- format, args);
+ rv = run(expect_ret, expect, output_null, size_limit, format, args);
va_end(args);
return rv;
}
-#define T(n) \
- do { \
- int rv = (n); \
- if (rv != EC_SUCCESS) \
- return rv; \
+#define T(n) \
+ do { \
+ int rv = (n); \
+ if (rv != EC_SUCCESS) \
+ return rv; \
} while (0)
test_static int test_vsnprintf_args(void)
{
- T(expect_success("", ""));
- T(expect_success("a", "a"));
-
- T(expect(/* expect an invalid args error */
- EC_ERROR_INVAL, NO_BYTES_TOUCHED,
- /* given 0 as output size limit */
- false, 0, ""));
+ T(expect_success("", ""));
+ T(expect_success("a", "a"));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This differs from the C standard library
+ * behavior and should probably be changed.
+ */
+ T(expect(/* expect an invalid args error */
+ EC_ERROR_INVAL, NO_BYTES_TOUCHED,
+ /* given 0 as output size limit */
+ false, 0, ""));
+ T(expect(/* expect an overflow error */
+ EC_ERROR_OVERFLOW, "",
+ /* given 1 as output size limit with a non-blank format
+ */
+ false, 1, "a"));
+ T(expect(/* expect an invalid args error */
+ EC_ERROR_INVAL, NO_BYTES_TOUCHED,
+ /* given NULL as the output buffer */
+ true, sizeof(output), ""));
+ T(expect(/* expect an invalid args error */
+ EC_ERROR_INVAL, NO_BYTES_TOUCHED,
+ /* given a NULL format string */
+ false, sizeof(output), NULL));
+ }
T(expect(/* expect SUCCESS */
EC_SUCCESS, "",
/* given 1 as output size limit and a blank format */
false, 1, ""));
- T(expect(/* expect an overflow error */
- EC_ERROR_OVERFLOW, "",
- /* given 1 as output size limit with a non-blank format */
- false, 1, "a"));
-
- T(expect(/* expect an invalid args error */
- EC_ERROR_INVAL, NO_BYTES_TOUCHED,
- /* given NULL as the output buffer */
- true, sizeof(output), ""));
- T(expect(/* expect an invalid args error */
- EC_ERROR_INVAL, NO_BYTES_TOUCHED,
- /* given a NULL format string */
- false, sizeof(output), NULL));
return EC_SUCCESS;
}
test_static int test_vsnprintf_int(void)
{
- T(expect_success("123", "%d", 123));
- T(expect_success("-123", "%d", -123));
- T(expect_success("+123", "%+d", 123));
- T(expect_success("-123", "%+d", -123));
- T(expect_success("123", "%-d", 123));
- T(expect_success("-123", "%-d", -123));
-
- T(expect_success(" 123", "%5d", 123));
- T(expect_success(" +123", "%+5d", 123));
- T(expect_success("00123", "%05d", 123));
- T(expect_success("00123", "%005d", 123));
- /*
- * TODO(crbug.com/974084): This odd behavior should be fixed.
- * T(expect_success("+0123", "%+05d", 123));
- * Actual: "0+123"
- * T(expect_success("+0123", "%+005d", 123));
- * Actual: "0+123"
- */
+ T(expect_success("123", "%d", 123));
+ T(expect_success("-123", "%d", -123));
+ T(expect_success("+123", "%+d", 123));
+ T(expect_success("-123", "%+d", -123));
+ T(expect_success("123", "%-d", 123));
+ T(expect_success("-123", "%-d", -123));
+
+ T(expect_success(" 123", "%5d", 123));
+ T(expect_success(" +123", "%+5d", 123));
+ T(expect_success("00123", "%05d", 123));
+ T(expect_success("00123", "%005d", 123));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): These are incorrect and should be fixed.
+ */
+ /* Fixed point. */
+ T(expect_success("0.00123", "%.5d", 123));
+ T(expect_success("12.3", "%2.1d", 123));
+ /* Precision or width larger than buffer should fail. */
+ T(expect(EC_ERROR_OVERFLOW, " 1", false, 4, "%5d", 123));
+ T(expect(EC_ERROR_OVERFLOW, " ", false, 4, "%10d", 123));
+ T(expect(EC_ERROR_OVERFLOW, "123", false, 4, "%-10d", 123));
+ T(expect(EC_ERROR_OVERFLOW, "0.0", false, 4, "%.10d", 123));
+ } else {
+ int ret;
+
+ T(expect_success("00123", "%.5d", 123));
+ T(expect_success("123", "%2.1d", 123));
+
+ /*
+ * From the man page: The functions snprintf() and vsnprintf()
+ * do not write more than size bytes (including the
+ * terminating null byte ('\0')). If the output was truncated
+ * due to this limit, then the return value is the number of
+ * characters (excluding the terminating null byte) which
+ * would have been written to the final string if enough
+ * space had been available. Thus, a return value of size or
+ * more means that the output was truncated.
+ */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-truncation"
+ ret = SNPRINTF(output, 4, "%5d", 123);
+ TEST_ASSERT_ARRAY_EQ(output, " 1", 4);
+ TEST_EQ(ret, 5, "%d");
+
+ ret = SNPRINTF(output, 4, "%10d", 123);
+ TEST_ASSERT_ARRAY_EQ(output, " ", 4);
+ TEST_EQ(ret, 10, "%d");
+
+ ret = SNPRINTF(output, 4, "%-10d", 123);
+ TEST_ASSERT_ARRAY_EQ(output, "123", 4);
+ TEST_EQ(ret, 10, "%d");
+
+ ret = SNPRINTF(output, 4, "%.10d", 123);
+ TEST_ASSERT_ARRAY_EQ(output, "000", 4);
+ TEST_EQ(ret, 10, "%d");
+#pragma GCC diagnostic pop
+ }
- T(expect_success(" 123", "%*d", 5, 123));
- T(expect_success(" +123", "%+*d", 5, 123));
- T(expect_success("00123", "%0*d", 5, 123));
- /*
- * TODO(crbug.com/974084): This odd behavior should be fixed.
- * T(expect_success("00123", "%00*d", 5, 123));
- * Actual: "ERROR"
- */
- T(expect_success("0+123", "%+0*d", 5, 123));
- /*
- * TODO(crbug.com/974084): This odd behavior should be fixed.
- * T(expect_success("0+123", "%+00*d", 5, 123));
- * Actual: "ERROR"
- */
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): These are incorrect and should be fixed.
+ */
+ T(expect_success("0+123", "%+05d", 123));
+ T(expect_success("0+123", "%+005d", 123));
+ } else {
+ T(expect_success("+0123", "%+05d", 123));
+ T(expect_success("+0123", "%+005d", 123));
+ }
+
+ T(expect_success(" 123", "%*d", 5, 123));
+ T(expect_success(" +123", "%+*d", 5, 123));
+ T(expect_success("00123", "%0*d", 5, 123));
- T(expect_success("123 ", "%-5d", 123));
- T(expect_success("+123 ", "%-+5d", 123));
- T(expect_success(err_str, "%+-5d", 123));
- T(expect_success("123 ", "%-05d", 123));
- T(expect_success("123 ", "%-005d", 123));
- T(expect_success("+123 ", "%-+05d", 123));
- T(expect_success("+123 ", "%-+005d", 123));
-
- T(expect_success("0.00123", "%.5d", 123));
- T(expect_success("+0.00123", "%+.5d", 123));
- T(expect_success("0.00123", "%7.5d", 123));
- T(expect_success(" 0.00123", "%9.5d", 123));
- T(expect_success(" +0.00123", "%+9.5d", 123));
-
- T(expect_success("123", "%u", 123));
- T(expect_success("4294967295", "%u", -1));
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This incorrect and should be fixed.
+ */
+ T(expect_success(err_str, "%00*d", 5, 123));
+ } else {
+ T(expect_success("00123", "%00*d", 5, 123));
+ }
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This is incorrect and should be fixed.
+ */
+ T(expect_success("0+123", "%+0*d", 5, 123));
+ } else {
+ T(expect_success("+0123", "%+0*d", 5, 123));
+ }
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This is incorrect and should be fixed.
+ */
+ T(expect_success(err_str, "%+00*d", 5, 123));
+ } else {
+ T(expect_success("+0123", "%+00*d", 5, 123));
+ }
+
+ T(expect_success("123 ", "%-5d", 123));
+ T(expect_success("+123 ", "%-+5d", 123));
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This incorrect and should be fixed.
+ */
+ T(expect_success(err_str, "%+-5d", 123));
+ } else {
+ T(expect_success("+123 ", "%+-5d", 123));
+ }
+ T(expect_success("123 ", "%-05d", 123));
+ T(expect_success("123 ", "%-005d", 123));
+ T(expect_success("+123 ", "%-+05d", 123));
+ T(expect_success("+123 ", "%-+005d", 123));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): These are incorrect and should be fixed.
+ */
+ T(expect_success("0.00123", "%.5d", 123));
+ T(expect_success("+0.00123", "%+.5d", 123));
+ T(expect_success("0.00123", "%7.5d", 123));
+ T(expect_success(" 0.00123", "%9.5d", 123));
+ T(expect_success(" +0.00123", "%+9.5d", 123));
+ } else {
+ T(expect_success("00123", "%.5d", 123));
+ T(expect_success("+00123", "%+.5d", 123));
+ T(expect_success(" 00123", "%7.5d", 123));
+ T(expect_success(" 00123", "%9.5d", 123));
+ T(expect_success(" +00123", "%+9.5d", 123));
+ }
+
+ T(expect_success("123", "%u", 123));
+ T(expect_success("4294967295", "%u", -1));
T(expect_success("18446744073709551615", "%llu", (uint64_t)-1));
- T(expect_success("0", "%x", 0));
- T(expect_success("0", "%X", 0));
- T(expect_success("5e", "%x", 0X5E));
- T(expect_success("5E", "%X", 0X5E));
+ T(expect_success("0", "%x", 0));
+ T(expect_success("0", "%X", 0));
+ T(expect_success("5e", "%x", 0X5E));
+ T(expect_success("5E", "%X", 0X5E));
+
+ return EC_SUCCESS;
+}
+
+test_static int test_printf_long32_enabled(void)
+{
+ bool use_l32 = IS_ENABLED(CONFIG_PRINTF_LONG_IS_32BITS);
+
+ if (IS_ENABLED(BOARD_BLOONCHIPPER) || IS_ENABLED(BOARD_DARTMONKEY))
+ TEST_ASSERT(use_l32);
+ else
+ TEST_ASSERT(!use_l32);
+ return EC_SUCCESS;
+}
+
+test_static int test_vsnprintf_32bit_long_supported(void)
+{
+ long long_min = INT32_MIN;
+ long long_max = INT32_MAX;
+ unsigned long ulong_max = UINT32_MAX;
+ char const *long_min_str = "-2147483648";
+ char const *long_max_str = "2147483647";
+ char const *ulong_max_str = "4294967295";
+ char const *long_min_hexstr = "80000000";
+ char const *long_max_hexstr = "7fffffff";
+ char const *ulong_max_hexstr = "ffffffff";
+
+ T(expect_success(long_min_str, "%ld", long_min));
+ T(expect_success(long_min_hexstr, "%lx", long_min));
+ T(expect_success(long_max_str, "%ld", long_max));
+ T(expect_success(long_max_hexstr, "%lx", long_max));
+ T(expect_success(ulong_max_str, "%lu", ulong_max));
+ T(expect_success(ulong_max_hexstr, "%lx", ulong_max));
+ T(expect_success(long_max_str, "%ld", long_max));
+
+ T(expect_success(" +123", "%+*ld", 5, 123));
+ T(expect_success("00000123", "%08lu", 123));
+ T(expect_success("131415", "%d%lu%d", 13, 14L, 15));
/*
- * %l is deprecated on 32-bit systems (see crbug.com/984041), but is
- * is still functional on 64-bit systems.
+ * %i and %li are only supported via the CONFIG_PRINTF_LONG_IS_32BITS
+ * configuration (see https://issuetracker.google.com/issues/172210614).
*/
- if (sizeof(long) == sizeof(uint32_t)) {
- T(expect_success(err_str, "%lx", 0x7b));
- T(expect_success(err_str, "%08lu", 0x7b));
- T(expect_success("13ERROR", "%d%lu", 13, 14));
+ T(expect_success("123", "%i", 123));
+ T(expect_success("123", "%li", 123));
+
+ return EC_SUCCESS;
+}
+
+test_static int test_vsnprintf_64bit_long_supported(void)
+{
+ /* These lines are only executed when sizeof(long) is 64-bits but are
+ * still compiled by systems with 32-bit longs, so the casts are needed
+ * to avoid compilation errors.
+ */
+ long long_min = (long)INT64_MIN;
+ long long_max = (long)INT64_MAX;
+ unsigned long ulong_max = (unsigned long)UINT64_MAX;
+ char const *long_min_str = "-9223372036854775808";
+ char const *long_max_str = "9223372036854775807";
+ char const *ulong_max_str = "18446744073709551615";
+ char const *long_min_hexstr = "8000000000000000";
+ char const *long_max_hexstr = "7fffffffffffffff";
+ char const *ulong_max_hexstr = "ffffffffffffffff";
+
+ T(expect_success(long_min_str, "%ld", long_min));
+ T(expect_success(long_min_hexstr, "%lx", long_min));
+ T(expect_success(long_max_str, "%ld", long_max));
+ T(expect_success(long_max_hexstr, "%lx", long_max));
+ T(expect_success(ulong_max_str, "%lu", ulong_max));
+ T(expect_success(ulong_max_hexstr, "%lx", ulong_max));
+ T(expect_success(long_max_str, "%ld", long_max));
+
+ T(expect_success(" +123", "%+*ld", 5, 123));
+ T(expect_success("00000123", "%08lu", 123));
+ T(expect_success("131415", "%d%lu%d", 13, 14L, 15));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): These are incorrect and should be fixed.
+ */
+ T(expect_success(err_str, "%i", 123));
+ T(expect_success(err_str, "%li", 123));
} else {
- T(expect_success("7b", "%lx", 0x7b));
- T(expect_success("00000123", "%08lu", 123));
- T(expect_success("131415", "%d%lu%d", 13, 14L, 15));
+ T(expect_success("123", "%i", 123));
+ T(expect_success("123", "%li", 123));
}
return EC_SUCCESS;
}
+test_static int test_vsnprintf_long_not_supported(void)
+{
+ T(expect_success(err_str, "%ld", 0x7b));
+ T(expect_success(err_str, "%li", 0x7b));
+ T(expect_success(err_str, "%lu", 0x7b));
+ T(expect_success(err_str, "%lx", 0x7b));
+ T(expect_success(err_str, "%08lu", 123));
+ T(expect_success("13ERROR", "%d%lu%d", 13, 14L, 15));
+
+ T(expect_success(err_str, "%i", 123));
+ T(expect_success(err_str, "%li", 123));
+
+ return EC_SUCCESS;
+}
+
+test_static int test_vsnprintf_long(void)
+{
+ /*
+ * %l is functional on 64-bit systems but is not supported on 32-bit
+ * systems (see https://issuetracker.google.com/issues/172210614) unless
+ * explicitly enabled via configuration.
+ */
+ if (IS_ENABLED(CONFIG_PRINTF_LONG_IS_32BITS))
+ return test_vsnprintf_32bit_long_supported();
+ else if (sizeof(long) == sizeof(uint64_t))
+ return test_vsnprintf_64bit_long_supported();
+ else
+ return test_vsnprintf_long_not_supported();
+}
+
test_static int test_vsnprintf_pointers(void)
{
void *ptr = (void *)0x55005E00;
- unsigned int val = 0;
-
- T(expect_success("55005e00", "%pP", ptr));
- T(expect_success(err_str, "%P", ptr));
- /* %p by itself is invalid */
- T(expect(EC_ERROR_INVAL, NO_BYTES_TOUCHED,
- false, 0, "%p"));
- /* %p with an unknown suffix is invalid */
- T(expect(EC_ERROR_INVAL, NO_BYTES_TOUCHED,
- false, 0, "%p "));
- /* %p with an unknown suffix is invalid */
- T(expect(EC_ERROR_INVAL, NO_BYTES_TOUCHED,
- false, 0, "%pQ"));
-
- /* Test %pb, binary format */
- T(expect_success("0", "%pb", BINARY_VALUE(val, 0)));
- val = 0x5E;
- T(expect_success("1011110", "%pb", BINARY_VALUE(val, 0)));
- T(expect_success("0000000001011110", "%pb", BINARY_VALUE(val, 16)));
- val = 0x12345678;
- T(expect_success("10010001101000101011001111000", "%pb",
- BINARY_VALUE(val, 0)));
- val = 0xFEDCBA90;
- /* Test a number that makes the longest string possible */
- T(expect_success("11111110110111001011101010010000", "%pb",
- BINARY_VALUE(val, 0)));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This incorrect and should be fixed.
+ */
+ T(expect_success("55005e00", "%p", ptr));
+ } else {
+ T(expect_success("0x55005e00", "%p", ptr));
+ }
+
return EC_SUCCESS;
}
test_static int test_vsnprintf_chars(void)
{
- T(expect_success("a", "%c", 'a'));
- T(expect_success("*", "%c", '*'));
+ T(expect_success("a", "%c", 'a'));
+ T(expect_success("*", "%c", '*'));
return EC_SUCCESS;
}
test_static int test_vsnprintf_strings(void)
{
- T(expect_success("abc", "%s", "abc"));
- T(expect_success(" abc", "%5s", "abc"));
- T(expect_success("abc", "%0s", "abc"));
- T(expect_success("abc ", "%-5s", "abc"));
- T(expect_success("abc", "%*s", 0, "abc"));
- T(expect_success("a", "%.1s", "abc"));
- T(expect_success("a", "%.*s", 1, "abc"));
- T(expect_success("", "%.0s", "abc"));
- T(expect_success("", "%.*s", 0, "abc"));
- /*
- * TODO(crbug.com/974084):
- * Ignoring the padding parameter is slightly
- * odd behavior and could use a review.
- */
- T(expect_success("ab", "%5.2s", "abc"));
- T(expect_success("abc", "%.4s", "abc"));
+ T(expect_success("abc", "%s", "abc"));
+ T(expect_success(" abc", "%5s", "abc"));
+ T(expect_success("abc", "%0s", "abc"));
+ T(expect_success("abc ", "%-5s", "abc"));
+ T(expect_success("abc", "%*s", 0, "abc"));
+ T(expect_success("a", "%.1s", "abc"));
+ T(expect_success("a", "%.*s", 1, "abc"));
+ T(expect_success("", "%.0s", "abc"));
+ T(expect_success("", "%.*s", 0, "abc"));
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(b/239233116): This incorrect and should be fixed.
+ */
+ T(expect_success("ab", "%5.2s", "abc"));
+ } else {
+ T(expect_success(" ab", "%5.2s", "abc"));
+ }
+ T(expect_success("abc", "%.4s", "abc"));
/*
* Given a malformed string (address 0x1 is a good example),
* if we ask for zero precision, expect no bytes to be read
* from the malformed address and a blank output string.
*/
- T(expect_success("", "%.0s", (char *)1));
+ T(expect_success("", "%.0s", (char *)1));
return EC_SUCCESS;
}
-test_static int test_vsnprintf_timestamps(void)
+test_static int test_snprintf_timestamp(void)
{
+ char str[PRINTF_TIMESTAMP_BUF_SIZE];
+ int size;
+ int ret;
uint64_t ts = 0;
- T(expect_success("0.000000", "%pT", &ts));
+ /* Success cases. */
+
+ ret = snprintf_timestamp(str, sizeof(str), ts);
+ TEST_EQ(ret, 8, "%d");
+ TEST_ASSERT_ARRAY_EQ(str, "0.000000", sizeof("0.000000"));
+
ts = 123456;
- T(expect_success("0.123456", "%pT", &ts));
+ ret = snprintf_timestamp(str, sizeof(str), ts);
+ TEST_EQ(ret, 8, "%d");
+ TEST_ASSERT_ARRAY_EQ(str, "0.123456", sizeof("0.123456"));
+
ts = 9999999000000;
- T(expect_success("9999999.000000", "%pT", &ts));
+ ret = snprintf_timestamp(str, sizeof(str), ts);
+ TEST_EQ(ret, 14, "%d");
+ TEST_ASSERT_ARRAY_EQ(str, "9999999.000000", sizeof("9999999.000000"));
+
+ ts = UINT64_MAX;
+ ret = snprintf_timestamp(str, sizeof(str), ts);
+ TEST_EQ(ret, 21, "%d");
+ TEST_ASSERT_ARRAY_EQ(str, "18446744073709.551615",
+ sizeof("18446744073709.551615"));
+
+ /* Error cases. */
+
+ /* Buffer is too small by one. */
+ size = 21;
+ ts = UINT64_MAX;
+ str[0] = 'f';
+ ret = snprintf_timestamp(str, size, ts);
+ TEST_EQ(ret, -EC_ERROR_OVERFLOW, "%d");
+ TEST_EQ(str[0], '\0', "%d");
+
+ /* Size is zero. */
+ size = 0;
+ ts = UINT64_MAX;
+ str[0] = 'f';
+ ret = snprintf_timestamp(str, size, ts);
+ TEST_EQ(ret, -EC_ERROR_INVAL, "%d");
+ TEST_EQ(str[0], 'f', "%d");
+
+ /* Size is one. */
+ size = 1;
+ ts = UINT64_MAX;
+ str[0] = 'f';
+ ret = snprintf_timestamp(str, size, ts);
+ TEST_EQ(ret, -EC_ERROR_OVERFLOW, "%d");
+ TEST_EQ(str[0], '\0', "%d");
+
return EC_SUCCESS;
}
-test_static int test_vsnprintf_hexdump(void)
+test_static int test_snprintf_hex_buffer(void)
{
- const char bytes[] = {0x00, 0x5E};
+ const uint8_t bytes[] = { 0xAB, 0x5E };
+ char str_buf[5];
+ int rv;
+
+ /* Success cases. */
+
+ memset(str_buf, 0xff, sizeof(str_buf));
+ rv = snprintf_hex_buffer(str_buf, sizeof(str_buf), HEX_BUF(bytes, 2));
+ TEST_ASSERT_ARRAY_EQ(str_buf, "ab5e", sizeof("ab5e"));
+ TEST_EQ(rv, 4, "%d");
+
+ memset(str_buf, 0xff, sizeof(str_buf));
+ rv = snprintf_hex_buffer(str_buf, sizeof(str_buf), HEX_BUF(bytes, 0));
+ TEST_ASSERT_ARRAY_EQ(str_buf, "", sizeof(""));
+ TEST_EQ(rv, 0, "%d");
+
+ memset(str_buf, 0xff, sizeof(str_buf));
+ rv = snprintf_hex_buffer(str_buf, sizeof(str_buf), HEX_BUF(bytes, 1));
+ TEST_ASSERT_ARRAY_EQ(str_buf, "ab", sizeof("ab"));
+ TEST_EQ(rv, 2, "%d");
+
+ /* Error cases. */
+
+ /* Zero for buffer size argument is an error. */
+ memset(str_buf, 0xff, sizeof(str_buf));
+ TEST_ASSERT_MEMSET(str_buf, (char)0xff, sizeof(str_buf));
+ rv = snprintf_hex_buffer(str_buf, 0, HEX_BUF(bytes, 2));
+ TEST_EQ(rv, -EC_ERROR_INVAL, "%d");
+ TEST_ASSERT_MEMSET(str_buf, (char)0xff, sizeof(str_buf));
+
+ /* Buffer only has space for terminating '\0'. */
+ memset(str_buf, 0xff, sizeof(str_buf));
+ TEST_ASSERT_MEMSET(str_buf, (char)0xff, sizeof(str_buf));
+ rv = snprintf_hex_buffer(str_buf, 1, HEX_BUF(bytes, 1));
+ TEST_ASSERT_ARRAY_EQ(str_buf, "", sizeof(""));
+ TEST_EQ(rv, -EC_ERROR_OVERFLOW, "%d");
+
+ /* Buffer only has space for one character and '\0'. */
+ memset(str_buf, 0xff, sizeof(str_buf));
+ TEST_ASSERT_MEMSET(str_buf, (char)0xff, sizeof(str_buf));
+ rv = snprintf_hex_buffer(str_buf, 2, HEX_BUF(bytes, 1));
+ TEST_ASSERT_ARRAY_EQ(str_buf, "a", sizeof("a"));
+ TEST_EQ(rv, -EC_ERROR_OVERFLOW, "%d");
- T(expect_success("005e", "%ph", HEX_BUF(bytes, 2)));
- T(expect_success("", "%ph", HEX_BUF(bytes, 0)));
- T(expect_success("00", "%ph", HEX_BUF(bytes, 1)));
return EC_SUCCESS;
}
test_static int test_vsnprintf_combined(void)
{
- T(expect_success("abc", "%c%s", 'a', "bc"));
- T(expect_success("12\tbc", "%d\t%s", 12, "bc"));
+ T(expect_success("abc", "%c%s", 'a', "bc"));
+ T(expect_success("12\tbc", "%d\t%s", 12, "bc"));
+ return EC_SUCCESS;
+}
+
+test_static int test_uint64_to_str(void)
+{
+ /* Longest uin64 in decimal = 20, plus terminating NUL. */
+ char buf[21];
+ char *str;
+
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/0, /*precision=*/-1,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "0", sizeof("0"));
+
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/UINT64_MAX,
+ /*precision=*/-1, /*base=*/10,
+ /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "18446744073709551615",
+ sizeof("18446744073709551615"));
+
+ /* Buffer too small by 1. */
+ str = uint64_to_str(buf, /*buf_len=*/20, /*val=*/UINT64_MAX,
+ /*precision=*/-1, /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* lower case hex */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/0, /*precision=*/-1,
+ /*base=*/16, /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "0", sizeof("0"));
+
+ /* lower case hex */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/UINT64_MAX,
+ /*precision=*/-1, /*base=*/16,
+ /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "ffffffffffffffff",
+ sizeof("fffffffffffffff"));
+
+ /* upper case hex */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/0, /*precision=*/-1,
+ /*base=*/16, /*uppercase=*/true);
+ TEST_ASSERT_ARRAY_EQ(str, "0", sizeof("0"));
+
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/UINT64_MAX,
+ /*precision=*/-1, /*base=*/16,
+ /*uppercase=*/true);
+ TEST_ASSERT_ARRAY_EQ(str, "FFFFFFFFFFFFFFFF",
+ sizeof("FFFFFFFFFFFFFFF"));
+
+ /* precision 0 */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/1, /*precision=*/0,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "1.", sizeof("1."));
+
+ /* precision 6 */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/1, /*precision=*/6,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "0.000001", sizeof("0.000001"));
+
+ /* Reduced precision due to buffer that is too small. */
+ str = uint64_to_str(buf, /*buf_len=*/8, /*val=*/1, /*precision=*/6,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "0.00001", sizeof("0.00001"));
+
+ /*
+ * Reduced precision due to buffer that is too small, so precision
+ * gets changed to 0.
+ */
+ str = uint64_to_str(buf, /*buf_len=*/3, /*val=*/1, /*precision=*/6,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT_ARRAY_EQ(str, "1.", sizeof("1."));
+
+ /* Precision is unable to fit in provided buffer. */
+ str = uint64_to_str(buf, /*buf_len=*/2, /*val=*/1, /*precision=*/6,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* Negative base. */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/0, /*precision=*/-1,
+ /*base=*/-1, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* Base zero. */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/1, /*precision=*/-1,
+ /*base=*/0, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* Base one. */
+ str = uint64_to_str(buf, sizeof(buf), /*val=*/1, /*precision=*/-1,
+ /*base=*/1, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* Buffer size 1. */
+ str = uint64_to_str(buf, /*buf_len=*/1, /*val=*/0, /*precision=*/-1,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* Buffer size 0. */
+ str = uint64_to_str(buf, /*buf_len=*/0, /*val=*/0, /*precision=*/-1,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
+ /* Buffer size -1. */
+ str = uint64_to_str(buf, /*buf_len=*/-1, /*val=*/0, /*precision=*/-1,
+ /*base=*/10, /*uppercase=*/false);
+ TEST_ASSERT(str == NULL);
+
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
RUN_TEST(test_vsnprintf_args);
RUN_TEST(test_vsnprintf_int);
+ RUN_TEST(test_printf_long32_enabled);
+ RUN_TEST(test_vsnprintf_long);
RUN_TEST(test_vsnprintf_pointers);
RUN_TEST(test_vsnprintf_chars);
RUN_TEST(test_vsnprintf_strings);
- RUN_TEST(test_vsnprintf_timestamps);
- RUN_TEST(test_vsnprintf_hexdump);
RUN_TEST(test_vsnprintf_combined);
+ RUN_TEST(test_uint64_to_str);
+ RUN_TEST(test_snprintf_timestamp);
+ RUN_TEST(test_snprintf_hex_buffer);
test_print_result();
}
diff --git a/test/printf.tasklist b/test/printf.tasklist
index 9fc1a80f4d..844ddb6c10 100644
--- a/test/printf.tasklist
+++ b/test/printf.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/queue.c b/test/queue.c
index e0be1b5d9a..c21e00a050 100644
--- a/test/queue.c
+++ b/test/queue.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -40,7 +40,7 @@ static int test_queue8_init(void)
static int test_queue8_fifo(void)
{
- char buf1[3] = {1, 2, 3};
+ char buf1[3] = { 1, 2, 3 };
char buf2[3];
TEST_ASSERT(queue_add_units(&test_queue8, buf1 + 0, 1) == 1);
@@ -55,7 +55,7 @@ static int test_queue8_fifo(void)
static int test_queue8_multiple_units_add(void)
{
- char buf1[5] = {1, 2, 3, 4, 5};
+ char buf1[5] = { 1, 2, 3, 4, 5 };
char buf2[5];
TEST_ASSERT(queue_space(&test_queue8) >= 5);
@@ -68,7 +68,7 @@ static int test_queue8_multiple_units_add(void)
static int test_queue8_removal(void)
{
- char buf1[5] = {1, 2, 3, 4, 5};
+ char buf1[5] = { 1, 2, 3, 4, 5 };
char buf2[5];
TEST_ASSERT(queue_add_units(&test_queue8, buf1, 5) == 5);
@@ -105,7 +105,7 @@ static int test_queue8_removal(void)
static int test_queue8_peek(void)
{
- char buf1[5] = {1, 2, 3, 4, 5};
+ char buf1[5] = { 1, 2, 3, 4, 5 };
char buf2[5];
TEST_ASSERT(queue_add_units(&test_queue8, buf1, 5) == 5);
@@ -122,7 +122,7 @@ static int test_queue8_peek(void)
static int test_queue2_odd_even(void)
{
- uint16_t buf1[3] = {1, 2, 3};
+ uint16_t buf1[3] = { 1, 2, 3 };
uint16_t buf2[3];
TEST_ASSERT(queue_add_units(&test_queue2, buf1, 1) == 1);
@@ -147,7 +147,7 @@ static int test_queue2_odd_even(void)
static int test_queue8_chunks(void)
{
- static uint8_t const data[3] = {1, 2, 3};
+ static uint8_t const data[3] = { 1, 2, 3 };
struct queue_chunk chunk;
chunk = queue_get_write_chunk(&test_queue8, 0);
@@ -161,7 +161,7 @@ static int test_queue8_chunks(void)
chunk = queue_get_read_chunk(&test_queue8);
TEST_ASSERT(chunk.count == 3);
- TEST_ASSERT_ARRAY_EQ((uint8_t *) chunk.buffer, data, 3);
+ TEST_ASSERT_ARRAY_EQ((uint8_t *)chunk.buffer, data, 3);
TEST_ASSERT(queue_advance_head(&test_queue8, 3) == 3);
TEST_ASSERT(queue_is_empty(&test_queue8));
@@ -171,7 +171,7 @@ static int test_queue8_chunks(void)
static int test_queue8_chunks_wrapped(void)
{
- static uint8_t const data[3] = {1, 2, 3};
+ static uint8_t const data[3] = { 1, 2, 3 };
/* Move near the end of the queue */
TEST_ASSERT(queue_advance_tail(&test_queue8, 6) == 6);
@@ -213,7 +213,7 @@ static int test_queue8_chunks_wrapped(void)
static int test_queue8_chunks_full(void)
{
- static uint8_t const data[8] = {1, 2, 3, 4, 5, 6, 7, 8};
+ static uint8_t const data[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
struct queue_chunk chunk;
/* Move near the end of the queue */
@@ -230,7 +230,7 @@ static int test_queue8_chunks_full(void)
chunk = queue_get_read_chunk(&test_queue8);
TEST_ASSERT(chunk.count == 2);
- TEST_ASSERT_ARRAY_EQ((uint8_t *) chunk.buffer, data, 2);
+ TEST_ASSERT_ARRAY_EQ((uint8_t *)chunk.buffer, data, 2);
/* Signal that we have read both units */
TEST_ASSERT(queue_advance_head(&test_queue8, 2) == 2);
@@ -239,8 +239,7 @@ static int test_queue8_chunks_full(void)
chunk = queue_get_read_chunk(&test_queue8);
TEST_ASSERT(chunk.count == 6);
- TEST_ASSERT_ARRAY_EQ((uint8_t *) chunk.buffer, data + 2, 6);
-
+ TEST_ASSERT_ARRAY_EQ((uint8_t *)chunk.buffer, data + 2, 6);
return EC_SUCCESS;
}
@@ -287,12 +286,12 @@ static int test_queue8_chunks_offset(void)
/* Check offsetting by 1 */
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 1).count == 7);
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 1).buffer ==
- test_queue8.buffer + 1);
+ test_queue8.buffer + 1);
/* Check offsetting by 4 */
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 4).count == 4);
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 4).buffer ==
- test_queue8.buffer + 4);
+ test_queue8.buffer + 4);
/* Check offset wrapping around */
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 10).count == 0);
@@ -309,12 +308,12 @@ static int test_queue8_chunks_offset(void)
/* Get writable chunk to right of tail. */
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 2).count == 2);
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 2).buffer ==
- test_queue8.buffer + 6);
+ test_queue8.buffer + 6);
/* Get writable chunk wrapped and before head. */
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 4).count == 2);
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 4).buffer ==
- test_queue8.buffer);
+ test_queue8.buffer);
/* Check offsetting into non-writable memory. */
TEST_ASSERT(queue_get_write_chunk(&test_queue8, 6).count == 0);
@@ -415,7 +414,7 @@ void before_test(void)
queue_init(&test_queue8);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/queue.tasklist b/test/queue.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/queue.tasklist
+++ b/test/queue.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/rgb_keyboard.c b/test/rgb_keyboard.c
index a8da437f7c..d32215e649 100644
--- a/test/rgb_keyboard.c
+++ b/test/rgb_keyboard.c
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -51,12 +51,11 @@ const uint8_t rgbkbd_count = ARRAY_SIZE(rgbkbds);
const uint8_t rgbkbd_hsize = RGB_GRID0_COL + RGB_GRID1_COL;
const uint8_t rgbkbd_vsize = RGB_GRID0_ROW;
+enum ec_rgbkbd_type rgbkbd_type = EC_RGBKBD_TYPE_UNKNOWN;
+
const uint8_t rgbkbd_map[] = {
- RGBKBD_DELM,
- RGBKBD_COORD(1, 2), RGBKBD_DELM,
- RGBKBD_COORD(3, 4), RGBKBD_COORD(5, 6), RGBKBD_DELM,
- RGBKBD_DELM,
- RGBKBD_DELM,
+ RGBKBD_DELM, RGBKBD_COORD(1, 2), RGBKBD_DELM, RGBKBD_COORD(3, 4),
+ RGBKBD_COORD(5, 6), RGBKBD_DELM, RGBKBD_DELM, RGBKBD_DELM,
};
const size_t rgbkbd_map_size = ARRAY_SIZE(rgbkbd_map);
@@ -72,9 +71,13 @@ static struct rgbkbd_mock {
uint32_t gcc_level;
} mock_state;
-__override void board_kblight_init(void) {}
+__override void board_kblight_init(void)
+{
+}
-__override void board_kblight_shutdown(void) {}
+__override void board_kblight_shutdown(void)
+{
+}
void before_test(void)
{
@@ -106,7 +109,6 @@ static int test_drv_set_color(struct rgbkbd *ctx, uint8_t offset,
return EC_SUCCESS;
}
-
static int test_drv_set_scale(struct rgbkbd *ctx, uint8_t offset,
struct rgb_s scale, uint8_t len)
{
@@ -130,8 +132,8 @@ static int test_rgbkbd_map(void)
rgbkbd_init_lookup_table();
led.u8 = rgbkbd_map[rgbkbd_table[0]];
- zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y),
- RGBKBD_DELM, "key[0] -> None");
+ zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y), RGBKBD_DELM,
+ "key[0] -> None");
led.u8 = rgbkbd_map[rgbkbd_table[1]];
zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y),
@@ -145,12 +147,12 @@ static int test_rgbkbd_map(void)
RGBKBD_COORD(5, 6), "key[2] -> LED(5,6)");
led.u8 = rgbkbd_map[rgbkbd_table[3]];
- zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y),
- RGBKBD_DELM, "key[3] -> None");
+ zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y), RGBKBD_DELM,
+ "key[3] -> None");
led.u8 = rgbkbd_map[rgbkbd_table[4]];
- zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y),
- RGBKBD_DELM, "key[4] -> None");
+ zassert_equal(RGBKBD_COORD(led.coord.x, led.coord.y), RGBKBD_DELM,
+ "key[4] -> None");
return EC_SUCCESS;
}
@@ -210,7 +212,7 @@ static int test_rgbkbd_startup(void)
return EC_SUCCESS;
}
-int cc_rgb(int argc, char **argv);
+int cc_rgb(int argc, const char **argv);
extern enum ec_rgbkbd_demo demo;
static int test_rgbkbd_console_command(void)
@@ -220,10 +222,10 @@ static int test_rgbkbd_console_command(void)
char buf[8];
int i, x, y, r, c;
uint8_t offset;
- char *argv_demo[] = {"rgbk", "demo", "0"};
- char *argv_gcc[] = {"rgbk", "100"};
- char *argv_color[] = {"rgbk", buf, "0x010203"};
- char *argv_all[] = {"rgbk", "all", "0x010203"};
+ const char *argv_demo[] = { "rgbk", "demo", "0" };
+ const char *argv_gcc[] = { "rgbk", "100" };
+ const char *argv_color[] = { "rgbk", buf, "0x010203" };
+ const char *argv_all[] = { "rgbk", "all", "0x010203" };
/* Test 'rgbk demo 0'. */
before_test();
@@ -248,8 +250,8 @@ static int test_rgbkbd_console_command(void)
offset = rgbkbd_vsize * x + y;
sprintf(buf, "%d,%d", x, y);
argc = ARRAY_SIZE(argv_color);
- zassert_equal(cc_rgb(argc, argv_color), EC_SUCCESS,
- "rgbk %s 0x010203", buf);
+ zassert_equal(cc_rgb(argc, argv_color), EC_SUCCESS, "rgbk %s 0x010203",
+ buf);
zassert_equal(ctx->buf[offset].r, 1, "R = 1");
zassert_equal(ctx->buf[offset].g, 2, "G = 2");
zassert_equal(ctx->buf[offset].b, 3, "B = 3");
@@ -261,8 +263,8 @@ static int test_rgbkbd_console_command(void)
y = -1;
sprintf(buf, "%d,%d", x, y);
argc = ARRAY_SIZE(argv_color);
- zassert_equal(cc_rgb(argc, argv_color), EC_SUCCESS,
- "rgbk %s 1 2 3", buf);
+ zassert_equal(cc_rgb(argc, argv_color), EC_SUCCESS, "rgbk %s 1 2 3",
+ buf);
for (r = 0; r < rgbkbd_vsize; r++) {
offset = rgbkbd_vsize * x + r;
zassert_equal(ctx->buf[offset].r, 1, "R = 1");
@@ -276,8 +278,8 @@ static int test_rgbkbd_console_command(void)
y = 1;
sprintf(buf, "%d,%d", x, y);
argc = ARRAY_SIZE(argv_color);
- zassert_equal(cc_rgb(argc, argv_color), EC_SUCCESS,
- "rgbk %s 1 2 3", buf);
+ zassert_equal(cc_rgb(argc, argv_color), EC_SUCCESS, "rgbk %s 1 2 3",
+ buf);
for (c = 0; c < rgbkbd_hsize; c++) {
ctx = &rgbkbds[c / rgbkbds[0].cfg->col_len];
offset = rgbkbd_vsize * (c % ctx->cfg->col_len) + y;
@@ -340,7 +342,7 @@ static int test_rgbkbd_rotate_color(void)
static int test_rgbkbd_demo_flow(void)
{
struct rgb_s copy[ARRAY_SIZE(rgbkbds)][RGB_GRID0_COL * RGB_GRID0_ROW];
- char *argv_demo[] = {"rgbk", "demo", "1"};
+ const char *argv_demo[] = { "rgbk", "demo", "1" };
struct rgb_s *p;
int argc;
struct rgbkbd *ctx;
@@ -385,7 +387,7 @@ static int test_rgbkbd_demo_flow(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_rgbkbd_startup);
RUN_TEST(test_rgbkbd_console_command);
diff --git a/test/rgb_keyboard.tasklist b/test/rgb_keyboard.tasklist
index fb85751609..9b25deacfb 100644
--- a/test/rgb_keyboard.tasklist
+++ b/test/rgb_keyboard.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/rollback.c b/test/rollback.c
index 2038333311..e2c1070ef4 100644
--- a/test/rollback.c
+++ b/test/rollback.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -47,7 +47,7 @@ test_static int read_rollback_region(const struct rollback_info *info,
for (i = 0; i < info->region_size_bytes; i++) {
if (crec_flash_read(offset + i, sizeof(data), &data) ==
- EC_SUCCESS)
+ EC_SUCCESS)
bytes_read++;
}
@@ -105,7 +105,7 @@ test_static int test_lock_rollback_region_1(void)
return _test_lock_rollback(&rollback_info, 1);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
if (argc < 2) {
ccprintf("usage: runtest [region0|region1]\n");
diff --git a/test/rollback.tasklist b/test/rollback.tasklist
index 51734f058d..a1f1a94e2d 100644
--- a/test/rollback.tasklist
+++ b/test/rollback.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/rollback_entropy.c b/test/rollback_entropy.c
index 788fab2572..50a8cb4701 100644
--- a/test/rollback_entropy.c
+++ b/test/rollback_entropy.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -12,9 +12,7 @@
static const uint32_t VALID_ROLLBACK_COOKIE = 0x0b112233;
static const uint32_t UNINITIALIZED_ROLLBACK_COOKIE = 0xffffffff;
-static const uint8_t FAKE_ENTROPY[] = {
- 0xff, 0xff, 0xff, 0xff
-};
+static const uint8_t FAKE_ENTROPY[] = { 0xff, 0xff, 0xff, 0xff };
/*
* Generated by concatenating 32-bytes (256-bits) of zeros with the 4 bytes
@@ -26,13 +24,12 @@ static const uint8_t FAKE_ENTROPY[] = {
*
* 890ed82cf09f22243bdc4252e4d79c8a9810c1391f455dce37a7b732eb0a0e4f
*/
-#define EXPECTED_SECRET \
- 0x89, 0x0e, 0xd8, 0x2c, 0xf0, 0x9f, 0x22, 0x24, 0x3b, 0xdc, 0x42, \
- 0x52, 0xe4, 0xd7, 0x9c, 0x8a, 0x98, 0x10, 0xc1, 0x39, 0x1f, 0x45, \
- 0x5d, 0xce, 0x37, 0xa7, 0xb7, 0x32, 0xeb, 0x0a, 0x0e, 0x4f
-__maybe_unused static const uint8_t _EXPECTED_SECRET[] = {
- EXPECTED_SECRET
-};
+#define EXPECTED_SECRET \
+ 0x89, 0x0e, 0xd8, 0x2c, 0xf0, 0x9f, 0x22, 0x24, 0x3b, 0xdc, 0x42, \
+ 0x52, 0xe4, 0xd7, 0x9c, 0x8a, 0x98, 0x10, 0xc1, 0x39, 0x1f, \
+ 0x45, 0x5d, 0xce, 0x37, 0xa7, 0xb7, 0x32, 0xeb, 0x0a, 0x0e, \
+ 0x4f
+__maybe_unused static const uint8_t _EXPECTED_SECRET[] = { EXPECTED_SECRET };
BUILD_ASSERT(sizeof(_EXPECTED_SECRET) == CONFIG_ROLLBACK_SECRET_SIZE);
/*
@@ -45,22 +42,20 @@ BUILD_ASSERT(sizeof(_EXPECTED_SECRET) == CONFIG_ROLLBACK_SECRET_SIZE);
*
* b5d2c08b1f9109ac5c67de15486f0ac267ef9501bd9f646f4ea80085cb08284c
*/
-#define EXPECTED_SECRET2 \
- 0xb5, 0xd2, 0xc0, 0x8b, 0x1f, 0x91, 0x09, 0xac, 0x5c, 0x67, 0xde, \
- 0x15, 0x48, 0x6f, 0x0a, 0xc2, 0x67, 0xef, 0x95, 0x01, 0xbd, 0x9f, \
- 0x64, 0x6f, 0x4e, 0xa8, 0x00, 0x85, 0xcb, 0x08, 0x28, 0x4c
-__maybe_unused static const uint8_t _EXPECTED_SECRET2[] = {
- EXPECTED_SECRET2
-};
+#define EXPECTED_SECRET2 \
+ 0xb5, 0xd2, 0xc0, 0x8b, 0x1f, 0x91, 0x09, 0xac, 0x5c, 0x67, 0xde, \
+ 0x15, 0x48, 0x6f, 0x0a, 0xc2, 0x67, 0xef, 0x95, 0x01, 0xbd, \
+ 0x9f, 0x64, 0x6f, 0x4e, 0xa8, 0x00, 0x85, 0xcb, 0x08, 0x28, \
+ 0x4c
+__maybe_unused static const uint8_t _EXPECTED_SECRET2[] = { EXPECTED_SECRET2 };
BUILD_ASSERT(sizeof(_EXPECTED_SECRET2) == CONFIG_ROLLBACK_SECRET_SIZE);
-#define EXPECTED_UNINITIALIZED_ROLLBACK_SECRET \
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-__maybe_unused static const uint8_t
-_EXPECTED_UNINITIALIZED_ROLLBACK_SECRET[] = {
+#define EXPECTED_UNINITIALIZED_ROLLBACK_SECRET \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \
+ 0xff,
+__maybe_unused static const uint8_t _EXPECTED_UNINITIALIZED_ROLLBACK_SECRET[] = {
EXPECTED_UNINITIALIZED_ROLLBACK_SECRET
};
BUILD_ASSERT(sizeof(_EXPECTED_UNINITIALIZED_ROLLBACK_SECRET) ==
@@ -143,7 +138,8 @@ test_static int test_add_entropy(void)
/* Immediately after boot region 1 should not yet be initialized. */
rv = read_rollback(1, &rb_data);
TEST_EQ(rv, EC_SUCCESS, "%d");
- TEST_EQ(check_equal(&rb_data, &expected_uninitialized), EC_SUCCESS, "%d");
+ TEST_EQ(check_equal(&rb_data, &expected_uninitialized), EC_SUCCESS,
+ "%d");
/*
* Add entropy. The result should end up being written to the unused
@@ -186,7 +182,7 @@ test_static int test_add_entropy(void)
return rv;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
ccprintf("Running rollback_entropy test\n");
RUN_TEST(test_add_entropy);
diff --git a/test/rollback_entropy.tasklist b/test/rollback_entropy.tasklist
index 51734f058d..a1f1a94e2d 100644
--- a/test/rollback_entropy.tasklist
+++ b/test/rollback_entropy.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/rsa.c b/test/rsa.c
index 8e4eeef54c..2774e9edb4 100644
--- a/test/rsa.c
+++ b/test/rsa.c
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -21,9 +21,9 @@
#include "rsa2048-F4.h"
#endif
-static uint32_t rsa_workbuf[3 * RSANUMBYTES/4];
+static uint32_t rsa_workbuf[3 * RSANUMBYTES / 4];
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
int good;
@@ -45,7 +45,7 @@ void run_test(int argc, char **argv)
ccprintf("RSA verify FAILED (as expected)\n");
/* Test with a wrong signature */
- good = rsa_verify(rsa_key, sig+1, hash, rsa_workbuf);
+ good = rsa_verify(rsa_key, sig + 1, hash, rsa_workbuf);
if (good) {
ccprintf("RSA verify OK (expected fail)\n");
test_fail();
diff --git a/test/rsa.tasklist b/test/rsa.tasklist
index f46a2eaa1d..bf2309064a 100644
--- a/test/rsa.tasklist
+++ b/test/rsa.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/rsa2048-3.h b/test/rsa2048-3.h
index d1b15c15a4..17b3c8989a 100644
--- a/test/rsa2048-3.h
+++ b/test/rsa2048-3.h
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -13,7 +13,7 @@
* # dumpRSAPublicKey -pub key.pub | xxd -i
*/
const uint8_t rsa_data[] = {
- 0x40, 0x00, 0x00, 0x00, 0x0f, 0x46, 0xe8, 0x2c, 0x11, 0x17, 0x38, 0xfd,
+ 0x40, 0x00, 0x00, 0x00, 0x0f, 0x46, 0xe8, 0x2c, 0x11, 0x17, 0x38, 0xfd,
0xef, 0xa2, 0xb5, 0x2d, 0x6d, 0x76, 0xe1, 0x70, 0x7d, 0x67, 0xb1, 0x9a,
0x18, 0x78, 0x90, 0xe2, 0xce, 0xa6, 0x81, 0xa0, 0x13, 0x37, 0xf2, 0x71,
0xf0, 0x44, 0x96, 0xaf, 0x52, 0x53, 0xd4, 0x23, 0x51, 0x19, 0xe5, 0xb0,
@@ -65,18 +65,16 @@ BUILD_ASSERT(sizeof(*rsa_key) == sizeof(rsa_data));
/* SHA-256 sum to verify:
* # sha256sum README | sed -e 's/\(..\)/0x\1, /mg'
*/
-const uint8_t hash[] = {
- 0x6c, 0x5f, 0xef, 0x7f, 0x63, 0x1d, 0xb4, 0x35, 0x6c, 0xae, 0x8b, 0x2a,
- 0x4e, 0xde, 0xc5, 0xeb, 0x11, 0xba, 0x1f, 0x44, 0x40, 0xb6, 0x3a, 0x52,
- 0xf2, 0x70, 0xef, 0xee, 0x44, 0x4b, 0x57, 0x62
-};
+const uint8_t hash[] = { 0x6c, 0x5f, 0xef, 0x7f, 0x63, 0x1d, 0xb4, 0x35,
+ 0x6c, 0xae, 0x8b, 0x2a, 0x4e, 0xde, 0xc5, 0xeb,
+ 0x11, 0xba, 0x1f, 0x44, 0x40, 0xb6, 0x3a, 0x52,
+ 0xf2, 0x70, 0xef, 0xee, 0x44, 0x4b, 0x57, 0x62 };
/* Incorrect hash to test the negative case */
-const uint8_t hash_wrong[] = {
- 0x61, 0x1b, 0xd2, 0x44, 0xc7, 0x18, 0xa7, 0x2d, 0x0f, 0x2d, 0x3d, 0x0f,
- 0xe3, 0xb3, 0xc5, 0xe4, 0x12, 0xc2, 0x7b, 0x1e, 0x05, 0x2c, 0x6f, 0xad,
- 0xc4, 0xac, 0x71, 0x55, 0xe8, 0x80, 0x5c, 0x38
-};
+const uint8_t hash_wrong[] = { 0x61, 0x1b, 0xd2, 0x44, 0xc7, 0x18, 0xa7, 0x2d,
+ 0x0f, 0x2d, 0x3d, 0x0f, 0xe3, 0xb3, 0xc5, 0xe4,
+ 0x12, 0xc2, 0x7b, 0x1e, 0x05, 0x2c, 0x6f, 0xad,
+ 0xc4, 0xac, 0x71, 0x55, 0xe8, 0x80, 0x5c, 0x38 };
/* Generate signature using futility:
* # futility create key.pem
diff --git a/test/rsa2048-F4.h b/test/rsa2048-F4.h
index afe66a198f..08b8f70155 100644
--- a/test/rsa2048-F4.h
+++ b/test/rsa2048-F4.h
@@ -1,4 +1,4 @@
-/* Copyright 2016 The Chromium OS Authors. All rights reserved.
+/* Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -65,18 +65,16 @@ BUILD_ASSERT(sizeof(*rsa_key) == sizeof(rsa_data));
/* SHA-256 sum to verify:
* # sha256sum README | sed -e 's/\(..\)/0x\1, /mg'
*/
-const uint8_t hash[] = {
- 0x6c, 0x5f, 0xef, 0x7f, 0x63, 0x1d, 0xb4, 0x35, 0x6c, 0xae, 0x8b, 0x2a,
- 0x4e, 0xde, 0xc5, 0xeb, 0x11, 0xba, 0x1f, 0x44, 0x40, 0xb6, 0x3a, 0x52,
- 0xf2, 0x70, 0xef, 0xee, 0x44, 0x4b, 0x57, 0x62
-};
+const uint8_t hash[] = { 0x6c, 0x5f, 0xef, 0x7f, 0x63, 0x1d, 0xb4, 0x35,
+ 0x6c, 0xae, 0x8b, 0x2a, 0x4e, 0xde, 0xc5, 0xeb,
+ 0x11, 0xba, 0x1f, 0x44, 0x40, 0xb6, 0x3a, 0x52,
+ 0xf2, 0x70, 0xef, 0xee, 0x44, 0x4b, 0x57, 0x62 };
/* Incorrect hash to test the negative case */
-const uint8_t hash_wrong[] = {
- 0x61, 0x1b, 0xd2, 0x44, 0xc7, 0x18, 0xa7, 0x2d, 0x0f, 0x2d, 0x3d, 0x0f,
- 0xe3, 0xb3, 0xc5, 0xe4, 0x12, 0xc2, 0x7b, 0x1e, 0x05, 0x2c, 0x6f, 0xad,
- 0xc4, 0xac, 0x71, 0x55, 0xe8, 0x80, 0x5c, 0x38
-};
+const uint8_t hash_wrong[] = { 0x61, 0x1b, 0xd2, 0x44, 0xc7, 0x18, 0xa7, 0x2d,
+ 0x0f, 0x2d, 0x3d, 0x0f, 0xe3, 0xb3, 0xc5, 0xe4,
+ 0x12, 0xc2, 0x7b, 0x1e, 0x05, 0x2c, 0x6f, 0xad,
+ 0xc4, 0xac, 0x71, 0x55, 0xe8, 0x80, 0x5c, 0x38 };
/* Generate signature using futility:
* # futility create key.pem
diff --git a/test/rsa3072-3.h b/test/rsa3072-3.h
index c407a4ed2b..3ad93fafe8 100644
--- a/test/rsa3072-3.h
+++ b/test/rsa3072-3.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
diff --git a/test/rtc.c b/test/rtc.c
index 3e53f85611..7c38c4fa6d 100644
--- a/test/rtc.c
+++ b/test/rtc.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -16,15 +16,14 @@ static struct {
struct calendar_date time;
uint32_t sec;
} test_case[] = {
- {{8, 3, 1}, 1204329600},
- {{17, 10, 1}, 1506816000},
+ { { 8, 3, 1 }, 1204329600 },
+ { { 17, 10, 1 }, 1506816000 },
};
static int calendar_time_comp(struct calendar_date time_1,
- struct calendar_date time_2)
+ struct calendar_date time_2)
{
- return (time_1.year == time_2.year &&
- time_1.month == time_2.month &&
+ return (time_1.year == time_2.year && time_1.month == time_2.month &&
time_1.day == time_2.day);
}
@@ -96,7 +95,7 @@ static int test_time_conversion(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_time_conversion);
diff --git a/test/rtc.tasklist b/test/rtc.tasklist
index 80072bb620..329f9a3d28 100644
--- a/test/rtc.tasklist
+++ b/test/rtc.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/run_device_tests.py b/test/run_device_tests.py
index 337e4e6693..9b762fc1d6 100755
--- a/test/run_device_tests.py
+++ b/test/run_device_tests.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -49,118 +49,132 @@ import subprocess
import sys
import time
from concurrent.futures.thread import ThreadPoolExecutor
+from dataclasses import dataclass, field
from enum import Enum
from pathlib import Path
-from typing import Optional, BinaryIO, List
+from typing import BinaryIO, Dict, List, Optional
# pylint: disable=import-error
import colorama # type: ignore[import]
-from contextlib2 import ExitStack
import fmap
+from contextlib2 import ExitStack
+
# pylint: enable=import-error
EC_DIR = Path(os.path.dirname(os.path.realpath(__file__))).parent
-JTRACE_FLASH_SCRIPT = os.path.join(EC_DIR, 'util/flash_jlink.py')
-SERVO_MICRO_FLASH_SCRIPT = os.path.join(EC_DIR, 'util/flash_ec')
+JTRACE_FLASH_SCRIPT = os.path.join(EC_DIR, "util/flash_jlink.py")
+SERVO_MICRO_FLASH_SCRIPT = os.path.join(EC_DIR, "util/flash_ec")
-ALL_TESTS_PASSED_REGEX = re.compile(r'Pass!\r\n')
-ALL_TESTS_FAILED_REGEX = re.compile(r'Fail! \(\d+ tests\)\r\n')
+ALL_TESTS_PASSED_REGEX = re.compile(r"Pass!\r\n")
+ALL_TESTS_FAILED_REGEX = re.compile(r"Fail! \(\d+ tests\)\r\n")
-SINGLE_CHECK_PASSED_REGEX = re.compile(r'Pass: .*')
-SINGLE_CHECK_FAILED_REGEX = re.compile(r'.*failed:.*')
+SINGLE_CHECK_PASSED_REGEX = re.compile(r"Pass: .*")
+SINGLE_CHECK_FAILED_REGEX = re.compile(r".*failed:.*")
-ASSERTION_FAILURE_REGEX = re.compile(r'ASSERTION FAILURE.*')
+ASSERTION_FAILURE_REGEX = re.compile(r"ASSERTION FAILURE.*")
DATA_ACCESS_VIOLATION_8020000_REGEX = re.compile(
- r'Data access violation, mfar = 8020000\r\n')
+ r"Data access violation, mfar = 8020000\r\n"
+)
DATA_ACCESS_VIOLATION_8040000_REGEX = re.compile(
- r'Data access violation, mfar = 8040000\r\n')
+ r"Data access violation, mfar = 8040000\r\n"
+)
DATA_ACCESS_VIOLATION_80C0000_REGEX = re.compile(
- r'Data access violation, mfar = 80c0000\r\n')
+ r"Data access violation, mfar = 80c0000\r\n"
+)
DATA_ACCESS_VIOLATION_80E0000_REGEX = re.compile(
- r'Data access violation, mfar = 80e0000\r\n')
+ r"Data access violation, mfar = 80e0000\r\n"
+)
DATA_ACCESS_VIOLATION_20000000_REGEX = re.compile(
- r'Data access violation, mfar = 20000000\r\n')
+ r"Data access violation, mfar = 20000000\r\n"
+)
DATA_ACCESS_VIOLATION_24000000_REGEX = re.compile(
- r'Data access violation, mfar = 24000000\r\n')
+ r"Data access violation, mfar = 24000000\r\n"
+)
-BLOONCHIPPER = 'bloonchipper'
-DARTMONKEY = 'dartmonkey'
+BLOONCHIPPER = "bloonchipper"
+DARTMONKEY = "dartmonkey"
-JTRACE = 'jtrace'
-SERVO_MICRO = 'servo_micro'
+JTRACE = "jtrace"
+SERVO_MICRO = "servo_micro"
-GCC = 'gcc'
-CLANG = 'clang'
+GCC = "gcc"
+CLANG = "clang"
-TEST_ASSETS_BUCKET = 'gs://chromiumos-test-assets-public/fpmcu/RO'
+TEST_ASSETS_BUCKET = "gs://chromiumos-test-assets-public/fpmcu/RO"
DARTMONKEY_IMAGE_PATH = os.path.join(
- TEST_ASSETS_BUCKET, 'dartmonkey_v2.0.2887-311310808.bin')
+ TEST_ASSETS_BUCKET, "dartmonkey_v2.0.2887-311310808.bin"
+)
NOCTURNE_FP_IMAGE_PATH = os.path.join(
- TEST_ASSETS_BUCKET, 'nocturne_fp_v2.2.64-58cf5974e.bin')
+ TEST_ASSETS_BUCKET, "nocturne_fp_v2.2.64-58cf5974e.bin"
+)
NAMI_FP_IMAGE_PATH = os.path.join(
- TEST_ASSETS_BUCKET, 'nami_fp_v2.2.144-7a08e07eb.bin')
+ TEST_ASSETS_BUCKET, "nami_fp_v2.2.144-7a08e07eb.bin"
+)
BLOONCHIPPER_V4277_IMAGE_PATH = os.path.join(
- TEST_ASSETS_BUCKET, 'bloonchipper_v2.0.4277-9f652bb3.bin')
+ TEST_ASSETS_BUCKET, "bloonchipper_v2.0.4277-9f652bb3.bin"
+)
BLOONCHIPPER_V5938_IMAGE_PATH = os.path.join(
- TEST_ASSETS_BUCKET, 'bloonchipper_v2.0.5938-197506c1.bin')
+ TEST_ASSETS_BUCKET, "bloonchipper_v2.0.5938-197506c1.bin"
+)
class ImageType(Enum):
"""EC Image type to use for the test."""
+
RO = 1
RW = 2
+@dataclass
class BoardConfig:
"""Board-specific configuration."""
- def __init__(self, name, servo_uart_name, servo_power_enable,
- rollback_region0_regex, rollback_region1_regex, mpu_regex,
- variants):
- self.name = name
- self.servo_uart_name = servo_uart_name
- self.servo_power_enable = servo_power_enable
- self.rollback_region0_regex = rollback_region0_regex
- self.rollback_region1_regex = rollback_region1_regex
- self.mpu_regex = mpu_regex
- self.variants = variants
+ name: str
+ servo_uart_name: str
+ servo_power_enable: str
+ rollback_region0_regex: object
+ rollback_region1_regex: object
+ mpu_regex: object
+ variants: Dict
+@dataclass
class TestConfig:
"""Configuration for a given test."""
- def __init__(self, test_name, image_to_use=ImageType.RW,
- finish_regexes=None, fail_regexes=None, toggle_power=False,
- test_args=None, num_flash_attempts=2, timeout_secs=10,
- enable_hw_write_protect=False, ro_image=None, build_board=None,
- config_name=None):
- if test_args is None:
- test_args = []
- if finish_regexes is None:
- finish_regexes = [ALL_TESTS_PASSED_REGEX, ALL_TESTS_FAILED_REGEX]
- if fail_regexes is None:
- fail_regexes = [SINGLE_CHECK_FAILED_REGEX, ALL_TESTS_FAILED_REGEX,
- ASSERTION_FAILURE_REGEX]
- if config_name is None:
- config_name = test_name
-
- self.test_name = test_name
- self.config_name = config_name
- self.image_to_use = image_to_use
- self.finish_regexes = finish_regexes
- self.fail_regexes = fail_regexes
- self.test_args = test_args
- self.toggle_power = toggle_power
- self.num_flash_attempts = num_flash_attempts
- self.timeout_secs = timeout_secs
- self.enable_hw_write_protect = enable_hw_write_protect
- self.logs = []
- self.passed = False
- self.num_fails = 0
- self.num_passes = 0
- self.ro_image = ro_image
- self.build_board = build_board
+ # pylint: disable=too-many-instance-attributes
+ test_name: str
+ image_to_use: ImageType = ImageType.RW
+ finish_regexes: List = None
+ fail_regexes: List = None
+ toggle_power: bool = False
+ test_args: List[str] = field(default_factory=list)
+ num_flash_attempts: int = 2
+ timeout_secs: int = 10
+ enable_hw_write_protect: bool = False
+ ro_image: str = None
+ build_board: str = None
+ config_name: str = None
+ logs: List = field(init=False, default_factory=list)
+ passed: bool = field(init=False, default=False)
+ num_passes: int = field(init=False, default=0)
+ num_fails: int = field(init=False, default=0)
+
+ def __post_init__(self):
+ if self.finish_regexes is None:
+ self.finish_regexes = [
+ ALL_TESTS_PASSED_REGEX,
+ ALL_TESTS_FAILED_REGEX,
+ ]
+ if self.fail_regexes is None:
+ self.fail_regexes = [
+ SINGLE_CHECK_FAILED_REGEX,
+ ALL_TESTS_FAILED_REGEX,
+ ASSERTION_FAILURE_REGEX,
+ ]
+ if self.config_name is None:
+ self.config_name = self.test_name
# All possible tests.
@@ -169,6 +183,7 @@ class AllTests:
@staticmethod
def get(board_config: BoardConfig) -> List[TestConfig]:
+ """Return public and private test configs for the specified board."""
public_tests = AllTests.get_public_tests(board_config)
private_tests = AllTests.get_private_tests()
@@ -176,146 +191,192 @@ class AllTests:
@staticmethod
def get_public_tests(board_config: BoardConfig) -> List[TestConfig]:
+ """Return public test configs for the specified board."""
tests = [
- TestConfig(test_name='aes'),
- TestConfig(test_name='cec'),
- TestConfig(test_name='cortexm_fpu'),
- TestConfig(test_name='crc'),
- TestConfig(test_name='flash_physical', image_to_use=ImageType.RO,
- toggle_power=True),
- TestConfig(test_name='flash_write_protect',
- image_to_use=ImageType.RO,
- toggle_power=True, enable_hw_write_protect=True),
- TestConfig(test_name='fpsensor_hw'),
- TestConfig(config_name='fpsensor_spi_ro', test_name='fpsensor',
- image_to_use=ImageType.RO, test_args=['spi']),
- TestConfig(config_name='fpsensor_spi_rw', test_name='fpsensor',
- test_args=['spi']),
- TestConfig(config_name='fpsensor_uart_ro', test_name='fpsensor',
- image_to_use=ImageType.RO, test_args=['uart']),
- TestConfig(config_name='fpsensor_uart_rw', test_name='fpsensor',
- test_args=['uart']),
- TestConfig(config_name='mpu_ro', test_name='mpu',
- image_to_use=ImageType.RO,
- finish_regexes=[board_config.mpu_regex]),
- TestConfig(config_name='mpu_rw', test_name='mpu',
- finish_regexes=[board_config.mpu_regex]),
- TestConfig(test_name='mutex'),
- TestConfig(test_name='pingpong'),
- TestConfig(test_name='printf'),
- TestConfig(test_name='queue'),
- TestConfig(config_name='rollback_region0', test_name='rollback',
- finish_regexes=[board_config.rollback_region0_regex],
- test_args=['region0']),
- TestConfig(config_name='rollback_region1', test_name='rollback',
- finish_regexes=[board_config.rollback_region1_regex],
- test_args=['region1']),
- TestConfig(test_name='rollback_entropy', image_to_use=ImageType.RO),
- TestConfig(test_name='rtc'),
- TestConfig(test_name='sha256'),
- TestConfig(test_name='sha256_unrolled'),
- TestConfig(test_name='static_if'),
- TestConfig(config_name='system_is_locked_wp_on',
- test_name='system_is_locked', test_args=['wp_on'],
- toggle_power=True, enable_hw_write_protect=True),
- TestConfig(config_name='system_is_locked_wp_off',
- test_name='system_is_locked', test_args=['wp_off'],
- toggle_power=True, enable_hw_write_protect=False),
- TestConfig(test_name='timer_dos'),
- TestConfig(test_name='utils', timeout_secs=20),
- TestConfig(test_name='utils_str'),
+ TestConfig(test_name="aes"),
+ TestConfig(test_name="cec"),
+ TestConfig(test_name="cortexm_fpu"),
+ TestConfig(test_name="crc"),
+ TestConfig(
+ test_name="flash_physical",
+ image_to_use=ImageType.RO,
+ toggle_power=True,
+ ),
+ TestConfig(
+ test_name="flash_write_protect",
+ image_to_use=ImageType.RO,
+ toggle_power=True,
+ enable_hw_write_protect=True,
+ ),
+ TestConfig(test_name="fpsensor_hw"),
+ TestConfig(
+ config_name="fpsensor_spi_ro",
+ test_name="fpsensor",
+ image_to_use=ImageType.RO,
+ test_args=["spi"],
+ ),
+ TestConfig(
+ config_name="fpsensor_spi_rw",
+ test_name="fpsensor",
+ test_args=["spi"],
+ ),
+ TestConfig(
+ config_name="fpsensor_uart_ro",
+ test_name="fpsensor",
+ image_to_use=ImageType.RO,
+ test_args=["uart"],
+ ),
+ TestConfig(
+ config_name="fpsensor_uart_rw",
+ test_name="fpsensor",
+ test_args=["uart"],
+ ),
+ TestConfig(
+ config_name="mpu_ro",
+ test_name="mpu",
+ image_to_use=ImageType.RO,
+ finish_regexes=[board_config.mpu_regex],
+ ),
+ TestConfig(
+ config_name="mpu_rw",
+ test_name="mpu",
+ finish_regexes=[board_config.mpu_regex],
+ ),
+ TestConfig(test_name="mutex"),
+ TestConfig(test_name="pingpong"),
+ TestConfig(test_name="printf"),
+ TestConfig(test_name="queue"),
+ TestConfig(
+ config_name="rollback_region0",
+ test_name="rollback",
+ finish_regexes=[board_config.rollback_region0_regex],
+ test_args=["region0"],
+ ),
+ TestConfig(
+ config_name="rollback_region1",
+ test_name="rollback",
+ finish_regexes=[board_config.rollback_region1_regex],
+ test_args=["region1"],
+ ),
+ TestConfig(test_name="rollback_entropy", image_to_use=ImageType.RO),
+ TestConfig(test_name="rtc"),
+ TestConfig(test_name="sha256"),
+ TestConfig(test_name="sha256_unrolled"),
+ TestConfig(test_name="static_if"),
+ TestConfig(test_name="stdlib"),
+ TestConfig(
+ config_name="system_is_locked_wp_on",
+ test_name="system_is_locked",
+ test_args=["wp_on"],
+ toggle_power=True,
+ enable_hw_write_protect=True,
+ ),
+ TestConfig(
+ config_name="system_is_locked_wp_off",
+ test_name="system_is_locked",
+ test_args=["wp_off"],
+ toggle_power=True,
+ enable_hw_write_protect=False,
+ ),
+ TestConfig(test_name="timer_dos"),
+ TestConfig(test_name="utils", timeout_secs=20),
+ TestConfig(test_name="utils_str"),
]
if board_config.name == BLOONCHIPPER:
- tests.append(TestConfig(test_name='stm32f_rtc'))
+ tests.append(TestConfig(test_name="stm32f_rtc"))
# Run panic data tests for all boards and RO versions.
for variant_name, variant_info in board_config.variants.items():
tests.append(
- TestConfig(config_name='panic_data_' + variant_name,
- test_name='panic_data',
- fail_regexes=[SINGLE_CHECK_FAILED_REGEX,
- ALL_TESTS_FAILED_REGEX],
- ro_image=variant_info.get('ro_image_path'),
- build_board=variant_info.get('build_board')))
+ TestConfig(
+ config_name="panic_data_" + variant_name,
+ test_name="panic_data",
+ fail_regexes=[
+ SINGLE_CHECK_FAILED_REGEX,
+ ALL_TESTS_FAILED_REGEX,
+ ],
+ ro_image=variant_info.get("ro_image_path"),
+ build_board=variant_info.get("build_board"),
+ )
+ )
return tests
@staticmethod
def get_private_tests() -> List[TestConfig]:
- # Return all private tests, if the folder exists
+ """Return private test configs for the specified board, if available."""
tests = []
try:
current_dir = os.path.dirname(__file__)
- private_dir = os.path.join(current_dir, os.pardir, 'private/test')
+ private_dir = os.path.join(current_dir, os.pardir, "private/test")
have_private = os.path.isdir(private_dir)
if not have_private:
return []
sys.path.append(private_dir)
- import private_tests # pylint: disable=import-error
+ import private_tests # pylint: disable=import-error,import-outside-toplevel
+
for test_args in private_tests.tests:
tests.append(TestConfig(**test_args))
# Catch all exceptions to avoid disruptions in public repo
- except BaseException as e:
- logging.debug('Failed to get list of private tests: %s', str(e))
- logging.debug('Ignore error and continue.')
+ except BaseException as e: # pylint: disable=broad-except
+ logging.debug("Failed to get list of private tests: %s", str(e))
+ logging.debug("Ignore error and continue.")
return []
return tests
BLOONCHIPPER_CONFIG = BoardConfig(
name=BLOONCHIPPER,
- servo_uart_name='raw_fpmcu_console_uart_pty',
- servo_power_enable='fpmcu_pp3300',
+ servo_uart_name="raw_fpmcu_console_uart_pty",
+ servo_power_enable="fpmcu_pp3300",
rollback_region0_regex=DATA_ACCESS_VIOLATION_8020000_REGEX,
rollback_region1_regex=DATA_ACCESS_VIOLATION_8040000_REGEX,
mpu_regex=DATA_ACCESS_VIOLATION_20000000_REGEX,
variants={
- 'bloonchipper_v2.0.4277': {
- 'ro_image_path': BLOONCHIPPER_V4277_IMAGE_PATH
+ "bloonchipper_v2.0.4277": {
+ "ro_image_path": BLOONCHIPPER_V4277_IMAGE_PATH
+ },
+ "bloonchipper_v2.0.5938": {
+ "ro_image_path": BLOONCHIPPER_V5938_IMAGE_PATH
},
- 'bloonchipper_v2.0.5938': {
- 'ro_image_path': BLOONCHIPPER_V5938_IMAGE_PATH
- }
- }
+ },
)
DARTMONKEY_CONFIG = BoardConfig(
name=DARTMONKEY,
- servo_uart_name='raw_fpmcu_console_uart_pty',
- servo_power_enable='fpmcu_pp3300',
+ servo_uart_name="raw_fpmcu_console_uart_pty",
+ servo_power_enable="fpmcu_pp3300",
rollback_region0_regex=DATA_ACCESS_VIOLATION_80C0000_REGEX,
rollback_region1_regex=DATA_ACCESS_VIOLATION_80E0000_REGEX,
mpu_regex=DATA_ACCESS_VIOLATION_24000000_REGEX,
# For dartmonkey board, run panic data test also on nocturne_fp and
# nami_fp boards with appropriate RO image.
variants={
- 'dartmonkey_v2.0.2887': {
- 'ro_image_path': DARTMONKEY_IMAGE_PATH
+ "dartmonkey_v2.0.2887": {"ro_image_path": DARTMONKEY_IMAGE_PATH},
+ "nocturne_fp_v2.2.64": {
+ "ro_image_path": NOCTURNE_FP_IMAGE_PATH,
+ "build_board": "nocturne_fp",
},
- 'nocturne_fp_v2.2.64': {
- 'ro_image_path': NOCTURNE_FP_IMAGE_PATH,
- 'build_board': 'nocturne_fp'
+ "nami_fp_v2.2.144": {
+ "ro_image_path": NAMI_FP_IMAGE_PATH,
+ "build_board": "nami_fp",
},
- 'nami_fp_v2.2.144': {
- 'ro_image_path': NAMI_FP_IMAGE_PATH,
- 'build_board': 'nami_fp'
- }
- }
+ },
)
BOARD_CONFIGS = {
- 'bloonchipper': BLOONCHIPPER_CONFIG,
- 'dartmonkey': DARTMONKEY_CONFIG,
+ "bloonchipper": BLOONCHIPPER_CONFIG,
+ "dartmonkey": DARTMONKEY_CONFIG,
}
def read_file_gsutil(path: str) -> bytes:
"""Get data from bucket, using gsutil tool"""
- cmd = ['gsutil', 'cat', path]
+ cmd = ["gsutil", "cat", path]
- logging.debug('Running command: "%s"', ' '.join(cmd))
- gsutil = subprocess.run(cmd, stdout=subprocess.PIPE) # pylint: disable=subprocess-run-check
+ logging.debug('Running command: "%s"', " ".join(cmd))
+ gsutil = subprocess.run(cmd, stdout=subprocess.PIPE, check=False)
gsutil.check_returncode()
return gsutil.stdout
@@ -323,9 +384,9 @@ def read_file_gsutil(path: str) -> bytes:
def find_section_offset_size(section: str, image: bytes) -> (int, int):
"""Get offset and size of the section in image"""
- areas = fmap.fmap_decode(image)['areas']
- area = next(area for area in areas if area['name'] == section)
- return area['offset'], area['size']
+ areas = fmap.fmap_decode(image)["areas"]
+ area = next(area for area in areas if area["name"] == section)
+ return area["offset"], area["size"]
def read_section(src: bytes, section: str) -> bytes:
@@ -340,10 +401,10 @@ def write_section(data: bytes, image: bytearray, section: str):
(section_start, section_size) = find_section_offset_size(section, image)
if section_size < len(data):
- raise ValueError(section + ' section size is not enough to store data')
+ raise ValueError(section + " section size is not enough to store data")
section_end = section_start + section_size
- filling = bytes([0xff for _ in range(section_size - len(data))])
+ filling = bytes([0xFF for _ in range(section_size - len(data))])
image[section_start:section_end] = data + filling
@@ -354,12 +415,14 @@ def copy_section(src: bytes, dst: bytearray, section: str):
(dst_start, dst_size) = find_section_offset_size(section, dst)
if dst_size < src_size:
- raise ValueError('Section ' + section + ' from source image has '
- 'greater size than the section in destination image')
+ raise ValueError(
+ "Section " + section + " from source image has "
+ "greater size than the section in destination image"
+ )
src_end = src_start + src_size
dst_end = dst_start + dst_size
- filling = bytes([0xff for _ in range(dst_size - src_size)])
+ filling = bytes([0xFF for _ in range(dst_size - src_size)])
dst[dst_start:dst_end] = src[src_start:src_end] + filling
@@ -367,28 +430,28 @@ def copy_section(src: bytes, dst: bytearray, section: str):
def replace_ro(image: bytearray, ro: bytes):
"""Replace RO in image with provided one"""
# Backup RO public key since its private part was used to sign RW.
- ro_pubkey = read_section(image, 'KEY_RO')
+ ro_pubkey = read_section(image, "KEY_RO")
# Copy RO part of the firmware to the image. Please note that RO public key
# is copied too since EC_RO area includes KEY_RO area.
- copy_section(ro, image, 'EC_RO')
+ copy_section(ro, image, "EC_RO")
# Restore RO public key.
- write_section(ro_pubkey, image, 'KEY_RO')
+ write_section(ro_pubkey, image, "KEY_RO")
def get_console(board_config: BoardConfig) -> Optional[str]:
"""Get the name of the console for a given board."""
cmd = [
- 'dut-control',
+ "dut-control",
board_config.servo_uart_name,
]
- logging.debug('Running command: "%s"', ' '.join(cmd))
+ logging.debug('Running command: "%s"', " ".join(cmd))
with subprocess.Popen(cmd, stdout=subprocess.PIPE) as proc:
for line in io.TextIOWrapper(proc.stdout): # type: ignore[arg-type]
logging.debug(line)
- pty = line.split(':')
+ pty = line.split(":")
if len(pty) == 2 and pty[0] == board_config.servo_uart_name:
return pty[1].strip()
@@ -398,77 +461,90 @@ def get_console(board_config: BoardConfig) -> Optional[str]:
def power(board_config: BoardConfig, on: bool) -> None:
"""Turn power to board on/off."""
if on:
- state = 'pp3300'
+ state = "pp3300"
else:
- state = 'off'
+ state = "off"
cmd = [
- 'dut-control',
- board_config.servo_power_enable + ':' + state,
+ "dut-control",
+ board_config.servo_power_enable + ":" + state,
]
- logging.debug('Running command: "%s"', ' '.join(cmd))
- subprocess.run(cmd).check_returncode() # pylint: disable=subprocess-run-check
+ logging.debug('Running command: "%s"', " ".join(cmd))
+ subprocess.run(
+ cmd
+ ).check_returncode() # pylint: disable=subprocess-run-check
def hw_write_protect(enable: bool) -> None:
"""Enable/disable hardware write protect."""
if enable:
- state = 'force_on'
+ state = "force_on"
else:
- state = 'force_off'
+ state = "force_off"
cmd = [
- 'dut-control',
- 'fw_wp_state:' + state,
- ]
- logging.debug('Running command: "%s"', ' '.join(cmd))
- subprocess.run(cmd).check_returncode() # pylint: disable=subprocess-run-check
+ "dut-control",
+ "fw_wp_state:" + state,
+ ]
+ logging.debug('Running command: "%s"', " ".join(cmd))
+ subprocess.run(
+ cmd
+ ).check_returncode() # pylint: disable=subprocess-run-check
def build(test_name: str, board_name: str, compiler: str) -> None:
"""Build specified test for specified board."""
- cmd = ['make']
+ cmd = ["make"]
if compiler == CLANG:
- cmd = cmd + ['CC=arm-none-eabi-clang']
+ cmd = cmd + ["CC=arm-none-eabi-clang"]
cmd = cmd + [
- 'BOARD=' + board_name,
- 'test-' + test_name,
- '-j',
+ "BOARD=" + board_name,
+ "test-" + test_name,
+ "-j",
]
- logging.debug('Running command: "%s"', ' '.join(cmd))
- subprocess.run(cmd).check_returncode() # pylint: disable=subprocess-run-check
+ logging.debug('Running command: "%s"', " ".join(cmd))
+ subprocess.run(
+ cmd
+ ).check_returncode() # pylint: disable=subprocess-run-check
-def flash(image_path: str, board: str, flasher: str, remote_ip: str,
- remote_port: int) -> bool:
+def flash(
+ image_path: str, board: str, flasher: str, remote_ip: str, remote_port: int
+) -> bool:
"""Flash specified test to specified board."""
- logging.info('Flashing test')
+ logging.info("Flashing test")
cmd = []
if flasher == JTRACE:
cmd.append(JTRACE_FLASH_SCRIPT)
if remote_ip:
- cmd.extend(['--remote', remote_ip + ':' + str(remote_port)])
+ cmd.extend(["--remote", remote_ip + ":" + str(remote_port)])
elif flasher == SERVO_MICRO:
cmd.append(SERVO_MICRO_FLASH_SCRIPT)
else:
logging.error('Unknown flasher: "%s"', flasher)
return False
- cmd.extend([
- '--board', board,
- '--image', image_path,
- ])
- logging.debug('Running command: "%s"', ' '.join(cmd))
- completed_process = subprocess.run(cmd) # pylint: disable=subprocess-run-check
+ cmd.extend(
+ [
+ "--board",
+ board,
+ "--image",
+ image_path,
+ ]
+ )
+ logging.debug('Running command: "%s"', " ".join(cmd))
+ completed_process = subprocess.run(
+ cmd
+ ) # pylint: disable=subprocess-run-check
return completed_process.returncode == 0
def patch_image(test: TestConfig, image_path: str):
"""Replace RO part of the firmware with provided one."""
- with open(image_path, 'rb+') as f:
+ with open(image_path, "rb+") as f:
image = bytearray(f.read())
ro = read_file_gsutil(test.ro_image)
replace_ro(image, ro)
@@ -477,8 +553,9 @@ def patch_image(test: TestConfig, image_path: str):
f.truncate()
-def readline(executor: ThreadPoolExecutor, f: BinaryIO, timeout_secs: int) -> \
- Optional[bytes]:
+def readline(
+ executor: ThreadPoolExecutor, f: BinaryIO, timeout_secs: int
+) -> Optional[bytes]:
"""Read a line with timeout."""
a = executor.submit(f.readline)
try:
@@ -487,8 +564,9 @@ def readline(executor: ThreadPoolExecutor, f: BinaryIO, timeout_secs: int) -> \
return None
-def readlines_until_timeout(executor, f: BinaryIO, timeout_secs: int) -> \
- List[bytes]:
+def readlines_until_timeout(
+ executor, f: BinaryIO, timeout_secs: int
+) -> List[bytes]:
"""Continuously read lines for timeout_secs."""
lines: List[bytes] = []
while True:
@@ -499,6 +577,7 @@ def readlines_until_timeout(executor, f: BinaryIO, timeout_secs: int) -> \
def process_console_output_line(line: bytes, test: TestConfig):
+ """Parse console output line and update test pass/fail counters."""
try:
line_str = line.decode()
@@ -518,19 +597,20 @@ def process_console_output_line(line: bytes, test: TestConfig):
return None
-def run_test(test: TestConfig, console: io.FileIO,
- executor: ThreadPoolExecutor) -> bool:
+def run_test(
+ test: TestConfig, console: io.FileIO, executor: ThreadPoolExecutor
+) -> bool:
"""Run specified test."""
start = time.time()
# Wait for boot to finish
time.sleep(1)
- console.write('\n'.encode())
+ console.write("\n".encode())
if test.image_to_use == ImageType.RO:
- console.write('reboot ro\n'.encode())
+ console.write("reboot ro\n".encode())
time.sleep(1)
- test_cmd = 'runtest ' + ' '.join(test.test_args) + '\n'
+ test_cmd = "runtest " + " ".join(test.test_args) + "\n"
console.write(test_cmd.encode())
while True:
@@ -539,7 +619,7 @@ def run_test(test: TestConfig, console: io.FileIO,
if not line:
now = time.time()
if now - start > test.timeout_secs:
- logging.debug('Test timed out')
+ logging.debug("Test timed out")
return False
continue
@@ -568,15 +648,18 @@ def run_test(test: TestConfig, console: io.FileIO,
def get_test_list(config: BoardConfig, test_args) -> List[TestConfig]:
"""Get a list of tests to run."""
- if test_args == 'all':
+ if test_args == "all":
return AllTests.get(config)
test_list = []
for t in test_args:
- logging.debug('test: %s', t)
+ logging.debug("test: %s", t)
test_regex = re.compile(t)
- tests = [test for test in AllTests.get(config)
- if test_regex.fullmatch(test.config_name)]
+ tests = [
+ test
+ for test in AllTests.get(config)
+ if test_regex.fullmatch(test.config_name)
+ ]
if not tests:
logging.error('Unable to find test config for "%s"', t)
sys.exit(1)
@@ -585,9 +668,81 @@ def get_test_list(config: BoardConfig, test_args) -> List[TestConfig]:
return test_list
+def flash_and_run_test(
+ test: TestConfig,
+ board_config: BoardConfig,
+ args: argparse.Namespace,
+ executor,
+) -> bool:
+ """Run a single test using the test and board configuration specified"""
+ build_board = args.board
+ # If test provides this information, build image for board specified
+ # by test.
+ if test.build_board is not None:
+ build_board = test.build_board
+
+ # build test binary
+ build(test.test_name, build_board, args.compiler)
+
+ image_path = os.path.join(
+ EC_DIR, "build", build_board, test.test_name, test.test_name + ".bin"
+ )
+
+ if test.ro_image is not None:
+ try:
+ patch_image(test, image_path)
+ except Exception as exception: # pylint: disable=broad-except
+ logging.warning(
+ "An exception occurred while patching " "image: %s", exception
+ )
+ return False
+
+ # flash test binary
+ # TODO(b/158327221): First attempt to flash fails after
+ # flash_write_protect test is run; works after second attempt.
+ flash_succeeded = False
+ for i in range(0, test.num_flash_attempts):
+ logging.debug("Flash attempt %d", i + 1)
+ if flash(
+ image_path, args.board, args.flasher, args.remote, args.jlink_port
+ ):
+ flash_succeeded = True
+ break
+ time.sleep(1)
+
+ if not flash_succeeded:
+ logging.debug(
+ "Flashing failed after max attempts: %d", test.num_flash_attempts
+ )
+ return False
+
+ if test.toggle_power:
+ power(board_config, on=False)
+ time.sleep(1)
+ power(board_config, on=True)
+
+ hw_write_protect(test.enable_hw_write_protect)
+
+ # run the test
+ logging.info('Running test: "%s"', test.config_name)
+
+ with ExitStack() as stack:
+ if args.remote and args.console_port:
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ s.connect((args.remote, args.console_port))
+ console = stack.enter_context(s.makefile(mode="rwb", buffering=0))
+ else:
+ console = stack.enter_context(
+ open(get_console(board_config), "wb+", buffering=0)
+ )
+
+ return run_test(test, console, executor=executor)
+
+
def parse_remote_arg(remote: str) -> str:
+ """Convert the 'remote' input argument to IP address, if available."""
if not remote:
- return ''
+ return ""
try:
ip = socket.gethostbyname(remote)
@@ -597,165 +752,127 @@ def parse_remote_arg(remote: str) -> str:
sys.exit(1)
+def validate_args_combination(args: argparse.Namespace):
+ """Check that the current combination of arguments is supported.
+
+ Not all combinations of command line arguments are valid or currently
+ supported. If tests can't be executed, print and error message and exit.
+ """
+ if args.jlink_port and not args.flasher == JTRACE:
+ logging.error("jlink_port specified, but flasher is not set to J-Link.")
+ sys.exit(1)
+
+ if args.remote and not (args.jlink_port or args.console_port):
+ logging.error(
+ "jlink_port or console_port must be specified when using "
+ "the remote option."
+ )
+ sys.exit(1)
+
+ if (args.jlink_port or args.console_port) and not args.remote:
+ logging.error(
+ "The remote option must be specified when using the "
+ "jlink_port or console_port options."
+ )
+ sys.exit(1)
+
+ if args.remote and args.flasher == SERVO_MICRO:
+ logging.error(
+ "The remote option is not supported when flashing with servo "
+ "micro. Use J-Link instead or flash with a local servo micro."
+ )
+ sys.exit(1)
+
+ if args.board not in BOARD_CONFIGS:
+ logging.error('Unable to find a config for board: "%s"', args.board)
+ sys.exit(1)
+
+
def main():
+ """Run unit tests on device and displays the results."""
parser = argparse.ArgumentParser()
- default_board = 'bloonchipper'
+ default_board = "bloonchipper"
parser.add_argument(
- '--board', '-b',
- help='Board (default: ' + default_board + ')',
- default=default_board)
+ "--board",
+ "-b",
+ help="Board (default: " + default_board + ")",
+ default=default_board,
+ )
- default_tests = 'all'
+ default_tests = "all"
parser.add_argument(
- '--tests', '-t',
- nargs='+',
- help='Tests (default: ' + default_tests + ')',
- default=default_tests)
+ "--tests",
+ "-t",
+ nargs="+",
+ help="Tests (default: " + default_tests + ")",
+ default=default_tests,
+ )
- log_level_choices = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']
+ log_level_choices = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
parser.add_argument(
- '--log_level', '-l',
- choices=log_level_choices,
- default='DEBUG'
+ "--log_level", "-l", choices=log_level_choices, default="DEBUG"
)
flasher_choices = [SERVO_MICRO, JTRACE]
parser.add_argument(
- '--flasher', '-f',
- choices=flasher_choices,
- default=JTRACE
+ "--flasher", "-f", choices=flasher_choices, default=JTRACE
)
compiler_options = [GCC, CLANG]
- parser.add_argument('--compiler', '-c',
- choices=compiler_options,
- default=GCC)
+ parser.add_argument(
+ "--compiler", "-c", choices=compiler_options, default=GCC
+ )
# This might be expanded to serve as a "remote" for flash_ec also, so
# we will leave it generic.
parser.add_argument(
- '--remote', '-n',
- help='The remote host connected to one or both of: J-Link and Servo.',
+ "--remote",
+ "-n",
+ help="The remote host connected to one or both of: J-Link and Servo.",
+ type=parse_remote_arg,
)
- parser.add_argument('--jlink_port', '-j',
- type=int,
- help='The port to use when connecting to JLink.')
- parser.add_argument('--console_port', '-p',
- type=int,
- help='The port connected to the FPMCU console.')
+ parser.add_argument(
+ "--jlink_port",
+ "-j",
+ type=int,
+ help="The port to use when connecting to JLink.",
+ )
+ parser.add_argument(
+ "--console_port",
+ "-p",
+ type=int,
+ help="The port connected to the FPMCU console.",
+ )
args = parser.parse_args()
logging.basicConfig(level=args.log_level)
-
- if args.jlink_port and not args.flasher == JTRACE:
- logging.error('jlink_port specified, but flasher is not set to J-Link.')
- sys.exit(1)
-
- if args.remote and not (args.jlink_port or args.console_port):
- logging.error('jlink_port or console_port must be specified when using '
- 'the remote option.')
- sys.exit(1)
-
- if (args.jlink_port or args.console_port) and not args.remote:
- logging.error('The remote option must be specified when using the '
- 'jlink_port or console_port options.')
- sys.exit(1)
-
- if args.board not in BOARD_CONFIGS:
- logging.error('Unable to find a config for board: "%s"', args.board)
- sys.exit(1)
+ validate_args_combination(args)
board_config = BOARD_CONFIGS[args.board]
-
- remote_ip = parse_remote_arg(args.remote)
-
- e = ThreadPoolExecutor(max_workers=1)
-
test_list = get_test_list(board_config, args.tests)
- logging.debug(
- 'Running tests: %s', [
- test.config_name for test in test_list])
-
- for test in test_list:
- build_board = args.board
- # If test provides this information, build image for board specified
- # by test.
- if test.build_board is not None:
- build_board = test.build_board
-
- # build test binary
- build(test.test_name, build_board, args.compiler)
-
- image_path = os.path.join(EC_DIR, 'build', build_board, test.test_name,
- test.test_name + '.bin')
-
- if test.ro_image is not None:
- try:
- patch_image(test, image_path)
- except Exception as exception:
- logging.warning('An exception occurred while patching '
- 'image: %s', exception)
- test.passed = False
- continue
-
- # flash test binary
- # TODO(b/158327221): First attempt to flash fails after
- # flash_write_protect test is run; works after second attempt.
- flash_succeeded = False
- for i in range(0, test.num_flash_attempts):
- logging.debug('Flash attempt %d', i + 1)
- if flash(image_path, args.board, args.flasher, remote_ip,
- args.jlink_port):
- flash_succeeded = True
- break
- time.sleep(1)
-
- if not flash_succeeded:
- logging.debug('Flashing failed after max attempts: %d',
- test.num_flash_attempts)
- test.passed = False
- continue
-
- if test.toggle_power:
- power(board_config, on=False)
- time.sleep(1)
- power(board_config, on=True)
-
- hw_write_protect(test.enable_hw_write_protect)
-
- # run the test
- logging.info('Running test: "%s"', test.config_name)
-
- with ExitStack() as stack:
- if remote_ip and args.console_port:
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((remote_ip, args.console_port))
- console = stack.enter_context(
- s.makefile(mode='rwb', buffering=0))
+ logging.debug("Running tests: %s", [test.config_name for test in test_list])
+
+ with ThreadPoolExecutor(max_workers=1) as e:
+ for test in test_list:
+ test.passed = flash_and_run_test(test, board_config, args, e)
+
+ colorama.init()
+ exit_code = 0
+ for test in test_list:
+ # print results
+ print('Test "' + test.config_name + '": ', end="")
+ if test.passed:
+ print(colorama.Fore.GREEN + "PASSED")
else:
- console = stack.enter_context(
- open(get_console(board_config), 'wb+', buffering=0))
-
- test.passed = run_test(test, console, executor=e)
-
- colorama.init()
- exit_code = 0
- for test in test_list:
- # print results
- print('Test "' + test.config_name + '": ', end='')
- if test.passed:
- print(colorama.Fore.GREEN + 'PASSED')
- else:
- print(colorama.Fore.RED + 'FAILED')
- exit_code = 1
+ print(colorama.Fore.RED + "FAILED")
+ exit_code = 1
- print(colorama.Style.RESET_ALL)
+ print(colorama.Style.RESET_ALL)
- e.shutdown(wait=False)
sys.exit(exit_code)
-if __name__ == '__main__':
+if __name__ == "__main__":
sys.exit(main())
diff --git a/test/sbs_charging_v2.c b/test/sbs_charging_v2.c
index 2f9ddee57c..b30f377c67 100644
--- a/test/sbs_charging_v2.c
+++ b/test/sbs_charging_v2.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -279,7 +279,7 @@ static int test_charge_state(void)
TEST_ASSERT(!(flags & CHARGE_FLAG_FORCE_IDLE));
charge_control(CHARGE_CONTROL_IDLE);
state = wait_charging_state();
- TEST_ASSERT(state == PWR_STATE_IDLE);
+ TEST_ASSERT(state == PWR_STATE_FORCED_IDLE);
flags = charge_get_flags();
TEST_ASSERT(flags & CHARGE_FLAG_EXTERNAL_POWER);
TEST_ASSERT(flags & CHARGE_FLAG_FORCE_IDLE);
@@ -293,7 +293,7 @@ static int test_charge_state(void)
sb_write(SB_CURRENT, 1000);
charge_control(CHARGE_CONTROL_DISCHARGE);
state = wait_charging_state();
- TEST_ASSERT(state == PWR_STATE_IDLE);
+ TEST_ASSERT(state == PWR_STATE_FORCED_IDLE);
TEST_ASSERT(is_force_discharge);
charge_control(CHARGE_CONTROL_NORMAL);
state = wait_charging_state();
@@ -386,7 +386,7 @@ static int test_deep_charge_battery(void)
state_v2 = charge_get_state_v2();
TEST_ASSERT(state_v2 == ST_IDLE);
- /* recovery from a low voltage. */
+ /* recovery from a low voltage. */
sb_write(SB_VOLTAGE, (bat_info->voltage_normal));
wait_charging_state();
state_v2 = charge_get_state_v2();
@@ -490,7 +490,7 @@ static int test_external_funcs(void)
/* Now let's force idle on and off */
UART_INJECT("chg idle on\n");
state = wait_charging_state();
- TEST_ASSERT(state == PWR_STATE_IDLE);
+ TEST_ASSERT(state == PWR_STATE_FORCED_IDLE);
flags = charge_get_flags();
TEST_ASSERT(flags & CHARGE_FLAG_EXTERNAL_POWER);
TEST_ASSERT(flags & CHARGE_FLAG_FORCE_IDLE);
@@ -533,9 +533,8 @@ static int test_hc_charge_state(void)
/* Get the state */
memset(&resp, 0, sizeof(resp));
params.cmd = CHARGE_STATE_CMD_GET_STATE;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
TEST_ASSERT(resp.get_state.ac);
TEST_ASSERT(resp.get_state.chg_voltage);
@@ -545,14 +544,13 @@ static int test_hc_charge_state(void)
/* Check all the params */
for (i = 0; i < CS_NUM_BASE_PARAMS; i++) {
-
/* Read it */
memset(&resp, 0, sizeof(resp));
params.cmd = CHARGE_STATE_CMD_GET_PARAM;
params.get_param.param = i;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp,
+ sizeof(resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
if (i != CS_PARAM_LIMIT_POWER)
TEST_ASSERT(resp.get_param.value);
@@ -565,7 +563,7 @@ static int test_hc_charge_state(void)
case CS_PARAM_CHG_VOLTAGE:
case CS_PARAM_CHG_CURRENT:
case CS_PARAM_CHG_INPUT_CURRENT:
- tmp -= 128; /* Should be valid delta */
+ tmp -= 128; /* Should be valid delta */
break;
case CS_PARAM_CHG_STATUS:
case CS_PARAM_LIMIT_POWER:
@@ -578,9 +576,9 @@ static int test_hc_charge_state(void)
params.cmd = CHARGE_STATE_CMD_SET_PARAM;
params.set_param.param = i;
params.set_param.value = tmp;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp,
+ sizeof(resp));
if (i == CS_PARAM_CHG_STATUS || i == CS_PARAM_LIMIT_POWER)
TEST_ASSERT(rv == EC_RES_ACCESS_DENIED);
else
@@ -593,9 +591,9 @@ static int test_hc_charge_state(void)
memset(&resp, 0, sizeof(resp));
params.cmd = CHARGE_STATE_CMD_GET_PARAM;
params.get_param.param = i;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp,
+ sizeof(resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
TEST_ASSERT(resp.get_param.value == tmp);
}
@@ -605,17 +603,15 @@ static int test_hc_charge_state(void)
memset(&resp, 0, sizeof(resp));
params.cmd = CHARGE_STATE_CMD_GET_PARAM;
params.get_param.param = CS_PARAM_CUSTOM_PROFILE_MIN;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
TEST_ASSERT(resp.get_param.value == meh);
params.cmd = CHARGE_STATE_CMD_SET_PARAM;
params.set_param.param = CS_PARAM_CUSTOM_PROFILE_MIN;
params.set_param.value = 0xc0def00d;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
/* Allow the change to take effect */
state = wait_charging_state();
@@ -624,23 +620,20 @@ static int test_hc_charge_state(void)
/* param out of range */
params.cmd = CHARGE_STATE_CMD_GET_PARAM;
params.get_param.param = CS_NUM_BASE_PARAMS;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
TEST_ASSERT(rv == EC_RES_INVALID_PARAM);
params.cmd = CHARGE_STATE_CMD_SET_PARAM;
params.set_param.param = CS_NUM_BASE_PARAMS;
- params.set_param.value = 0x1000; /* random value */
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ params.set_param.value = 0x1000; /* random value */
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
TEST_ASSERT(rv == EC_RES_INVALID_PARAM);
/* command out of range */
params.cmd = CHARGE_STATE_NUM_CMDS;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &params, sizeof(params),
- &resp, sizeof(resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &params,
+ sizeof(params), &resp, sizeof(resp));
TEST_ASSERT(rv == EC_RES_INVALID_PARAM);
/*
@@ -665,40 +658,38 @@ static int test_hc_current_limit(void)
/* See what current the charger is delivering */
cs_params.cmd = CHARGE_STATE_CMD_GET_STATE;
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &cs_params, sizeof(cs_params),
- &cs_resp, sizeof(cs_resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &cs_params,
+ sizeof(cs_params), &cs_resp,
+ sizeof(cs_resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
norm_current = cs_resp.get_state.chg_current;
/* Lower it a bit */
lower_current = norm_current - 256;
cl_params.limit = lower_current;
- rv = test_send_host_command(EC_CMD_CHARGE_CURRENT_LIMIT, 0,
- &cl_params, sizeof(cl_params),
- 0, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CURRENT_LIMIT, 0, &cl_params,
+ sizeof(cl_params), 0, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
wait_charging_state();
/* See that it's changed */
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &cs_params, sizeof(cs_params),
- &cs_resp, sizeof(cs_resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &cs_params,
+ sizeof(cs_params), &cs_resp,
+ sizeof(cs_resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
TEST_ASSERT(lower_current == cs_resp.get_state.chg_current);
/* Remove the limit */
cl_params.limit = -1U;
- rv = test_send_host_command(EC_CMD_CHARGE_CURRENT_LIMIT, 0,
- &cl_params, sizeof(cl_params),
- 0, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CURRENT_LIMIT, 0, &cl_params,
+ sizeof(cl_params), 0, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
wait_charging_state();
/* See that it's back */
- rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0,
- &cs_params, sizeof(cs_params),
- &cs_resp, sizeof(cs_resp));
+ rv = test_send_host_command(EC_CMD_CHARGE_STATE, 0, &cs_params,
+ sizeof(cs_params), &cs_resp,
+ sizeof(cs_resp));
TEST_ASSERT(rv == EC_RES_SUCCESS);
TEST_ASSERT(norm_current == cs_resp.get_state.chg_current);
@@ -734,7 +725,8 @@ static int test_low_battery_hostevents(void)
TEST_ASSERT(!is_shutdown);
/* (Shout) a little bit louder now */
- sb_write(SB_RELATIVE_STATE_OF_CHARGE, BATTERY_LEVEL_CRITICAL + 1);
+ sb_write(SB_RELATIVE_STATE_OF_CHARGE,
+ CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE + 1);
state = wait_charging_state();
TEST_ASSERT(state == PWR_STATE_DISCHARGE);
TEST_ASSERT(ev_is_set(EC_HOST_EVENT_BATTERY_LOW));
@@ -743,7 +735,8 @@ static int test_low_battery_hostevents(void)
TEST_ASSERT(!is_shutdown);
/* (Shout) a little bit louder now */
- sb_write(SB_RELATIVE_STATE_OF_CHARGE, BATTERY_LEVEL_CRITICAL - 1);
+ sb_write(SB_RELATIVE_STATE_OF_CHARGE,
+ CONFIG_BATT_HOST_SHUTDOWN_PERCENTAGE - 1);
state = wait_charging_state();
TEST_ASSERT(state == PWR_STATE_DISCHARGE);
TEST_ASSERT(ev_is_set(EC_HOST_EVENT_BATTERY_LOW));
@@ -789,13 +782,13 @@ static int test_battery_sustainer(void)
p.mode = CHARGE_CONTROL_NORMAL;
p.sustain_soc.lower = 79;
p.sustain_soc.upper = 80;
- rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2,
- &p, sizeof(p), NULL, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2, &p, sizeof(p),
+ NULL, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
p.cmd = EC_CHARGE_CONTROL_CMD_GET;
- rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2,
- &p, sizeof(p), &r, sizeof(r));
+ rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2, &p, sizeof(p), &r,
+ sizeof(r));
TEST_ASSERT(rv == EC_RES_SUCCESS);
TEST_ASSERT(r.sustain_soc.lower == 79);
TEST_ASSERT(r.sustain_soc.upper == 80);
@@ -854,8 +847,8 @@ static int test_battery_sustainer(void)
p.mode = CHARGE_CONTROL_NORMAL;
p.sustain_soc.lower = 79;
p.sustain_soc.upper = 80;
- rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2,
- &p, sizeof(p), NULL, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2, &p, sizeof(p),
+ NULL, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
wait_charging_state();
TEST_ASSERT(get_chg_ctrl_mode() == CHARGE_CONTROL_DISCHARGE);
@@ -876,8 +869,8 @@ static int test_battery_sustainer(void)
p.mode = CHARGE_CONTROL_NORMAL;
p.sustain_soc.lower = 79;
p.sustain_soc.upper = 80;
- rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2,
- &p, sizeof(p), NULL, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2, &p, sizeof(p),
+ NULL, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
wait_charging_state();
TEST_ASSERT(get_chg_ctrl_mode() == CHARGE_CONTROL_DISCHARGE);
@@ -898,8 +891,8 @@ static int test_battery_sustainer_discharge_idle(void)
p.mode = CHARGE_CONTROL_NORMAL;
p.sustain_soc.lower = 80;
p.sustain_soc.upper = 80;
- rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2,
- &p, sizeof(p), NULL, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2, &p, sizeof(p),
+ NULL, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
/* Check mode transition as the SoC changes. */
@@ -939,8 +932,8 @@ static int test_battery_sustainer_discharge_idle(void)
p.mode = CHARGE_CONTROL_NORMAL;
p.sustain_soc.lower = -1;
p.sustain_soc.upper = -1;
- rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2,
- &p, sizeof(p), NULL, 0);
+ rv = test_send_host_command(EC_CMD_CHARGE_CONTROL, 2, &p, sizeof(p),
+ NULL, 0);
TEST_ASSERT(rv == EC_RES_SUCCESS);
/* This time, mode will stay in NORMAL even when upper < SoC. */
@@ -951,7 +944,7 @@ static int test_battery_sustainer_discharge_idle(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_charge_state);
RUN_TEST(test_low_battery);
diff --git a/test/sbs_charging_v2.tasklist b/test/sbs_charging_v2.tasklist
index 3895762986..202541188f 100644
--- a/test/sbs_charging_v2.tasklist
+++ b/test/sbs_charging_v2.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/scratchpad.c b/test/scratchpad.c
index 1bea76f7a1..c023f1dc72 100644
--- a/test/scratchpad.c
+++ b/test/scratchpad.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -27,7 +27,7 @@ test_static int test_scratchpad(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_scratchpad);
test_print_result();
diff --git a/test/scratchpad.tasklist b/test/scratchpad.tasklist
index 51734f058d..a1f1a94e2d 100644
--- a/test/scratchpad.tasklist
+++ b/test/scratchpad.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/sha256.c b/test/sha256.c
index 105ae8fec5..4b5326d189 100644
--- a/test/sha256.c
+++ b/test/sha256.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -12,23 +12,20 @@
#include "util.h"
/* Short Msg from NIST FIPS 180-4 (Len = 8) */
-static const uint8_t sha256_8_input[] = {
- 0xd3
-};
+static const uint8_t sha256_8_input[] = { 0xd3 };
static const uint8_t sha256_8_output[SHA256_DIGEST_SIZE] = {
- 0x28, 0x96, 0x9c, 0xdf, 0xa7, 0x4a, 0x12, 0xc8, 0x2f, 0x3b, 0xad, 0x96,
- 0x0b, 0x0b, 0x00, 0x0a, 0xca, 0x2a, 0xc3, 0x29, 0xde, 0xea, 0x5c, 0x23,
- 0x28, 0xeb, 0xc6, 0xf2, 0xba, 0x98, 0x02, 0xc1
+ 0x28, 0x96, 0x9c, 0xdf, 0xa7, 0x4a, 0x12, 0xc8, 0x2f, 0x3b, 0xad,
+ 0x96, 0x0b, 0x0b, 0x00, 0x0a, 0xca, 0x2a, 0xc3, 0x29, 0xde, 0xea,
+ 0x5c, 0x23, 0x28, 0xeb, 0xc6, 0xf2, 0xba, 0x98, 0x02, 0xc1
};
/* Short Msg from NIST FIPS 180-4 (Len = 72) */
-static const uint8_t sha256_72_input[] = {
- 0x33, 0x34, 0xc5, 0x80, 0x75, 0xd3, 0xf4, 0x13, 0x9e
-};
+static const uint8_t sha256_72_input[] = { 0x33, 0x34, 0xc5, 0x80, 0x75,
+ 0xd3, 0xf4, 0x13, 0x9e };
static const uint8_t sha256_72_output[SHA256_DIGEST_SIZE] = {
- 0x07, 0x8d, 0xa3, 0xd7, 0x7e, 0xd4, 0x3b, 0xd3, 0x03, 0x7a, 0x43, 0x3f,
- 0xd0, 0x34, 0x18, 0x55, 0x02, 0x37, 0x93, 0xf9, 0xaf, 0xd0, 0x8b, 0x4b,
- 0x08, 0xea, 0x1e, 0x55, 0x97, 0xce, 0xef, 0x20
+ 0x07, 0x8d, 0xa3, 0xd7, 0x7e, 0xd4, 0x3b, 0xd3, 0x03, 0x7a, 0x43,
+ 0x3f, 0xd0, 0x34, 0x18, 0x55, 0x02, 0x37, 0x93, 0xf9, 0xaf, 0xd0,
+ 0x8b, 0x4b, 0x08, 0xea, 0x1e, 0x55, 0x97, 0xce, 0xef, 0x20
};
/* Long Msg from NIST FIPS 180-4 (Len = 2888) */
@@ -66,9 +63,9 @@ static const uint8_t sha256_2888_input[] = {
0x93
};
static const uint8_t sha256_2888_output[SHA256_DIGEST_SIZE] = {
- 0x5f, 0x4e, 0x16, 0xa7, 0x2d, 0x6c, 0x98, 0x57, 0xda, 0x0b, 0xa0, 0x09,
- 0xcc, 0xac, 0xd4, 0xf2, 0x6d, 0x7f, 0x6b, 0xf6, 0xc1, 0xb7, 0x8a, 0x2e,
- 0xd3, 0x5e, 0x68, 0xfc, 0xb1, 0x5b, 0x8e, 0x40
+ 0x5f, 0x4e, 0x16, 0xa7, 0x2d, 0x6c, 0x98, 0x57, 0xda, 0x0b, 0xa0,
+ 0x09, 0xcc, 0xac, 0xd4, 0xf2, 0x6d, 0x7f, 0x6b, 0xf6, 0xc1, 0xb7,
+ 0x8a, 0x2e, 0xd3, 0x5e, 0x68, 0xfc, 0xb1, 0x5b, 0x8e, 0x40
};
/* HMAC short key (40 bytes) from NIST FIPS 198-1 (Count = 34) */
@@ -86,15 +83,15 @@ static const uint8_t hmac_short_msg[] = {
0x03, 0x2b, 0x31, 0xd2, 0x41, 0xad, 0x33, 0x71
};
static const uint8_t hmac_short_key[] = {
- 0x9d, 0xa0, 0xc1, 0x14, 0x68, 0x2f, 0x82, 0xc1, 0xd1, 0xe9, 0xb5, 0x44,
- 0x30, 0x58, 0x0b, 0x9c, 0x56, 0x94, 0x89, 0xca, 0x16, 0xb9, 0x2e, 0xe1,
- 0x04, 0x98, 0xd5, 0x5d, 0x7c, 0xad, 0x5d, 0xb5, 0xe6, 0x52, 0x06, 0x34,
- 0x39, 0x31, 0x1e, 0x04
+ 0x9d, 0xa0, 0xc1, 0x14, 0x68, 0x2f, 0x82, 0xc1, 0xd1, 0xe9,
+ 0xb5, 0x44, 0x30, 0x58, 0x0b, 0x9c, 0x56, 0x94, 0x89, 0xca,
+ 0x16, 0xb9, 0x2e, 0xe1, 0x04, 0x98, 0xd5, 0x5d, 0x7c, 0xad,
+ 0x5d, 0xb5, 0xe6, 0x52, 0x06, 0x34, 0x39, 0x31, 0x1e, 0x04
};
static const uint8_t hmac_short_output[] = {
- 0xcd, 0xea, 0xcf, 0xce, 0xbf, 0x46, 0xcc, 0x9d, 0x7e, 0x4d, 0x41, 0x75,
- 0xe5, 0xd8, 0xd2, 0x67, 0xc2, 0x3a, 0x64, 0xcd, 0xe8, 0x3e, 0x86, 0x7e,
- 0x50, 0x01, 0xec, 0xf2, 0x6f, 0xbd, 0x30, 0xd2
+ 0xcd, 0xea, 0xcf, 0xce, 0xbf, 0x46, 0xcc, 0x9d, 0x7e, 0x4d, 0x41,
+ 0x75, 0xe5, 0xd8, 0xd2, 0x67, 0xc2, 0x3a, 0x64, 0xcd, 0xe8, 0x3e,
+ 0x86, 0x7e, 0x50, 0x01, 0xec, 0xf2, 0x6f, 0xbd, 0x30, 0xd2
};
/* HMAC medium key (64 bytes) from NIST FIPS 198-1 (Count = 120) */
@@ -112,17 +109,17 @@ static const uint8_t hmac_medium_msg[] = {
0x85, 0x46, 0x80, 0x4f, 0x9c, 0xf2, 0xec, 0xfe
};
static const uint8_t hmac_medium_key[] = {
- 0x99, 0x28, 0x68, 0x50, 0x4d, 0x25, 0x64, 0xc4, 0xfb, 0x47, 0xbc, 0xbd,
- 0x4a, 0xe4, 0x82, 0xd8, 0xfb, 0x0e, 0x8e, 0x56, 0xd7, 0xb8, 0x18, 0x64,
- 0xe6, 0x19, 0x86, 0xa0, 0xe2, 0x56, 0x82, 0xda, 0xeb, 0x5b, 0x50, 0x17,
- 0x7c, 0x09, 0x5e, 0xdc, 0x9e, 0x97, 0x1d, 0xa9, 0x5c, 0x32, 0x10, 0xc3,
- 0x76, 0xe7, 0x23, 0x36, 0x5a, 0xc3, 0x3d, 0x1b, 0x4f, 0x39, 0x18, 0x17,
- 0xf4, 0xc3, 0x51, 0x24
+ 0x99, 0x28, 0x68, 0x50, 0x4d, 0x25, 0x64, 0xc4, 0xfb, 0x47, 0xbc,
+ 0xbd, 0x4a, 0xe4, 0x82, 0xd8, 0xfb, 0x0e, 0x8e, 0x56, 0xd7, 0xb8,
+ 0x18, 0x64, 0xe6, 0x19, 0x86, 0xa0, 0xe2, 0x56, 0x82, 0xda, 0xeb,
+ 0x5b, 0x50, 0x17, 0x7c, 0x09, 0x5e, 0xdc, 0x9e, 0x97, 0x1d, 0xa9,
+ 0x5c, 0x32, 0x10, 0xc3, 0x76, 0xe7, 0x23, 0x36, 0x5a, 0xc3, 0x3d,
+ 0x1b, 0x4f, 0x39, 0x18, 0x17, 0xf4, 0xc3, 0x51, 0x24
};
static const uint8_t hmac_medium_output[] = {
- 0x2f, 0x83, 0x21, 0xf4, 0x16, 0xb9, 0xbb, 0x24, 0x9f, 0x11, 0x3b, 0x13,
- 0xfc, 0x12, 0xd7, 0x0e, 0x16, 0x68, 0xdc, 0x33, 0x28, 0x39, 0xc1, 0x0d,
- 0xaa, 0x57, 0x17, 0x89, 0x6c, 0xb7, 0x0d, 0xdf
+ 0x2f, 0x83, 0x21, 0xf4, 0x16, 0xb9, 0xbb, 0x24, 0x9f, 0x11, 0x3b,
+ 0x13, 0xfc, 0x12, 0xd7, 0x0e, 0x16, 0x68, 0xdc, 0x33, 0x28, 0x39,
+ 0xc1, 0x0d, 0xaa, 0x57, 0x17, 0x89, 0x6c, 0xb7, 0x0d, 0xdf
};
static int test_sha256(const uint8_t *input, int input_len,
@@ -156,9 +153,8 @@ static int test_sha256(const uint8_t *input, int input_len,
return 1;
}
-static int test_hmac(const uint8_t *key, int key_len,
- const uint8_t *input, int input_len,
- const uint8_t *output)
+static int test_hmac(const uint8_t *key, int key_len, const uint8_t *input,
+ int input_len, const uint8_t *output)
{
uint8_t tmp[SHA256_DIGEST_SIZE];
@@ -172,7 +168,7 @@ static int test_hmac(const uint8_t *key, int key_len,
return 1;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
ccprintf("Testing short message (8 bytes)\n");
if (!test_sha256(sha256_8_input, sizeof(sha256_8_input),
@@ -196,9 +192,8 @@ void run_test(int argc, char **argv)
}
ccprintf("HMAC: Testing short key\n");
- if (!test_hmac(hmac_short_key, sizeof(hmac_short_key),
- hmac_short_msg, sizeof(hmac_short_msg),
- hmac_short_output)) {
+ if (!test_hmac(hmac_short_key, sizeof(hmac_short_key), hmac_short_msg,
+ sizeof(hmac_short_msg), hmac_short_output)) {
test_fail();
return;
}
diff --git a/test/sha256.tasklist b/test/sha256.tasklist
index 80072bb620..329f9a3d28 100644
--- a/test/sha256.tasklist
+++ b/test/sha256.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/shmalloc.c b/test/shmalloc.c
index a596d173e7..899876ab43 100644
--- a/test/shmalloc.c
+++ b/test/shmalloc.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 The Chromium OS Authors. All rights reserved.
+ * Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -36,14 +36,14 @@ static uint32_t next = 127;
static uint32_t myrand(void)
{
next = next * 1103515245 + 12345;
- return ((uint32_t)(next/65536) % 32768);
+ return ((uint32_t)(next / 65536) % 32768);
}
/* Keep track of buffers allocated by the test function. */
static struct {
void *buf;
size_t buffer_size;
-} allocations[12]; /* Up to 12 buffers could be allocated concurrently. */
+} allocations[12]; /* Up to 12 buffers could be allocated concurrently. */
/*
* Verify that allocated and free buffers do not overlap, and that our and
@@ -77,8 +77,7 @@ static int check_for_overlaps(void)
* multiple times to keep things simple.
*/
allocated_count = 0;
- for (allocced_buf = allocced_buf_chain;
- allocced_buf;
+ for (allocced_buf = allocced_buf_chain; allocced_buf;
allocced_buf = allocced_buf->next_buffer) {
int allocated_size, allocation_size;
@@ -112,13 +111,13 @@ static int check_for_overlaps(void)
}
}
if (!allocation_match) {
- ccprintf("missing match %pP!\n", allocations[i].buf);
+ ccprintf("missing match %p!\n", allocations[i].buf);
return 0;
}
}
if (allocations_count != allocated_count) {
- ccprintf("count mismatch (%d != %d)!\n",
- allocations_count, allocated_count);
+ ccprintf("count mismatch (%d != %d)!\n", allocations_count,
+ allocated_count);
return 0;
}
return 1;
@@ -137,7 +136,7 @@ static int shmem_is_ok(int line)
struct shm_buffer *pbuf = free_buf_chain;
if (pbuf && pbuf->prev_buffer) {
- ccprintf("Bad free buffer list start %pP\n", pbuf);
+ ccprintf("Bad free buffer list start %p\n", pbuf);
goto bailout;
}
@@ -146,20 +145,20 @@ static int shmem_is_ok(int line)
running_size += pbuf->buffer_size;
if (count++ > 100)
- goto bailout; /* Is there a loop? */
+ goto bailout; /* Is there a loop? */
top = (struct shm_buffer *)((uintptr_t)pbuf +
- pbuf->buffer_size);
+ pbuf->buffer_size);
if (pbuf->next_buffer) {
if (top >= pbuf->next_buffer) {
ccprintf("%s:%d"
- " - inconsistent buffer size at %pP\n",
+ " - inconsistent buffer size at %p\n",
__func__, __LINE__, pbuf);
goto bailout;
}
if (pbuf->next_buffer->prev_buffer != pbuf) {
ccprintf("%s:%d"
- " - inconsistent next buffer at %pP\n",
+ " - inconsistent next buffer at %p\n",
__func__, __LINE__, pbuf);
goto bailout;
}
@@ -193,7 +192,7 @@ static int shmem_is_ok(int line)
return 1;
- bailout:
+bailout:
ccprintf("Line %d, counter %d. The list has been corrupted, "
"total size %d, running size %d\n",
line, counter, total_size, running_size);
@@ -207,7 +206,7 @@ static int shmem_is_ok(int line)
*/
static uint32_t test_map;
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
int index;
const int shmem_size = shared_mem_size();
@@ -229,8 +228,7 @@ void run_test(int argc, char **argv)
if (test_map & ~ALL_PATHS_MASK) {
ccprintf("Unexpected mask bits set: %x"
", counter %d\n",
- test_map & ~ALL_PATHS_MASK,
- counter);
+ test_map & ~ALL_PATHS_MASK, counter);
test_fail();
return;
}
@@ -261,7 +259,7 @@ void run_test(int argc, char **argv)
*/
if (shared_mem_acquire(alloc_size, &shptr) ==
EC_SUCCESS) {
- allocations[index].buf = (void *) shptr;
+ allocations[index].buf = (void *)shptr;
allocations[index].buffer_size = alloc_size;
/*
@@ -269,8 +267,8 @@ void run_test(int argc, char **argv)
* modified.
*/
while (alloc_size--)
- shptr[alloc_size] =
- shptr[alloc_size] ^ 0xff;
+ shptr[alloc_size] = shptr[alloc_size] ^
+ 0xff;
if (!shmem_is_ok(__LINE__)) {
test_fail();
@@ -294,8 +292,8 @@ void run_test(int argc, char **argv)
}
}
- ccprintf("Did not pass all paths, map %x != %x\n",
- test_map, ALL_PATHS_MASK);
+ ccprintf("Did not pass all paths, map %x != %x\n", test_map,
+ ALL_PATHS_MASK);
test_fail();
}
diff --git a/test/shmalloc.tasklist b/test/shmalloc.tasklist
index a8ef01a489..1413e373b1 100644
--- a/test/shmalloc.tasklist
+++ b/test/shmalloc.tasklist
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 The Chromium OS Authors. All rights reserved.
+ * Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/static_if.c b/test/static_if.c
index f70f7d30c3..9e8b9db465 100644
--- a/test/static_if.c
+++ b/test/static_if.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -39,7 +39,7 @@ static int test_static_if_unused_no_fail(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/static_if.tasklist b/test/static_if.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/static_if.tasklist
+++ b/test/static_if.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/static_if_error.c b/test/static_if_error.c
index 65882b3bbd..99765ece99 100644
--- a/test/static_if_error.c
+++ b/test/static_if_error.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -24,7 +24,7 @@
/* This is intended to cause a compilation error. */
TEST_MACRO(CONFIG_FOO) __maybe_unused int foo;
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/static_if_error.sh b/test/static_if_error.sh
index efc7cd3e1e..ef17780f4c 100644
--- a/test/static_if_error.sh
+++ b/test/static_if_error.sh
@@ -1,5 +1,5 @@
#!/bin/bash -e
-# Copyright 2019 The Chromium OS Authors. All rights reserved.
+# Copyright 2019 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
diff --git a/test/static_if_error.tasklist b/test/static_if_error.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/static_if_error.tasklist
+++ b/test/static_if_error.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/stdlib.c b/test/stdlib.c
new file mode 100644
index 0000000000..efff64829d
--- /dev/null
+++ b/test/stdlib.c
@@ -0,0 +1,520 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * Test standard library functions.
+ */
+
+#include "common.h"
+#include "console.h"
+#include "system.h"
+#include "printf.h"
+#include "shared_mem.h"
+#include "test_util.h"
+#include "timer.h"
+#include "util.h"
+
+#ifdef USE_BUILTIN_STDLIB
+static const bool use_builtin_stdlib = true;
+#else
+static const bool use_builtin_stdlib = false;
+#endif
+
+static int test_isalpha(void)
+{
+ TEST_ASSERT(isalpha('a'));
+ TEST_ASSERT(isalpha('z'));
+ TEST_ASSERT(isalpha('A'));
+ TEST_ASSERT(isalpha('Z'));
+ TEST_ASSERT(!isalpha('0'));
+ TEST_ASSERT(!isalpha('~'));
+ TEST_ASSERT(!isalpha(' '));
+ TEST_ASSERT(!isalpha('\0'));
+ TEST_ASSERT(!isalpha('\n'));
+ return EC_SUCCESS;
+}
+
+static int test_isprint(void)
+{
+ TEST_ASSERT(isprint('a'));
+ TEST_ASSERT(isprint('z'));
+ TEST_ASSERT(isprint('A'));
+ TEST_ASSERT(isprint('Z'));
+ TEST_ASSERT(isprint('0'));
+ TEST_ASSERT(isprint('~'));
+ TEST_ASSERT(isprint(' '));
+ TEST_ASSERT(!isprint('\0'));
+ TEST_ASSERT(!isprint('\n'));
+ return EC_SUCCESS;
+}
+
+static int test_strstr(void)
+{
+ const char s1[] = "abcde";
+
+ TEST_ASSERT(strstr(s1, "ab") == s1);
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strstr(s1, "") == NULL);
+ } else {
+ /*
+ * From the man page: If needle is the empty string, the return
+ * value is always haystack itself.
+ */
+ TEST_ASSERT(strstr(s1, "") == s1);
+ }
+ TEST_ASSERT(strstr("", "ab") == NULL);
+ TEST_ASSERT(strstr("", "x") == NULL);
+ TEST_ASSERT(strstr(s1, "de") == &s1[3]);
+ TEST_ASSERT(strstr(s1, "def") == NULL);
+
+ return EC_SUCCESS;
+}
+
+static int test_strtoull(void)
+{
+ char *e;
+
+ TEST_ASSERT(strtoull("10", &e, 0) == 10);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("010", &e, 0) == 8);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("+010", &e, 0) == 8);
+ TEST_ASSERT(e && (*e == '\0'));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strtoull("-010", &e, 0) == 0);
+ TEST_ASSERT(e && (*e == '-'));
+ } else {
+ /*
+ * From the man page: The strtoull() function returns either
+ * the result of the conversion or, if there was a leading
+ * minus sign, the negation of the result of the conversion
+ * represented as an unsigned value, unless the original
+ * (nonnegated) value would overflow
+ */
+ TEST_ASSERT(strtoull("-010", &e, 0) == 0xFFFFFFFFFFFFFFF8);
+ }
+
+ TEST_ASSERT(strtoull("0x1f z", &e, 0) == 31);
+ TEST_ASSERT(e && (*e == ' '));
+ TEST_ASSERT(strtoull("0X1f z", &e, 0) == 31);
+ TEST_ASSERT(e && (*e == ' '));
+ TEST_ASSERT(strtoull("10a", &e, 16) == 266);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("0x02C", &e, 16) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("+0x02C", &e, 16) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strtoull("-0x02C", &e, 16) == 0);
+ TEST_ASSERT(e && (*e == '-'));
+ } else {
+ TEST_ASSERT(strtoull("-0x02C", &e, 16) == 0xFFFFFFFFFFFFFFD4);
+ }
+
+ TEST_ASSERT(strtoull("0x02C", &e, 0) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("+0x02C", &e, 0) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strtoull("-0x02C", &e, 0) == 0);
+ TEST_ASSERT(e && (*e == '-'));
+ } else {
+ TEST_ASSERT(strtoull("-0x02C", &e, 0) == 0xFFFFFFFFFFFFFFD4);
+ }
+
+ TEST_ASSERT(strtoull("0X02C", &e, 16) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("+0X02C", &e, 16) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strtoull("-0X02C", &e, 16) == 0);
+ TEST_ASSERT(e && (*e == '-'));
+ } else {
+ TEST_ASSERT(strtoull("-0X02C", &e, 16) == 0xFFFFFFFFFFFFFFD4);
+ }
+
+ TEST_ASSERT(strtoull("0X02C", &e, 0) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+ TEST_ASSERT(strtoull("+0X02C", &e, 0) == 44);
+ TEST_ASSERT(e && (*e == '\0'));
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strtoull("-0X02C", &e, 0) == 0);
+ TEST_ASSERT(e && (*e == '-'));
+ } else {
+ TEST_ASSERT(strtoull("-0X02C", &e, 0) == 0xFFFFFFFFFFFFFFD4);
+ }
+
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(strtoull(" -12", &e, 0) == 0);
+ TEST_ASSERT(e && (*e == '-'));
+ } else {
+ TEST_ASSERT(strtoull(" -12", &e, 0) == 0xFFFFFFFFFFFFFFF4);
+ }
+
+ TEST_ASSERT(strtoull("!", &e, 0) == 0);
+ TEST_ASSERT(e && (*e == '!'));
+
+ TEST_ASSERT(strtoull("+!", &e, 0) == 0);
+ if (use_builtin_stdlib) {
+ /*
+ * TODO(http://b/243192369): This is incorrect and should be
+ * fixed.
+ */
+ TEST_ASSERT(e && (*e == '!'));
+ } else {
+ TEST_ASSERT(e && (*e == '+'));
+ }
+
+ TEST_ASSERT(strtoull("+0!", &e, 0) == 0);
+ TEST_ASSERT(e && (*e == '!'));
+
+ TEST_ASSERT(strtoull("+0x!", &e, 0) == 0);
+ if (use_builtin_stdlib) {
+ TEST_ASSERT(e && (*e == '!'));
+ } else {
+ if (IS_ENABLED(EMU_BUILD))
+ TEST_ASSERT(e && (*e == 'x'));
+ else
+ TEST_ASSERT(e && (*e == '+'));
+ }
+
+ TEST_ASSERT(strtoull("+0X!", &e, 0) == 0);
+ if (use_builtin_stdlib) {
+ TEST_ASSERT(e && (*e == '!'));
+ } else {
+ if (IS_ENABLED(EMU_BUILD))
+ TEST_ASSERT(e && (*e == 'X'));
+ else
+ TEST_ASSERT(e && (*e == '+'));
+ }
+
+ return EC_SUCCESS;
+}
+
+static int test_strncpy(void)
+{
+ char dest[10];
+
+ strncpy(dest, "test", 10);
+ TEST_ASSERT_ARRAY_EQ("test", dest, 5);
+ strncpy(dest, "12345", 6);
+ TEST_ASSERT_ARRAY_EQ("12345", dest, 6);
+ /*
+ * gcc complains:
+ * error: ‘__builtin_strncpy’ output truncated copying 10 bytes from a
+ * string of length 12 [-Werror=stringop-truncation]
+ */
+#pragma GCC diagnostic push
+#if defined(__GNUC__) && __GNUC__ >= 8
+#pragma GCC diagnostic ignored "-Wstringop-truncation"
+#endif
+ strncpy(dest, "testtesttest", 10);
+#pragma GCC diagnostic pop
+ TEST_ASSERT_ARRAY_EQ("testtestte", dest, 10);
+
+ return EC_SUCCESS;
+}
+
+static int test_strncmp(void)
+{
+ TEST_ASSERT(strncmp("123", "123", 8) == 0);
+ TEST_ASSERT(strncmp("789", "456", 8) > 0);
+ TEST_ASSERT(strncmp("abc", "abd", 4) < 0);
+ TEST_ASSERT(strncmp("abc", "abd", 2) == 0);
+ return EC_SUCCESS;
+}
+
+static int test_strlen(void)
+{
+ TEST_ASSERT(strlen("this is a string") == 16);
+ return EC_SUCCESS;
+}
+
+static int test_strnlen(void)
+{
+ TEST_ASSERT(strnlen("this is a string", 17) == 16);
+ TEST_ASSERT(strnlen("this is a string", 16) == 16);
+ TEST_ASSERT(strnlen("this is a string", 5) == 5);
+
+ return EC_SUCCESS;
+}
+
+static int test_strcasecmp(void)
+{
+ TEST_ASSERT(strcasecmp("test string", "TEST strIng") == 0);
+ TEST_ASSERT(strcasecmp("test123!@#", "TesT123!@#") == 0);
+ TEST_ASSERT(strcasecmp("lower", "UPPER") != 0);
+ return EC_SUCCESS;
+}
+
+static int test_strncasecmp(void)
+{
+ TEST_ASSERT(strncasecmp("test string", "TEST str", 4) == 0);
+ TEST_ASSERT(strncasecmp("test string", "TEST str", 8) == 0);
+ TEST_ASSERT(strncasecmp("test123!@#", "TesT321!@#", 5) != 0);
+ TEST_ASSERT(strncasecmp("test123!@#", "TesT321!@#", 4) == 0);
+ TEST_ASSERT(strncasecmp("1test123!@#", "1TesT321!@#", 5) == 0);
+ TEST_ASSERT(strncasecmp("1test123", "teststr", 0) == 0);
+ return EC_SUCCESS;
+}
+
+static int test_atoi(void)
+{
+ TEST_ASSERT(atoi(" 901") == 901);
+ TEST_ASSERT(atoi("-12c") == -12);
+ TEST_ASSERT(atoi(" 0 ") == 0);
+ TEST_ASSERT(atoi("\t111") == 111);
+ return EC_SUCCESS;
+}
+
+static int test_snprintf(void)
+{
+ char buffer[32];
+
+ TEST_ASSERT(snprintf(buffer, sizeof(buffer), "%u", 1234) == 4);
+ TEST_ASSERT(strncmp(buffer, "1234", sizeof(buffer)) == 0);
+ return EC_SUCCESS;
+}
+
+static int test_strcspn(void)
+{
+ const char str1[] = "abc";
+ const char str2[] = "This is a string\nwith newlines!";
+
+ TEST_EQ(strcspn(str1, "a"), (size_t)0, "%zu");
+ TEST_EQ(strcspn(str1, "b"), (size_t)1, "%zu");
+ TEST_EQ(strcspn(str1, "c"), (size_t)2, "%zu");
+ TEST_EQ(strcspn(str1, "ccc"), (size_t)2, "%zu");
+ TEST_EQ(strcspn(str1, "cba"), (size_t)0, "%zu");
+ TEST_EQ(strcspn(str1, "cb"), (size_t)1, "%zu");
+ TEST_EQ(strcspn(str1, "bc"), (size_t)1, "%zu");
+ TEST_EQ(strcspn(str1, "cbc"), (size_t)1, "%zu");
+ TEST_EQ(strcspn(str1, "z"), strlen(str1), "%zu");
+ TEST_EQ(strcspn(str1, "xyz"), strlen(str1), "%zu");
+ TEST_EQ(strcspn(str1, ""), strlen(str1), "%zu");
+
+ TEST_EQ(strcspn(str2, " "), (size_t)4, "%zu");
+ TEST_EQ(strcspn(str2, "\n"), (size_t)16, "%zu");
+ TEST_EQ(strcspn(str2, "\n "), (size_t)4, "%zu");
+ TEST_EQ(strcspn(str2, "!"), strlen(str2) - 1, "%zu");
+ TEST_EQ(strcspn(str2, "z"), strlen(str2), "%zu");
+ TEST_EQ(strcspn(str2, "z!"), strlen(str2) - 1, "%zu");
+
+ return EC_SUCCESS;
+}
+
+static int test_memmove(void)
+{
+ int i;
+ timestamp_t t0, t1, t2, t3;
+ char *buf;
+ const int buf_size = 1000;
+ const int len = 400;
+ const int iteration = 1000;
+
+ TEST_ASSERT(shared_mem_acquire(buf_size, &buf) == EC_SUCCESS);
+
+ for (i = 0; i < len; ++i)
+ buf[i] = i & 0x7f;
+ for (i = len; i < buf_size; ++i)
+ buf[i] = 0;
+
+ t0 = get_time();
+ for (i = 0; i < iteration; ++i)
+ memmove(buf + 101, buf, len); /* unaligned */
+ t1 = get_time();
+ TEST_ASSERT_ARRAY_EQ(buf + 101, buf, len);
+ ccprintf(" (speed gain: %" PRId64 " ->", t1.val - t0.val);
+
+ t2 = get_time();
+ for (i = 0; i < iteration; ++i)
+ memmove(buf + 100, buf, len); /* aligned */
+ t3 = get_time();
+ ccprintf(" %" PRId64 " us) ", t3.val - t2.val);
+ TEST_ASSERT_ARRAY_EQ(buf + 100, buf, len);
+
+ if (!IS_ENABLED(EMU_BUILD) && use_builtin_stdlib)
+ TEST_ASSERT((t1.val - t0.val) > (t3.val - t2.val));
+
+ /* Test small moves */
+ memmove(buf + 1, buf, 1);
+ TEST_ASSERT_ARRAY_EQ(buf + 1, buf, 1);
+ memmove(buf + 5, buf, 4);
+ memmove(buf + 1, buf, 4);
+ TEST_ASSERT_ARRAY_EQ(buf + 1, buf + 5, 4);
+
+ shared_mem_release(buf);
+ return EC_SUCCESS;
+}
+
+static int test_memcpy(void)
+{
+ int i;
+ timestamp_t t0, t1, t2, t3;
+ char *buf;
+ const int buf_size = 1000;
+ const int len = 400;
+ const int dest_offset = 500;
+ const int iteration = 1000;
+
+ TEST_ASSERT(shared_mem_acquire(buf_size, &buf) == EC_SUCCESS);
+
+ for (i = 0; i < len; ++i)
+ buf[i] = i & 0x7f;
+ for (i = len; i < buf_size; ++i)
+ buf[i] = 0;
+
+ t0 = get_time();
+ for (i = 0; i < iteration; ++i)
+ memcpy(buf + dest_offset + 1, buf, len); /* unaligned */
+ t1 = get_time();
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf, len);
+ ccprintf(" (speed gain: %" PRId64 " ->", t1.val - t0.val);
+
+ t2 = get_time();
+ for (i = 0; i < iteration; ++i)
+ memcpy(buf + dest_offset, buf, len); /* aligned */
+ t3 = get_time();
+ ccprintf(" %" PRId64 " us) ", t3.val - t2.val);
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset, buf, len);
+
+ if (!IS_ENABLED(EMU_BUILD))
+ TEST_ASSERT((t1.val - t0.val) > (t3.val - t2.val));
+
+ memcpy(buf + dest_offset + 1, buf + 1, len - 1);
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf + 1, len - 1);
+
+ /* Test small copies */
+ memcpy(buf + dest_offset, buf, 1);
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset, buf, 1);
+ memcpy(buf + dest_offset, buf, 4);
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset, buf, 4);
+ memcpy(buf + dest_offset + 1, buf, 1);
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf, 1);
+ memcpy(buf + dest_offset + 1, buf, 4);
+ TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf, 4);
+
+ shared_mem_release(buf);
+ return EC_SUCCESS;
+}
+
+/* Plain memset, used as a reference to measure speed gain */
+static void *dumb_memset(void *dest, int c, int len)
+{
+ char *d = (char *)dest;
+ while (len > 0) {
+ *(d++) = c;
+ len--;
+ }
+ return dest;
+}
+
+static int test_memset(void)
+{
+ int i;
+ timestamp_t t0, t1, t2, t3;
+ char *buf;
+ const int buf_size = 1000;
+ const int len = 400;
+ const int iteration = 1000;
+
+ TEST_ASSERT(shared_mem_acquire(buf_size, &buf) == EC_SUCCESS);
+
+ t0 = get_time();
+ for (i = 0; i < iteration; ++i)
+ dumb_memset(buf, 1, len);
+ t1 = get_time();
+ TEST_ASSERT_MEMSET(buf, (char)1, len);
+ ccprintf(" (speed gain: %" PRId64 " ->", t1.val - t0.val);
+
+ t2 = get_time();
+ for (i = 0; i < iteration; ++i)
+ memset(buf, 1, len);
+ t3 = get_time();
+ TEST_ASSERT_MEMSET(buf, (char)1, len);
+ ccprintf(" %" PRId64 " us) ", t3.val - t2.val);
+
+ if (!IS_ENABLED(EMU_BUILD))
+ TEST_ASSERT((t1.val - t0.val) > (t3.val - t2.val));
+
+ memset(buf, 128, len);
+ TEST_ASSERT_MEMSET(buf, (char)128, len);
+
+ memset(buf, -2, len);
+ TEST_ASSERT_MEMSET(buf, (char)-2, len);
+
+ memset(buf + 1, 1, len - 2);
+ TEST_ASSERT_MEMSET(buf + 1, (char)1, len - 2);
+
+ shared_mem_release(buf);
+ return EC_SUCCESS;
+}
+
+static int test_memchr(void)
+{
+ char *buf = "1234";
+
+ TEST_ASSERT(memchr("123567890", '4', 8) == NULL);
+ TEST_ASSERT(memchr("123", '3', 2) == NULL);
+ TEST_ASSERT(memchr(buf, '3', 4) == buf + 2);
+ TEST_ASSERT(memchr(buf, '4', 4) == buf + 3);
+ return EC_SUCCESS;
+}
+
+void run_test(int argc, const char **argv)
+{
+ test_reset();
+
+ RUN_TEST(test_isalpha);
+ RUN_TEST(test_isprint);
+ RUN_TEST(test_strstr);
+ RUN_TEST(test_strtoull);
+ RUN_TEST(test_strncpy);
+ RUN_TEST(test_strncmp);
+ RUN_TEST(test_strlen);
+ RUN_TEST(test_strnlen);
+ RUN_TEST(test_strcasecmp);
+ RUN_TEST(test_strncasecmp);
+ RUN_TEST(test_atoi);
+ RUN_TEST(test_snprintf);
+ RUN_TEST(test_strcspn);
+ RUN_TEST(test_memmove);
+ RUN_TEST(test_memcpy);
+ RUN_TEST(test_memset);
+ RUN_TEST(test_memchr);
+
+ test_print_result();
+}
diff --git a/test/stdlib.tasklist b/test/stdlib.tasklist
new file mode 100644
index 0000000000..1154b1ae8b
--- /dev/null
+++ b/test/stdlib.tasklist
@@ -0,0 +1,9 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * See CONFIG_TASK_LIST in config.h for details.
+ */
+#define CONFIG_TEST_TASK_LIST /* No test task */
diff --git a/test/stillness_detector.c b/test/stillness_detector.c
index 57057e217e..8858d751d7 100644
--- a/test/stillness_detector.c
+++ b/test/stillness_detector.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -35,8 +35,8 @@ static int test_not_still_short_window(void)
int i;
for (i = 0; i < 6; ++i)
- TEST_ASSERT(!still_det_update(&det, i * 100 * MSEC,
- 0.0f, 0.0f, 0.0f));
+ TEST_ASSERT(!still_det_update(&det, i * 100 * MSEC, 0.0f, 0.0f,
+ 0.0f));
return EC_SUCCESS;
}
@@ -47,8 +47,8 @@ static int test_not_still_long_window(void)
int i;
for (i = 0; i < 5; ++i)
- TEST_ASSERT(!still_det_update(&det, i * 300 * MSEC,
- 0.0f, 0.0f, 0.0f));
+ TEST_ASSERT(!still_det_update(&det, i * 300 * MSEC, 0.0f, 0.0f,
+ 0.0f));
return EC_SUCCESS;
}
@@ -59,8 +59,8 @@ static int test_not_still_not_enough_samples(void)
int i;
for (i = 0; i < 4; ++i)
- TEST_ASSERT(!still_det_update(&det, i * 200 * MSEC,
- 0.0f, 0.0f, 0.0f));
+ TEST_ASSERT(!still_det_update(&det, i * 200 * MSEC, 0.0f, 0.0f,
+ 0.0f));
return EC_SUCCESS;
}
@@ -71,9 +71,8 @@ static int test_is_still_all_axes(void)
int i;
for (i = 0; i < 9; ++i) {
- int result = still_det_update(&det, i * 100 * MSEC,
- i * 0.001f, i * 0.001f,
- i * 0.001f);
+ int result = still_det_update(&det, i * 100 * MSEC, i * 0.001f,
+ i * 0.001f, i * 0.001f);
TEST_EQ(result, i == 8 ? 1 : 0, "%d");
}
@@ -90,9 +89,8 @@ static int test_not_still_one_axis(void)
int i;
for (i = 0; i < 9; ++i) {
- TEST_ASSERT(!still_det_update(&det, i * 100 * MSEC,
- i * 0.001f, i * 0.001f,
- i * 0.01f));
+ TEST_ASSERT(!still_det_update(&det, i * 100 * MSEC, i * 0.001f,
+ i * 0.001f, i * 0.01f));
}
return EC_SUCCESS;
@@ -104,15 +102,13 @@ static int test_resets(void)
int i;
for (i = 0; i < 9; ++i) {
- TEST_ASSERT(!still_det_update(&det, i * 100 * MSEC,
- i * 0.001f, i * 0.001f,
- i * 0.01f));
+ TEST_ASSERT(!still_det_update(&det, i * 100 * MSEC, i * 0.001f,
+ i * 0.001f, i * 0.01f));
}
for (i = 0; i < 9; ++i) {
- int result = still_det_update(&det, i * 100 * MSEC,
- i * 0.001f, i * 0.001f,
- i * 0.001f);
+ int result = still_det_update(&det, i * 100 * MSEC, i * 0.001f,
+ i * 0.001f, i * 0.001f);
TEST_EQ(result, i == 8 ? 1 : 0, "%d");
}
@@ -123,7 +119,7 @@ static int test_resets(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
@@ -136,6 +132,6 @@ void run_test(int argc, char **argv)
RUN_TEST(test_resets);
/* Wait for all background tasks to start. */
- sleep(2);
+ sleep(4);
test_print_result();
}
diff --git a/test/stillness_detector.tasklist b/test/stillness_detector.tasklist
index 5ffe662d01..2d4595f76a 100644
--- a/test/stillness_detector.tasklist
+++ b/test/stillness_detector.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/stm32f_rtc.c b/test/stm32f_rtc.c
index b9b48ec043..b055398b28 100644
--- a/test/stm32f_rtc.c
+++ b/test/stm32f_rtc.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -67,7 +67,7 @@ test_static int test_rtc_match_delay(void)
}
ccprintf("Expected number of RTC alarm interrupts %d\n",
- rtc_match_delay_iterations);
+ rtc_match_delay_iterations);
ccprintf("Actual number of RTC alarm interrupts %d\n", rtc_fired);
/* Make sure each set_rtc_alarm() generated the interrupt. */
@@ -76,7 +76,7 @@ test_static int test_rtc_match_delay(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/stm32f_rtc.tasklist b/test/stm32f_rtc.tasklist
index 51734f058d..a1f1a94e2d 100644
--- a/test/stm32f_rtc.tasklist
+++ b/test/stm32f_rtc.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/stress.c b/test/stress.c
index 91a65197f8..f497644602 100644
--- a/test/stress.c
+++ b/test/stress.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -46,8 +46,7 @@ struct i2c_test_param_t {
/* period between 500us and 32ms */
#define RAND_US() (((prng_no_seed() % 64) + 1) * 500)
-static int stress(const char *name,
- int (*test_routine)(void),
+static int stress(const char *name, int (*test_routine)(void),
const int iteration)
{
int i;
@@ -65,12 +64,12 @@ static int stress(const char *name,
return EC_SUCCESS;
}
-#define RUN_STRESS_TEST(n, r, iter) \
- do { \
+#define RUN_STRESS_TEST(n, r, iter) \
+ do { \
if (stress(n, r, iter) != EC_SUCCESS) { \
- ccputs("Fail\n"); \
- error_count++; \
- } \
+ ccputs("Fail\n"); \
+ error_count++; \
+ } \
} while (0)
/*****************************************************************************/
@@ -81,26 +80,27 @@ static int test_i2c(void)
int res = EC_ERROR_UNKNOWN;
int mock_data;
struct i2c_test_param_t *param;
- param = i2c_test_params + (prng_no_seed() % (sizeof(i2c_test_params) /
- sizeof(struct i2c_test_param_t)));
+ param = i2c_test_params +
+ (prng_no_seed() %
+ (sizeof(i2c_test_params) / sizeof(struct i2c_test_param_t)));
if (param->width == 8 && param->data == -1)
- res = i2c_read8(param->port, param->addr,
- param->offset, &mock_data);
+ res = i2c_read8(param->port, param->addr, param->offset,
+ &mock_data);
else if (param->width == 8 && param->data >= 0)
- res = i2c_write8(param->port, param->addr,
- param->offset, param->data);
+ res = i2c_write8(param->port, param->addr, param->offset,
+ param->data);
else if (param->width == 16 && param->data == -1)
- res = i2c_read16(param->port, param->addr,
- param->offset, &mock_data);
+ res = i2c_read16(param->port, param->addr, param->offset,
+ &mock_data);
else if (param->width == 16 && param->data >= 0)
- res = i2c_write16(param->port, param->addr,
- param->offset, param->data);
+ res = i2c_write16(param->port, param->addr, param->offset,
+ param->data);
else if (param->width == 32 && param->data == -1)
- res = i2c_read32(param->port, param->addr,
- param->offset, &mock_data);
+ res = i2c_read32(param->port, param->addr, param->offset,
+ &mock_data);
else if (param->width == 32 && param->data >= 0)
- res = i2c_write32(param->port, param->addr,
- param->offset, param->data);
+ res = i2c_write32(param->port, param->addr, param->offset,
+ param->data);
return res;
}
@@ -128,7 +128,7 @@ static int test_adc(void)
}
#endif
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/stress.tasklist b/test/stress.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/stress.tasklist
+++ b/test/stress.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/system.c b/test/system.c
index 79383b82d9..d123bd5cee 100644
--- a/test/system.c
+++ b/test/system.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -13,8 +13,8 @@
#include "timer.h"
#include "util.h"
-#define TEST_STATE_STEP_2 (1 << 0)
-#define TEST_STATE_FAIL (1 << 1)
+#define TEST_STATE_STEP_2 (1 << 0)
+#define TEST_STATE_FAIL (1 << 1)
static int test_reboot_on_shutdown(void)
{
@@ -92,7 +92,7 @@ static void fail_and_clean_up(void)
test_fail();
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
uint32_t state = 0;
diff --git a/test/system.tasklist b/test/system.tasklist
index 4e455a7ea3..6967ec1095 100644
--- a/test/system.tasklist
+++ b/test/system.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/system_is_locked.c b/test/system_is_locked.c
index 9870f77ebc..47a7977601 100644
--- a/test/system_is_locked.c
+++ b/test/system_is_locked.c
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -60,7 +60,7 @@ void test_run_step(uint32_t state)
else if (write_protect_enabled) {
ccprintf("Request RO protection at boot\n");
crec_flash_set_protect(EC_FLASH_PROTECT_RO_AT_BOOT,
- EC_FLASH_PROTECT_RO_AT_BOOT);
+ EC_FLASH_PROTECT_RO_AT_BOOT);
test_reboot_to_next_step(TEST_STATE_STEP_2);
} else {
/* Write protect is disabled, nothing else to do */
@@ -90,7 +90,7 @@ int task_test(void *unused)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/system_is_locked.tasklist b/test/system_is_locked.tasklist
index 6a2f1834ca..273a9664c0 100644
--- a/test/system_is_locked.tasklist
+++ b/test/system_is_locked.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/test_config.h b/test/test_config.h
index afd72ce1d2..d72a078434 100644
--- a/test/test_config.h
+++ b/test/test_config.h
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -20,9 +20,13 @@
/* Don't compile features unless specifically testing for them */
#undef CONFIG_VBOOT_HASH
+
+/* Only disable this if we didn't explicitly enable it in Kconfig */
+#ifndef CONFIG_PLATFORM_EC_USB_PD_LOGGING
#undef CONFIG_USB_PD_LOGGING
+#endif
-#ifdef TEST_AES
+#if defined(TEST_AES) || defined(TEST_CRYPTO_BENCHMARK)
#define CONFIG_AES
#define CONFIG_AES_GCM
#endif
@@ -55,6 +59,8 @@
#ifdef TEST_KB_8042
#define CONFIG_KEYBOARD_PROTOCOL_8042
+#define CONFIG_8042_AUX
+#define CONFIG_KEYBOARD_DEBUG
#endif
#ifdef TEST_KB_MKBP
@@ -142,6 +148,11 @@
#define CONFIG_RGBKBD_DEMO_DOT
#endif
+#ifdef TEST_NVIDIA_GPU
+#define CONFIG_GPU_NVIDIA
+#define GPIO_NVIDIA_GPU_ACOFF_ODL 123
+#endif
+
#ifdef TEST_STILLNESS_DETECTOR
#define CONFIG_MKBP_EVENT
#define CONFIG_MKBP_USE_GPIO
@@ -169,17 +180,13 @@
#define CONFIG_MKBP_USE_GPIO
#endif
-#if defined(CONFIG_ONLINE_CALIB) && \
- !defined(CONFIG_TEMP_CACHE_STALE_THRES)
+#if defined(CONFIG_ONLINE_CALIB) && !defined(CONFIG_TEMP_CACHE_STALE_THRES)
#define CONFIG_TEMP_CACHE_STALE_THRES (1 * SECOND)
#endif /* CONFIG_ONLINE_CALIB && !CONFIG_TEMP_CACHE_STALE_THRES */
-#if defined(CONFIG_ONLINE_CALIB) || \
- defined(TEST_BODY_DETECTION) || \
- defined(TEST_MOTION_ANGLE) || \
- defined(TEST_MOTION_ANGLE_TABLET) || \
- defined(TEST_MOTION_LID) || \
- defined(TEST_MOTION_SENSE_FIFO)
+#if defined(CONFIG_ONLINE_CALIB) || defined(TEST_BODY_DETECTION) || \
+ defined(TEST_MOTION_ANGLE) || defined(TEST_MOTION_ANGLE_TABLET) || \
+ defined(TEST_MOTION_LID) || defined(TEST_MOTION_SENSE_FIFO)
enum sensor_id {
BASE,
LID,
@@ -195,15 +202,14 @@ enum sensor_id {
#endif
#if defined(TEST_MOTION_ANGLE)
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
+#define CONFIG_ACCEL_FORCE_MODE_MASK \
((1 << CONFIG_LID_ANGLE_SENSOR_BASE) | \
(1 << CONFIG_LID_ANGLE_SENSOR_LID))
#define CONFIG_ACCEL_STD_REF_FRAME_OLD
#endif
-#if defined(TEST_MOTION_ANGLE_TABLET) || \
- defined(TEST_MOTION_LID)
-#define CONFIG_ACCEL_FORCE_MODE_MASK \
+#if defined(TEST_MOTION_ANGLE_TABLET) || defined(TEST_MOTION_LID)
+#define CONFIG_ACCEL_FORCE_MODE_MASK \
((1 << CONFIG_LID_ANGLE_SENSOR_BASE) | \
(1 << CONFIG_LID_ANGLE_SENSOR_LID))
#endif
@@ -216,19 +222,21 @@ enum sensor_id {
#ifdef TEST_RMA_AUTH
/* Test server public and private keys */
-#define RMA_KEY_BLOB { \
- 0x03, 0xae, 0x2d, 0x2c, 0x06, 0x23, 0xe0, 0x73, \
- 0x0d, 0xd3, 0xb7, 0x92, 0xac, 0x54, 0xc5, 0xfd, \
- 0x7e, 0x9c, 0xf0, 0xa8, 0xeb, 0x7e, 0x2a, 0xb5, \
- 0xdb, 0xf4, 0x79, 0x5f, 0x8a, 0x0f, 0x28, 0x3f, \
- 0x10 \
+#define RMA_KEY_BLOB \
+ { \
+ 0x03, 0xae, 0x2d, 0x2c, 0x06, 0x23, 0xe0, 0x73, 0x0d, 0xd3, \
+ 0xb7, 0x92, 0xac, 0x54, 0xc5, 0xfd, 0x7e, 0x9c, 0xf0, \
+ 0xa8, 0xeb, 0x7e, 0x2a, 0xb5, 0xdb, 0xf4, 0x79, 0x5f, \
+ 0x8a, 0x0f, 0x28, 0x3f, 0x10 \
}
-#define RMA_TEST_SERVER_PRIVATE_KEY { \
- 0x47, 0x3b, 0xa5, 0xdb, 0xc4, 0xbb, 0xd6, 0x77, \
- 0x20, 0xbd, 0xd8, 0xbd, 0xc8, 0x7a, 0xbb, 0x07, \
- 0x03, 0x79, 0xba, 0x7b, 0x52, 0x8c, 0xec, 0xb3, \
- 0x4d, 0xaa, 0x69, 0xf5, 0x65, 0xb4, 0x31, 0xad}
+#define RMA_TEST_SERVER_PRIVATE_KEY \
+ { \
+ 0x47, 0x3b, 0xa5, 0xdb, 0xc4, 0xbb, 0xd6, 0x77, 0x20, 0xbd, \
+ 0xd8, 0xbd, 0xc8, 0x7a, 0xbb, 0x07, 0x03, 0x79, 0xba, \
+ 0x7b, 0x52, 0x8c, 0xec, 0xb3, 0x4d, 0xaa, 0x69, 0xf5, \
+ 0x65, 0xb4, 0x31, 0xad \
+ }
#define RMA_TEST_SERVER_KEY_ID 0x10
#define CONFIG_BASE32
@@ -290,8 +298,8 @@ int board_discharge_on_ac(int enabled);
#define I2C_PORT_BATTERY 0
#define I2C_PORT_CHARGER 0
#define CONFIG_BATTERY_LOW_VOLTAGE_PROTECTION
-#undef CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT
-#define CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT (2*SECOND)
+#undef CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT
+#define CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT (2 * SECOND)
#endif
#ifdef TEST_THERMAL
@@ -361,10 +369,8 @@ int ncp15wb_calculate_temp(uint16_t adc);
#define CONFIG_USB_PD_ONLY_FIXED_PDOS
#endif
-#if defined(TEST_USB_SM_FRAMEWORK_H3) || \
- defined(TEST_USB_SM_FRAMEWORK_H2) || \
- defined(TEST_USB_SM_FRAMEWORK_H1) || \
- defined(TEST_USB_SM_FRAMEWORK_H0)
+#if defined(TEST_USB_SM_FRAMEWORK_H3) || defined(TEST_USB_SM_FRAMEWORK_H2) || \
+ defined(TEST_USB_SM_FRAMEWORK_H1) || defined(TEST_USB_SM_FRAMEWORK_H0)
#define CONFIG_TEST_SM
#endif
@@ -457,8 +463,7 @@ int ncp15wb_calculate_temp(uint16_t adc);
#endif /* TEST_USB_PE_DRP || TEST_USB_PE_DRP_NOEXTENDED */
/* Common TypeC tests defines */
-#if defined(TEST_USB_TYPEC_VPD) || \
- defined(TEST_USB_TYPEC_CTVPD)
+#if defined(TEST_USB_TYPEC_VPD) || defined(TEST_USB_TYPEC_CTVPD)
#define CONFIG_USB_PID 0x5036
#define VPD_HW_VERSION 0x0001
#define VPD_FW_VERSION 0x0001
@@ -629,18 +634,17 @@ int ncp15wb_calculate_temp(uint16_t adc);
#define CONFIG_RSA
#define CONFIG_RWSIG_TYPE_RWSIG
#define CONFIG_RW_B
-#define CONFIG_RW_B_MEM_OFF CONFIG_RO_MEM_OFF
-#undef CONFIG_RO_SIZE
-#define CONFIG_RO_SIZE (CONFIG_FLASH_SIZE_BYTES / 4)
-#undef CONFIG_RW_SIZE
-#define CONFIG_RW_SIZE CONFIG_RO_SIZE
-#define CONFIG_RW_A_STORAGE_OFF CONFIG_RW_STORAGE_OFF
-#define CONFIG_RW_B_STORAGE_OFF (CONFIG_RW_A_STORAGE_OFF + \
- CONFIG_RW_SIZE)
-#define CONFIG_RW_A_SIGN_STORAGE_OFF (CONFIG_RW_A_STORAGE_OFF + \
- CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
-#define CONFIG_RW_B_SIGN_STORAGE_OFF (CONFIG_RW_B_STORAGE_OFF + \
- CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
+#define CONFIG_RW_B_MEM_OFF CONFIG_RO_MEM_OFF
+#undef CONFIG_RO_SIZE
+#define CONFIG_RO_SIZE (CONFIG_FLASH_SIZE_BYTES / 4)
+#undef CONFIG_RW_SIZE
+#define CONFIG_RW_SIZE CONFIG_RO_SIZE
+#define CONFIG_RW_A_STORAGE_OFF CONFIG_RW_STORAGE_OFF
+#define CONFIG_RW_B_STORAGE_OFF (CONFIG_RW_A_STORAGE_OFF + CONFIG_RW_SIZE)
+#define CONFIG_RW_A_SIGN_STORAGE_OFF \
+ (CONFIG_RW_A_STORAGE_OFF + CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
+#define CONFIG_RW_B_SIGN_STORAGE_OFF \
+ (CONFIG_RW_B_STORAGE_OFF + CONFIG_RW_SIZE - CONFIG_RW_SIG_SIZE)
#endif
#ifdef TEST_X25519
@@ -654,5 +658,5 @@ int ncp15wb_calculate_temp(uint16_t adc);
#define I2C_BITBANG_PORT_COUNT 1
#endif
-#endif /* TEST_BUILD */
-#endif /* __TEST_TEST_CONFIG_H */
+#endif /* TEST_BUILD */
+#endif /* __TEST_TEST_CONFIG_H */
diff --git a/test/thermal.c b/test/thermal.c
index 1161ecbf1b..a70137238d 100644
--- a/test/thermal.c
+++ b/test/thermal.c
@@ -1,10 +1,11 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
* Test thermal engine.
*/
+#include "builtin/assert.h"
#include "common.h"
#include "console.h"
#include "driver/temp_sensor/thermistor.h"
@@ -18,7 +19,6 @@
#include "timer.h"
#include "util.h"
-
/*****************************************************************************/
/* Exported data */
@@ -95,7 +95,7 @@ static void reset_mocks(void)
memset(thermal_params, 0, sizeof(thermal_params));
/* All sensors report error anyway */
- set_temps(-1, -1 , -1, -1);
+ set_temps(-1, -1, -1, -1);
/* Reset expectations */
host_throttled = 0;
@@ -105,7 +105,6 @@ static void reset_mocks(void)
no_temps_read = 0;
}
-
/*****************************************************************************/
/* Tests */
@@ -147,7 +146,6 @@ static int test_sensors_can_be_read(void)
return EC_SUCCESS;
}
-
static int test_one_fan(void)
{
reset_mocks();
@@ -448,42 +446,41 @@ static int test_several_limits(void)
TEST_ASSERT(cpu_throttled == 0);
TEST_ASSERT(cpu_shutdown == 0);
- set_temps(500, 50, -1, 10); /* 1=low, 2=X, 3=low */
+ set_temps(500, 50, -1, 10); /* 1=low, 2=X, 3=low */
sleep(2);
TEST_ASSERT(host_throttled == 0);
TEST_ASSERT(cpu_throttled == 0);
TEST_ASSERT(cpu_shutdown == 0);
- set_temps(500, 170, 210, 10); /* 1=warn, 2=high, 3=low */
+ set_temps(500, 170, 210, 10); /* 1=warn, 2=high, 3=low */
sleep(2);
TEST_ASSERT(host_throttled == 1);
TEST_ASSERT(cpu_throttled == 1);
TEST_ASSERT(cpu_shutdown == 0);
- set_temps(500, 100, 50, 40); /* 1=low, 2=low, 3=high */
+ set_temps(500, 100, 50, 40); /* 1=low, 2=low, 3=high */
sleep(2);
TEST_ASSERT(host_throttled == 1);
TEST_ASSERT(cpu_throttled == 1);
TEST_ASSERT(cpu_shutdown == 0);
- set_temps(500, 100, 50, 41); /* 1=low, 2=low, 3=shutdown */
+ set_temps(500, 100, 50, 41); /* 1=low, 2=low, 3=shutdown */
sleep(2);
TEST_ASSERT(host_throttled == 1);
TEST_ASSERT(cpu_throttled == 1);
TEST_ASSERT(cpu_shutdown == 1);
- all_temps(0); /* reset from shutdown */
+ all_temps(0); /* reset from shutdown */
sleep(2);
TEST_ASSERT(host_throttled == 0);
TEST_ASSERT(cpu_throttled == 0);
-
return EC_SUCCESS;
}
/* Tests for ncp15wb thermistor ADC-to-temp calculation */
-#define LOW_ADC_TEST_VALUE 887 /* 0 C */
-#define HIGH_ADC_TEST_VALUE 100 /* > 100C */
+#define LOW_ADC_TEST_VALUE 887 /* 0 C */
+#define HIGH_ADC_TEST_VALUE 100 /* > 100C */
static int test_ncp15wb_adc_to_temp(void)
{
@@ -496,18 +493,11 @@ static int test_ncp15wb_adc_to_temp(void)
int adc;
int temp;
} adc_temp_datapoints[] = {
- { 615, 30 },
- { 561, 35 },
- { 508, 40 },
- { 407, 50 },
- { 315, 60 },
- { 243, 70 },
- { 186, 80 },
- { 140, 90 },
- { 107, 100 },
+ { 615, 30 }, { 561, 35 }, { 508, 40 },
+ { 407, 50 }, { 315, 60 }, { 243, 70 },
+ { 186, 80 }, { 140, 90 }, { 107, 100 },
};
-
/*
* Verify that calculated temp is decreasing for entire ADC range,
* and that a tick down in ADC value results in no more than 1C
@@ -518,8 +508,7 @@ static int test_ncp15wb_adc_to_temp(void)
while (--i > HIGH_ADC_TEST_VALUE) {
new_temp = ncp15wb_calculate_temp(i);
- TEST_ASSERT(new_temp == temp ||
- new_temp == temp + 1);
+ TEST_ASSERT(new_temp == temp || new_temp == temp + 1);
temp = new_temp;
}
@@ -539,9 +528,7 @@ static int test_thermistor_linear_interpolate(void)
int i, t, t0;
uint16_t mv;
/* Simple test case - a straight line. */
- struct thermistor_data_pair line_data[] = {
- { 100, 0 }, { 0, 100 }
- };
+ struct thermistor_data_pair line_data[] = { { 100, 0 }, { 0, 100 } };
struct thermistor_info line_info = {
.scaling_factor = 1,
.num_pairs = ARRAY_SIZE(line_data),
@@ -576,19 +563,17 @@ static int test_thermistor_linear_interpolate(void)
* of derived values but at temp - 1, temp + 1, and in between.
*/
struct {
- uint16_t mv; /* not scaled */
+ uint16_t mv; /* not scaled */
int temp;
} cmp[] = {
- { 3030, 1 }, { 2341, 5 }, { 2195, 9 },
- { 2120, 11 }, { 1966, 15 }, { 1811, 19 },
- { 1733, 21 }, { 1581, 25 }, { 1434, 29 },
- { 1363, 31 }, { 1227, 35 }, { 1100, 39 },
- { 1040, 41 }, { 929, 45 }, { 827, 49 },
- { 780, 51 }, { 693, 55 }, { 615, 59 },
- { 579, 61 }, { 514, 65 }, { 460, 69 },
- { 430, 71 }, { 382, 75 }, { 339, 79 },
- { 320, 81 }, { 285, 85 }, { 254, 89 },
- { 240, 91 }, { 214, 95 }, { 192, 99 },
+ { 3030, 1 }, { 2341, 5 }, { 2195, 9 }, { 2120, 11 },
+ { 1966, 15 }, { 1811, 19 }, { 1733, 21 }, { 1581, 25 },
+ { 1434, 29 }, { 1363, 31 }, { 1227, 35 }, { 1100, 39 },
+ { 1040, 41 }, { 929, 45 }, { 827, 49 }, { 780, 51 },
+ { 693, 55 }, { 615, 59 }, { 579, 61 }, { 514, 65 },
+ { 460, 69 }, { 430, 71 }, { 382, 75 }, { 339, 79 },
+ { 320, 81 }, { 285, 85 }, { 254, 89 }, { 240, 91 },
+ { 214, 95 }, { 192, 99 },
};
/* Return lowest temperature in data set if voltage is too high. */
@@ -602,9 +587,8 @@ static int test_thermistor_linear_interpolate(void)
TEST_ASSERT(t == data[info.num_pairs - 1].temp);
/* Simple line test */
- for (mv = line_data[0].mv;
- mv > line_data[line_info.num_pairs - 1].mv;
- mv--) {
+ for (mv = line_data[0].mv; mv > line_data[line_info.num_pairs - 1].mv;
+ mv--) {
t = thermistor_linear_interpolate(mv, &line_info);
TEST_ASSERT(mv == line_data[line_info.num_pairs - 1].temp - t);
}
@@ -614,8 +598,7 @@ static int test_thermistor_linear_interpolate(void)
* decreases with increase in voltage (0-5V, 10mV steps).
*/
for (mv = data[0].mv * info.scaling_factor, t0 = data[0].temp;
- mv > data[info.num_pairs - 1].mv;
- mv -= 10) {
+ mv > data[info.num_pairs - 1].mv; mv -= 10) {
int t1 = thermistor_linear_interpolate(mv, &info);
TEST_ASSERT(t1 >= t0);
@@ -642,7 +625,7 @@ static int test_thermistor_linear_interpolate(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_init_val);
RUN_TEST(test_sensors_can_be_read);
diff --git a/test/thermal.tasklist b/test/thermal.tasklist
index d22719d1fb..7494e757cf 100644
--- a/test/thermal.tasklist
+++ b/test/thermal.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/timer_calib.c b/test/timer_calib.c
index 68603762fe..9a58237e2f 100644
--- a/test/timer_calib.c
+++ b/test/timer_calib.c
@@ -1,4 +1,4 @@
-/* Copyright 2012 The Chromium OS Authors. All rights reserved.
+/* Copyright 2012 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -13,7 +13,7 @@
uint32_t difftime(timestamp_t t0, timestamp_t t1)
{
- return (uint32_t)(t1.val-t0.val);
+ return (uint32_t)(t1.val - t0.val);
}
int timer_calib_task(void *data)
@@ -56,7 +56,7 @@ int timer_calib_task(void *data)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
task_wake(TASK_ID_TESTTMR);
}
diff --git a/test/timer_calib.py b/test/timer_calib.py
index 2a625d80c7..2b7c33060e 100644
--- a/test/timer_calib.py
+++ b/test/timer_calib.py
@@ -1,4 +1,4 @@
-# Copyright 2011 The Chromium OS Authors. All rights reserved.
+# Copyright 2011 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
@@ -7,48 +7,54 @@
import time
-def one_pass(helper):
- helper.wait_output("=== Timer calibration ===")
- res = helper.wait_output("back-to-back get_time : (?P<lat>[0-9]+) us",
- use_re=True)["lat"]
- minlat = int(res)
- helper.trace("get_time latency %d us\n" % minlat)
-
- helper.wait_output("sleep 1s")
- t0 = time.time()
- second = helper.wait_output("done. delay = (?P<second>[0-9]+) us",
- use_re=True)["second"]
- t1 = time.time()
- secondreal = t1 - t0
- secondlat = int(second) - 1000000
- helper.trace("1s timer latency %d us / real time %f s\n" % (secondlat,
- secondreal))
-
- us = {}
- for pow2 in range(7):
- delay = 1 << (7-pow2)
- us[delay] = helper.wait_output("%d us => (?P<us>[0-9]+) us" % delay,
- use_re=True)["us"]
- helper.wait_output("Done.")
-
- return minlat, secondlat, secondreal
+def one_pass(helper):
+ helper.wait_output("=== Timer calibration ===")
+ res = helper.wait_output(
+ "back-to-back get_time : (?P<lat>[0-9]+) us", use_re=True
+ )["lat"]
+ minlat = int(res)
+ helper.trace("get_time latency %d us\n" % minlat)
+
+ helper.wait_output("sleep 1s")
+ t0 = time.time()
+ second = helper.wait_output(
+ "done. delay = (?P<second>[0-9]+) us", use_re=True
+ )["second"]
+ t1 = time.time()
+ secondreal = t1 - t0
+ secondlat = int(second) - 1000000
+ helper.trace(
+ "1s timer latency %d us / real time %f s\n" % (secondlat, secondreal)
+ )
+
+ us = {}
+ for pow2 in range(7):
+ delay = 1 << (7 - pow2)
+ us[delay] = helper.wait_output(
+ "%d us => (?P<us>[0-9]+) us" % delay, use_re=True
+ )["us"]
+ helper.wait_output("Done.")
+
+ return minlat, secondlat, secondreal
def test(helper):
- one_pass(helper)
+ one_pass(helper)
- helper.ec_command("reboot")
- helper.wait_output("--- UART initialized")
+ helper.ec_command("reboot")
+ helper.wait_output("--- UART initialized")
- # get the timing results on the second pass
- # to avoid binary translation overhead
- minlat, secondlat, secondreal = one_pass(helper)
+ # get the timing results on the second pass
+ # to avoid binary translation overhead
+ minlat, secondlat, secondreal = one_pass(helper)
- # check that the timings somewhat make sense
- if minlat > 220 or secondlat > 500 or abs(secondreal-1.0) > 0.200:
- helper.fail("imprecise timings " +
- "(get_time %d us sleep %d us / real time %.3f s)" %
- (minlat, secondlat, secondreal))
+ # check that the timings somewhat make sense
+ if minlat > 220 or secondlat > 500 or abs(secondreal - 1.0) > 0.200:
+ helper.fail(
+ "imprecise timings "
+ + "(get_time %d us sleep %d us / real time %.3f s)"
+ % (minlat, secondlat, secondreal)
+ )
- return True # PASS !
+ return True # PASS !
diff --git a/test/timer_calib.tasklist b/test/timer_calib.tasklist
index 51f5beb6c1..22a63c247e 100644
--- a/test/timer_calib.tasklist
+++ b/test/timer_calib.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/timer_dos.c b/test/timer_dos.c
index c681300102..ef9cc3ef0c 100644
--- a/test/timer_dos.c
+++ b/test/timer_dos.c
@@ -1,4 +1,4 @@
-/* Copyright 2012 The Chromium OS Authors. All rights reserved.
+/* Copyright 2012 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -68,7 +68,7 @@ int task_timer(void *seed)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
wait_for_task_started();
task_wake(TASK_ID_TMRD);
diff --git a/test/timer_dos.tasklist b/test/timer_dos.tasklist
index 4da3419f77..5bd77b0580 100644
--- a/test/timer_dos.tasklist
+++ b/test/timer_dos.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/timer_jump.py b/test/timer_jump.py
index f506a69fcf..a4350cecdf 100644
--- a/test/timer_jump.py
+++ b/test/timer_jump.py
@@ -1,4 +1,4 @@
-# Copyright 2012 The Chromium OS Authors. All rights reserved.
+# Copyright 2012 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
@@ -10,22 +10,25 @@ import time
DELAY = 5
ERROR_MARGIN = 0.5
+
def test(helper):
- helper.wait_output("idle task started")
- helper.ec_command("sysinfo")
- copy = helper.wait_output("Copy:\s+(?P<c>\S+)", use_re=True)["c"]
- if copy != "RO":
- helper.ec_command("sysjump ro")
- helper.wait_output("idle task started")
- helper.ec_command("gettime")
- ec_start_time = helper.wait_output("Time: 0x[0-9a-f]* = (?P<t>[\d\.]+) s",
- use_re=True)["t"]
- time.sleep(DELAY)
- helper.ec_command("sysjump a")
- helper.wait_output("idle task started")
- helper.ec_command("gettime")
- ec_end_time = helper.wait_output("Time: 0x[0-9a-f]* = (?P<t>[\d\.]+) s",
- use_re=True)["t"]
+ helper.wait_output("idle task started")
+ helper.ec_command("sysinfo")
+ copy = helper.wait_output("Copy:\s+(?P<c>\S+)", use_re=True)["c"]
+ if copy != "RO":
+ helper.ec_command("sysjump ro")
+ helper.wait_output("idle task started")
+ helper.ec_command("gettime")
+ ec_start_time = helper.wait_output(
+ "Time: 0x[0-9a-f]* = (?P<t>[\d\.]+) s", use_re=True
+ )["t"]
+ time.sleep(DELAY)
+ helper.ec_command("sysjump a")
+ helper.wait_output("idle task started")
+ helper.ec_command("gettime")
+ ec_end_time = helper.wait_output(
+ "Time: 0x[0-9a-f]* = (?P<t>[\d\.]+) s", use_re=True
+ )["t"]
- time_diff = float(ec_end_time) - float(ec_start_time)
- return time_diff >= DELAY and time_diff <= DELAY + ERROR_MARGIN
+ time_diff = float(ec_end_time) - float(ec_start_time)
+ return time_diff >= DELAY and time_diff <= DELAY + ERROR_MARGIN
diff --git a/test/timer_jump.tasklist b/test/timer_jump.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/timer_jump.tasklist
+++ b/test/timer_jump.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/uptime.c b/test/uptime.c
index 651628ab7b..0b6c9b56e6 100644
--- a/test/uptime.c
+++ b/test/uptime.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -62,7 +62,7 @@ test_static int test_host_uptime_info_command_failure(void)
return EC_RES_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/uptime.tasklist b/test/uptime.tasklist
index 9bf1c80c20..b5c09fb4c3 100644
--- a/test/uptime.tasklist
+++ b/test/uptime.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_common.tasklist b/test/usb_common.tasklist
index 9bf1c80c20..b5c09fb4c3 100644
--- a/test/usb_common.tasklist
+++ b/test/usb_common.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_common_test.c b/test/usb_common_test.c
index 620e061f74..e385b57c16 100644
--- a/test/usb_common_test.c
+++ b/test/usb_common_test.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -194,7 +194,7 @@ int test_pd_extract_pdo_power(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_pd_get_cc_state);
RUN_TEST(test_pd_extract_pdo_power);
diff --git a/test/usb_pd.c b/test/usb_pd.c
index 9fdb439b49..505b80e830 100644
--- a/test/usb_pd.c
+++ b/test/usb_pd.c
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -14,8 +14,8 @@
#include "usb_pd_test_util.h"
#include "util.h"
-#define PORT0 0
-#define PORT1 1
+#define PORT0 0
+#define PORT1 1
#define BATTERY_DESIGN_VOLTAGE 7600
#define BATTERY_DESIGN_CAPACITY 5131
@@ -87,7 +87,7 @@ int pd_adc_read(int port, int cc)
/* we are source connected to sink, return Rd/Open */
return (pd_port[port].partner_polarity == cc) ? 400 : 3000;
else if (!pd_port[port].host_mode &&
- pd_port[port].partner_role == PD_ROLE_SOURCE)
+ pd_port[port].partner_role == PD_ROLE_SOURCE)
/* we are sink connected to source, return Rp/Open */
return (pd_port[port].partner_polarity == cc) ? 1700 : 0;
else if (pd_port[port].host_mode)
@@ -179,39 +179,38 @@ static void simulate_rx_msg(int port, uint16_t header, int cnt,
static void simulate_wait(int port)
{
- uint16_t header = PD_HEADER(PD_CTRL_WAIT, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id,
- 0, pd_port[port].rev, 0);
+ uint16_t header = PD_HEADER(PD_CTRL_WAIT, PD_ROLE_SOURCE, PD_ROLE_DFP,
+ pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
simulate_rx_msg(port, header, 0, NULL);
}
static void simulate_accept(int port)
{
- uint16_t header = PD_HEADER(PD_CTRL_ACCEPT, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id,
- 0, pd_port[port].rev, 0);
+ uint16_t header = PD_HEADER(PD_CTRL_ACCEPT, PD_ROLE_SOURCE, PD_ROLE_DFP,
+ pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
simulate_rx_msg(port, header, 0, NULL);
}
static void simulate_reject(int port)
{
- uint16_t header = PD_HEADER(PD_CTRL_REJECT, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id,
- 0, pd_port[port].rev, 0);
+ uint16_t header = PD_HEADER(PD_CTRL_REJECT, PD_ROLE_SOURCE, PD_ROLE_DFP,
+ pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
simulate_rx_msg(port, header, 0, NULL);
}
-
#ifdef CONFIG_USB_PD_REV30
static void simulate_get_bat_cap(int port)
{
uint16_t msg[2];
uint16_t header = PD_HEADER(PD_EXT_GET_BATTERY_CAP, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id,
- 1, pd_port[port].rev, 1);
+ PD_ROLE_DFP, pd_port[port].msg_rx_id, 1,
+ pd_port[port].rev, 1);
/* set extended header */
msg[0] = PD_EXT_HEADER(0, 0, 1);
@@ -226,8 +225,8 @@ static void simulate_get_bat_status(int port)
{
uint16_t msg[2];
uint16_t header = PD_HEADER(PD_EXT_GET_BATTERY_STATUS, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id,
- 1, pd_port[port].rev, 1);
+ PD_ROLE_DFP, pd_port[port].msg_rx_id, 1,
+ pd_port[port].rev, 1);
/* set extended header */
msg[0] = PD_EXT_HEADER(0, 0, 1);
@@ -252,18 +251,20 @@ static void simulate_source_cap(int port, uint32_t cnt)
static void simulate_goodcrc(int port, int role, int id)
{
- simulate_rx_msg(port, PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
- pd_port[port].rev, 0), 0, NULL);
+ simulate_rx_msg(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
+ pd_port[port].rev, 0),
+ 0, NULL);
}
static int verify_goodcrc(int port, int role, int id)
{
-
return pd_test_tx_msg_verify_sop(port) &&
- pd_test_tx_msg_verify_short(port, PD_HEADER(PD_CTRL_GOOD_CRC,
- role, role, id, 0, 0, 0)) &&
- pd_test_tx_msg_verify_crc(port) &&
- pd_test_tx_msg_verify_eop(port);
+ pd_test_tx_msg_verify_short(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role,
+ role, id, 0, 0, 0)) &&
+ pd_test_tx_msg_verify_crc(port) &&
+ pd_test_tx_msg_verify_eop(port);
}
static void plug_in_source(int port, int polarity)
@@ -296,7 +297,7 @@ static void unplug(int port)
usleep(30 * MSEC);
}
-void pd_snk_give_back(int port, uint32_t * const ma, uint32_t * const mv)
+void pd_snk_give_back(int port, uint32_t *const ma, uint32_t *const mv)
{
if (*ma == 3000)
give_back_called = 1;
@@ -304,9 +305,9 @@ void pd_snk_give_back(int port, uint32_t * const ma, uint32_t * const mv)
static void simulate_ps_rdy(int port)
{
- uint16_t header = PD_HEADER(PD_CTRL_PS_RDY, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id,
- 0, pd_port[port].rev, 0);
+ uint16_t header = PD_HEADER(PD_CTRL_PS_RDY, PD_ROLE_SOURCE, PD_ROLE_DFP,
+ pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
simulate_rx_msg(port, header, 0, NULL);
}
@@ -314,7 +315,8 @@ static void simulate_ps_rdy(int port)
static void simulate_goto_min(int port)
{
uint16_t header = PD_HEADER(PD_CTRL_GOTO_MIN, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_rx_id, 0, pd_port[port].rev, 0);
+ PD_ROLE_DFP, pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
simulate_rx_msg(port, header, 0, NULL);
}
@@ -324,8 +326,9 @@ static int test_request_with_wait_and_contract(void)
#ifdef CONFIG_USB_PD_REV30
uint32_t expected_status_bsdo =
BSDO_CAP(DIV_ROUND_NEAREST(BATTERY_REMAINING_CAPACITY *
- BATTERY_DESIGN_VOLTAGE, 100000)) |
- BSDO_PRESENT;
+ BATTERY_DESIGN_VOLTAGE,
+ 100000)) |
+ BSDO_PRESENT;
uint16_t expected_cap_hdr = PD_EXT_HEADER(0, 0, 9);
uint16_t expected_cap_vid = USB_VID_GOOGLE;
#ifdef CONFIG_USB_PID
@@ -333,12 +336,10 @@ static int test_request_with_wait_and_contract(void)
#else
uint16_t expected_cap_pid = 0;
#endif
- uint16_t expected_cap_des =
- DIV_ROUND_NEAREST(BATTERY_DESIGN_CAPACITY *
- BATTERY_DESIGN_VOLTAGE, 100000);
- uint16_t expected_cap_ful =
- DIV_ROUND_NEAREST(BATTERY_FULL_CHARGE_CAPACITY *
- BATTERY_DESIGN_VOLTAGE, 100000);
+ uint16_t expected_cap_des = DIV_ROUND_NEAREST(
+ BATTERY_DESIGN_CAPACITY * BATTERY_DESIGN_VOLTAGE, 100000);
+ uint16_t expected_cap_ful = DIV_ROUND_NEAREST(
+ BATTERY_FULL_CHARGE_CAPACITY * BATTERY_DESIGN_VOLTAGE, 100000);
uint16_t expected_cap_type = 0;
#endif
@@ -358,8 +359,8 @@ static int test_request_with_wait_and_contract(void)
/* We're in SNK_DISCOVERY now. Let's send the source cap. */
simulate_source_cap(port, 1);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port, PD_ROLE_SINK,
- pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -368,9 +369,10 @@ static int test_request_with_wait_and_contract(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -399,8 +401,8 @@ static int test_request_with_wait_and_contract(void)
*/
simulate_source_cap(port, 1);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port, PD_ROLE_SINK,
- pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -409,9 +411,10 @@ static int test_request_with_wait_and_contract(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -441,11 +444,10 @@ static int test_request_with_wait_and_contract(void)
/* We had an explicit contract. So request should have been resent. */
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1,
- pd_port[port].rev, 0
- )));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -492,9 +494,10 @@ static int test_request_with_wait_and_contract(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
PD_HEADER(PD_EXT_BATTERY_CAP, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 3, pd_port[port].rev, 1)));
+ pd_port[port].msg_tx_id, 3, pd_port[port].rev, 1)));
TEST_ASSERT(pd_test_tx_msg_verify_short(port, expected_cap_hdr));
TEST_ASSERT(pd_test_tx_msg_verify_short(port, expected_cap_vid));
TEST_ASSERT(pd_test_tx_msg_verify_short(port, expected_cap_pid));
@@ -524,9 +527,10 @@ static int test_request_with_wait_and_contract(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_status_bsdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -564,7 +568,7 @@ static int test_request_with_wait(void)
{
#ifdef CONFIG_USB_PD_GIVE_BACK
uint32_t expected_rdo = RDO_FIXED(1, 900, PD_MIN_CURRENT_MA,
- RDO_CAP_MISMATCH | RDO_GIVE_BACK);
+ RDO_CAP_MISMATCH | RDO_GIVE_BACK);
#else
uint32_t expected_rdo = RDO_FIXED(1, 900, 900, RDO_CAP_MISMATCH);
#endif
@@ -578,8 +582,8 @@ static int test_request_with_wait(void)
/* We're in SNK_DISCOVERY now. Let's send the source cap. */
simulate_source_cap(port, 0);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -588,9 +592,10 @@ static int test_request_with_wait(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -617,8 +622,8 @@ static int test_request_with_wait(void)
/* Resend Source Cap. */
simulate_source_cap(port, 0);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -627,9 +632,10 @@ static int test_request_with_wait(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -652,7 +658,7 @@ static int test_request_with_wait_no_src_cap(void)
{
#ifdef CONFIG_USB_PD_GIVE_BACK
uint32_t expected_rdo = RDO_FIXED(1, 900, PD_MIN_CURRENT_MA,
- RDO_CAP_MISMATCH | RDO_GIVE_BACK);
+ RDO_CAP_MISMATCH | RDO_GIVE_BACK);
#else
uint32_t expected_rdo = RDO_FIXED(1, 900, 900, RDO_CAP_MISMATCH);
#endif
@@ -666,8 +672,8 @@ static int test_request_with_wait_no_src_cap(void)
/* We're in SNK_DISCOVERY now. Let's send the source cap. */
simulate_source_cap(port, 0);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -676,9 +682,10 @@ static int test_request_with_wait_no_src_cap(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -711,9 +718,10 @@ static int test_request_with_wait_no_src_cap(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -736,7 +744,7 @@ static int test_request_with_reject(void)
{
#ifdef CONFIG_USB_PD_GIVE_BACK
uint32_t expected_rdo = RDO_FIXED(1, 900, PD_MIN_CURRENT_MA,
- RDO_CAP_MISMATCH | RDO_GIVE_BACK);
+ RDO_CAP_MISMATCH | RDO_GIVE_BACK);
#else
uint32_t expected_rdo = RDO_FIXED(1, 900, 900, RDO_CAP_MISMATCH);
#endif
@@ -750,8 +758,8 @@ static int test_request_with_reject(void)
/* We're in SNK_DISCOVERY now. Let's send the source cap. */
simulate_source_cap(port, 0);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -760,9 +768,10 @@ static int test_request_with_reject(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -788,8 +797,8 @@ static int test_request_with_reject(void)
/* We're in SNK_READY. Send source cap. again. */
simulate_source_cap(port, 0);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -798,9 +807,10 @@ static int test_request_with_reject(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -814,7 +824,7 @@ static int test_request(void)
{
#ifdef CONFIG_USB_PD_GIVE_BACK
uint32_t expected_rdo = RDO_FIXED(1, 900, PD_MIN_CURRENT_MA,
- RDO_CAP_MISMATCH | RDO_GIVE_BACK);
+ RDO_CAP_MISMATCH | RDO_GIVE_BACK);
#else
uint32_t expected_rdo = RDO_FIXED(1, 900, 900, RDO_CAP_MISMATCH);
#endif
@@ -828,8 +838,8 @@ static int test_request(void)
/* We're in SNK_DISCOVERY now. Let's send the source cap. */
simulate_source_cap(port, 0);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
/* Wait for the power request */
task_wake(PD_PORT_TO_TASK_ID(port));
@@ -838,9 +848,10 @@ static int test_request(void)
/* Process the request */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
- pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ pd_port[port].msg_tx_id, 1, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_rdo));
TEST_ASSERT(pd_test_tx_msg_verify_crc(port));
TEST_ASSERT(pd_test_tx_msg_verify_eop(port));
@@ -872,10 +883,10 @@ static int test_sink(void)
/* The source cap should be sent */
TEST_ASSERT(pd_test_tx_msg_verify_sop(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_SOURCE_CAP, PD_ROLE_SOURCE,
- PD_ROLE_DFP, pd_port[port].msg_tx_id,
- pd_src_pdo_cnt, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port, PD_HEADER(PD_DATA_SOURCE_CAP, PD_ROLE_SOURCE, PD_ROLE_DFP,
+ pd_port[port].msg_tx_id, pd_src_pdo_cnt,
+ pd_port[port].rev, 0)));
for (i = 0; i < pd_src_pdo_cnt; ++i)
TEST_ASSERT(pd_test_tx_msg_verify_word(port, pd_src_pdo[i]));
@@ -900,7 +911,7 @@ static int test_sink(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
init_ports();
diff --git a/test/usb_pd.tasklist b/test/usb_pd.tasklist
index fbd319148e..6ba85de1aa 100644
--- a/test/usb_pd.tasklist
+++ b/test/usb_pd.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pd_console.c b/test/usb_pd_console.c
index c762bebfc8..711664aeb0 100644
--- a/test/usb_pd_console.c
+++ b/test/usb_pd_console.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -17,8 +17,7 @@
#include "test_util.h"
/* Defined in implementation */
-int command_pd(int argc, char **argv);
-int remote_flashing(int argc, char **argv);
+int command_pd(int argc, const char **argv);
static enum debug_level prl_debug_level;
static enum debug_level pe_debug_level;
@@ -43,6 +42,7 @@ static int test_port;
static enum pd_dpm_request request;
static int max_volt;
static int comm_enable;
+static int pd_suspended;
static int dev_info;
static int vdm_cmd;
static int vdm_count;
@@ -140,7 +140,7 @@ uint8_t board_get_usb_pd_port_count(void)
}
void pe_send_vdm(int port, uint32_t vid, int cmd, const uint32_t *data,
- int count)
+ int count)
{
int i;
@@ -180,6 +180,12 @@ void pd_comm_enable(int port, int enable)
comm_enable = enable;
}
+void pd_set_suspend(int port, int enable)
+{
+ test_port = port;
+ pd_suspended = enable;
+}
+
void tc_print_dev_info(int port)
{
test_port = port;
@@ -241,10 +247,15 @@ enum try_src_override_t tc_get_try_src_override(void)
return try_src_override;
}
+enum pd_cc_states pd_get_task_cc_state(int port)
+{
+ return PD_CC_NONE;
+}
+
static int test_command_pd_dump(void)
{
int argc = 3;
- char *argv[] = {"pd", "dump", "", 0, 0, 0};
+ const char *argv[] = { "pd", "dump", "", 0, 0, 0 };
char test[2];
sprintf(test, "e");
@@ -272,7 +283,7 @@ static int test_command_pd_dump(void)
static int test_command_pd_try_src(void)
{
int argc = 3;
- char *argv[] = {"pd", "trysrc", "2", 0, 0};
+ const char *argv[] = { "pd", "trysrc", "2", 0, 0 };
try_src_override = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -292,7 +303,7 @@ static int test_command_pd_try_src(void)
static int test_command_pd_version(void)
{
int argc = 2;
- char *argv[] = {"pd", "version", 0, 0, 0};
+ const char *argv[] = { "pd", "version", 0, 0, 0 };
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -302,7 +313,7 @@ static int test_command_pd_version(void)
static int test_command_pd_arg_count(void)
{
int argc;
- char *argv[] = {"pd", "", 0, 0, 0};
+ const char *argv[] = { "pd", "", 0, 0, 0 };
for (argc = 0; argc < 3; argc++)
TEST_ASSERT(command_pd(argc, argv) == EC_ERROR_PARAM_COUNT);
@@ -313,7 +324,7 @@ static int test_command_pd_arg_count(void)
static int test_command_pd_port_num(void)
{
int argc = 3;
- char *argv[10] = {"pd", "0", 0, 0, 0};
+ const char *argv[10] = { "pd", "0", 0, 0, 0 };
char test[2];
sprintf(test, "%d", CONFIG_USB_PD_PORT_MAX_COUNT);
@@ -326,7 +337,7 @@ static int test_command_pd_port_num(void)
static int test_command_pd_tx(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "tx", 0, 0};
+ const char *argv[] = { "pd", "0", "tx", 0, 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -339,7 +350,7 @@ static int test_command_pd_tx(void)
static int test_command_pd_charger(void)
{
int argc = 3;
- char *argv[] = {"pd", "1", "charger", 0, 0};
+ const char *argv[] = { "pd", "1", "charger", 0, 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -352,7 +363,7 @@ static int test_command_pd_charger(void)
static int test_command_pd_dev1(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "dev", "20", 0};
+ const char *argv[] = { "pd", "0", "dev", "20", 0 };
request = 0;
max_volt = 0;
@@ -367,7 +378,7 @@ static int test_command_pd_dev1(void)
static int test_command_pd_dev2(void)
{
int argc = 3;
- char *argv[] = {"pd", "1", "dev", 0, 0};
+ const char *argv[] = { "pd", "1", "dev", 0, 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -381,7 +392,7 @@ static int test_command_pd_dev2(void)
static int test_command_pd_disable(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "disable", 0, 0};
+ const char *argv[] = { "pd", "0", "disable", 0, 0 };
comm_enable = 1;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -394,7 +405,7 @@ static int test_command_pd_disable(void)
static int test_command_pd_enable(void)
{
int argc = 3;
- char *argv[] = {"pd", "1", "enable", 0, 0};
+ const char *argv[] = { "pd", "1", "enable", 0, 0 };
comm_enable = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -407,7 +418,7 @@ static int test_command_pd_enable(void)
static int test_command_pd_hard(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "hard", 0, 0};
+ const char *argv[] = { "pd", "0", "hard", 0, 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -420,7 +431,7 @@ static int test_command_pd_hard(void)
static int test_command_pd_soft(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "soft", 0, 0};
+ const char *argv[] = { "pd", "0", "soft", 0, 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -430,10 +441,42 @@ static int test_command_pd_soft(void)
return EC_SUCCESS;
}
+static int test_command_pd_suspend(void)
+{
+ int argc = 3;
+ static const char *argv[] = { "pd", "0", "suspend" };
+
+ test_port = -1;
+ comm_enable = -1;
+ pd_suspended = -1;
+ TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
+ TEST_ASSERT(test_port == 0);
+ TEST_ASSERT(comm_enable == 0);
+ TEST_ASSERT(pd_suspended == 1);
+
+ return EC_SUCCESS;
+}
+
+static int test_command_pd_resume(void)
+{
+ int argc = 3;
+ static const char *argv[] = { "pd", "1", "resume" };
+
+ test_port = -1;
+ comm_enable = -1;
+ pd_suspended = -1;
+ TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
+ TEST_ASSERT(test_port == 1);
+ TEST_ASSERT(comm_enable == 1);
+ TEST_ASSERT(pd_suspended == 0);
+
+ return EC_SUCCESS;
+}
+
static int test_command_pd_swap1(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "swap", 0, 0};
+ const char *argv[] = { "pd", "0", "swap", 0, 0 };
TEST_ASSERT(command_pd(argc, argv) == EC_ERROR_PARAM_COUNT);
@@ -443,7 +486,7 @@ static int test_command_pd_swap1(void)
static int test_command_pd_swap2(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "swap", "power", 0};
+ const char *argv[] = { "pd", "0", "swap", "power", 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -456,7 +499,7 @@ static int test_command_pd_swap2(void)
static int test_command_pd_swap3(void)
{
int argc = 4;
- char *argv[] = {"pd", "1", "swap", "data", 0};
+ const char *argv[] = { "pd", "1", "swap", "data", 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -469,7 +512,7 @@ static int test_command_pd_swap3(void)
static int test_command_pd_swap4(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "swap", "vconn", 0};
+ const char *argv[] = { "pd", "0", "swap", "vconn", 0 };
request = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -482,7 +525,7 @@ static int test_command_pd_swap4(void)
static int test_command_pd_swap5(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "swap", "xyz", 0};
+ const char *argv[] = { "pd", "0", "swap", "xyz", 0 };
TEST_ASSERT(command_pd(argc, argv) == EC_ERROR_PARAM3);
@@ -492,7 +535,7 @@ static int test_command_pd_swap5(void)
static int test_command_pd_dualrole0(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "dualrole", 0, 0};
+ const char *argv[] = { "pd", "0", "dualrole", 0, 0 };
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -502,7 +545,7 @@ static int test_command_pd_dualrole0(void)
static int test_command_pd_dualrole1(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "dualrole", "on", 0};
+ const char *argv[] = { "pd", "0", "dualrole", "on", 0 };
dr_state = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -515,7 +558,7 @@ static int test_command_pd_dualrole1(void)
static int test_command_pd_dualrole2(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "dualrole", "off", 0};
+ const char *argv[] = { "pd", "0", "dualrole", "off", 0 };
dr_state = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -528,7 +571,7 @@ static int test_command_pd_dualrole2(void)
static int test_command_pd_dualrole3(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "dualrole", "freeze", 0};
+ const char *argv[] = { "pd", "0", "dualrole", "freeze", 0 };
dr_state = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -541,7 +584,7 @@ static int test_command_pd_dualrole3(void)
static int test_command_pd_dualrole4(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "dualrole", "sink", 0};
+ const char *argv[] = { "pd", "0", "dualrole", "sink", 0 };
dr_state = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -554,7 +597,7 @@ static int test_command_pd_dualrole4(void)
static int test_command_pd_dualrole5(void)
{
int argc = 4;
- char *argv[] = {"pd", "0", "dualrole", "source", 0};
+ const char *argv[] = { "pd", "0", "dualrole", "source", 0 };
dr_state = 0;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -567,7 +610,7 @@ static int test_command_pd_dualrole5(void)
static int test_command_pd_state(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "state", 0, 0};
+ const char *argv[] = { "pd", "0", "state", 0, 0 };
pd_get_polarity_called = false;
pd_comm_is_enabled_called = false;
@@ -596,7 +639,7 @@ static int test_command_pd_state(void)
static int test_command_pd_srccaps(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "srccaps", 0, 0};
+ const char *argv[] = { "pd", "0", "srccaps", 0, 0 };
pd_srccaps_dump_called = false;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -608,7 +651,7 @@ static int test_command_pd_srccaps(void)
static int test_command_pd_timer(void)
{
int argc = 3;
- char *argv[] = {"pd", "0", "timer", 0, 0};
+ const char *argv[] = { "pd", "0", "timer", 0, 0 };
pd_timer_dump_called = false;
TEST_ASSERT(command_pd(argc, argv) == EC_SUCCESS);
@@ -617,8 +660,7 @@ static int test_command_pd_timer(void)
return EC_SUCCESS;
}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
@@ -635,6 +677,8 @@ void run_test(int argc, char **argv)
RUN_TEST(test_command_pd_enable);
RUN_TEST(test_command_pd_hard);
RUN_TEST(test_command_pd_soft);
+ RUN_TEST(test_command_pd_suspend);
+ RUN_TEST(test_command_pd_resume);
RUN_TEST(test_command_pd_swap1);
RUN_TEST(test_command_pd_swap2);
RUN_TEST(test_command_pd_swap3);
diff --git a/test/usb_pd_console.tasklist b/test/usb_pd_console.tasklist
index 8889009b0a..959f62ef79 100644
--- a/test/usb_pd_console.tasklist
+++ b/test/usb_pd_console.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pd_int.c b/test/usb_pd_int.c
index 5d3cbbf0f2..44cc280ed1 100644
--- a/test/usb_pd_int.c
+++ b/test/usb_pd_int.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -19,11 +19,12 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .driver = &mock_usb_mux_driver,
- }
-};
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { {
+ .mux =
+ &(const struct usb_mux){
+ .driver = &mock_usb_mux_driver,
+ },
+} };
void board_reset_pd_mcu(void)
{
@@ -32,74 +33,74 @@ void board_reset_pd_mcu(void)
static int deferred_resume_called;
void pd_deferred_resume(int port)
{
- deferred_resume_called = 1;
+ deferred_resume_called = 1;
}
static int num_events;
uint16_t tcpc_get_alert_status(void)
{
- if (--num_events > 0)
- return PD_STATUS_TCPC_ALERT_0;
- else
- return 0;
+ if (--num_events > 0)
+ return PD_STATUS_TCPC_ALERT_0;
+ else
+ return 0;
}
test_static int test_storm_not_triggered(void)
{
- num_events = 100;
- deferred_resume_called = 0;
- schedule_deferred_pd_interrupt(PORT0);
- task_wait_event(SECOND);
- TEST_EQ(deferred_resume_called, 0, "%d");
+ num_events = 100;
+ deferred_resume_called = 0;
+ schedule_deferred_pd_interrupt(PORT0);
+ task_wait_event(SECOND);
+ TEST_EQ(deferred_resume_called, 0, "%d");
- return EC_SUCCESS;
+ return EC_SUCCESS;
}
test_static int test_storm_triggered(void)
{
- num_events = 1000;
- deferred_resume_called = 0;
- schedule_deferred_pd_interrupt(PORT0);
- task_wait_event(SECOND);
- TEST_EQ(deferred_resume_called, 1, "%d");
+ num_events = 1000;
+ deferred_resume_called = 0;
+ schedule_deferred_pd_interrupt(PORT0);
+ task_wait_event(SECOND);
+ TEST_EQ(deferred_resume_called, 1, "%d");
- return EC_SUCCESS;
+ return EC_SUCCESS;
}
test_static int test_storm_not_triggered_for_32bit_overflow(void)
{
- int i;
- timestamp_t time;
-
- /*
- * Ensure the MSB is 1 for overflow comparison tests.
- * But make sure not to move time backwards.
- */
- time.val = (get_time().val + 0x100000000) | 0xff000000;
- force_time(time);
-
- /*
- * 100 events every second for 10 seconds should never trigger
- * a shutdown call.
- */
- for (i = 0; i < 10; ++i) {
- num_events = 100;
- deferred_resume_called = 0;
- schedule_deferred_pd_interrupt(PORT0);
- task_wait_event(SECOND);
-
- TEST_EQ(deferred_resume_called, 0, "%d");
- }
-
- return EC_SUCCESS;
+ int i;
+ timestamp_t time;
+
+ /*
+ * Ensure the MSB is 1 for overflow comparison tests.
+ * But make sure not to move time backwards.
+ */
+ time.val = (get_time().val + 0x100000000) | 0xff000000;
+ force_time(time);
+
+ /*
+ * 100 events every second for 10 seconds should never trigger
+ * a shutdown call.
+ */
+ for (i = 0; i < 10; ++i) {
+ num_events = 100;
+ deferred_resume_called = 0;
+ schedule_deferred_pd_interrupt(PORT0);
+ task_wait_event(SECOND);
+
+ TEST_EQ(deferred_resume_called, 0, "%d");
+ }
+
+ return EC_SUCCESS;
}
void before_test(void)
{
- pd_set_suspend(PORT0, 0);
+ pd_set_suspend(PORT0, 0);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
/* Let tasks settle down */
task_wait_event(MINUTE);
diff --git a/test/usb_pd_int.mocklist b/test/usb_pd_int.mocklist
index 71c2e2cee9..cbff5e73eb 100644
--- a/test/usb_pd_int.mocklist
+++ b/test/usb_pd_int.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pd_int.tasklist b/test/usb_pd_int.tasklist
index 3487d55dc7..1888d3fa8c 100644
--- a/test/usb_pd_int.tasklist
+++ b/test/usb_pd_int.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pd_pdo_fixed.tasklist b/test/usb_pd_pdo_fixed.tasklist
index 9a1e6b3e08..1d7b3e08c1 100644
--- a/test/usb_pd_pdo_fixed.tasklist
+++ b/test/usb_pd_pdo_fixed.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pd_pdo_fixed_test.c b/test/usb_pd_pdo_fixed_test.c
index ad247c3ba2..530f90843a 100644
--- a/test/usb_pd_pdo_fixed_test.c
+++ b/test/usb_pd_pdo_fixed_test.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -39,7 +39,7 @@ test_static int test_pd_find_pdo_index(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_pd_find_pdo_index);
diff --git a/test/usb_pd_test_util.h b/test/usb_pd_test_util.h
index 02fae22b41..c25d07db5d 100644
--- a/test/usb_pd_test_util.h
+++ b/test/usb_pd_test_util.h
@@ -1,4 +1,4 @@
-/* Copyright 2014 The Chromium OS Authors. All rights reserved.
+/* Copyright 2014 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -31,4 +31,4 @@ int pd_test_tx_msg_verify_short(int port, uint16_t val);
int pd_test_tx_msg_verify_word(int port, uint32_t val);
int pd_test_tx_msg_verify_crc(int port);
-#endif /* __TEST_USB_PD_TEST_UTIL_H */
+#endif /* __TEST_USB_PD_TEST_UTIL_H */
diff --git a/test/usb_pd_timer.c b/test/usb_pd_timer.c
index 85044fc987..d469e67c48 100644
--- a/test/usb_pd_timer.c
+++ b/test/usb_pd_timer.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -195,9 +195,10 @@ int test_pd_timers(void)
TEST_ASSERT(pd_timer_is_disabled(port, bit));
/*
- * Disable the PE timer range, which contains the previously enabled
- * timers 1-5.
+ * Disable the PE and DPM timer ranges, which contain the previously
+ * enabled timers 1-5.
*/
+ pd_timer_disable_range(port, DPM_TIMER_RANGE);
pd_timer_disable_range(port, PE_TIMER_RANGE);
/* Verify all timers are disabled. */
for (bit = 0; bit < PD_TIMER_COUNT; ++bit)
@@ -206,7 +207,7 @@ int test_pd_timers(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_pd_timers_init);
RUN_TEST(test_pd_timers_bit_ops);
diff --git a/test/usb_pd_timer.tasklist b/test/usb_pd_timer.tasklist
index 9a1e6b3e08..1d7b3e08c1 100644
--- a/test/usb_pd_timer.tasklist
+++ b/test/usb_pd_timer.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe.h b/test/usb_pe.h
index f0c7f603ee..41891af557 100644
--- a/test/usb_pe.h
+++ b/test/usb_pe.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
diff --git a/test/usb_pe_drp.c b/test/usb_pe_drp.c
index 5130c4a4a9..8d75454c6a 100644
--- a/test/usb_pe_drp.c
+++ b/test/usb_pe_drp.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -28,11 +28,12 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .driver = &mock_usb_mux_driver,
- }
-};
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { {
+ .mux =
+ &(const struct usb_mux){
+ .driver = &mock_usb_mux_driver,
+ },
+} };
void before_test(void)
{
@@ -57,8 +58,7 @@ void before_test(void)
test_static void rx_message(enum tcpci_msg_type sop,
enum pd_ctrl_msg_type ctrl_msg,
enum pd_data_msg_type data_msg,
- enum pd_power_role prole,
- enum pd_data_role drole,
+ enum pd_power_role prole, enum pd_data_role drole,
uint32_t data)
{
int type, cnt;
@@ -70,8 +70,9 @@ test_static void rx_message(enum tcpci_msg_type sop,
type = data_msg;
cnt = 1;
}
- rx_emsg[PORT0].header = (PD_HEADER_SOP(sop)
- | PD_HEADER(type, prole, drole, 0, cnt, PD_REV30, 0));
+ rx_emsg[PORT0].header =
+ (PD_HEADER_SOP(sop) |
+ PD_HEADER(type, prole, drole, 0, cnt, PD_REV30, 0));
rx_emsg[PORT0].len = cnt * 4;
*(uint32_t *)rx_emsg[PORT0].buf = data;
mock_prl_message_received(PORT0);
@@ -94,8 +95,8 @@ test_static int finish_src_discovery(int startup_cable_probes)
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(10 * MSEC);
- rx_message(TCPCI_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0,
- PD_ROLE_SINK, PD_ROLE_UFP, 0);
+ rx_message(TCPCI_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0);
/* Expect GET_REVISION, reply NOT_SUPPORTED. */
TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
@@ -103,29 +104,28 @@ test_static int finish_src_discovery(int startup_cable_probes)
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(10 * MSEC);
- rx_message(TCPCI_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0,
- PD_ROLE_SINK, PD_ROLE_UFP, 0);
+ rx_message(TCPCI_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0);
/*
* Cable identity discovery is attempted 6 times total. 1 was done
* above, so expect 5 more now.
*/
for (i = startup_cable_probes; i < 6; i++) {
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP_PRIME,
- 0, PD_DATA_VENDOR_DEF,
- 60 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP_PRIME, 0,
+ PD_DATA_VENDOR_DEF, 60 * MSEC),
EC_SUCCESS, "%d");
mock_prl_report_error(PORT0, ERR_TCH_XMIT, TCPCI_MSG_SOP_PRIME);
}
/* Expect VENDOR_DEF for partner identity, reply NOT_SUPPORTED. */
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- 0, PD_DATA_VENDOR_DEF, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, 0,
+ PD_DATA_VENDOR_DEF, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(10 * MSEC);
- rx_message(TCPCI_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0,
- PD_ROLE_SINK, PD_ROLE_UFP, 0);
+ rx_message(TCPCI_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0);
return EC_SUCCESS;
}
@@ -140,8 +140,8 @@ test_static int test_send_caps_error_before_connected(void)
mock_tc_port[PORT0].power_role = PD_ROLE_SOURCE;
mock_tc_port[PORT0].pd_enable = 1;
mock_tc_port[PORT0].vconn_src = true;
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- 0, PD_DATA_SOURCE_CAP, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, 0,
+ PD_DATA_SOURCE_CAP, 10 * MSEC),
EC_SUCCESS, "%d");
/*
@@ -155,8 +155,8 @@ test_static int test_send_caps_error_before_connected(void)
* We should have gone to PE_SRC_Discovery on above error, so expect
* VENDOR_DEF for cable identity, simulate no cable.
*/
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP_PRIME,
- 0, PD_DATA_VENDOR_DEF, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP_PRIME, 0,
+ PD_DATA_VENDOR_DEF, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_report_error(PORT0, ERR_TCH_XMIT, TCPCI_MSG_SOP_PRIME);
@@ -164,8 +164,8 @@ test_static int test_send_caps_error_before_connected(void)
* Expect SOURCE_CAP again. This is a retry since the first one above
* got ERR_TCH_XMIT. Now simulate success (ie GoodCRC).
*/
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- 0, PD_DATA_SOURCE_CAP, 110 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, 0,
+ PD_DATA_SOURCE_CAP, 110 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(10 * MSEC);
@@ -179,14 +179,14 @@ test_static int test_send_caps_error_before_connected(void)
*/
/* REQUEST 5V, expect ACCEPT, PS_RDY. */
- rx_message(TCPCI_MSG_SOP, 0, PD_DATA_REQUEST,
- PD_ROLE_SINK, PD_ROLE_UFP, RDO_FIXED(1, 500, 500, 0));
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_ACCEPT, 0, 10 * MSEC),
+ rx_message(TCPCI_MSG_SOP, 0, PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ RDO_FIXED(1, 500, 500, 0));
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_ACCEPT,
+ 0, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_PS_RDY, 0, 35 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_PS_RDY,
+ 0, 35 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
@@ -207,21 +207,21 @@ test_static int test_send_caps_error_when_connected(void)
mock_tc_port[PORT0].power_role = PD_ROLE_SOURCE;
mock_tc_port[PORT0].pd_enable = 1;
mock_tc_port[PORT0].vconn_src = true;
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- 0, PD_DATA_SOURCE_CAP, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, 0,
+ PD_DATA_SOURCE_CAP, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(10 * MSEC);
/* REQUEST 5V, expect ACCEPT, PS_RDY. */
- rx_message(TCPCI_MSG_SOP, 0, PD_DATA_REQUEST,
- PD_ROLE_SINK, PD_ROLE_UFP, RDO_FIXED(1, 500, 500, 0));
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_ACCEPT, 0, 10 * MSEC),
+ rx_message(TCPCI_MSG_SOP, 0, PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ RDO_FIXED(1, 500, 500, 0));
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_ACCEPT,
+ 0, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_PS_RDY, 0, 35 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_PS_RDY,
+ 0, 35 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
@@ -233,10 +233,10 @@ test_static int test_send_caps_error_when_connected(void)
* Now connected. Send GET_SOURCE_CAP, to check how error sending
* SOURCE_CAP is handled.
*/
- rx_message(TCPCI_MSG_SOP, PD_CTRL_GET_SOURCE_CAP, 0,
- PD_ROLE_SINK, PD_ROLE_UFP, 0);
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- 0, PD_DATA_SOURCE_CAP, 10 * MSEC),
+ rx_message(TCPCI_MSG_SOP, PD_CTRL_GET_SOURCE_CAP, 0, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0);
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, 0,
+ PD_DATA_SOURCE_CAP, 10 * MSEC),
EC_SUCCESS, "%d");
/* Simulate error sending SOURCE_CAP. */
@@ -269,21 +269,21 @@ test_static int test_interrupting_pr_swap(void)
mock_tc_port[PORT0].power_role = PD_ROLE_SOURCE;
mock_tc_port[PORT0].pd_enable = 1;
mock_tc_port[PORT0].vconn_src = true;
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- 0, PD_DATA_SOURCE_CAP, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, 0,
+ PD_DATA_SOURCE_CAP, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(10 * MSEC);
/* REQUEST 5V, expect ACCEPT, PS_RDY. */
- rx_message(TCPCI_MSG_SOP, 0, PD_DATA_REQUEST,
- PD_ROLE_SINK, PD_ROLE_UFP, RDO_FIXED(1, 500, 500, 0));
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_ACCEPT, 0, 10 * MSEC),
+ rx_message(TCPCI_MSG_SOP, 0, PD_DATA_REQUEST, PD_ROLE_SINK, PD_ROLE_UFP,
+ RDO_FIXED(1, 500, 500, 0));
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_ACCEPT,
+ 0, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_PS_RDY, 0, 35 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_PS_RDY,
+ 0, 35 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
@@ -295,32 +295,32 @@ test_static int test_interrupting_pr_swap(void)
* Now connected. Initiate a PR swap and then interrupt it after the
* Accept, when power is transitioning to off.
*/
- rx_message(TCPCI_MSG_SOP, PD_CTRL_PR_SWAP, 0,
- PD_ROLE_SINK, PD_ROLE_UFP, 0);
+ rx_message(TCPCI_MSG_SOP, PD_CTRL_PR_SWAP, 0, PD_ROLE_SINK, PD_ROLE_UFP,
+ 0);
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP,
- PD_CTRL_ACCEPT, 0, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_SOP, PD_CTRL_ACCEPT,
+ 0, 10 * MSEC),
EC_SUCCESS, "%d");
mock_prl_message_sent(PORT0);
task_wait_event(5 * SECOND);
/* Interrupt the non-interruptible AMS */
- rx_message(TCPCI_MSG_SOP, PD_CTRL_PR_SWAP, 0,
- PD_ROLE_SINK, PD_ROLE_UFP, 0);
+ rx_message(TCPCI_MSG_SOP, PD_CTRL_PR_SWAP, 0, PD_ROLE_SINK, PD_ROLE_UFP,
+ 0);
/*
* Expect a hard reset since power was transitioning during this
* interruption
*/
- TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_TX_HARD_RESET,
- 0, 0, 10 * MSEC),
+ TEST_EQ(mock_prl_wait_for_tx_msg(PORT0, TCPCI_MSG_TX_HARD_RESET, 0, 0,
+ 10 * MSEC),
EC_SUCCESS, "%d");
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_pe_drp.mocklist b/test/usb_pe_drp.mocklist
index b8879415d8..633b43d48d 100644
--- a/test/usb_pe_drp.mocklist
+++ b/test/usb_pe_drp.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe_drp.tasklist b/test/usb_pe_drp.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_pe_drp.tasklist
+++ b/test/usb_pe_drp.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe_drp_noextended.c b/test/usb_pe_drp_noextended.c
index 68da7426e2..6108458c9c 100644
--- a/test/usb_pe_drp_noextended.c
+++ b/test/usb_pe_drp_noextended.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -24,18 +24,19 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .driver = &mock_usb_mux_driver,
- }
-};
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { {
+ .mux =
+ &(const struct usb_mux){
+ .driver = &mock_usb_mux_driver,
+ },
+} };
void before_test(void)
{
mock_tc_port_reset();
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_pe_drp_noextended.tasklist b/test/usb_pe_drp_noextended.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_pe_drp_noextended.tasklist
+++ b/test/usb_pe_drp_noextended.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe_drp_old.c b/test/usb_pe_drp_old.c
index 1954ae065b..0985a4cae9 100644
--- a/test/usb_pe_drp_old.c
+++ b/test/usb_pe_drp_old.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -21,9 +21,9 @@
#include "usb_tc_sm.h"
#include "mock/usb_prl_mock.h"
-#define pe_set_flag(_p, name) pe_set_fn((_p), (name ## _FN))
-#define pe_clr_flag(_p, name) pe_clr_fn((_p), (name ## _FN))
-#define pe_chk_flag(_p, name) pe_chk_fn((_p), (name ## _FN))
+#define pe_set_flag(_p, name) pe_set_fn((_p), (name##_FN))
+#define pe_clr_flag(_p, name) pe_clr_fn((_p), (name##_FN))
+#define pe_chk_flag(_p, name) pe_chk_fn((_p), (name##_FN))
/**
* STUB Section
@@ -35,7 +35,7 @@ const struct svdm_response svdm_rsp = {
};
const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT];
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT];
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT];
static bool prl_is_busy_flag;
@@ -77,12 +77,10 @@ bool pd_alt_mode_capable(int port)
void pd_set_suspend(int port, int suspend)
{
-
}
void pd_set_error_recovery(int port)
{
-
}
test_static void setup_source(void)
@@ -219,8 +217,8 @@ static int test_snk_give_source_cap(void)
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_MSG_RECEIVED));
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_TX_COMPLETE));
- TEST_EQ(mock_prl_get_last_sent_data_msg(PORT0),
- PD_DATA_SOURCE_CAP, "%d");
+ TEST_EQ(mock_prl_get_last_sent_data_msg(PORT0), PD_DATA_SOURCE_CAP,
+ "%d");
TEST_EQ(get_state_pe(PORT0), PE_DR_SNK_GIVE_SOURCE_CAP, "%d");
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
@@ -249,9 +247,9 @@ test_static int test_extended_message_not_supported(void)
* Receive an extended, non-chunked message; expect a Not Supported
* response.
*/
- rx_emsg[PORT0].header = PD_HEADER(
- PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP, 0,
- PDO_MAX_OBJECTS, PD_REV30, 1);
+ rx_emsg[PORT0].header = PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0, PDO_MAX_OBJECTS,
+ PD_REV30, 1);
*(uint16_t *)rx_emsg[PORT0].buf =
PD_EXT_HEADER(0, 0, ARRAY_SIZE(rx_emsg[PORT0].buf)) & ~BIT(15);
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
@@ -261,16 +259,16 @@ test_static int test_extended_message_not_supported(void)
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
task_wait_event(10 * MSEC);
TEST_EQ(mock_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
/* At this point, the PE should again be running in PE_SRC_Ready. */
/*
* Receive an extended, chunked, single-chunk message; expect a Not
* Supported response.
*/
- rx_emsg[PORT0].header = PD_HEADER(
- PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP, 0,
- PDO_MAX_OBJECTS, PD_REV30, 1);
+ rx_emsg[PORT0].header = PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0, PDO_MAX_OBJECTS,
+ PD_REV30, 1);
*(uint16_t *)rx_emsg[PORT0].buf =
PD_EXT_HEADER(0, 0, PD_MAX_EXTENDED_MSG_CHUNK_LEN);
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
@@ -280,16 +278,16 @@ test_static int test_extended_message_not_supported(void)
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
task_wait_event(10 * MSEC);
TEST_EQ(mock_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
/* At this point, the PE should again be running in PE_SRC_Ready. */
/*
* Receive an extended, chunked, multi-chunk message; expect a Not
* Supported response after tChunkingNotSupported (not earlier).
*/
- rx_emsg[PORT0].header = PD_HEADER(
- PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP, 0,
- PDO_MAX_OBJECTS, PD_REV30, 1);
+ rx_emsg[PORT0].header = PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0, PDO_MAX_OBJECTS,
+ PD_REV30, 1);
*(uint16_t *)rx_emsg[PORT0].buf =
PD_EXT_HEADER(0, 0, ARRAY_SIZE(rx_emsg[PORT0].buf));
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
@@ -301,13 +299,13 @@ test_static int test_extended_message_not_supported(void)
*/
task_wait_event(10 * MSEC);
TEST_NE(mock_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
task_wait_event(PD_T_CHUNKING_NOT_SUPPORTED);
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
task_wait_event(10 * MSEC);
TEST_EQ(mock_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
/* At this point, the PE should again be running in PE_SRC_Ready. */
/*
@@ -408,14 +406,14 @@ static int test_send_caps_error(void)
pe_set_flag(PORT0, PE_FLAGS_PD_CONNECTION);
set_state_pe(PORT0, PE_SRC_SEND_CAPABILITIES);
task_wait_event(10 * MSEC);
- TEST_EQ(mock_prl_get_last_sent_ctrl_msg(PORT0),
- PD_CTRL_SOFT_RESET, "%d");
+ TEST_EQ(mock_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_SOFT_RESET,
+ "%d");
TEST_EQ(get_state_pe(PORT0), PE_SEND_SOFT_RESET, "%d");
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_pe_drp_old.mocklist b/test/usb_pe_drp_old.mocklist
index 0582e5cbb3..118cec69a0 100644
--- a/test/usb_pe_drp_old.mocklist
+++ b/test/usb_pe_drp_old.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe_drp_old.tasklist b/test/usb_pe_drp_old.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_pe_drp_old.tasklist
+++ b/test/usb_pe_drp_old.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe_drp_old_noextended.c b/test/usb_pe_drp_old_noextended.c
index cefd77b7d2..43df6375b0 100644
--- a/test/usb_pe_drp_old_noextended.c
+++ b/test/usb_pe_drp_old_noextended.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -27,7 +27,7 @@ const struct svdm_response svdm_rsp = {
};
const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT];
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT];
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT];
int board_vbus_source_enabled(int port)
{
@@ -62,12 +62,10 @@ bool pd_alt_mode_capable(int port)
void pd_set_suspend(int port, int suspend)
{
-
}
void pd_set_error_recovery(int port)
{
-
}
test_static void setup_source(void)
@@ -198,8 +196,8 @@ static int test_snk_give_source_cap(void)
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_MSG_RECEIVED));
TEST_ASSERT(!pe_chk_flag(PORT0, PE_FLAGS_TX_COMPLETE));
- TEST_EQ(fake_prl_get_last_sent_data_msg_type(PORT0),
- PD_DATA_SOURCE_CAP, "%d");
+ TEST_EQ(fake_prl_get_last_sent_data_msg_type(PORT0), PD_DATA_SOURCE_CAP,
+ "%d");
TEST_EQ(get_state_pe(PORT0), PE_DR_SNK_GIVE_SOURCE_CAP, "%d");
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
@@ -228,9 +226,9 @@ test_static int test_extended_message_not_supported(void)
* Receive an extended, non-chunked message; expect a Not Supported
* response.
*/
- rx_emsg[PORT0].header = PD_HEADER(
- PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP, 0,
- PDO_MAX_OBJECTS, PD_REV30, 1);
+ rx_emsg[PORT0].header = PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0, PDO_MAX_OBJECTS,
+ PD_REV30, 1);
*(uint16_t *)rx_emsg[PORT0].buf =
PD_EXT_HEADER(0, 0, ARRAY_SIZE(rx_emsg[PORT0].buf)) & ~BIT(15);
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
@@ -240,16 +238,16 @@ test_static int test_extended_message_not_supported(void)
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
task_wait_event(10 * MSEC);
TEST_EQ(fake_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
/* At this point, the PE should again be running in PE_SRC_Ready. */
/*
* Receive an extended, chunked, single-chunk message; expect a Not
* Supported response.
*/
- rx_emsg[PORT0].header = PD_HEADER(
- PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP, 0,
- PDO_MAX_OBJECTS, PD_REV30, 1);
+ rx_emsg[PORT0].header = PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0, PDO_MAX_OBJECTS,
+ PD_REV30, 1);
*(uint16_t *)rx_emsg[PORT0].buf =
PD_EXT_HEADER(0, 0, PD_MAX_EXTENDED_MSG_CHUNK_LEN);
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
@@ -259,16 +257,16 @@ test_static int test_extended_message_not_supported(void)
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
task_wait_event(10 * MSEC);
TEST_EQ(fake_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
/* At this point, the PE should again be running in PE_SRC_Ready. */
/*
* Receive an extended, chunked, multi-chunk message; expect a Not
* Supported response after tChunkingNotSupported (not earlier).
*/
- rx_emsg[PORT0].header = PD_HEADER(
- PD_DATA_BATTERY_STATUS, PD_ROLE_SINK, PD_ROLE_UFP, 0,
- PDO_MAX_OBJECTS, PD_REV30, 1);
+ rx_emsg[PORT0].header = PD_HEADER(PD_DATA_BATTERY_STATUS, PD_ROLE_SINK,
+ PD_ROLE_UFP, 0, PDO_MAX_OBJECTS,
+ PD_REV30, 1);
*(uint16_t *)rx_emsg[PORT0].buf =
PD_EXT_HEADER(0, 0, ARRAY_SIZE(rx_emsg[PORT0].buf));
pe_set_flag(PORT0, PE_FLAGS_MSG_RECEIVED);
@@ -280,13 +278,13 @@ test_static int test_extended_message_not_supported(void)
*/
task_wait_event(10 * MSEC);
TEST_NE(fake_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
task_wait_event(PD_T_CHUNKING_NOT_SUPPORTED);
pe_set_flag(PORT0, PE_FLAGS_TX_COMPLETE);
task_wait_event(10 * MSEC);
TEST_EQ(fake_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_NOT_SUPPORTED,
- "%d");
+ "%d");
/* At this point, the PE should again be running in PE_SRC_Ready. */
/*
@@ -337,14 +335,14 @@ static int test_send_caps_error(void)
pe_set_flag(PORT0, PE_FLAGS_PD_CONNECTION);
set_state_pe(PORT0, PE_SRC_SEND_CAPABILITIES);
task_wait_event(10 * MSEC);
- TEST_EQ(fake_prl_get_last_sent_ctrl_msg(PORT0),
- PD_CTRL_SOFT_RESET, "%d");
+ TEST_EQ(fake_prl_get_last_sent_ctrl_msg(PORT0), PD_CTRL_SOFT_RESET,
+ "%d");
TEST_EQ(get_state_pe(PORT0), PE_SEND_SOFT_RESET, "%d");
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_pe_drp_old_noextended.mocklist b/test/usb_pe_drp_old_noextended.mocklist
index 0582e5cbb3..118cec69a0 100644
--- a/test/usb_pe_drp_old_noextended.mocklist
+++ b/test/usb_pe_drp_old_noextended.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_pe_drp_old_noextended.tasklist b/test/usb_pe_drp_old_noextended.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_pe_drp_old_noextended.tasklist
+++ b/test/usb_pe_drp_old_noextended.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_ppc.c b/test/usb_ppc.c
index 0cf6f69bf3..d08ae47946 100644
--- a/test/usb_ppc.c
+++ b/test/usb_ppc.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -28,15 +28,12 @@ const struct ppc_drv null_drv = {
};
struct ppc_config_t ppc_chips[] = {
- [0] = {
- .drv = &null_drv
- },
+ [0] = { .drv = &null_drv },
};
unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
const struct tcpc_config_t tcpc_config[] = {
- [0] = {
- },
+ [0] = {},
};
static int test_ppc_init(void)
@@ -171,9 +168,7 @@ static int test_ppc_is_vbus_present(void)
return EC_SUCCESS;
}
-
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_ppc.tasklist b/test/usb_ppc.tasklist
index 9fc1a80f4d..844ddb6c10 100644
--- a/test/usb_ppc.tasklist
+++ b/test/usb_ppc.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_prl.c b/test/usb_prl.c
index 3ef3450649..9b4c956649 100644
--- a/test/usb_prl.c
+++ b/test/usb_prl.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -34,14 +34,14 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
static enum pd_power_role get_partner_power_role(int port)
{
- return pd_get_power_role(port) == PD_ROLE_SINK ?
- PD_ROLE_SOURCE : PD_ROLE_SINK;
+ return pd_get_power_role(port) == PD_ROLE_SINK ? PD_ROLE_SOURCE :
+ PD_ROLE_SINK;
}
static enum pd_data_role get_partner_data_role(int port)
{
- return pd_get_data_role(port) == PD_ROLE_UFP ?
- PD_ROLE_DFP : PD_ROLE_UFP;
+ return pd_get_data_role(port) == PD_ROLE_UFP ? PD_ROLE_DFP :
+ PD_ROLE_UFP;
}
static void enable_prl(int port, int en)
@@ -50,7 +50,7 @@ static void enable_prl(int port, int en)
mock_tc_port[port].pd_enable = en;
- task_wait_event(10*MSEC);
+ task_wait_event(10 * MSEC);
prl_set_rev(port, TCPCI_MSG_SOP, mock_tc_port[port].rev);
}
@@ -59,16 +59,16 @@ static int test_receive_control_msg(void)
{
int port = PORT0;
uint16_t header = PD_HEADER(PD_CTRL_DR_SWAP,
- get_partner_power_role(port),
- get_partner_data_role(port),
- mock_tc_port[port].msg_rx_id,
- 0, mock_tc_port[port].rev, 0);
+ get_partner_power_role(port),
+ get_partner_data_role(port),
+ mock_tc_port[port].msg_rx_id, 0,
+ mock_tc_port[port].rev, 0);
/* Set up the message to be received. */
mock_tcpm_rx_msg(port, header, 0, NULL);
/* Process the message. */
- task_wait_event(10*MSEC);
+ task_wait_event(10 * MSEC);
/* Check results. */
TEST_NE(mock_pe_port[port].mock_pe_message_received, 0, "%d");
@@ -94,7 +94,7 @@ static int test_send_control_msg(void)
/* Simulate the TX complete that the PD_INT handler would signal */
pd_transmit_complete(port, TCPC_TX_COMPLETE_SUCCESS);
- task_wait_event(10*MSEC);
+ task_wait_event(10 * MSEC);
/* Check results. */
TEST_NE(mock_pe_port[port].mock_pe_message_sent, 0, "%d");
@@ -111,16 +111,16 @@ static int test_discard_queued_tx_when_rx_happens(void)
{
int port = PORT0;
uint16_t header = PD_HEADER(PD_CTRL_DR_SWAP,
- get_partner_power_role(port),
- get_partner_data_role(port),
- mock_tc_port[port].msg_rx_id,
- 0, mock_tc_port[port].rev, 0);
+ get_partner_power_role(port),
+ get_partner_data_role(port),
+ mock_tc_port[port].msg_rx_id, 0,
+ mock_tc_port[port].rev, 0);
uint8_t *buf = tx_emsg[port].buf;
uint8_t len = 8;
uint8_t i = 0;
/* Set up the message to be sent. */
- for (i = 0 ; i < len ; i++)
+ for (i = 0; i < len; i++)
buf[i] = (uint8_t)i;
tx_emsg[port].len = len;
@@ -130,7 +130,7 @@ static int test_discard_queued_tx_when_rx_happens(void)
mock_tcpm_rx_msg(port, header, 0, NULL);
/* Process the message. */
- task_wait_event(10*MSEC);
+ task_wait_event(10 * MSEC);
/* Check results. Source should have discarded its message queued up
* to TX, and should have received the message from the sink.
@@ -166,14 +166,13 @@ void after_test(void)
enable_prl(PORT0, 0);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_receive_control_msg);
RUN_TEST(test_send_control_msg);
RUN_TEST(test_discard_queued_tx_when_rx_happens);
/* TODO add tests here */
-
/* Do basic state machine validity checks last. */
RUN_TEST(test_prl_no_parent_cycles);
RUN_TEST(test_prl_all_states_named);
diff --git a/test/usb_prl.mocklist b/test/usb_prl.mocklist
index bf5357334a..7a5af3392e 100644
--- a/test/usb_prl.mocklist
+++ b/test/usb_prl.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_prl.tasklist b/test/usb_prl.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_prl.tasklist
+++ b/test/usb_prl.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_prl_noextended.c b/test/usb_prl_noextended.c
index a47c01a13e..956c0027f5 120000..100644
--- a/test/usb_prl_noextended.c
+++ b/test/usb_prl_noextended.c
@@ -1 +1,1347 @@
-usb_prl_old.c \ No newline at end of file
+/* Copyright 2019 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * Test USB Protocol Layer module.
+ */
+#include "common.h"
+#include "crc.h"
+#include "task.h"
+#include "tcpm/tcpm.h"
+#include "test_util.h"
+#include "timer.h"
+#include "usb_emsg.h"
+#include "usb_pd_test_util.h"
+#include "usb_pd.h"
+#include "usb_pd_tcpm.h"
+#include "usb_pe_sm.h"
+#include "usb_prl_sm.h"
+#include "usb_sm_checks.h"
+#include "usb_tc_sm.h"
+#include "util.h"
+
+#define PORT0 0
+
+/*
+ * These enum definitions are declared in usb_prl_sm and are private to that
+ * file. If those definitions are re-ordered, then we need to update these
+ * definitions (should be very rare).
+ */
+enum usb_prl_tx_state {
+ PRL_TX_PHY_LAYER_RESET,
+ PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ PRL_TX_LAYER_RESET_FOR_TRANSMIT,
+ PRL_TX_WAIT_FOR_PHY_RESPONSE,
+ PRL_TX_SRC_SOURCE_TX,
+ PRL_TX_SNK_START_AMS,
+ PRL_TX_SRC_PENDING,
+ PRL_TX_SNK_PENDING,
+ PRL_TX_DISCARD_MESSAGE,
+};
+
+enum usb_prl_hr_state {
+ PRL_HR_WAIT_FOR_REQUEST,
+ PRL_HR_RESET_LAYER,
+ PRL_HR_WAIT_FOR_PHY_HARD_RESET_COMPLETE,
+ PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+};
+
+enum usb_rch_state {
+ RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ RCH_PASS_UP_MESSAGE,
+ RCH_PROCESSING_EXTENDED_MESSAGE,
+ RCH_REQUESTING_CHUNK,
+ RCH_WAITING_CHUNK,
+ RCH_REPORT_ERROR,
+};
+
+enum usb_tch_state {
+ TCH_WAIT_FOR_MESSAGE_REQUEST_FROM_PE,
+ TCH_WAIT_FOR_TRANSMISSION_COMPLETE,
+ TCH_CONSTRUCT_CHUNKED_MESSAGE,
+ TCH_SENDING_CHUNKED_MESSAGE,
+ TCH_WAIT_CHUNK_REQUEST,
+ TCH_MESSAGE_RECEIVED,
+ TCH_MESSAGE_SENT,
+ TCH_REPORT_ERROR,
+};
+
+/* Defined in implementation */
+enum usb_prl_tx_state prl_tx_get_state(const int port);
+enum usb_prl_hr_state prl_hr_get_state(const int port);
+enum usb_rch_state rch_get_state(const int port);
+enum usb_tch_state tch_get_state(const int port);
+
+#ifndef CONFIG_USB_PD_EXTENDED_MESSAGES
+enum usb_rch_state rch_get_state(const int port)
+{
+ return RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER;
+}
+#endif
+
+static uint32_t test_data[] = {
+ 0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f, 0x10111213, 0x14151617,
+ 0x1819a0b0, 0xc0d0e0f0, 0x20212223, 0x24252627, 0x28292a2b, 0x2c2d2e2f,
+ 0x30313233, 0x34353637, 0x38393a3b, 0x3c3d3e3f, 0x40414243, 0x44454647,
+ 0x48494a4b, 0x4c4d4e4f, 0x50515253, 0x54555657, 0x58595a5b, 0x5c5d5e5f,
+ 0x60616263, 0x64656667, 0x68696a6b, 0x6c6d6e6f, 0x70717273, 0x74757677,
+ 0x78797a7b, 0x7c7d7e7f, 0x80818283, 0x84858687, 0x88898a8b, 0x8c8d8e8f,
+ 0x90919293, 0x94959697, 0x98999a9b, 0x9c9d9e9f, 0xa0a1a2a3, 0xa4a5a6a7,
+ 0xa8a9aaab, 0xacadaeaf, 0xb0b1b2b3, 0xb4b5b6b7, 0xb8b9babb, 0xbcbdbebf,
+ 0xc0c1c2c3, 0xc4c5c6c7, 0xc8c9cacb, 0xcccdcecf, 0xd0d1d2d3, 0xd4d5d6d7,
+ 0xd8d9dadb, 0xdcdddedf, 0xe0e1e2e3, 0xe4e5e6e7, 0xe8e9eaeb, 0xecedeeef,
+ 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff, 0x11223344
+};
+
+void pd_set_suspend(int port, int suspend)
+{
+}
+
+void pd_set_error_recovery(int port)
+{
+}
+
+static enum pd_power_role get_partner_power_role(int port);
+static enum pd_data_role get_partner_data_role(int port);
+
+static struct pd_prl {
+ int rev;
+ int pd_enable;
+ enum pd_power_role power_role;
+ enum pd_data_role data_role;
+ int msg_tx_id;
+ int msg_rx_id;
+ enum tcpci_msg_type sop;
+
+ int mock_pe_message_sent;
+ int mock_pe_error;
+ int mock_pe_hard_reset_sent;
+ int mock_pe_got_hard_reset;
+ int mock_pe_message_received;
+ int mock_got_soft_reset;
+ int mock_message_discard;
+} pd_port[CONFIG_USB_PD_PORT_MAX_COUNT];
+
+static void init_port(int port, int rev)
+{
+ pd_port[port].rev = rev;
+ pd_port[port].pd_enable = 0;
+ pd_port[port].power_role = PD_ROLE_SINK;
+ pd_port[port].data_role = PD_ROLE_UFP;
+ pd_port[port].msg_tx_id = 0;
+ pd_port[port].msg_rx_id = 0;
+
+ tcpm_init(port);
+ tcpm_set_polarity(port, 0);
+ tcpm_set_rx_enable(port, 0);
+}
+
+static inline uint32_t pending_pd_task_events(int port)
+{
+ return *task_get_event_bitmap(PD_PORT_TO_TASK_ID(port));
+}
+
+void inc_tx_id(int port)
+{
+ pd_port[port].msg_tx_id = (pd_port[port].msg_tx_id + 1) & 7;
+}
+
+void inc_rx_id(int port)
+{
+ pd_port[port].msg_rx_id = (pd_port[port].msg_rx_id + 1) % 7;
+}
+
+static int verify_goodcrc(int port, int role, int id)
+{
+ return pd_test_tx_msg_verify_sop(port) &&
+ pd_test_tx_msg_verify_short(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role,
+ role, id, 0, 0, 0)) &&
+ pd_test_tx_msg_verify_crc(port) &&
+ pd_test_tx_msg_verify_eop(port);
+}
+
+static void simulate_rx_msg(int port, uint16_t header, int cnt,
+ const uint32_t *data)
+{
+ int i;
+
+ pd_test_rx_set_preamble(port, 1);
+ pd_test_rx_msg_append_sop(port);
+ pd_test_rx_msg_append_short(port, header);
+
+ crc32_init();
+ crc32_hash16(header);
+
+ for (i = 0; i < cnt; ++i) {
+ pd_test_rx_msg_append_word(port, data[i]);
+ crc32_hash32(data[i]);
+ }
+
+ pd_test_rx_msg_append_word(port, crc32_result());
+
+ pd_test_rx_msg_append_eop(port);
+ pd_test_rx_msg_append_last_edge(port);
+
+ pd_simulate_rx(port);
+}
+
+static void simulate_goodcrc(int port, int role, int id)
+{
+ simulate_rx_msg(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
+ pd_port[port].rev, 0),
+ 0, NULL);
+}
+
+static void cycle_through_state_machine(int port, uint32_t num, uint32_t time)
+{
+ int i;
+
+ for (i = 0; i < num; i++) {
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(time);
+ }
+}
+
+static int simulate_request_chunk(int port, enum pd_ext_msg_type msg_type,
+ int chunk_num, int len)
+{
+ uint16_t header = PD_HEADER(msg_type, get_partner_power_role(port),
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, 1,
+ pd_port[port].rev, 1);
+ uint32_t msg = PD_EXT_HEADER(chunk_num, 1, len);
+
+ simulate_rx_msg(port, header, 1, (const uint32_t *)&msg);
+ task_wait_event(30 * MSEC);
+
+ if (!verify_goodcrc(port, pd_port[port].data_role,
+ pd_port[port].msg_rx_id))
+ return 0;
+
+ return 1;
+}
+
+static int simulate_receive_ctrl_msg(int port, enum pd_ctrl_msg_type msg_type)
+{
+ uint16_t header = PD_HEADER(msg_type, get_partner_power_role(port),
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
+
+ simulate_rx_msg(port, header, 0, NULL);
+ task_wait_event(30 * MSEC);
+
+ if (!verify_goodcrc(port, pd_port[port].data_role,
+ pd_port[port].msg_rx_id))
+ return 0;
+
+ return 1;
+}
+
+static int verify_data_reception(int port, uint16_t header, int len)
+{
+ int i;
+ int cnt = (len + 3) & ~3;
+
+ cycle_through_state_machine(port, 3, 10 * MSEC);
+
+ if (pd_port[port].mock_pe_error >= 0)
+ return 0;
+
+ if (!pd_port[port].mock_pe_message_received)
+ return 0;
+
+ if (rx_emsg[port].header != header)
+ return 0;
+
+ if (rx_emsg[port].len != cnt)
+ return 0;
+
+ for (i = 0; i < cnt; i++) {
+ if (i < len) {
+ if (rx_emsg[port].buf[i] !=
+ *((unsigned char *)test_data + i))
+ return 0;
+ } else {
+ if (rx_emsg[port].buf[i] != 0)
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+static int verify_chunk_data_reception(int port, uint16_t header, int len)
+{
+ int i;
+ uint8_t *td = (uint8_t *)test_data;
+
+ if (pd_port[port].mock_got_soft_reset) {
+ ccprintf("Got mock soft reset\n");
+ return 0;
+ }
+
+ if (!pd_port[port].mock_pe_message_received) {
+ ccprintf("No mock pe msg received\n");
+ return 0;
+ }
+
+ if (pd_port[port].mock_pe_error >= 0) {
+ ccprintf("Mock pe error (%d)\n", pd_port[port].mock_pe_error);
+ return 0;
+ }
+
+ if (rx_emsg[port].len != len) {
+ ccprintf("emsg len (%d) != 0\n", rx_emsg[port].len);
+ return 0;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (rx_emsg[port].buf[i] != td[i]) {
+ ccprintf("emsg buf[%d] != td\n", i);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+static int simulate_receive_data(int port, enum pd_data_msg_type msg_type,
+ int len)
+{
+ int i;
+ int nw = (len + 3) >> 2;
+ uint8_t td[28];
+ uint16_t header = PD_HEADER(msg_type, get_partner_power_role(port),
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, nw,
+ pd_port[port].rev, 0);
+
+ pd_port[port].mock_pe_error = -1;
+ pd_port[port].mock_pe_message_received = 0;
+ rx_emsg[port].header = 0;
+ rx_emsg[port].len = 0;
+ memset(rx_emsg[port].buf, 0, ARRAY_SIZE(rx_emsg[port].buf));
+
+ for (i = 0; i < 28; i++) {
+ if (i < len)
+ td[i] = *((uint8_t *)test_data + i);
+ else
+ td[i] = 0;
+ }
+
+ simulate_rx_msg(port, header, nw, (uint32_t *)td);
+ task_wait_event(30 * MSEC);
+
+ if (!verify_goodcrc(port, pd_port[port].data_role,
+ pd_port[port].msg_rx_id))
+ return 0;
+
+ inc_rx_id(port);
+
+ return verify_data_reception(port, header, len);
+}
+
+static int simulate_receive_extended_data(int port,
+ enum pd_data_msg_type msg_type,
+ int len)
+{
+ int i;
+ int j;
+ int byte_len;
+ int nw;
+ int dsize;
+ uint8_t td[28];
+ int chunk_num = 0;
+ int data_offset = 0;
+ uint8_t *expected_data = (uint8_t *)test_data;
+ uint16_t header;
+
+ pd_port[port].mock_pe_error = -1;
+ pd_port[port].mock_pe_message_received = 0;
+ rx_emsg[port].header = 0;
+ rx_emsg[port].len = 0;
+ memset(rx_emsg[port].buf, 0, ARRAY_SIZE(rx_emsg[port].buf));
+
+ dsize = len;
+ for (j = 0; j < 10; j++) {
+ /* Let state machine settle before starting another round */
+ cycle_through_state_machine(port, 10, MSEC);
+
+ byte_len = len;
+ if (byte_len > PD_MAX_EXTENDED_MSG_CHUNK_LEN)
+ byte_len = PD_MAX_EXTENDED_MSG_CHUNK_LEN;
+
+ len -= PD_MAX_EXTENDED_MSG_CHUNK_LEN;
+
+ memset(td, 0, 28);
+ *(uint16_t *)td = PD_EXT_HEADER(chunk_num, 0, dsize);
+
+ for (i = 0; i < byte_len; i++)
+ td[i + 2] = *(expected_data + data_offset++);
+
+ nw = (byte_len + 2 + 3) >> 2;
+ header = PD_HEADER(msg_type, get_partner_power_role(port),
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, nw,
+ pd_port[port].rev, 1);
+
+ if (pd_port[port].mock_pe_error >= 0) {
+ ccprintf("Mock pe error (%d) iteration (%d)\n",
+ pd_port[port].mock_pe_error, j);
+ return 0;
+ }
+
+ if (IS_ENABLED(CONFIG_USB_PD_EXTENDED_MESSAGES) &&
+ pd_port[port].mock_pe_message_received) {
+ ccprintf("Mock pe msg received iteration (%d)\n", j);
+ return 0;
+ }
+
+ if (rx_emsg[port].len != 0) {
+ ccprintf("emsg len (%d) != 0 iteration (%d)\n",
+ rx_emsg[port].len, j);
+ return 0;
+ }
+
+ simulate_rx_msg(port, header, nw, (uint32_t *)td);
+ cycle_through_state_machine(port, 1, MSEC);
+
+ if (!verify_goodcrc(port, pd_port[port].data_role,
+ pd_port[port].msg_rx_id)) {
+ ccprintf("Verify goodcrc bad iteration (%d)\n", j);
+ return 0;
+ }
+
+ cycle_through_state_machine(port, 1, MSEC);
+ inc_rx_id(port);
+
+ if (!IS_ENABLED(CONFIG_USB_PD_EXTENDED_MESSAGES)) {
+ if (pd_port[port].mock_pe_message_received)
+ return 1;
+ return 0;
+ }
+
+ /*
+ * If no more data, do expected to get a chunk request
+ */
+ if (len <= 0)
+ break;
+
+ /*
+ * We need to ensure that the TX event has been set, which may
+ * require an extra cycle through the state machine
+ */
+ if (!(PD_EVENT_TX & pending_pd_task_events(port)))
+ cycle_through_state_machine(port, 1, MSEC);
+
+ chunk_num++;
+
+ /* Test Request next chunk packet */
+ if (!pd_test_tx_msg_verify_sop(port)) {
+ ccprintf("Verify sop bad iteration (%d)\n", j);
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_short(
+ port, PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role,
+ pd_port[port].msg_tx_id, 1,
+ pd_port[port].rev, 1))) {
+ ccprintf("Verify msg short bad iteration (%d)\n", j);
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_word(port, PD_EXT_HEADER(chunk_num,
+ 1, 0))) {
+ ccprintf("Verify msg word bad iteration (%d)\n", j);
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_crc(port)) {
+ ccprintf("Verify msg crc bad iteration (%d)\n", j);
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_eop(port)) {
+ ccprintf("Verify msg eop bad iteration (%d)\n", j);
+ return 0;
+ }
+
+ cycle_through_state_machine(port, 1, MSEC);
+
+ /* Request next chunk packet was good. Send GoodCRC */
+ simulate_goodcrc(port, get_partner_power_role(port),
+ pd_port[port].msg_tx_id);
+
+ cycle_through_state_machine(port, 1, MSEC);
+
+ inc_tx_id(port);
+ }
+
+ cycle_through_state_machine(port, 1, MSEC);
+
+ return verify_chunk_data_reception(port, header, dsize);
+}
+
+static int verify_ctrl_msg_transmission(int port,
+ enum pd_ctrl_msg_type msg_type)
+{
+ if (!pd_test_tx_msg_verify_sop(port))
+ return 0;
+
+ if (!pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role, pd_port[port].msg_tx_id,
+ 0, pd_port[port].rev, 0)))
+ return 0;
+
+ if (!pd_test_tx_msg_verify_crc(port))
+ return 0;
+
+ if (!pd_test_tx_msg_verify_eop(port))
+ return 0;
+
+ return 1;
+}
+
+static int
+simulate_send_ctrl_msg_request_from_pe(int port, enum tcpci_msg_type type,
+ enum pd_ctrl_msg_type msg_type)
+{
+ pd_port[port].mock_got_soft_reset = 0;
+ pd_port[port].mock_pe_error = -1;
+ pd_port[port].mock_pe_message_sent = 0;
+ prl_send_ctrl_msg(port, type, msg_type);
+ cycle_through_state_machine(port, 1, MSEC);
+
+ return verify_ctrl_msg_transmission(port, msg_type);
+}
+
+static int verify_data_msg_transmission(int port,
+ enum pd_data_msg_type msg_type, int len)
+{
+ int i;
+ int num_words = (len + 3) >> 2;
+ int data_obj_in_bytes;
+ uint32_t td;
+
+ if (!pd_test_tx_msg_verify_sop(port))
+ return 0;
+
+ if (!pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role, pd_port[port].msg_tx_id,
+ num_words, pd_port[port].rev, 0)))
+ return 0;
+
+ for (i = 0; i < num_words; i++) {
+ td = test_data[i];
+ data_obj_in_bytes = (i + 1) * 4;
+ if (data_obj_in_bytes > len) {
+ switch (data_obj_in_bytes - len) {
+ case 1:
+ td &= 0x00ffffff;
+ break;
+ case 2:
+ td &= 0x0000ffff;
+ break;
+ case 3:
+ td &= 0x000000ff;
+ break;
+ }
+ }
+
+ if (!pd_test_tx_msg_verify_word(port, td))
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_crc(port))
+ return 0;
+
+ if (!pd_test_tx_msg_verify_eop(port))
+ return 0;
+
+ return 1;
+}
+
+static int
+simulate_send_data_msg_request_from_pe(int port, enum tcpci_msg_type type,
+ enum pd_data_msg_type msg_type, int len)
+{
+ int i;
+ uint8_t *buf = tx_emsg[port].buf;
+ uint8_t *td = (uint8_t *)test_data;
+
+ pd_port[port].mock_got_soft_reset = 0;
+ pd_port[port].mock_pe_error = -1;
+ pd_port[port].mock_pe_message_sent = 0;
+
+ for (i = 0; i < len; i++)
+ buf[i] = td[i];
+
+ tx_emsg[port].len = len;
+
+ prl_send_data_msg(port, type, msg_type);
+ cycle_through_state_machine(port, 1, MSEC);
+
+ return verify_data_msg_transmission(port, msg_type, len);
+}
+
+static int verify_extended_data_msg_transmission(int port,
+ enum pd_ext_msg_type msg_type,
+ int len)
+{
+ int i;
+ int j;
+ int nw;
+ int byte_len;
+ int dsize;
+ uint32_t td;
+ uint8_t *expected_data = (uint8_t *)&test_data;
+ int data_offset = 0;
+ int chunk_number_to_send = 0;
+
+ dsize = len;
+
+ for (j = 0; j < 10; j++) {
+ byte_len = len;
+ if (byte_len > PD_MAX_EXTENDED_MSG_CHUNK_LEN)
+ byte_len = PD_MAX_EXTENDED_MSG_CHUNK_LEN;
+
+ nw = (byte_len + 2 + 3) >> 2;
+
+ if (!pd_test_tx_msg_verify_sop(port)) {
+ ccprintf("failed tx sop; iteration (%d)\n", j);
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_short(
+ port, PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role,
+ pd_port[port].msg_tx_id, nw,
+ pd_port[port].rev, 1))) {
+ ccprintf("failed tx short\n");
+ return 0;
+ }
+ td = PD_EXT_HEADER(chunk_number_to_send, 0, dsize);
+ td |= *(expected_data + data_offset++) << 16;
+ td |= *(expected_data + data_offset++) << 24;
+
+ if (byte_len == 1)
+ td &= 0x00ffffff;
+
+ if (!pd_test_tx_msg_verify_word(port, td)) {
+ ccprintf("failed tx word\n");
+ return 0;
+ }
+
+ byte_len -= 2;
+
+ if (byte_len > 0) {
+ nw = (byte_len + 3) >> 2;
+ for (i = 0; i < nw; i++) {
+ td = *(expected_data + data_offset++) << 0;
+ td |= *(expected_data + data_offset++) << 8;
+ td |= *(expected_data + data_offset++) << 16;
+ td |= *(expected_data + data_offset++) << 24;
+
+ switch (byte_len) {
+ case 3:
+ td &= 0x00ffffff;
+ break;
+ case 2:
+ td &= 0x0000ffff;
+ break;
+ case 1:
+ td &= 0x000000ff;
+ break;
+ }
+
+ if (!pd_test_tx_msg_verify_word(port, td))
+ return 0;
+ byte_len -= 4;
+ }
+ }
+
+ if (!pd_test_tx_msg_verify_crc(port)) {
+ ccprintf("failed tx crc\n");
+ return 0;
+ }
+
+ if (!pd_test_tx_msg_verify_eop(port)) {
+ ccprintf("failed tx eop\n");
+ return 0;
+ }
+
+ cycle_through_state_machine(port, 1, MSEC);
+
+ /* Send GoodCRC */
+ simulate_goodcrc(port, get_partner_power_role(port),
+ pd_port[port].msg_tx_id);
+ cycle_through_state_machine(port, 1, MSEC);
+ inc_tx_id(port);
+
+ len -= PD_MAX_EXTENDED_MSG_CHUNK_LEN;
+ if (len <= 0)
+ break;
+
+ chunk_number_to_send++;
+ /* Let state machine settle */
+ cycle_through_state_machine(port, 10, MSEC);
+ if (!simulate_request_chunk(port, msg_type,
+ chunk_number_to_send, dsize)) {
+ ccprintf("failed request chunk\n");
+ return 0;
+ }
+
+ cycle_through_state_machine(port, 1, MSEC);
+ inc_rx_id(port);
+ }
+
+ return 1;
+}
+
+static int simulate_send_extended_data_msg(int port, enum tcpci_msg_type type,
+ enum pd_ext_msg_type msg_type,
+ int len)
+{
+ int i;
+ uint8_t *buf = tx_emsg[port].buf;
+ uint8_t *td = (uint8_t *)test_data;
+
+ memset(buf, 0, ARRAY_SIZE(tx_emsg[port].buf));
+ tx_emsg[port].len = len;
+
+ /* don't overflow buffer */
+ if (len > ARRAY_SIZE(tx_emsg[port].buf))
+ len = ARRAY_SIZE(tx_emsg[port].buf);
+
+ for (i = 0; i < len; i++)
+ buf[i] = td[i];
+
+ prl_send_ext_data_msg(port, type, msg_type);
+ cycle_through_state_machine(port, 1, MSEC);
+
+ return verify_extended_data_msg_transmission(port, msg_type, len);
+}
+
+uint8_t tc_get_pd_enabled(int port)
+{
+ return pd_port[port].pd_enable;
+}
+
+static void enable_prl(int port, int en)
+{
+ tcpm_set_rx_enable(port, en);
+
+ pd_port[port].pd_enable = en;
+ pd_port[port].msg_tx_id = 0;
+ pd_port[port].msg_rx_id = 0;
+
+ /* Init PRL */
+ cycle_through_state_machine(port, 10, MSEC);
+
+ prl_set_rev(port, TCPCI_MSG_SOP, pd_port[port].rev);
+}
+
+enum pd_power_role pd_get_power_role(int port)
+{
+ return pd_port[port].power_role;
+}
+
+static enum pd_power_role get_partner_power_role(int port)
+{
+ return pd_port[port].power_role == PD_ROLE_SINK ? PD_ROLE_SOURCE :
+ PD_ROLE_SINK;
+}
+
+enum pd_data_role pd_get_data_role(int port)
+{
+ return pd_port[port].data_role;
+}
+
+static enum pd_data_role get_partner_data_role(int port)
+{
+ return pd_port[port].data_role == PD_ROLE_UFP ? PD_ROLE_DFP :
+ PD_ROLE_UFP;
+}
+
+enum pd_cable_plug tc_get_cable_plug(int port)
+{
+ return PD_PLUG_FROM_DFP_UFP;
+}
+
+void pe_report_error(int port, enum pe_error e, enum tcpci_msg_type type)
+{
+ pd_port[port].mock_pe_error = e;
+ pd_port[port].sop = type;
+}
+
+void pe_report_discard(int port)
+{
+ pd_port[port].mock_message_discard = 1;
+}
+
+void pe_got_hard_reset(int port)
+{
+ pd_port[port].mock_pe_got_hard_reset = 1;
+}
+
+void pe_message_received(int port)
+{
+ pd_port[port].mock_pe_message_received = 1;
+}
+
+void pe_message_sent(int port)
+{
+ pd_port[port].mock_pe_message_sent = 1;
+}
+
+void pe_hard_reset_sent(int port)
+{
+ pd_port[port].mock_pe_hard_reset_sent = 1;
+}
+
+void pe_got_soft_reset(int port)
+{
+ pd_port[port].mock_got_soft_reset = 1;
+}
+
+bool pe_in_frs_mode(int port)
+{
+ return false;
+}
+
+bool pe_in_local_ams(int port)
+{
+ /* We will probably want to change this in the future */
+ return false;
+}
+
+static int test_prl_reset(void)
+{
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ prl_reset_soft(port);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(rch_get_state(port), RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ "%u");
+ TEST_EQ(tch_get_state(port), TCH_WAIT_FOR_MESSAGE_REQUEST_FROM_PE,
+ "%u");
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_REQUEST, "%u");
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_send_ctrl_msg(void)
+{
+ int i;
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Control message transmission and tx_id increment
+ */
+ for (i = 0; i < 10; i++) {
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ "%u");
+
+ TEST_NE(simulate_send_ctrl_msg_request_from_pe(
+ port, TCPCI_MSG_SOP, PD_CTRL_ACCEPT),
+ 0, "%d");
+
+ cycle_through_state_machine(port, 1, MSEC);
+
+ simulate_goodcrc(port, get_partner_power_role(port),
+ pd_port[port].msg_tx_id);
+ inc_tx_id(port);
+
+ /* Let statemachine settle */
+ cycle_through_state_machine(port, 10, MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 0, "%d");
+ TEST_NE(pd_port[port].mock_pe_message_sent, 0, "%d");
+ TEST_LE(pd_port[port].mock_pe_error, 0, "%d");
+ }
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_send_data_msg(void)
+{
+ int i;
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Sending data message with 1 to 28 bytes
+ */
+ for (i = 1; i <= 28; i++) {
+ cycle_through_state_machine(port, 1, MSEC);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ "%u");
+
+ TEST_NE(simulate_send_data_msg_request_from_pe(
+ port, TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP, i),
+ 0, "%d");
+
+ cycle_through_state_machine(port, 1, MSEC);
+
+ simulate_goodcrc(port, get_partner_power_role(port),
+ pd_port[port].msg_tx_id);
+ inc_tx_id(port);
+
+ cycle_through_state_machine(port, 10, MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 0, "%d");
+ TEST_NE(pd_port[port].mock_pe_message_sent, 0, "%d");
+ TEST_LE(pd_port[port].mock_pe_error, 0, "%d");
+ }
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_send_data_msg_to_much_data(void)
+{
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Send data message with more than 28-bytes, should fail
+ */
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+
+ /* Try to send 29-bytes */
+ TEST_EQ(simulate_send_data_msg_request_from_pe(port, TCPCI_MSG_SOP,
+ PD_DATA_SOURCE_CAP, 29),
+ 0, "%d");
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(30 * MSEC);
+
+ cycle_through_state_machine(port, 10, MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 0, "%d");
+ TEST_EQ(pd_port[port].mock_pe_message_sent, 0, "%d");
+ TEST_EQ(pd_port[port].mock_pe_error, ERR_TCH_XMIT, "%d");
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_send_extended_data_msg(void)
+{
+ int i;
+ int port = PORT0;
+
+ if (!IS_ENABLED(CONFIG_USB_PD_EXTENDED_MESSAGES)) {
+ ccprints("CONFIG_USB_PD_EXTENDED_MESSAGES disabled; skipping");
+ return EC_SUCCESS;
+ }
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Sending extended data message with 29 to 260 bytes
+ */
+
+ pd_port[port].mock_got_soft_reset = 0;
+ pd_port[port].mock_pe_error = -1;
+
+ ccprintf("Iteration ");
+ for (i = 29; i <= PD_MAX_EXTENDED_MSG_LEN; i++) {
+ ccprintf(".%d", i);
+ pd_port[port].mock_pe_message_sent = 0;
+
+ cycle_through_state_machine(port, 10, MSEC);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ "%d");
+
+ TEST_NE(simulate_send_extended_data_msg(
+ port, TCPCI_MSG_SOP, PD_EXT_MANUFACTURER_INFO,
+ i),
+ 0, "%d");
+
+ cycle_through_state_machine(port, 10, MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 0, "%d");
+ TEST_NE(pd_port[port].mock_pe_message_sent, 0, "%d");
+ TEST_LE(pd_port[port].mock_pe_error, 0, "%d");
+ }
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_receive_soft_reset_msg(void)
+{
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Receiving Soft Reset
+ */
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(rch_get_state(port), RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ "%u");
+
+ pd_port[port].mock_got_soft_reset = 0;
+ pd_port[port].mock_pe_error = -1;
+ pd_port[port].mock_pe_message_received = 0;
+
+ TEST_NE(simulate_receive_ctrl_msg(port, PD_CTRL_SOFT_RESET), 0, "%d");
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(30 * MSEC);
+
+ cycle_through_state_machine(port, 10, MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 1, "%d");
+ TEST_LE(pd_port[port].mock_pe_error, 0, "%d");
+ /*
+ * We don't want to get pe_got_soft_reset and pe_message_received, just
+ * pe_got_soft_reset.
+ */
+ TEST_EQ(pd_port[port].mock_pe_message_received, 0, "%d");
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_receive_control_msg(void)
+{
+ int port = PORT0;
+ int expected_header =
+ PD_HEADER(PD_CTRL_DR_SWAP, get_partner_power_role(port),
+ get_partner_data_role(port), pd_port[port].msg_rx_id,
+ 0, pd_port[port].rev, 0);
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Receiving a control message
+ */
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(rch_get_state(port), RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ "%u");
+
+ pd_port[port].mock_got_soft_reset = 0;
+ pd_port[port].mock_pe_error = -1;
+ pd_port[port].mock_pe_message_received = 0;
+
+ TEST_NE(simulate_receive_ctrl_msg(port, PD_CTRL_DR_SWAP), 0, "%d");
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(30 * MSEC);
+
+ cycle_through_state_machine(port, 3, 10 * MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 0, "%d");
+ TEST_LE(pd_port[port].mock_pe_error, 0, "%d");
+ TEST_NE(pd_port[port].mock_pe_message_received, 0, "%d");
+ TEST_EQ(expected_header, rx_emsg[port].header, "%d");
+ TEST_EQ(rx_emsg[port].len, 0, "%d");
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_receive_data_msg(void)
+{
+ int port = PORT0;
+ int i;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Receiving data message with 1 to 28 bytes
+ */
+
+ for (i = 1; i <= 28; i++) {
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(rch_get_state(port),
+ RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
+ TEST_NE(simulate_receive_data(port, PD_DATA_BATTERY_STATUS, i),
+ 0, "%d");
+ }
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_receive_extended_data_msg(void)
+{
+ int len;
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ if (IS_ENABLED(CONFIG_USB_PD_EXTENDED_MESSAGES)) {
+ /*
+ * TEST: Receiving extended data message with 29 to 260 bytes
+ */
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(rch_get_state(port),
+ RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
+
+ for (len = 29; len <= PD_MAX_EXTENDED_MSG_LEN; len++) {
+ TEST_NE(simulate_receive_extended_data(
+ port, PD_DATA_BATTERY_STATUS, len),
+ 0, "%d");
+ }
+ } else {
+ /*
+ * TEST: Receiving unsupported extended data message and then
+ * subsequently receiving a support non-extended data message.
+ */
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+ TEST_NE(simulate_receive_extended_data(
+ port, PD_DATA_BATTERY_STATUS, 29),
+ 0, "%d");
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+ TEST_NE(simulate_receive_data(port, PD_DATA_BATTERY_STATUS, 28),
+ 0, "%d");
+ }
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_send_soft_reset_msg(void)
+{
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Send soft reset
+ */
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+
+ TEST_NE(simulate_send_ctrl_msg_request_from_pe(port, TCPCI_MSG_SOP,
+ PD_CTRL_SOFT_RESET),
+ 0, "%d");
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(30 * MSEC);
+
+ simulate_goodcrc(port, get_partner_power_role(port),
+ pd_port[port].msg_tx_id);
+ inc_tx_id(port);
+
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_LAYER_RESET_FOR_TRANSMIT, "%u");
+
+ cycle_through_state_machine(port, 3, 10 * MSEC);
+
+ TEST_EQ(pd_port[port].mock_got_soft_reset, 0, "%d");
+ TEST_NE(pd_port[port].mock_pe_message_sent, 0, "%d");
+ TEST_LE(pd_port[port].mock_pe_error, 0, "%d");
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_pe_execute_hard_reset_msg(void)
+{
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ pd_port[port].mock_pe_hard_reset_sent = 0;
+
+ /*
+ * TEST: Policy Engine initiated hard reset
+ */
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_REQUEST, "%u");
+
+ /* Simulate receiving hard reset from policy engine */
+ prl_execute_hard_reset(port);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_RESET_LAYER, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+
+ cycle_through_state_machine(port, 1, 10 * MSEC);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PHY_HARD_RESET_COMPLETE,
+ "%u");
+
+ cycle_through_state_machine(port, 2, PD_T_PS_HARD_RESET);
+ TEST_NE(pd_port[port].mock_pe_hard_reset_sent, 0, "%d");
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+ "%u");
+
+ /* Simulate policy engine indicating that it is done hard reset */
+ prl_hard_reset_complete(port);
+
+ cycle_through_state_machine(port, 1, 10 * MSEC);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_REQUEST, "%u");
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+static int test_phy_execute_hard_reset_msg(void)
+{
+ int port = PORT0;
+
+ enable_prl(port, 1);
+
+ /*
+ * TEST: Port partner initiated hard reset
+ */
+
+ pd_port[port].mock_pe_got_hard_reset = 0;
+
+ task_wake(PD_PORT_TO_TASK_ID(port));
+ task_wait_event(40 * MSEC);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_REQUEST, "%u");
+
+ /* Simulate receiving hard reset from port partner */
+ pd_execute_hard_reset(port);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_RESET_LAYER, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+
+ cycle_through_state_machine(port, 1, 10 * MSEC);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+ "%u");
+
+ cycle_through_state_machine(port, 2, PD_T_PS_HARD_RESET);
+ TEST_NE(pd_port[port].mock_pe_got_hard_reset, 0, "%d");
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+ "%u");
+
+ /* Simulate policy engine indicating that it is done hard reset */
+ prl_hard_reset_complete(port);
+
+ cycle_through_state_machine(port, 1, 10 * MSEC);
+
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_REQUEST, "%u");
+
+ enable_prl(port, 0);
+
+ return EC_SUCCESS;
+}
+
+/* Reset the state machine between each test */
+void before_test(void)
+{
+ /* This test relies on explicitly cycling through events manually */
+ tc_pause_event_loop(PORT0);
+
+ pd_port[PORT0].mock_pe_message_sent = 0;
+ pd_port[PORT0].mock_pe_error = -1;
+ pd_port[PORT0].mock_message_discard = 0;
+ pd_port[PORT0].mock_pe_hard_reset_sent = 0;
+ pd_port[PORT0].mock_pe_got_hard_reset = 0;
+ pd_port[PORT0].mock_pe_message_received = 0;
+ pd_port[PORT0].mock_got_soft_reset = 0;
+ pd_port[PORT0].pd_enable = false;
+ cycle_through_state_machine(PORT0, 10, MSEC);
+ pd_port[PORT0].pd_enable = true;
+ cycle_through_state_machine(PORT0, 10, MSEC);
+}
+
+void run_test(int argc, const char **argv)
+{
+ test_reset();
+
+ /* Test PD 2.0 Protocol */
+ init_port(PORT0, PD_REV20);
+ RUN_TEST(test_prl_reset);
+ RUN_TEST(test_send_ctrl_msg);
+ RUN_TEST(test_send_data_msg);
+ RUN_TEST(test_send_data_msg_to_much_data);
+ RUN_TEST(test_receive_control_msg);
+ RUN_TEST(test_receive_data_msg);
+ RUN_TEST(test_receive_soft_reset_msg);
+ RUN_TEST(test_send_soft_reset_msg);
+ RUN_TEST(test_pe_execute_hard_reset_msg);
+ RUN_TEST(test_phy_execute_hard_reset_msg);
+
+ /* TODO(shurst): More PD 2.0 Tests */
+
+ ccprints("Starting PD 3.0 tests");
+
+ /* Test PD 3.0 Protocol */
+ init_port(PORT0, PD_REV30);
+ RUN_TEST(test_prl_reset);
+ RUN_TEST(test_send_ctrl_msg);
+ RUN_TEST(test_send_data_msg);
+ RUN_TEST(test_send_data_msg_to_much_data);
+ RUN_TEST(test_send_extended_data_msg);
+ RUN_TEST(test_receive_control_msg);
+ RUN_TEST(test_receive_data_msg);
+ RUN_TEST(test_receive_extended_data_msg);
+ RUN_TEST(test_receive_soft_reset_msg);
+ RUN_TEST(test_send_soft_reset_msg);
+ RUN_TEST(test_pe_execute_hard_reset_msg);
+ RUN_TEST(test_phy_execute_hard_reset_msg);
+
+ /* TODO(shurst): More PD 3.0 Tests */
+
+ /* Do basic state machine validity checks last. */
+ RUN_TEST(test_prl_no_parent_cycles);
+ RUN_TEST(test_prl_all_states_named);
+
+ test_print_result();
+}
diff --git a/test/usb_prl_old.c b/test/usb_prl_old.c
index a6ae6acb0e..956c0027f5 100644
--- a/test/usb_prl_old.c
+++ b/test/usb_prl_old.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -79,25 +79,18 @@ enum usb_rch_state rch_get_state(const int port)
}
#endif
-
static uint32_t test_data[] = {
- 0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f,
- 0x10111213, 0x14151617, 0x1819a0b0, 0xc0d0e0f0,
- 0x20212223, 0x24252627, 0x28292a2b, 0x2c2d2e2f,
- 0x30313233, 0x34353637, 0x38393a3b, 0x3c3d3e3f,
- 0x40414243, 0x44454647, 0x48494a4b, 0x4c4d4e4f,
- 0x50515253, 0x54555657, 0x58595a5b, 0x5c5d5e5f,
- 0x60616263, 0x64656667, 0x68696a6b, 0x6c6d6e6f,
- 0x70717273, 0x74757677, 0x78797a7b, 0x7c7d7e7f,
- 0x80818283, 0x84858687, 0x88898a8b, 0x8c8d8e8f,
- 0x90919293, 0x94959697, 0x98999a9b, 0x9c9d9e9f,
- 0xa0a1a2a3, 0xa4a5a6a7, 0xa8a9aaab, 0xacadaeaf,
- 0xb0b1b2b3, 0xb4b5b6b7, 0xb8b9babb, 0xbcbdbebf,
- 0xc0c1c2c3, 0xc4c5c6c7, 0xc8c9cacb, 0xcccdcecf,
- 0xd0d1d2d3, 0xd4d5d6d7, 0xd8d9dadb, 0xdcdddedf,
- 0xe0e1e2e3, 0xe4e5e6e7, 0xe8e9eaeb, 0xecedeeef,
- 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff,
- 0x11223344
+ 0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f, 0x10111213, 0x14151617,
+ 0x1819a0b0, 0xc0d0e0f0, 0x20212223, 0x24252627, 0x28292a2b, 0x2c2d2e2f,
+ 0x30313233, 0x34353637, 0x38393a3b, 0x3c3d3e3f, 0x40414243, 0x44454647,
+ 0x48494a4b, 0x4c4d4e4f, 0x50515253, 0x54555657, 0x58595a5b, 0x5c5d5e5f,
+ 0x60616263, 0x64656667, 0x68696a6b, 0x6c6d6e6f, 0x70717273, 0x74757677,
+ 0x78797a7b, 0x7c7d7e7f, 0x80818283, 0x84858687, 0x88898a8b, 0x8c8d8e8f,
+ 0x90919293, 0x94959697, 0x98999a9b, 0x9c9d9e9f, 0xa0a1a2a3, 0xa4a5a6a7,
+ 0xa8a9aaab, 0xacadaeaf, 0xb0b1b2b3, 0xb4b5b6b7, 0xb8b9babb, 0xbcbdbebf,
+ 0xc0c1c2c3, 0xc4c5c6c7, 0xc8c9cacb, 0xcccdcecf, 0xd0d1d2d3, 0xd4d5d6d7,
+ 0xd8d9dadb, 0xdcdddedf, 0xe0e1e2e3, 0xe4e5e6e7, 0xe8e9eaeb, 0xecedeeef,
+ 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff, 0x11223344
};
void pd_set_suspend(int port, int suspend)
@@ -161,14 +154,15 @@ void inc_rx_id(int port)
static int verify_goodcrc(int port, int role, int id)
{
return pd_test_tx_msg_verify_sop(port) &&
- pd_test_tx_msg_verify_short(port, PD_HEADER(PD_CTRL_GOOD_CRC,
- role, role, id, 0, 0, 0)) &&
- pd_test_tx_msg_verify_crc(port) &&
- pd_test_tx_msg_verify_eop(port);
+ pd_test_tx_msg_verify_short(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role,
+ role, id, 0, 0, 0)) &&
+ pd_test_tx_msg_verify_crc(port) &&
+ pd_test_tx_msg_verify_eop(port);
}
static void simulate_rx_msg(int port, uint16_t header, int cnt,
- const uint32_t *data)
+ const uint32_t *data)
{
int i;
@@ -194,8 +188,10 @@ static void simulate_rx_msg(int port, uint16_t header, int cnt,
static void simulate_goodcrc(int port, int role, int id)
{
- simulate_rx_msg(port, PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
- pd_port[port].rev, 0), 0, NULL);
+ simulate_rx_msg(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
+ pd_port[port].rev, 0),
+ 0, NULL);
}
static void cycle_through_state_machine(int port, uint32_t num, uint32_t time)
@@ -209,19 +205,19 @@ static void cycle_through_state_machine(int port, uint32_t num, uint32_t time)
}
static int simulate_request_chunk(int port, enum pd_ext_msg_type msg_type,
- int chunk_num, int len)
+ int chunk_num, int len)
{
uint16_t header = PD_HEADER(msg_type, get_partner_power_role(port),
- get_partner_data_role(port),
- pd_port[port].msg_rx_id,
- 1, pd_port[port].rev, 1);
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, 1,
+ pd_port[port].rev, 1);
uint32_t msg = PD_EXT_HEADER(chunk_num, 1, len);
simulate_rx_msg(port, header, 1, (const uint32_t *)&msg);
task_wait_event(30 * MSEC);
if (!verify_goodcrc(port, pd_port[port].data_role,
- pd_port[port].msg_rx_id))
+ pd_port[port].msg_rx_id))
return 0;
return 1;
@@ -230,14 +226,15 @@ static int simulate_request_chunk(int port, enum pd_ext_msg_type msg_type,
static int simulate_receive_ctrl_msg(int port, enum pd_ctrl_msg_type msg_type)
{
uint16_t header = PD_HEADER(msg_type, get_partner_power_role(port),
- get_partner_data_role(port), pd_port[port].msg_rx_id,
- 0, pd_port[port].rev, 0);
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, 0,
+ pd_port[port].rev, 0);
simulate_rx_msg(port, header, 0, NULL);
task_wait_event(30 * MSEC);
if (!verify_goodcrc(port, pd_port[port].data_role,
- pd_port[port].msg_rx_id))
+ pd_port[port].msg_rx_id))
return 0;
return 1;
@@ -265,7 +262,7 @@ static int verify_data_reception(int port, uint16_t header, int len)
for (i = 0; i < cnt; i++) {
if (i < len) {
if (rx_emsg[port].buf[i] !=
- *((unsigned char *)test_data + i))
+ *((unsigned char *)test_data + i))
return 0;
} else {
if (rx_emsg[port].buf[i] != 0)
@@ -312,14 +309,15 @@ static int verify_chunk_data_reception(int port, uint16_t header, int len)
}
static int simulate_receive_data(int port, enum pd_data_msg_type msg_type,
- int len)
+ int len)
{
int i;
int nw = (len + 3) >> 2;
uint8_t td[28];
uint16_t header = PD_HEADER(msg_type, get_partner_power_role(port),
- get_partner_data_role(port), pd_port[port].msg_rx_id,
- nw, pd_port[port].rev, 0);
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, nw,
+ pd_port[port].rev, 0);
pd_port[port].mock_pe_error = -1;
pd_port[port].mock_pe_message_received = 0;
@@ -338,7 +336,7 @@ static int simulate_receive_data(int port, enum pd_data_msg_type msg_type,
task_wait_event(30 * MSEC);
if (!verify_goodcrc(port, pd_port[port].data_role,
- pd_port[port].msg_rx_id))
+ pd_port[port].msg_rx_id))
return 0;
inc_rx_id(port);
@@ -347,7 +345,8 @@ static int simulate_receive_data(int port, enum pd_data_msg_type msg_type,
}
static int simulate_receive_extended_data(int port,
- enum pd_data_msg_type msg_type, int len)
+ enum pd_data_msg_type msg_type,
+ int len)
{
int i;
int j;
@@ -385,24 +384,25 @@ static int simulate_receive_extended_data(int port,
nw = (byte_len + 2 + 3) >> 2;
header = PD_HEADER(msg_type, get_partner_power_role(port),
- get_partner_data_role(port), pd_port[port].msg_rx_id,
- nw, pd_port[port].rev, 1);
+ get_partner_data_role(port),
+ pd_port[port].msg_rx_id, nw,
+ pd_port[port].rev, 1);
if (pd_port[port].mock_pe_error >= 0) {
ccprintf("Mock pe error (%d) iteration (%d)\n",
- pd_port[port].mock_pe_error, j);
+ pd_port[port].mock_pe_error, j);
return 0;
}
if (IS_ENABLED(CONFIG_USB_PD_EXTENDED_MESSAGES) &&
- pd_port[port].mock_pe_message_received) {
+ pd_port[port].mock_pe_message_received) {
ccprintf("Mock pe msg received iteration (%d)\n", j);
return 0;
}
if (rx_emsg[port].len != 0) {
ccprintf("emsg len (%d) != 0 iteration (%d)\n",
- rx_emsg[port].len, j);
+ rx_emsg[port].len, j);
return 0;
}
@@ -410,7 +410,7 @@ static int simulate_receive_extended_data(int port,
cycle_through_state_machine(port, 1, MSEC);
if (!verify_goodcrc(port, pd_port[port].data_role,
- pd_port[port].msg_rx_id)) {
+ pd_port[port].msg_rx_id)) {
ccprintf("Verify goodcrc bad iteration (%d)\n", j);
return 0;
}
@@ -445,18 +445,17 @@ static int simulate_receive_extended_data(int port,
return 0;
}
- if (!pd_test_tx_msg_verify_short(port,
- PD_HEADER(msg_type,
- pd_port[port].power_role,
- pd_port[port].data_role,
- pd_port[port].msg_tx_id,
- 1, pd_port[port].rev, 1))) {
+ if (!pd_test_tx_msg_verify_short(
+ port, PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role,
+ pd_port[port].msg_tx_id, 1,
+ pd_port[port].rev, 1))) {
ccprintf("Verify msg short bad iteration (%d)\n", j);
return 0;
}
- if (!pd_test_tx_msg_verify_word(port,
- PD_EXT_HEADER(chunk_num, 1, 0))) {
+ if (!pd_test_tx_msg_verify_word(port, PD_EXT_HEADER(chunk_num,
+ 1, 0))) {
ccprintf("Verify msg word bad iteration (%d)\n", j);
return 0;
}
@@ -475,7 +474,7 @@ static int simulate_receive_extended_data(int port,
/* Request next chunk packet was good. Send GoodCRC */
simulate_goodcrc(port, get_partner_power_role(port),
- pd_port[port].msg_tx_id);
+ pd_port[port].msg_tx_id);
cycle_through_state_machine(port, 1, MSEC);
@@ -488,15 +487,16 @@ static int simulate_receive_extended_data(int port,
}
static int verify_ctrl_msg_transmission(int port,
- enum pd_ctrl_msg_type msg_type)
+ enum pd_ctrl_msg_type msg_type)
{
if (!pd_test_tx_msg_verify_sop(port))
return 0;
- if (!pd_test_tx_msg_verify_short(port,
- PD_HEADER(msg_type, pd_port[port].power_role,
- pd_port[port].data_role, pd_port[port].msg_tx_id, 0,
- pd_port[port].rev, 0)))
+ if (!pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role, pd_port[port].msg_tx_id,
+ 0, pd_port[port].rev, 0)))
return 0;
if (!pd_test_tx_msg_verify_crc(port))
@@ -508,8 +508,9 @@ static int verify_ctrl_msg_transmission(int port,
return 1;
}
-static int simulate_send_ctrl_msg_request_from_pe(int port,
- enum tcpci_msg_type type, enum pd_ctrl_msg_type msg_type)
+static int
+simulate_send_ctrl_msg_request_from_pe(int port, enum tcpci_msg_type type,
+ enum pd_ctrl_msg_type msg_type)
{
pd_port[port].mock_got_soft_reset = 0;
pd_port[port].mock_pe_error = -1;
@@ -521,7 +522,7 @@ static int simulate_send_ctrl_msg_request_from_pe(int port,
}
static int verify_data_msg_transmission(int port,
- enum pd_data_msg_type msg_type, int len)
+ enum pd_data_msg_type msg_type, int len)
{
int i;
int num_words = (len + 3) >> 2;
@@ -531,10 +532,11 @@ static int verify_data_msg_transmission(int port,
if (!pd_test_tx_msg_verify_sop(port))
return 0;
- if (!pd_test_tx_msg_verify_short(port,
- PD_HEADER(msg_type, pd_port[port].power_role,
- pd_port[port].data_role, pd_port[port].msg_tx_id,
- num_words, pd_port[port].rev, 0)))
+ if (!pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role, pd_port[port].msg_tx_id,
+ num_words, pd_port[port].rev, 0)))
return 0;
for (i = 0; i < num_words; i++) {
@@ -567,8 +569,9 @@ static int verify_data_msg_transmission(int port,
return 1;
}
-static int simulate_send_data_msg_request_from_pe(int port,
- enum tcpci_msg_type type, enum pd_data_msg_type msg_type, int len)
+static int
+simulate_send_data_msg_request_from_pe(int port, enum tcpci_msg_type type,
+ enum pd_data_msg_type msg_type, int len)
{
int i;
uint8_t *buf = tx_emsg[port].buf;
@@ -590,7 +593,8 @@ static int simulate_send_data_msg_request_from_pe(int port,
}
static int verify_extended_data_msg_transmission(int port,
- enum pd_ext_msg_type msg_type, int len)
+ enum pd_ext_msg_type msg_type,
+ int len)
{
int i;
int j;
@@ -616,11 +620,11 @@ static int verify_extended_data_msg_transmission(int port,
return 0;
}
- if (!pd_test_tx_msg_verify_short(port,
- PD_HEADER(msg_type, pd_port[port].power_role,
- pd_port[port].data_role,
- pd_port[port].msg_tx_id,
- nw, pd_port[port].rev, 1))) {
+ if (!pd_test_tx_msg_verify_short(
+ port, PD_HEADER(msg_type, pd_port[port].power_role,
+ pd_port[port].data_role,
+ pd_port[port].msg_tx_id, nw,
+ pd_port[port].rev, 1))) {
ccprintf("failed tx short\n");
return 0;
}
@@ -642,9 +646,9 @@ static int verify_extended_data_msg_transmission(int port,
nw = (byte_len + 3) >> 2;
for (i = 0; i < nw; i++) {
td = *(expected_data + data_offset++) << 0;
- td |= *(expected_data + data_offset++) << 8;
- td |= *(expected_data + data_offset++) << 16;
- td |= *(expected_data + data_offset++) << 24;
+ td |= *(expected_data + data_offset++) << 8;
+ td |= *(expected_data + data_offset++) << 16;
+ td |= *(expected_data + data_offset++) << 24;
switch (byte_len) {
case 3:
@@ -678,7 +682,7 @@ static int verify_extended_data_msg_transmission(int port,
/* Send GoodCRC */
simulate_goodcrc(port, get_partner_power_role(port),
- pd_port[port].msg_tx_id);
+ pd_port[port].msg_tx_id);
cycle_through_state_machine(port, 1, MSEC);
inc_tx_id(port);
@@ -690,7 +694,7 @@ static int verify_extended_data_msg_transmission(int port,
/* Let state machine settle */
cycle_through_state_machine(port, 10, MSEC);
if (!simulate_request_chunk(port, msg_type,
- chunk_number_to_send, dsize)) {
+ chunk_number_to_send, dsize)) {
ccprintf("failed request chunk\n");
return 0;
}
@@ -702,9 +706,9 @@ static int verify_extended_data_msg_transmission(int port,
return 1;
}
-static int simulate_send_extended_data_msg(int port,
- enum tcpci_msg_type type, enum pd_ext_msg_type msg_type,
- int len)
+static int simulate_send_extended_data_msg(int port, enum tcpci_msg_type type,
+ enum pd_ext_msg_type msg_type,
+ int len)
{
int i;
uint8_t *buf = tx_emsg[port].buf;
@@ -723,8 +727,7 @@ static int simulate_send_extended_data_msg(int port,
prl_send_ext_data_msg(port, type, msg_type);
cycle_through_state_machine(port, 1, MSEC);
- return verify_extended_data_msg_transmission(port, msg_type,
- len);
+ return verify_extended_data_msg_transmission(port, msg_type, len);
}
uint8_t tc_get_pd_enabled(int port)
@@ -753,8 +756,8 @@ enum pd_power_role pd_get_power_role(int port)
static enum pd_power_role get_partner_power_role(int port)
{
- return pd_port[port].power_role == PD_ROLE_SINK ?
- PD_ROLE_SOURCE : PD_ROLE_SINK;
+ return pd_port[port].power_role == PD_ROLE_SINK ? PD_ROLE_SOURCE :
+ PD_ROLE_SINK;
}
enum pd_data_role pd_get_data_role(int port)
@@ -764,8 +767,8 @@ enum pd_data_role pd_get_data_role(int port)
static enum pd_data_role get_partner_data_role(int port)
{
- return pd_port[port].data_role == PD_ROLE_UFP ?
- PD_ROLE_DFP : PD_ROLE_UFP;
+ return pd_port[port].data_role == PD_ROLE_UFP ? PD_ROLE_DFP :
+ PD_ROLE_UFP;
}
enum pd_cable_plug tc_get_cable_plug(int port)
@@ -828,14 +831,12 @@ static int test_prl_reset(void)
prl_reset_soft(port);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
- TEST_EQ(rch_get_state(port),
- RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
- TEST_EQ(tch_get_state(port),
- TCH_WAIT_FOR_MESSAGE_REQUEST_FROM_PE, "%u");
- TEST_EQ(prl_hr_get_state(port),
- PRL_HR_WAIT_FOR_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(rch_get_state(port), RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ "%u");
+ TEST_EQ(tch_get_state(port), TCH_WAIT_FOR_MESSAGE_REQUEST_FROM_PE,
+ "%u");
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_REQUEST, "%u");
enable_prl(port, 0);
return EC_SUCCESS;
@@ -855,16 +856,17 @@ static int test_send_ctrl_msg(void)
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ "%u");
- TEST_NE(simulate_send_ctrl_msg_request_from_pe(port,
- TCPCI_MSG_SOP, PD_CTRL_ACCEPT), 0, "%d");
+ TEST_NE(simulate_send_ctrl_msg_request_from_pe(
+ port, TCPCI_MSG_SOP, PD_CTRL_ACCEPT),
+ 0, "%d");
cycle_through_state_machine(port, 1, MSEC);
simulate_goodcrc(port, get_partner_power_role(port),
- pd_port[port].msg_tx_id);
+ pd_port[port].msg_tx_id);
inc_tx_id(port);
/* Let statemachine settle */
@@ -893,16 +895,17 @@ static int test_send_data_msg(void)
for (i = 1; i <= 28; i++) {
cycle_through_state_machine(port, 1, MSEC);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ "%u");
- TEST_NE(simulate_send_data_msg_request_from_pe(port,
- TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP, i), 0, "%d");
+ TEST_NE(simulate_send_data_msg_request_from_pe(
+ port, TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP, i),
+ 0, "%d");
cycle_through_state_machine(port, 1, MSEC);
simulate_goodcrc(port, get_partner_power_role(port),
- pd_port[port].msg_tx_id);
+ pd_port[port].msg_tx_id);
inc_tx_id(port);
cycle_through_state_machine(port, 10, MSEC);
@@ -929,12 +932,12 @@ static int test_send_data_msg_to_much_data(void)
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
/* Try to send 29-bytes */
- TEST_EQ(simulate_send_data_msg_request_from_pe(port,
- TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP, 29), 0, "%d");
+ TEST_EQ(simulate_send_data_msg_request_from_pe(port, TCPCI_MSG_SOP,
+ PD_DATA_SOURCE_CAP, 29),
+ 0, "%d");
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(30 * MSEC);
@@ -976,12 +979,13 @@ static int test_send_extended_data_msg(void)
cycle_through_state_machine(port, 10, MSEC);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%d");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST,
+ "%d");
- TEST_NE(simulate_send_extended_data_msg(port, TCPCI_MSG_SOP,
- PD_EXT_MANUFACTURER_INFO, i),
- 0, "%d");
+ TEST_NE(simulate_send_extended_data_msg(
+ port, TCPCI_MSG_SOP, PD_EXT_MANUFACTURER_INFO,
+ i),
+ 0, "%d");
cycle_through_state_machine(port, 10, MSEC);
@@ -1007,8 +1011,8 @@ static int test_receive_soft_reset_msg(void)
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_EQ(rch_get_state(port),
- RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
+ TEST_EQ(rch_get_state(port), RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ "%u");
pd_port[port].mock_got_soft_reset = 0;
pd_port[port].mock_pe_error = -1;
@@ -1037,11 +1041,10 @@ static int test_receive_soft_reset_msg(void)
static int test_receive_control_msg(void)
{
int port = PORT0;
- int expected_header = PD_HEADER(PD_CTRL_DR_SWAP,
- get_partner_power_role(port),
- get_partner_data_role(port),
- pd_port[port].msg_rx_id,
- 0, pd_port[port].rev, 0);
+ int expected_header =
+ PD_HEADER(PD_CTRL_DR_SWAP, get_partner_power_role(port),
+ get_partner_data_role(port), pd_port[port].msg_rx_id,
+ 0, pd_port[port].rev, 0);
enable_prl(port, 1);
@@ -1052,8 +1055,8 @@ static int test_receive_control_msg(void)
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_EQ(rch_get_state(port),
- RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
+ TEST_EQ(rch_get_state(port), RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER,
+ "%u");
pd_port[port].mock_got_soft_reset = 0;
pd_port[port].mock_pe_error = -1;
@@ -1093,9 +1096,9 @@ static int test_receive_data_msg(void)
task_wait_event(40 * MSEC);
TEST_EQ(rch_get_state(port),
- RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
- TEST_NE(simulate_receive_data(port,
- PD_DATA_BATTERY_STATUS, i), 0, "%d");
+ RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
+ TEST_NE(simulate_receive_data(port, PD_DATA_BATTERY_STATUS, i),
+ 0, "%d");
}
enable_prl(port, 0);
@@ -1119,11 +1122,12 @@ static int test_receive_extended_data_msg(void)
task_wait_event(40 * MSEC);
TEST_EQ(rch_get_state(port),
- RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
+ RCH_WAIT_FOR_MESSAGE_FROM_PROTOCOL_LAYER, "%u");
for (len = 29; len <= PD_MAX_EXTENDED_MSG_LEN; len++) {
- TEST_NE(simulate_receive_extended_data(port,
- PD_DATA_BATTERY_STATUS, len), 0, "%d");
+ TEST_NE(simulate_receive_extended_data(
+ port, PD_DATA_BATTERY_STATUS, len),
+ 0, "%d");
}
} else {
/*
@@ -1132,13 +1136,14 @@ static int test_receive_extended_data_msg(void)
*/
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_NE(simulate_receive_extended_data(port,
- PD_DATA_BATTERY_STATUS, 29), 0, "%d");
+ TEST_NE(simulate_receive_extended_data(
+ port, PD_DATA_BATTERY_STATUS, 29),
+ 0, "%d");
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_NE(simulate_receive_data(port,
- PD_DATA_BATTERY_STATUS, 28), 0, "%d");
+ TEST_NE(simulate_receive_data(port, PD_DATA_BATTERY_STATUS, 28),
+ 0, "%d");
}
enable_prl(port, 0);
@@ -1159,21 +1164,20 @@ static int test_send_soft_reset_msg(void)
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
- TEST_NE(simulate_send_ctrl_msg_request_from_pe(port,
- TCPCI_MSG_SOP, PD_CTRL_SOFT_RESET), 0, "%d");
+ TEST_NE(simulate_send_ctrl_msg_request_from_pe(port, TCPCI_MSG_SOP,
+ PD_CTRL_SOFT_RESET),
+ 0, "%d");
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(30 * MSEC);
simulate_goodcrc(port, get_partner_power_role(port),
- pd_port[port].msg_tx_id);
+ pd_port[port].msg_tx_id);
inc_tx_id(port);
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_LAYER_RESET_FOR_TRANSMIT, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_LAYER_RESET_FOR_TRANSMIT, "%u");
cycle_through_state_machine(port, 3, 10 * MSEC);
@@ -1207,19 +1211,18 @@ static int test_pe_execute_hard_reset_msg(void)
prl_execute_hard_reset(port);
TEST_EQ(prl_hr_get_state(port), PRL_HR_RESET_LAYER, "%u");
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
cycle_through_state_machine(port, 1, 10 * MSEC);
- TEST_EQ(prl_hr_get_state(port),
- PRL_HR_WAIT_FOR_PHY_HARD_RESET_COMPLETE, "%u");
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PHY_HARD_RESET_COMPLETE,
+ "%u");
cycle_through_state_machine(port, 2, PD_T_PS_HARD_RESET);
TEST_NE(pd_port[port].mock_pe_hard_reset_sent, 0, "%d");
- TEST_EQ(prl_hr_get_state(port),
- PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE, "%u");
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+ "%u");
/* Simulate policy engine indicating that it is done hard reset */
prl_hard_reset_complete(port);
@@ -1254,19 +1257,18 @@ static int test_phy_execute_hard_reset_msg(void)
pd_execute_hard_reset(port);
TEST_EQ(prl_hr_get_state(port), PRL_HR_RESET_LAYER, "%u");
- TEST_EQ(prl_tx_get_state(port),
- PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
+ TEST_EQ(prl_tx_get_state(port), PRL_TX_WAIT_FOR_MESSAGE_REQUEST, "%u");
cycle_through_state_machine(port, 1, 10 * MSEC);
- TEST_EQ(prl_hr_get_state(port),
- PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE, "%u");
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+ "%u");
cycle_through_state_machine(port, 2, PD_T_PS_HARD_RESET);
TEST_NE(pd_port[port].mock_pe_got_hard_reset, 0, "%d");
- TEST_EQ(prl_hr_get_state(port),
- PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE, "%u");
+ TEST_EQ(prl_hr_get_state(port), PRL_HR_WAIT_FOR_PE_HARD_RESET_COMPLETE,
+ "%u");
/* Simulate policy engine indicating that it is done hard reset */
prl_hard_reset_complete(port);
@@ -1299,7 +1301,7 @@ void before_test(void)
cycle_through_state_machine(PORT0, 10, MSEC);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_prl_old.tasklist b/test/usb_prl_old.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_prl_old.tasklist
+++ b/test/usb_prl_old.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_sm_checks.c b/test/usb_sm_checks.c
index 49b2dbae28..a8dbdad872 100644
--- a/test/usb_sm_checks.c
+++ b/test/usb_sm_checks.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -39,7 +39,7 @@ const struct test_sm_data test_pe_sm_data[] = {};
const int test_pe_sm_data_size;
#endif
-test_static int test_no_parent_cycles(const struct test_sm_data * const sm_data)
+test_static int test_no_parent_cycles(const struct test_sm_data *const sm_data)
{
int i;
diff --git a/test/usb_sm_checks.h b/test/usb_sm_checks.h
index d8e5f8ea06..1041afbaa4 100644
--- a/test/usb_sm_checks.h
+++ b/test/usb_sm_checks.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -11,11 +11,9 @@
int test_tc_no_parent_cycles(void);
int test_tc_all_states_named(void);
-
int test_prl_no_parent_cycles(void);
int test_prl_all_states_named(void);
-
int test_pe_no_parent_cycles(void);
int test_pe_all_states_named(void);
diff --git a/test/usb_sm_framework_h3.c b/test/usb_sm_framework_h3.c
index ba544a749a..20f9b706c6 100644
--- a/test/usb_sm_framework_h3.c
+++ b/test/usb_sm_framework_h3.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -112,7 +112,7 @@ enum state_id {
EXIT_C,
};
-#define PORT0 0
+#define PORT0 0
struct sm_ {
/* struct sm_obj must be first */
@@ -198,7 +198,6 @@ static void sm_test_super_A2_exit(const int port)
sm[port].seq[sm[port].idx++] = EXIT_A2;
}
-
static void sm_test_super_B2_entry(const int port)
{
sm[port].seq[sm[port].idx++] = ENTER_B2;
@@ -269,7 +268,6 @@ static void sm_test_A4_exit(const int port)
sm[port].seq[sm[port].idx++] = EXIT_A4;
}
-
static void sm_test_A5_entry(const int port)
{
sm[port].sv_tmp = 0;
@@ -291,7 +289,6 @@ static void sm_test_A5_exit(const int port)
sm[port].seq[sm[port].idx++] = EXIT_A5;
}
-
static void sm_test_A6_entry(const int port)
{
sm[port].sv_tmp = 0;
@@ -355,7 +352,6 @@ static void sm_test_B4_exit(const int port)
sm[port].seq[sm[port].idx++] = EXIT_B4;
}
-
static void sm_test_B5_entry(const int port)
{
sm[port].sv_tmp = 0;
@@ -377,7 +373,6 @@ static void sm_test_B5_exit(const int port)
sm[port].seq[sm[port].idx++] = EXIT_B5;
}
-
static void sm_test_B6_entry(const int port)
{
sm[port].sv_tmp = 0;
@@ -440,63 +435,88 @@ test_static int test_hierarchy_0(void)
set_state_sm(port, SM_TEST_A4);
run_sm();
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_C, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_C, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_C, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_C, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_C, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_C, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A7, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A7, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A7, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A7, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
for (; i < SEQUENCE_SIZE; i++)
TEST_EQ(sm[port].seq[i], 0, "%d");
@@ -512,71 +532,104 @@ test_static int test_hierarchy_1(void)
set_state_sm(port, SM_TEST_A4);
run_sm();
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A3, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A3, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B3, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B3, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_C, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_C, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_C, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_C, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_C, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_C, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A7, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A7, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A7, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A7, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A3, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A3, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
for (i = 33; i < SEQUENCE_SIZE; i++)
TEST_EQ(sm[port].seq[i], 0, "%d");
@@ -586,88 +639,130 @@ test_static int test_hierarchy_1(void)
test_static int test_hierarchy_2(void)
{
-
int port = PORT0;
int i = 0;
set_state_sm(port, SM_TEST_A4);
run_sm();
- TEST_EQ(sm[port].seq[i], ENTER_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A2, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A2, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B4, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B2, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B2, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B2, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B2, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_C, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_C, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_C, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_C, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_C, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_C, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A7, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A7, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A7, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A6, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A7, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A6, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A2, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A2, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A2, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A2, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
for (; i < SEQUENCE_SIZE; i++)
TEST_EQ(sm[port].seq[i], 0, "%d");
@@ -677,100 +772,154 @@ test_static int test_hierarchy_2(void)
test_static int test_hierarchy_3(void)
{
-
int port = PORT0;
int i = 0;
set_state_sm(port, SM_TEST_A4);
run_sm();
- TEST_EQ(sm[port].seq[i], ENTER_A1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
-
+ TEST_EQ(sm[port].seq[i], ENTER_A1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A1, "%d");
+ ++i;
+
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A1, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B4, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B1, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], EXIT_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B5, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B1, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], EXIT_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B6, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B1, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], EXIT_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_C, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_C, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], EXIT_C, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A7, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_A7, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A1, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], EXIT_A7, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A6, "%d");
+ ++i;
+
+ run_sm();
+ TEST_EQ(sm[port].seq[i], RUN_A6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A1, "%d");
+ ++i;
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B4, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B1, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B5, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B1, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B6, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B1, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_C, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], RUN_C, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_C, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A7, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A7, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A1, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A7, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A6, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A1, "%d"); ++i;
-
- run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A5, "%d"); ++i;
+ run_sm();
+ TEST_EQ(sm[port].seq[i], EXIT_A6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A5, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_A1, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_A1, "%d");
+ ++i;
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_A5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A4, "%d");
+ ++i;
for (; i < SEQUENCE_SIZE; i++)
TEST_EQ(sm[port].seq[i], 0, "%d");
@@ -787,35 +936,53 @@ test_static int test_set_state_from_parents(void)
test_control.a3_entry_to = &states[SM_TEST_B4];
run_sm();
set_state_sm(port, SM_TEST_A4);
- TEST_EQ(sm[port].seq[i], ENTER_A1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A3, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A3, "%d");
+ ++i;
/* Does not enter or exit A4 */
- TEST_EQ(sm[port].seq[i], EXIT_A3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_A1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B4, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_A1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B4, "%d");
+ ++i;
/* Ensure we didn't go further than above statements */
TEST_EQ(sm[port].seq[i], 0, "%d");
test_control.b3_run_to = &states[SM_TEST_B5];
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B3, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B3, "%d");
+ ++i;
/* Does not run b2 or b1 */
- TEST_EQ(sm[port].seq[i], EXIT_B4, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B3, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B5, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B4, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B3, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B5, "%d");
+ ++i;
/* Ensure we didn't go further than above statements */
TEST_EQ(sm[port].seq[i], 0, "%d");
run_sm();
- TEST_EQ(sm[port].seq[i], RUN_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], RUN_B1, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], RUN_B1, "%d");
+ ++i;
/* Ensure we didn't go further than above statements */
TEST_EQ(sm[port].seq[i], 0, "%d");
@@ -827,15 +994,24 @@ test_static int test_set_state_from_parents(void)
test_control.c_entry_to = &states[SM_TEST_A7];
test_control.c_exit_to = &states[SM_TEST_A4];
run_sm();
- TEST_EQ(sm[port].seq[i], EXIT_B5, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B2, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B6, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_B1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_C, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], EXIT_C, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A1, "%d"); ++i;
- TEST_EQ(sm[port].seq[i], ENTER_A7, "%d"); ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B5, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B2, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B6, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_B1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_C, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], EXIT_C, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A1, "%d");
+ ++i;
+ TEST_EQ(sm[port].seq[i], ENTER_A7, "%d");
+ ++i;
/* Ensure we didn't go further than above statements */
TEST_EQ(sm[port].seq[i], 0, "%d");
@@ -985,7 +1161,7 @@ int test_task(void *u)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
#if defined(TEST_USB_SM_FRAMEWORK_H3)
diff --git a/test/usb_sm_framework_h3.tasklist b/test/usb_sm_framework_h3.tasklist
index 998998fd6c..9db4e49e5e 100644
--- a/test/usb_sm_framework_h3.tasklist
+++ b/test/usb_sm_framework_h3.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_tcpmv2_compliance.c b/test/usb_tcpmv2_compliance.c
index e0288feb18..2acd2c1660 100644
--- a/test/usb_tcpmv2_compliance.c
+++ b/test/usb_tcpmv2_compliance.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -30,7 +30,7 @@ void before_test(void)
tc_try_src_override(TRY_SRC_OVERRIDE_OFF);
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_tcpmv2_compliance.h b/test/usb_tcpmv2_compliance.h
index 331e3c5ee8..0ca4717173 100644
--- a/test/usb_tcpmv2_compliance.h
+++ b/test/usb_tcpmv2_compliance.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -22,18 +22,16 @@ enum mock_connect_result {
MOCK_CC_DUT_IS_SNK = 1,
};
-
extern uint32_t rdo;
extern uint32_t pdo;
extern const struct tcpc_config_t tcpc_config[];
-extern const struct usb_mux usb_muxes[];
-
+extern const struct usb_mux_chain usb_muxes[];
-void mock_set_cc(enum mock_connect_result cr,
- enum mock_cc_state cc1, enum mock_cc_state cc2);
-void mock_set_role(int drp, enum tcpc_rp_value rp,
- enum tcpc_cc_pull cc1, enum tcpc_cc_pull cc2);
+void mock_set_cc(enum mock_connect_result cr, enum mock_cc_state cc1,
+ enum mock_cc_state cc2);
+void mock_set_role(int drp, enum tcpc_rp_value rp, enum tcpc_cc_pull cc1,
+ enum tcpc_cc_pull cc2);
void mock_set_alert(int alert);
uint16_t tcpc_get_alert_status(void);
bool vboot_allow_usb_pd(void);
@@ -54,20 +52,15 @@ enum pd_rev_type partner_get_pd_rev(void);
#define TCPCI_MSG_SOP_ALL -1
void partner_tx_msg_id_reset(int sop);
-void partner_send_msg(enum tcpci_msg_type sop,
- uint16_t type,
- uint16_t cnt,
- uint16_t ext,
- uint32_t *payload);
-
+void partner_send_msg(enum tcpci_msg_type sop, uint16_t type, uint16_t cnt,
+ uint16_t ext, uint32_t *payload);
int handle_attach_expected_msgs(enum pd_data_role data_role);
-
enum proc_pd_e1_attach {
- INITIAL_ATTACH = BIT(0),
- ALREADY_ATTACHED = BIT(1),
- INITIAL_AND_ALREADY_ATTACHED = INITIAL_ATTACH | ALREADY_ATTACHED
+ INITIAL_ATTACH = BIT(0),
+ ALREADY_ATTACHED = BIT(1),
+ INITIAL_AND_ALREADY_ATTACHED = INITIAL_ATTACH | ALREADY_ATTACHED
};
int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach);
int proc_pd_e3(void);
diff --git a/test/usb_tcpmv2_compliance.mocklist b/test/usb_tcpmv2_compliance.mocklist
index f364fb1050..311397fe43 100644
--- a/test/usb_tcpmv2_compliance.mocklist
+++ b/test/usb_tcpmv2_compliance.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_tcpmv2_compliance.tasklist b/test/usb_tcpmv2_compliance.tasklist
index 654e4eca2b..794669adbe 100644
--- a/test/usb_tcpmv2_compliance.tasklist
+++ b/test/usb_tcpmv2_compliance.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_tcpmv2_compliance_common.c b/test/usb_tcpmv2_compliance_common.c
index 6145f59388..9f839ecf1c 100644
--- a/test/usb_tcpmv2_compliance_common.c
+++ b/test/usb_tcpmv2_compliance_common.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -15,9 +15,8 @@
uint32_t rdo = RDO_FIXED(1, 500, 500, 0);
uint32_t pdo = PDO_FIXED(5000, 3000,
- PDO_FIXED_DUAL_ROLE |
- PDO_FIXED_DATA_SWAP |
- PDO_FIXED_COMM_CAP);
+ PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP |
+ PDO_FIXED_COMM_CAP);
const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
{
@@ -31,25 +30,25 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .driver = &mock_usb_mux_driver,
- }
-};
-
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { {
+ .mux =
+ &(const struct usb_mux){
+ .driver = &mock_usb_mux_driver,
+ },
+} };
-void mock_set_cc(enum mock_connect_result cr,
- enum mock_cc_state cc1, enum mock_cc_state cc2)
+void mock_set_cc(enum mock_connect_result cr, enum mock_cc_state cc1,
+ enum mock_cc_state cc2)
{
mock_tcpci_set_reg(TCPC_REG_CC_STATUS,
- TCPC_REG_CC_STATUS_SET(cr, cc1, cc2));
+ TCPC_REG_CC_STATUS_SET(cr, cc1, cc2));
}
-void mock_set_role(int drp, enum tcpc_rp_value rp,
- enum tcpc_cc_pull cc1, enum tcpc_cc_pull cc2)
+void mock_set_role(int drp, enum tcpc_rp_value rp, enum tcpc_cc_pull cc1,
+ enum tcpc_cc_pull cc2)
{
mock_tcpci_set_reg(TCPC_REG_ROLE_CTRL,
- TCPC_REG_ROLE_CTRL_SET(drp, rp, cc1, cc2));
+ TCPC_REG_ROLE_CTRL_SET(drp, rp, cc1, cc2));
}
static int mock_alert_count;
@@ -80,7 +79,9 @@ int pd_check_vconn_swap(int port)
return 1;
}
-void board_reset_pd_mcu(void) {}
+void board_reset_pd_mcu(void)
+{
+}
/*****************************************************************************
* Partner utility functions
@@ -125,38 +126,31 @@ void partner_tx_msg_id_reset(int sop)
partner_tx_id[sop] = 0;
}
-void partner_send_msg(enum tcpci_msg_type sop,
- uint16_t type,
- uint16_t cnt,
- uint16_t ext,
- uint32_t *payload)
+void partner_send_msg(enum tcpci_msg_type sop, uint16_t type, uint16_t cnt,
+ uint16_t ext, uint32_t *payload)
{
uint16_t header;
partner_tx_id[sop] &= 7;
header = PD_HEADER(type,
- sop == TCPCI_MSG_SOP ? partner_get_power_role()
- : PD_PLUG_FROM_CABLE,
- partner_get_data_role(),
- partner_tx_id[sop],
- cnt,
- partner_get_pd_rev(),
- ext);
+ sop == TCPCI_MSG_SOP ? partner_get_power_role() :
+ PD_PLUG_FROM_CABLE,
+ partner_get_data_role(), partner_tx_id[sop], cnt,
+ partner_get_pd_rev(), ext);
mock_tcpci_receive(sop, header, payload);
++partner_tx_id[sop];
mock_set_alert(TCPC_REG_ALERT_RX_STATUS);
}
-
/*****************************************************************************
* TCPCI clean power up
*/
int tcpci_startup(void)
{
/* Should be in low power mode before AP boots. */
- TEST_EQ(mock_tcpci_get_reg(TCPC_REG_COMMAND),
- TCPC_REG_COMMAND_I2CIDLE, "%d");
+ TEST_EQ(mock_tcpci_get_reg(TCPC_REG_COMMAND), TCPC_REG_COMMAND_I2CIDLE,
+ "%d");
task_wait_event(10 * SECOND);
hook_notify(HOOK_CHIPSET_STARTUP);
@@ -165,12 +159,12 @@ int tcpci_startup(void)
task_wait_event(10 * SECOND);
/* Should be in low power mode and DRP auto-toggling with AP in S0. */
- TEST_EQ((mock_tcpci_get_reg(TCPC_REG_ROLE_CTRL)
- & TCPC_REG_ROLE_CTRL_DRP_MASK),
+ TEST_EQ((mock_tcpci_get_reg(TCPC_REG_ROLE_CTRL) &
+ TCPC_REG_ROLE_CTRL_DRP_MASK),
TCPC_REG_ROLE_CTRL_DRP_MASK, "%d");
/* TODO: check previous command was TCPC_REG_COMMAND_LOOK4CONNECTION */
- TEST_EQ(mock_tcpci_get_reg(TCPC_REG_COMMAND),
- TCPC_REG_COMMAND_I2CIDLE, "%d");
+ TEST_EQ(mock_tcpci_get_reg(TCPC_REG_COMMAND), TCPC_REG_COMMAND_I2CIDLE,
+ "%d");
/* TODO: this should be performed in TCPCI mock on startup but needs
* more TCPCI functionality added before that can happen. So until
@@ -198,13 +192,12 @@ int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach)
TEST_EQ(pd_get_data_role(I2C_PORT_HOST_TCPC),
PD_ROLE_DISCONNECTED, "%d");
- partner_set_data_role((data_role == PD_ROLE_UFP)
- ? PD_ROLE_DFP
- : PD_ROLE_UFP);
+ partner_set_data_role((data_role == PD_ROLE_UFP) ? PD_ROLE_DFP :
+ PD_ROLE_UFP);
- partner_set_power_role((data_role == PD_ROLE_UFP)
- ? PD_ROLE_SOURCE
- : PD_ROLE_SINK);
+ partner_set_power_role((data_role == PD_ROLE_UFP) ?
+ PD_ROLE_SOURCE :
+ PD_ROLE_SINK);
switch (partner_get_power_role()) {
case PD_ROLE_SOURCE:
@@ -212,11 +205,10 @@ int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach)
* b) The tester applies Rp (PD3=1.5A, PD2=3A) and
* waits for the UUT attachment.
*/
- mock_set_cc(MOCK_CC_DUT_IS_SNK,
- MOCK_CC_SNK_OPEN,
- (partner_get_pd_rev() == PD_REV30
- ? MOCK_CC_SNK_RP_1_5
- : MOCK_CC_SNK_RP_3_0));
+ mock_set_cc(MOCK_CC_DUT_IS_SNK, MOCK_CC_SNK_OPEN,
+ (partner_get_pd_rev() == PD_REV30 ?
+ MOCK_CC_SNK_RP_1_5 :
+ MOCK_CC_SNK_RP_3_0));
mock_set_alert(TCPC_REG_ALERT_CC_STATUS);
task_wait_event(5 * MSEC);
@@ -227,11 +219,12 @@ int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach)
/*
* d) The tester applies Vbus and waits 50 ms.
*/
- mock_tcpci_set_reg_bits(TCPC_REG_POWER_STATUS,
- TCPC_REG_POWER_STATUS_VBUS_PRES);
+ mock_tcpci_set_reg_bits(
+ TCPC_REG_POWER_STATUS,
+ TCPC_REG_POWER_STATUS_VBUS_PRES);
mock_tcpci_clr_reg_bits(TCPC_REG_EXT_STATUS,
- TCPC_REG_EXT_STATUS_SAFE0V);
+ TCPC_REG_EXT_STATUS_SAFE0V);
mock_set_alert(TCPC_REG_ALERT_EXT_STATUS |
TCPC_REG_ALERT_POWER_STATUS);
task_wait_event(50 * MSEC);
@@ -242,8 +235,7 @@ int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach)
* b) The tester applies Rd and waits for Vbus for
* tNoResponse max (5.5 s).
*/
- mock_set_cc(MOCK_CC_DUT_IS_SRC,
- MOCK_CC_SRC_OPEN,
+ mock_set_cc(MOCK_CC_DUT_IS_SRC, MOCK_CC_SRC_OPEN,
MOCK_CC_SRC_RD);
mock_set_alert(TCPC_REG_ALERT_CC_STATUS);
break;
@@ -260,7 +252,7 @@ int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach)
*/
task_wait_event(1 * MSEC);
partner_send_msg(TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP, 1,
- 0, &pdo);
+ 0, &pdo);
/*
* f) The tester waits for the Request from the UUT for
@@ -324,8 +316,7 @@ int proc_pd_e1(enum pd_data_role data_role, enum proc_pd_e1_attach attach)
TEST_EQ(tc_is_attached_src(PORT0), true, "%d");
break;
}
- TEST_EQ(pd_get_data_role(I2C_PORT_HOST_TCPC),
- data_role, "%d");
+ TEST_EQ(pd_get_data_role(I2C_PORT_HOST_TCPC), data_role, "%d");
}
return EC_SUCCESS;
@@ -390,13 +381,8 @@ int handle_attach_expected_msgs(enum pd_data_role data_role)
possible[4].data_msg = 0;
do {
- rv = verify_tcpci_possible_tx(possible,
- 5,
- &found_index,
- NULL,
- 0,
- NULL,
- -1);
+ rv = verify_tcpci_possible_tx(possible, 5, &found_index,
+ NULL, 0, NULL, -1);
TEST_NE(rv, EC_ERROR_UNKNOWN, "%d");
if (rv == EC_ERROR_TIMEOUT)
@@ -406,30 +392,29 @@ int handle_attach_expected_msgs(enum pd_data_role data_role)
task_wait_event(10 * MSEC);
switch (found_index) {
- case 0: /* TCPCI_MSG_SOP PD_CTRL_GET_SOURCE_CAP */
+ case 0: /* TCPCI_MSG_SOP PD_CTRL_GET_SOURCE_CAP */
partner_send_msg(TCPCI_MSG_SOP,
- PD_DATA_SOURCE_CAP,
- 1, 0, &pdo);
+ PD_DATA_SOURCE_CAP, 1, 0,
+ &pdo);
break;
case 1: /* TCPCI_MSG_SOP PD_CTRL_GET_SINK_CAP */
partner_send_msg(TCPCI_MSG_SOP,
- PD_DATA_SINK_CAP,
- 1, 0, &pdo);
+ PD_DATA_SINK_CAP, 1, 0, &pdo);
break;
case 2: /* TCPCI_MSG_SOP_PRIME PD_DATA_VENDOR_DEF */
partner_send_msg(TCPCI_MSG_SOP_PRIME,
- PD_CTRL_NOT_SUPPORTED,
- 0, 0, NULL);
+ PD_CTRL_NOT_SUPPORTED, 0, 0,
+ NULL);
break;
case 3: /* TCPCI_MSG_SOP PD_DATA_VENDOR_DEF */
partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_NOT_SUPPORTED,
- 0, 0, NULL);
+ PD_CTRL_NOT_SUPPORTED, 0, 0,
+ NULL);
break;
case 4: /* TCPCI_MSG_SOP PD_CTRL_GET_REVISION */
partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_NOT_SUPPORTED,
- 0, 0, NULL);
+ PD_CTRL_NOT_SUPPORTED, 0, 0,
+ NULL);
break;
default:
TEST_ASSERT(0);
@@ -460,13 +445,8 @@ int handle_attach_expected_msgs(enum pd_data_role data_role)
possible[4].data_msg = 0;
do {
- rv = verify_tcpci_possible_tx(possible,
- 5,
- &found_index,
- NULL,
- 0,
- NULL,
- -1);
+ rv = verify_tcpci_possible_tx(possible, 5, &found_index,
+ NULL, 0, NULL, -1);
TEST_NE(rv, EC_ERROR_UNKNOWN, "%d");
if (rv == EC_ERROR_TIMEOUT)
@@ -478,29 +458,25 @@ int handle_attach_expected_msgs(enum pd_data_role data_role)
switch (found_index) {
case 0: /* TCPCI_MSG_SOP PD_CTRL_GET_SINK_CAP */
partner_send_msg(TCPCI_MSG_SOP,
- PD_DATA_SINK_CAP,
- 1, 0, &pdo);
+ PD_DATA_SINK_CAP, 1, 0, &pdo);
break;
case 1: /* TCPCI_MSG_SOP PD_CTRL_DR_SWAP */
- partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_REJECT,
+ partner_send_msg(TCPCI_MSG_SOP, PD_CTRL_REJECT,
0, 0, NULL);
break;
- case 2: /* TCPCI_MSG_SOP PD_CTRL_PR_SWAP */
- partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_REJECT,
+ case 2: /* TCPCI_MSG_SOP PD_CTRL_PR_SWAP */
+ partner_send_msg(TCPCI_MSG_SOP, PD_CTRL_REJECT,
0, 0, NULL);
break;
case 3: /* TCPCI_MSG_SOP PD_CTRL_VCONN_SWAP */
TEST_LT(vcs++, 4, "%d");
- partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_REJECT,
+ partner_send_msg(TCPCI_MSG_SOP, PD_CTRL_REJECT,
0, 0, NULL);
break;
case 4: /* TCPCI_MSG_SOP PD_CTRL_GET_REVISION */
partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_NOT_SUPPORTED,
- 0, 0, NULL);
+ PD_CTRL_NOT_SUPPORTED, 0, 0,
+ NULL);
break;
default:
TEST_ASSERT(0);
diff --git a/test/usb_tcpmv2_td_pd_ll_e3.c b/test/usb_tcpmv2_td_pd_ll_e3.c
index 46fbee393f..f239c87885 100644
--- a/test/usb_tcpmv2_td_pd_ll_e3.c
+++ b/test/usb_tcpmv2_td_pd_ll_e3.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -29,8 +29,8 @@ static int td_pd_ll_e3(enum pd_data_role data_role)
/*
* a) Run PROC.PD.E1 Bring-up according to the UUT role.
*/
- TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED),
- EC_SUCCESS, "%d");
+ TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED), EC_SUCCESS,
+ "%d");
/*
* Make sure we are idle. Reject everything that is pending
@@ -42,13 +42,11 @@ static int td_pd_ll_e3(enum pd_data_role data_role)
* and do not send GoodCrc for nRetryCount + 1 times
* (nRetryCount equals 3 since PD 2.1).
*/
- partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_GET_SINK_CAP,
- 0, 0, NULL);
+ partner_send_msg(TCPCI_MSG_SOP, PD_CTRL_GET_SINK_CAP, 0, 0, NULL);
retries = (partner_get_pd_rev() == PD_REV30) ? 2 : 3;
TEST_EQ(verify_tcpci_tx_retry_count(TCPCI_MSG_SOP, 0, PD_DATA_SINK_CAP,
- retries),
+ retries),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_FAILED);
diff --git a/test/usb_tcpmv2_td_pd_ll_e4.c b/test/usb_tcpmv2_td_pd_ll_e4.c
index cb6aa8e8b6..f315fc2a63 100644
--- a/test/usb_tcpmv2_td_pd_ll_e4.c
+++ b/test/usb_tcpmv2_td_pd_ll_e4.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -31,8 +31,8 @@ static int td_pd_ll_e4(enum pd_data_role data_role)
/*
* a) Run PROC.PD.E1 Bring-up according to the UUT role.
*/
- TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED),
- EC_SUCCESS, "%d");
+ TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED), EC_SUCCESS,
+ "%d");
/*
* Make sure we are idle. Reject everything that is pending
@@ -44,13 +44,11 @@ static int td_pd_ll_e4(enum pd_data_role data_role)
* and do not send GoodCrc for nRetryCount + 1 times
* (nRetryCount equals 3 since PD 2.1).
*/
- partner_send_msg(TCPCI_MSG_SOP,
- PD_CTRL_GET_SINK_CAP,
- 0, 0, NULL);
+ partner_send_msg(TCPCI_MSG_SOP, PD_CTRL_GET_SINK_CAP, 0, 0, NULL);
retries = 3;
TEST_EQ(verify_tcpci_tx_retry_count(TCPCI_MSG_SOP, 0, PD_DATA_SINK_CAP,
- retries),
+ retries),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_FAILED);
@@ -60,7 +58,7 @@ static int td_pd_ll_e4(enum pd_data_role data_role)
*/
retries = 3;
TEST_EQ(verify_tcpci_tx_retry_count(TCPCI_MSG_SOP, PD_CTRL_SOFT_RESET,
- 0, retries),
+ 0, retries),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_FAILED);
task_wait_event(1 * MSEC);
@@ -68,8 +66,8 @@ static int td_pd_ll_e4(enum pd_data_role data_role)
/*
* d) Check that the UUT issues a Hard Reset.
*/
- TEST_EQ(mock_tcpci_get_reg(TCPC_REG_TRANSMIT),
- TCPCI_MSG_TX_HARD_RESET, "%d");
+ TEST_EQ(mock_tcpci_get_reg(TCPC_REG_TRANSMIT), TCPCI_MSG_TX_HARD_RESET,
+ "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS | TCPC_REG_ALERT_TX_FAILED);
mock_tcpci_set_reg(TCPC_REG_TRANSMIT, 0);
task_wait_event(1 * MSEC);
diff --git a/test/usb_tcpmv2_td_pd_ll_e5.c b/test/usb_tcpmv2_td_pd_ll_e5.c
index ae6409eb20..7c7446a7b3 100644
--- a/test/usb_tcpmv2_td_pd_ll_e5.c
+++ b/test/usb_tcpmv2_td_pd_ll_e5.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -26,8 +26,8 @@ static int td_pd_ll_e5(enum pd_data_role data_role)
/*
* a) Run PROC.PD.E1 Bring-up according to the UUT role.
*/
- TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED),
- EC_SUCCESS, "%d");
+ TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED), EC_SUCCESS,
+ "%d");
/*
* Make sure we are idle. Reject everything that is pending
diff --git a/test/usb_tcpmv2_td_pd_other.c b/test/usb_tcpmv2_td_pd_other.c
index 1882480150..18477ac825 100644
--- a/test/usb_tcpmv2_td_pd_other.c
+++ b/test/usb_tcpmv2_td_pd_other.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -57,7 +57,7 @@ int test_retry_count_sop(void)
* The retry count for PD3 should be 2.
*/
TEST_EQ(verify_tcpci_tx_retry_count(TCPCI_MSG_SOP, 0,
- PD_DATA_SOURCE_CAP, 2),
+ PD_DATA_SOURCE_CAP, 2),
EC_SUCCESS, "%d");
return EC_SUCCESS;
}
diff --git a/test/usb_tcpmv2_td_pd_snk3_e12.c b/test/usb_tcpmv2_td_pd_snk3_e12.c
index 0195d39dba..11aa51016e 100644
--- a/test/usb_tcpmv2_td_pd_snk3_e12.c
+++ b/test/usb_tcpmv2_td_pd_snk3_e12.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -46,8 +46,8 @@ int test_td_pd_snk3_e12(void)
* d) The Tester verifies that a Soft_Reset message is sent by the UUT
* within tReceive max + tSoftReset max
*/
- TEST_EQ(verify_tcpci_tx_timeout(
- TCPCI_MSG_SOP, PD_CTRL_SOFT_RESET, 0, 16 * MSEC),
+ TEST_EQ(verify_tcpci_tx_timeout(TCPCI_MSG_SOP, PD_CTRL_SOFT_RESET, 0,
+ 16 * MSEC),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
diff --git a/test/usb_tcpmv2_td_pd_src3_e1.c b/test/usb_tcpmv2_td_pd_src3_e1.c
index 751e354b11..4f5637ccd2 100644
--- a/test/usb_tcpmv2_td_pd_src3_e1.c
+++ b/test/usb_tcpmv2_td_pd_src3_e1.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -69,21 +69,17 @@ int test_td_pd_src3_e1(void)
* 5. Message Type field = 00001b (Source Capabilities)
* 6. Extended field = 0b
*/
- TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP,
- PD_DATA_SOURCE_CAP,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP,
+ data, sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
TEST_GE(msg_len, HEADER_BYTE_CNT, "%d");
header = UINT16_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET);
pd_cnt = PD_HEADER_CNT(header);
TEST_NE(pd_cnt, 0, "%d");
- TEST_EQ(msg_len, HEADER_BYTE_OFFSET +
- HEADER_BYTE_CNT +
- (pd_cnt * PDO_BYTE_CNT), "%d");
+ TEST_EQ(msg_len,
+ HEADER_BYTE_OFFSET + HEADER_BYTE_CNT + (pd_cnt * PDO_BYTE_CNT),
+ "%d");
TEST_EQ(PD_HEADER_PROLE(header), PD_ROLE_SOURCE, "%d");
TEST_EQ(PD_HEADER_REV(header), REVISION_3, "%d");
TEST_EQ(PD_HEADER_DROLE(header), PD_ROLE_DFP, "%d");
@@ -96,8 +92,8 @@ int test_td_pd_src3_e1(void)
* 2. Voltage field = 100 (5 V)
* 3. Bits 23..22 = 000b (Reserved)
*/
- pdo = UINT32_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET +
- HEADER_BYTE_CNT);
+ pdo = UINT32_FROM_BYTE_ARRAY_LE(data,
+ HEADER_BYTE_OFFSET + HEADER_BYTE_CNT);
type = pdo & PDO_TYPE_MASK;
TEST_EQ(type, PDO_TYPE_FIXED, "%d");
@@ -135,15 +131,14 @@ int test_td_pd_src3_e1(void)
int offset;
uint32_t voltage;
- offset = HEADER_BYTE_OFFSET +
- HEADER_BYTE_CNT +
+ offset = HEADER_BYTE_OFFSET + HEADER_BYTE_CNT +
(i * PDO_BYTE_CNT);
pdo = UINT32_FROM_BYTE_ARRAY_LE(data, offset);
type = pdo & PDO_TYPE_MASK;
if (type == PDO_TYPE_FIXED) {
- TEST_EQ(pdo & (GENMASK(28, 26)|GENMASK(24, 22)),
- 0, "%d");
+ TEST_EQ(pdo & (GENMASK(28, 26) | GENMASK(24, 22)), 0,
+ "%d");
TEST_EQ(last_battery_voltage, 0, "%d");
TEST_EQ(last_variable_voltage, 0, "%d");
TEST_EQ(last_programmable_voltage, 0, "%d");
diff --git a/test/usb_tcpmv2_td_pd_src3_e26.c b/test/usb_tcpmv2_td_pd_src3_e26.c
index f5f5bcd3c4..aef472884b 100644
--- a/test/usb_tcpmv2_td_pd_src3_e26.c
+++ b/test/usb_tcpmv2_td_pd_src3_e26.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -47,8 +47,8 @@ int test_td_pd_src3_e26(void)
* d) The Tester verifies that a Soft_Reset message is sent by the UUT
* within tReceive max (1.1 ms) + tSoftReset max (15 ms).
*/
- TEST_EQ(verify_tcpci_tx_timeout(
- TCPCI_MSG_SOP, PD_CTRL_SOFT_RESET, 0, 15 * MSEC),
+ TEST_EQ(verify_tcpci_tx_timeout(TCPCI_MSG_SOP, PD_CTRL_SOFT_RESET, 0,
+ 15 * MSEC),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
diff --git a/test/usb_tcpmv2_td_pd_src3_e32.c b/test/usb_tcpmv2_td_pd_src3_e32.c
index 9ade7b83c8..395a251b22 100644
--- a/test/usb_tcpmv2_td_pd_src3_e32.c
+++ b/test/usb_tcpmv2_td_pd_src3_e32.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -10,18 +10,17 @@
#include "timer.h"
#include "usb_tcpmv2_compliance.h"
-#define PD_T_CHUNK_RECEIVER_REQUEST_MAX (15 * MSEC)
-#define PD_T_CHUNK_SENDER_RSP_MAX (30 * MSEC)
-#define PD_T_CHUNKING_NOT_SUPPORTED_MIN (40 * MSEC)
-#define PD_T_CHUNKING_NOT_SUPPORTED_MAX (50 * MSEC)
+#define PD_T_CHUNK_RECEIVER_REQUEST_MAX (15 * MSEC)
+#define PD_T_CHUNK_SENDER_RSP_MAX (30 * MSEC)
+#define PD_T_CHUNKING_NOT_SUPPORTED_MIN (40 * MSEC)
+#define PD_T_CHUNKING_NOT_SUPPORTED_MAX (50 * MSEC)
static void setup_chunk_msg(int chunk, char *data)
{
int i;
int base_msg_byte = chunk * PD_MAX_EXTENDED_MSG_CHUNK_LEN;
- *(uint16_t *)data = PD_EXT_HEADER(chunk, 0,
- PD_MAX_EXTENDED_MSG_LEN);
+ *(uint16_t *)data = PD_EXT_HEADER(chunk, 0, PD_MAX_EXTENDED_MSG_LEN);
for (i = 0; i < PD_MAX_EXTENDED_MSG_CHUNK_LEN; ++i) {
int val = (i + base_msg_byte) % 256;
@@ -85,12 +84,8 @@ int test_td_pd_src3_e32(void)
possible[1].ctrl_msg = 0;
possible[1].data_msg = 0x1F;
- TEST_EQ(verify_tcpci_possible_tx(possible,
- 2,
- &found_index,
- data,
- sizeof(data),
- &msg_len,
+ TEST_EQ(verify_tcpci_possible_tx(possible, 2, &found_index, data,
+ sizeof(data), &msg_len,
PD_T_CHUNKING_NOT_SUPPORTED_MAX),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
@@ -112,7 +107,7 @@ int test_td_pd_src3_e32(void)
* tChunkReceiverRequest max (15ms), the test fails.
*/
TEST_ASSERT((get_time().val - start_time) <=
- PD_T_CHUNK_RECEIVER_REQUEST_MAX);
+ PD_T_CHUNK_RECEIVER_REQUEST_MAX);
while (chunk < 4) {
int next_chunk;
@@ -130,12 +125,9 @@ int test_td_pd_src3_e32(void)
setup_chunk_msg(chunk, data);
partner_send_msg(TCPCI_MSG_SOP, 0x1F, 7, 1, (uint32_t *)data);
- TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP,
- 0x1F,
- data,
- sizeof(data),
- &msg_len,
- PD_T_CHUNK_RECEIVER_REQUEST_MAX),
+ TEST_EQ(verify_tcpci_tx_with_data(
+ TCPCI_MSG_SOP, 0x1F, data, sizeof(data),
+ &msg_len, PD_T_CHUNK_RECEIVER_REQUEST_MAX),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
@@ -159,12 +151,9 @@ int test_td_pd_src3_e32(void)
* i) If a message is not received within tChunkReceiverRequest max,
* the test fails.
*/
- TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP,
- 0x1F,
- data,
- sizeof(data),
- &msg_len,
- PD_T_CHUNK_RECEIVER_REQUEST_MAX),
+ TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP, 0x1F, data,
+ sizeof(data), &msg_len,
+ PD_T_CHUNK_RECEIVER_REQUEST_MAX),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
@@ -207,9 +196,7 @@ int test_td_pd_src3_e32(void)
* Number of Data Objects field
*/
header = *(uint32_t *)&data[1];
- TEST_EQ(msg_len - 3,
- PD_HEADER_CNT(header) * 4,
- "%d");
+ TEST_EQ(msg_len - 3, PD_HEADER_CNT(header) * 4, "%d");
/*
* 4. The last 2 bytes of the Data Object are 0
diff --git a/test/usb_tcpmv2_td_pd_src3_e7.c b/test/usb_tcpmv2_td_pd_src3_e7.c
index fa2c68b64e..40f65f2b9a 100644
--- a/test/usb_tcpmv2_td_pd_src3_e7.c
+++ b/test/usb_tcpmv2_td_pd_src3_e7.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -22,7 +22,6 @@
#define EXT_MSG_DATA_SIZE_1 1
#define GBSDB_FIXED_BATTERY_0 (0 << 16)
-
static int number_of_fixed_batteries(void)
{
return CONFIG_NUM_FIXED_BATTERIES;
@@ -78,13 +77,8 @@ int test_td_pd_src3_e7(void)
possible[1].ctrl_msg = 0;
possible[1].data_msg = PD_DATA_SOURCE_CAP;
- TEST_EQ(verify_tcpci_possible_tx(possible,
- 2,
- &found_index,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ TEST_EQ(verify_tcpci_possible_tx(possible, 2, &found_index, data,
+ sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
if (found_index == 0) {
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
@@ -104,8 +98,7 @@ int test_td_pd_src3_e7(void)
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
task_wait_event(10 * MSEC);
- if (data[HEADER_BYTE_OFFSET +
- HEADER_BYTE_CNT +
+ if (data[HEADER_BYTE_OFFSET + HEADER_BYTE_CNT +
SRC_CAP_EXT_NUM_BATTERY_OFFSET] == 0)
return EC_SUCCESS;
}
@@ -114,11 +107,9 @@ int test_td_pd_src3_e7(void)
* e) The Tester waits until it can start an AMS (Run PROC.PD.E3) and
* sends a Get_Battery_Status message to the UUT
*/
- ext_msg = EXT_MSG_CHUNKED |
- EXT_MSG_DATA_SIZE_1 |
- GBSDB_FIXED_BATTERY_0;
+ ext_msg = EXT_MSG_CHUNKED | EXT_MSG_DATA_SIZE_1 | GBSDB_FIXED_BATTERY_0;
partner_send_msg(TCPCI_MSG_SOP, PD_EXT_GET_BATTERY_STATUS, 1, 1,
- &ext_msg);
+ &ext_msg);
/*
* f) If a Battery_Status message is not received within
@@ -127,10 +118,8 @@ int test_td_pd_src3_e7(void)
* been transmitted to the time the first bit of the Battery_Status
* message preamble has been received.
*/
- TEST_EQ(verify_tcpci_tx_timeout(TCPCI_MSG_SOP,
- 0,
- PD_DATA_BATTERY_STATUS,
- (15 * MSEC)),
+ TEST_EQ(verify_tcpci_tx_timeout(TCPCI_MSG_SOP, 0,
+ PD_DATA_BATTERY_STATUS, (15 * MSEC)),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
task_wait_event(10 * MSEC);
diff --git a/test/usb_tcpmv2_td_pd_src3_e8.c b/test/usb_tcpmv2_td_pd_src3_e8.c
index b884156d43..8686226a50 100644
--- a/test/usb_tcpmv2_td_pd_src3_e8.c
+++ b/test/usb_tcpmv2_td_pd_src3_e8.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -24,10 +24,10 @@
#define SCEDB_NUM_BYTES 24
#define BSDO_NUM_BYTES 4
-#define BSDO_INV_BATTERY_REF(bsdo) (((bsdo) >> 8) & 1)
-#define BSDO_BATTERY_PRESENT(bsdo) (((bsdo) >> 9) & 1)
-#define BSDO_BATTERY_CHRG_STS(bsdo) (((bsdo) >> 10) & 3)
-#define BSDO_BATTERY_INFO(bsdo) (((bsdo) >> 8) & 0xFF)
+#define BSDO_INV_BATTERY_REF(bsdo) (((bsdo) >> 8) & 1)
+#define BSDO_BATTERY_PRESENT(bsdo) (((bsdo) >> 9) & 1)
+#define BSDO_BATTERY_CHRG_STS(bsdo) (((bsdo) >> 10) & 3)
+#define BSDO_BATTERY_INFO(bsdo) (((bsdo) >> 8) & 0xFF)
static int number_of_fixed_batteries(void)
{
@@ -88,33 +88,26 @@ int test_td_pd_src3_e8(void)
possible[1].ctrl_msg = 0;
possible[1].data_msg = PD_DATA_SOURCE_CAP;
- TEST_EQ(verify_tcpci_possible_tx(possible,
- 2,
- &found_index,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ TEST_EQ(verify_tcpci_possible_tx(possible, 2, &found_index, data,
+ sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
if (found_index == 1) {
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
task_wait_event(10 * MSEC);
- TEST_EQ(msg_len, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BYTES,
+ TEST_EQ(msg_len,
+ HEADER_BYTE_OFFSET + HEADER_NUM_BYTES + SCEDB_NUM_BYTES,
"%d");
num_fixed_batteries =
- data[HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BATTERY_OFFSET] &
- 0x0F;
+ data[HEADER_BYTE_OFFSET + HEADER_NUM_BYTES +
+ SCEDB_NUM_BATTERY_OFFSET] &
+ 0x0F;
num_swappable_battery_slots =
- (data[HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BATTERY_OFFSET] >> 4) &
- 0x0F;
+ (data[HEADER_BYTE_OFFSET + HEADER_NUM_BYTES +
+ SCEDB_NUM_BATTERY_OFFSET] >>
+ 4) &
+ 0x0F;
}
/*
* If a Not_Supported message is received, the Tester reads the
@@ -141,8 +134,7 @@ int test_td_pd_src3_e8(void)
uint16_t header;
uint32_t bsdo;
- ext_msg = EXT_MSG_CHUNKED | EXT_MSG_DATA_SIZE_1 |
- (ref << 16);
+ ext_msg = EXT_MSG_CHUNKED | EXT_MSG_DATA_SIZE_1 | (ref << 16);
partner_send_msg(TCPCI_MSG_SOP, PD_EXT_GET_BATTERY_STATUS, 1, 1,
&ext_msg);
@@ -151,17 +143,13 @@ int test_td_pd_src3_e8(void)
* verifies:
*/
TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP,
- PD_DATA_BATTERY_STATUS,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ PD_DATA_BATTERY_STATUS, data,
+ sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
task_wait_event(10 * MSEC);
- TEST_EQ(msg_len, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- BSDO_NUM_BYTES,
+ TEST_EQ(msg_len,
+ HEADER_BYTE_OFFSET + HEADER_NUM_BYTES + BSDO_NUM_BYTES,
"%d");
/*
@@ -200,33 +188,26 @@ int test_td_pd_src3_e8(void)
* 8. If Invalid Battery Reference field is 1, Battery is
* present field shall be 0
*/
- bsdo = UINT32_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES);
+ bsdo = UINT32_FROM_BYTE_ARRAY_LE(
+ data, HEADER_BYTE_OFFSET + HEADER_NUM_BYTES);
/* FIXED BATTERY */
if (ref < 4) {
if (ref < num_fixed_batteries) {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 0, "%d");
- TEST_EQ(BSDO_BATTERY_PRESENT(bsdo),
- 1, "%d");
+ TEST_EQ(BSDO_INV_BATTERY_REF(bsdo), 0, "%d");
+ TEST_EQ(BSDO_BATTERY_PRESENT(bsdo), 1, "%d");
} else {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 1, "%d");
- TEST_EQ(BSDO_BATTERY_PRESENT(bsdo),
- 0, "%d");
+ TEST_EQ(BSDO_INV_BATTERY_REF(bsdo), 1, "%d");
+ TEST_EQ(BSDO_BATTERY_PRESENT(bsdo), 0, "%d");
}
}
/* BATTERY SLOT */
else {
if ((ref - 4) < num_swappable_battery_slots) {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 0, "%d");
+ TEST_EQ(BSDO_INV_BATTERY_REF(bsdo), 0, "%d");
} else {
- TEST_EQ(BSDO_INV_BATTERY_REF(bsdo),
- 1, "%d");
- TEST_EQ(BSDO_BATTERY_PRESENT(bsdo),
- 0, "%d");
+ TEST_EQ(BSDO_INV_BATTERY_REF(bsdo), 1, "%d");
+ TEST_EQ(BSDO_BATTERY_PRESENT(bsdo), 0, "%d");
}
}
diff --git a/test/usb_tcpmv2_td_pd_src3_e9.c b/test/usb_tcpmv2_td_pd_src3_e9.c
index 49b8209669..59b7a22d74 100644
--- a/test/usb_tcpmv2_td_pd_src3_e9.c
+++ b/test/usb_tcpmv2_td_pd_src3_e9.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -23,8 +23,8 @@
#define SCEDB_NUM_BATTERY_OFFSET 22
#define SCEDB_NUM_BYTES 24
-#define BSDO_INV_BATTERY_REF(bsdo) (((bsdo) >> 8) & 1)
-#define BSDO_BATTERY_INFO(bsdo) (((bsdo) >> 8) & 0xFF)
+#define BSDO_INV_BATTERY_REF(bsdo) (((bsdo) >> 8) & 1)
+#define BSDO_BATTERY_INFO(bsdo) (((bsdo) >> 8) & 0xFF)
static int number_of_fixed_batteries(void)
{
@@ -84,33 +84,26 @@ int test_td_pd_src3_e9(void)
possible[1].ctrl_msg = 0;
possible[1].data_msg = PD_DATA_SOURCE_CAP;
- TEST_EQ(verify_tcpci_possible_tx(possible,
- 2,
- &found_index,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ TEST_EQ(verify_tcpci_possible_tx(possible, 2, &found_index, data,
+ sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
if (found_index == 1) {
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
task_wait_event(10 * MSEC);
- TEST_EQ(msg_len, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BYTES,
+ TEST_EQ(msg_len,
+ HEADER_BYTE_OFFSET + HEADER_NUM_BYTES + SCEDB_NUM_BYTES,
"%d");
num_fixed_batteries =
- data[HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BATTERY_OFFSET] &
- 0x0F;
+ data[HEADER_BYTE_OFFSET + HEADER_NUM_BYTES +
+ SCEDB_NUM_BATTERY_OFFSET] &
+ 0x0F;
num_swappable_battery_slots =
- (data[HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES +
- SCEDB_NUM_BATTERY_OFFSET] >> 4) &
- 0x0F;
+ (data[HEADER_BYTE_OFFSET + HEADER_NUM_BYTES +
+ SCEDB_NUM_BATTERY_OFFSET] >>
+ 4) &
+ 0x0F;
}
/*
* If a Not_Supported message is received, the Tester reads the
@@ -133,8 +126,7 @@ int test_td_pd_src3_e9(void)
* to 8, to the UUT.
*/
ref = 8;
- ext_msg = EXT_MSG_CHUNKED | EXT_MSG_DATA_SIZE_1 |
- (ref << 16);
+ ext_msg = EXT_MSG_CHUNKED | EXT_MSG_DATA_SIZE_1 | (ref << 16);
partner_send_msg(TCPCI_MSG_SOP, PD_EXT_GET_BATTERY_STATUS, 1, 1,
&ext_msg);
@@ -153,13 +145,8 @@ int test_td_pd_src3_e9(void)
possible[1].ctrl_msg = 0;
possible[1].data_msg = PD_DATA_BATTERY_STATUS;
- TEST_EQ(verify_tcpci_possible_tx(possible,
- 2,
- &found_index,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ TEST_EQ(verify_tcpci_possible_tx(possible, 2, &found_index, data,
+ sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
if (found_index == 0) {
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS);
@@ -210,8 +197,8 @@ int test_td_pd_src3_e9(void)
* 6. Invalid Battery Reference field (Bit 0) of the
* Battery Info field in the BSDO is 1
*/
- bsdo = UINT32_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET +
- HEADER_NUM_BYTES);
+ bsdo = UINT32_FROM_BYTE_ARRAY_LE(
+ data, HEADER_BYTE_OFFSET + HEADER_NUM_BYTES);
TEST_EQ(BSDO_INV_BATTERY_REF(bsdo), 1, "%d");
/*
diff --git a/test/usb_tcpmv2_td_pd_src_e1.c b/test/usb_tcpmv2_td_pd_src_e1.c
index a617f90ca2..cfb62764b2 100644
--- a/test/usb_tcpmv2_td_pd_src_e1.c
+++ b/test/usb_tcpmv2_td_pd_src_e1.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -38,8 +38,7 @@ int test_td_pd_src_e1(void)
* is not received from the Provider within 250 ms (tFirstSourceCap
* max) after VBus present.
*/
- TEST_EQ(verify_tcpci_tx_timeout(TCPCI_MSG_SOP, 0,
- PD_DATA_SOURCE_CAP,
+ TEST_EQ(verify_tcpci_tx_timeout(TCPCI_MSG_SOP, 0, PD_DATA_SOURCE_CAP,
250 * MSEC),
EC_SUCCESS, "%d");
diff --git a/test/usb_tcpmv2_td_pd_src_e2.c b/test/usb_tcpmv2_td_pd_src_e2.c
index f0e1b64c7e..cabba40bb9 100644
--- a/test/usb_tcpmv2_td_pd_src_e2.c
+++ b/test/usb_tcpmv2_td_pd_src_e2.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -63,12 +63,8 @@ int test_td_pd_src_e2(void)
* Provider, if the Specification Revision field is 10b
* (Rev 3.0), the test passes and stops here,
*/
- TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP,
- PD_DATA_SOURCE_CAP,
- data,
- sizeof(data),
- &msg_len,
- 0),
+ TEST_EQ(verify_tcpci_tx_with_data(TCPCI_MSG_SOP, PD_DATA_SOURCE_CAP,
+ data, sizeof(data), &msg_len, 0),
EC_SUCCESS, "%d");
TEST_GE(msg_len, HEADER_BYTE_CNT, "%d");
@@ -95,7 +91,7 @@ int test_td_pd_src_e2(void)
TEST_EQ(revision, REVISION_2, "%d");
TEST_EQ(PD_HEADER_DROLE(header), PD_ROLE_DFP, "%d");
TEST_EQ(PD_HEADER_TYPE(header), PD_DATA_SOURCE_CAP, "%d");
- TEST_EQ(header & (BIT(4)|BIT(15)), 0, "%d");
+ TEST_EQ(header & (BIT(4) | BIT(15)), 0, "%d");
/*
* c) For the first PDO, the Tester verifies:
@@ -103,8 +99,8 @@ int test_td_pd_src_e2(void)
* 2. Voltage field = 100 (5 V)
* 3. Bits 24..22 = 000b (Reserved)
*/
- pdo = UINT32_FROM_BYTE_ARRAY_LE(data, HEADER_BYTE_OFFSET +
- HEADER_BYTE_CNT);
+ pdo = UINT32_FROM_BYTE_ARRAY_LE(data,
+ HEADER_BYTE_OFFSET + HEADER_BYTE_CNT);
type = pdo & PDO_TYPE_MASK;
TEST_EQ(type, PDO_TYPE_FIXED, "%d");
@@ -132,8 +128,7 @@ int test_td_pd_src_e2(void)
int offset;
uint32_t voltage;
- offset = HEADER_BYTE_OFFSET +
- HEADER_BYTE_CNT +
+ offset = HEADER_BYTE_OFFSET + HEADER_BYTE_CNT +
(i * PDO_BYTE_CNT);
pdo = UINT32_FROM_BYTE_ARRAY_LE(data, offset);
diff --git a/test/usb_tcpmv2_td_pd_src_e5.c b/test/usb_tcpmv2_td_pd_src_e5.c
index eac1b93e8f..ef40ee75cf 100644
--- a/test/usb_tcpmv2_td_pd_src_e5.c
+++ b/test/usb_tcpmv2_td_pd_src_e5.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 The Chromium OS Authors. All rights reserved.
+/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -71,12 +71,12 @@ int test_td_pd_src_e5(void)
end_time += 6 * MSEC;
while (get_time().val < end_time) {
if (mock_tcpci_get_reg(TCPC_REG_TRANSMIT) ==
- TCPCI_MSG_TX_HARD_RESET)
+ TCPCI_MSG_TX_HARD_RESET)
break;
task_wait_event(1 * MSEC);
}
- TEST_EQ(mock_tcpci_get_reg(TCPC_REG_TRANSMIT),
- TCPCI_MSG_TX_HARD_RESET, "%d");
+ TEST_EQ(mock_tcpci_get_reg(TCPC_REG_TRANSMIT), TCPCI_MSG_TX_HARD_RESET,
+ "%d");
mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS | TCPC_REG_ALERT_TX_FAILED);
mock_tcpci_set_reg(TCPC_REG_TRANSMIT, 0);
task_wait_event(1 * MSEC);
diff --git a/test/usb_tcpmv2_td_pd_vndi3_e3.c b/test/usb_tcpmv2_td_pd_vndi3_e3.c
index cbfc0d75e3..8157835328 100644
--- a/test/usb_tcpmv2_td_pd_vndi3_e3.c
+++ b/test/usb_tcpmv2_td_pd_vndi3_e3.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -11,10 +11,8 @@
#include "usb_tcpmv2_compliance.h"
#include "usb_tc_sm.h"
-uint32_t vdo = VDO(USB_SID_PD, 1,
- VDO_SVDM_VERS(VDM_VER20) |
- CMD_DISCOVER_IDENT);
-
+uint32_t vdo =
+ VDO(USB_SID_PD, 1, VDO_SVDM_VERS(VDM_VER20) | CMD_DISCOVER_IDENT);
/*****************************************************************************
* TD.PD.VNDI3.E3.VDM Identity
@@ -32,8 +30,8 @@ static int td_pd_vndi3_e3(enum pd_data_role data_role)
/*
* a) Run PROC.PD.E1 Bring-up according to the UUT role.
*/
- TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED),
- EC_SUCCESS, "%d");
+ TEST_EQ(proc_pd_e1(data_role, INITIAL_AND_ALREADY_ATTACHED), EC_SUCCESS,
+ "%d");
/*
* Make sure we are idle. Reject everything that is pending
@@ -43,8 +41,7 @@ static int td_pd_vndi3_e3(enum pd_data_role data_role)
/*
* b) Tester executes a Discover Identity exchange
*/
- partner_send_msg(TCPCI_MSG_SOP, PD_DATA_VENDOR_DEF,
- 1, 0, &vdo);
+ partner_send_msg(TCPCI_MSG_SOP, PD_DATA_VENDOR_DEF, 1, 0, &vdo);
/*
* c) If the UUT is not a cable and if Responds_To_Discov_SOP is set to
diff --git a/test/usb_test/Makefile b/test/usb_test/Makefile
index e18e4a7c3b..df21c7d331 100644
--- a/test/usb_test/Makefile
+++ b/test/usb_test/Makefile
@@ -1,4 +1,4 @@
-# Copyright 2015 The Chromium OS Authors. All rights reserved.
+# Copyright 2015 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
diff --git a/test/usb_test/device_configuration.c b/test/usb_test/device_configuration.c
index 69f889c2d3..06c71fefd9 100644
--- a/test/usb_test/device_configuration.c
+++ b/test/usb_test/device_configuration.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2016 The Chromium OS Authors. All rights reserved.
+ * Copyright 2016 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -13,8 +13,8 @@
#include <string.h>
/* Options */
-static uint16_t vid = 0x18d1; /* Google */
-static uint16_t pid = 0x5014; /* Cr50 */
+static uint16_t vid = 0x18d1; /* Google */
+static uint16_t pid = 0x5014; /* Cr50 */
static char *progname;
@@ -25,7 +25,8 @@ static void usage(int errs)
"Set/Get the USB Device Configuration value\n"
"\n"
"The default vid:pid is %04x:%04x\n"
- "\n", progname, vid, pid);
+ "\n",
+ progname, vid, pid);
exit(!!errs);
}
@@ -49,14 +50,13 @@ static void stupid_usb(const char *format, ...)
exit(1);
}
-
int main(int argc, char *argv[])
{
int r = 1;
int errorcnt = 0;
int do_set = 0;
uint16_t setval = 0;
- uint8_t buf[80]; /* Arbitrary size */
+ uint8_t buf[80]; /* Arbitrary size */
int i;
progname = strrchr(argv[0], '/');
@@ -65,13 +65,13 @@ int main(int argc, char *argv[])
else
progname = argv[0];
- opterr = 0; /* quiet, you */
+ opterr = 0; /* quiet, you */
while ((i = getopt(argc, argv, "")) != -1) {
switch (i) {
case 'h':
usage(errorcnt);
break;
- case 0: /* auto-handled option */
+ case 0: /* auto-handled option */
break;
case '?':
if (optopt)
@@ -111,8 +111,8 @@ int main(int argc, char *argv[])
r = libusb_init(NULL);
if (r) {
- printf("libusb_init() returned 0x%x: %s\n",
- r, libusb_error_name(r));
+ printf("libusb_init() returned 0x%x: %s\n", r,
+ libusb_error_name(r));
return 1;
}
@@ -122,41 +122,36 @@ int main(int argc, char *argv[])
stupid_usb("Can't open device %04x:%04x\n", vid, pid);
}
-
/* Set config*/
if (do_set) {
printf("SetCfg %d\n", setval);
- r = libusb_control_transfer(
- devh,
- 0x00, /* bmRequestType */
- 0x09, /* bRequest */
- setval, /* wValue */
- 0x0000, /* wIndex */
- NULL, /* data */
- 0x0000, /* wLength */
- 1000); /* timeout (ms) */
+ r = libusb_control_transfer(devh, 0x00, /* bmRequestType */
+ 0x09, /* bRequest */
+ setval, /* wValue */
+ 0x0000, /* wIndex */
+ NULL, /* data */
+ 0x0000, /* wLength */
+ 1000); /* timeout (ms) */
if (r < 0)
- printf("transfer returned 0x%x %s\n",
- r, libusb_error_name(r));
+ printf("transfer returned 0x%x %s\n", r,
+ libusb_error_name(r));
}
/* Get config */
memset(buf, 0, sizeof(buf));
- r = libusb_control_transfer(
- devh,
- 0x80, /* bmRequestType */
- 0x08, /* bRequest */
- 0x0000, /* wValue */
- 0x0000, /* wIndex */
- buf, /* data */
- 0x0001, /* wLength */
- 1000); /* timeout (ms) */
+ r = libusb_control_transfer(devh, 0x80, /* bmRequestType */
+ 0x08, /* bRequest */
+ 0x0000, /* wValue */
+ 0x0000, /* wIndex */
+ buf, /* data */
+ 0x0001, /* wLength */
+ 1000); /* timeout (ms) */
if (r <= 0)
- stupid_usb("GetCfg transfer() returned 0x%x %s\n",
- r, libusb_error_name(r));
+ stupid_usb("GetCfg transfer() returned 0x%x %s\n", r,
+ libusb_error_name(r));
printf("GetCfg returned %d bytes:", r);
for (i = 0; i < r; i++)
diff --git a/test/usb_typec_ctvpd.c b/test/usb_typec_ctvpd.c
index 583c529fca..71d543cec0 100644
--- a/test/usb_typec_ctvpd.c
+++ b/test/usb_typec_ctvpd.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -18,12 +18,12 @@
#include "usb_sm_checks.h"
#include "vpd_api.h"
-#define PORT0 0
+#define PORT0 0
-enum cc_type {CC1, CC2};
-enum vbus_type {VBUS_0 = 0, VBUS_5 = 5000};
-enum vconn_type {VCONN_0 = 0, VCONN_3 = 3000, VCONN_5 = 5000};
-enum snk_con_voltage_type {SRC_CON_DEF, SRC_CON_1_5, SRC_CON_3_0};
+enum cc_type { CC1, CC2 };
+enum vbus_type { VBUS_0 = 0, VBUS_5 = 5000 };
+enum vconn_type { VCONN_0 = 0, VCONN_3 = 3000, VCONN_5 = 5000 };
+enum snk_con_voltage_type { SRC_CON_DEF, SRC_CON_1_5, SRC_CON_3_0 };
/*
* These enum definitions are declared in usb_tc_*_sm and are private to that
@@ -92,15 +92,15 @@ static int ct_connect_sink(enum cc_type cc, enum snk_con_voltage_type v)
switch (v) {
case SRC_CON_DEF:
ret = (cc) ? mock_set_cc2_rp3a0_rd_l(PD_SRC_DEF_RD_THRESH_MV) :
- mock_set_cc1_rp3a0_rd_l(PD_SRC_DEF_RD_THRESH_MV);
+ mock_set_cc1_rp3a0_rd_l(PD_SRC_DEF_RD_THRESH_MV);
break;
case SRC_CON_1_5:
ret = (cc) ? mock_set_cc2_rp3a0_rd_l(PD_SRC_1_5_RD_THRESH_MV) :
- mock_set_cc1_rp3a0_rd_l(PD_SRC_1_5_RD_THRESH_MV);
+ mock_set_cc1_rp3a0_rd_l(PD_SRC_1_5_RD_THRESH_MV);
break;
case SRC_CON_3_0:
ret = (cc) ? mock_set_cc2_rp3a0_rd_l(PD_SRC_3_0_RD_THRESH_MV) :
- mock_set_cc1_rp3a0_rd_l(PD_SRC_3_0_RD_THRESH_MV);
+ mock_set_cc1_rp3a0_rd_l(PD_SRC_3_0_RD_THRESH_MV);
break;
default:
ret = 0;
@@ -124,7 +124,7 @@ static int ct_connect_source(enum cc_type cc, enum vbus_type vbus)
{
mock_set_ct_vbus(vbus);
return (cc) ? mock_set_cc2_rpusb_odh(PD_SNK_VA_MV) :
- mock_set_cc1_rpusb_odh(PD_SNK_VA_MV);
+ mock_set_cc1_rpusb_odh(PD_SNK_VA_MV);
}
static int ct_disconnect_source(void)
@@ -297,14 +297,15 @@ void inc_rx_id(int port)
static int verify_goodcrc(int port, int role, int id)
{
return pd_test_tx_msg_verify_sop_prime(port) &&
- pd_test_tx_msg_verify_short(port, PD_HEADER(PD_CTRL_GOOD_CRC,
- role, role, id, 0, 0, 0)) &&
- pd_test_tx_msg_verify_crc(port) &&
- pd_test_tx_msg_verify_eop(port);
+ pd_test_tx_msg_verify_short(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role,
+ role, id, 0, 0, 0)) &&
+ pd_test_tx_msg_verify_crc(port) &&
+ pd_test_tx_msg_verify_eop(port);
}
static void simulate_rx_msg(int port, uint16_t header, int cnt,
- const uint32_t *data)
+ const uint32_t *data)
{
int i;
@@ -330,20 +331,20 @@ static void simulate_rx_msg(int port, uint16_t header, int cnt,
static void simulate_goodcrc(int port, int role, int id)
{
- simulate_rx_msg(port, PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
- pd_port[port].rev, 0), 0, NULL);
+ simulate_rx_msg(port,
+ PD_HEADER(PD_CTRL_GOOD_CRC, role, role, id, 0,
+ pd_port[port].rev, 0),
+ 0, NULL);
}
static void simulate_discovery_identity(int port)
{
- uint16_t header = PD_HEADER(PD_DATA_VENDOR_DEF, PD_ROLE_SOURCE,
- 1, pd_port[port].msg_rx_id,
- 1, pd_port[port].rev, 0);
- uint32_t msg = VDO(USB_SID_PD,
- 1, /* Structured VDM */
- VDO_SVDM_VERS(1) |
- VDO_CMDT(CMDT_INIT) |
- CMD_DISCOVER_IDENT);
+ uint16_t header = PD_HEADER(PD_DATA_VENDOR_DEF, PD_ROLE_SOURCE, 1,
+ pd_port[port].msg_rx_id, 1,
+ pd_port[port].rev, 0);
+ uint32_t msg = VDO(USB_SID_PD, 1, /* Structured VDM */
+ VDO_SVDM_VERS(1) | VDO_CMDT(CMDT_INIT) |
+ CMD_DISCOVER_IDENT);
simulate_rx_msg(port, header, 1, (const uint32_t *)&msg);
}
@@ -538,35 +539,27 @@ static int test_vpd_host_src_detection_vconn(void)
static int test_vpd_host_src_detection_message_reception(void)
{
int port = PORT0;
- uint32_t expected_vdm_header = VDO(USB_VID_GOOGLE,
- 1, /* Structured VDM */
- VDO_SVDM_VERS(1) |
- VDO_CMDT(CMDT_RSP_ACK) |
- CMD_DISCOVER_IDENT);
- uint32_t expected_vdo_id_header = VDO_IDH(
- 0, /* Not a USB Host */
+ uint32_t expected_vdm_header = VDO(
+ USB_VID_GOOGLE, 1, /* Structured VDM */
+ VDO_SVDM_VERS(1) | VDO_CMDT(CMDT_RSP_ACK) | CMD_DISCOVER_IDENT);
+ uint32_t expected_vdo_id_header =
+ VDO_IDH(0, /* Not a USB Host */
1, /* Capable of being enumerated as USB Device */
- IDH_PTYPE_VPD,
- 0, /* Modal Operation Not Supported */
+ IDH_PTYPE_VPD, 0, /* Modal Operation Not Supported */
USB_VID_GOOGLE);
uint32_t expected_vdo_cert = 0;
- uint32_t expected_vdo_product = VDO_PRODUCT(
- CONFIG_USB_PID,
- USB_BCD_DEVICE);
+ uint32_t expected_vdo_product =
+ VDO_PRODUCT(CONFIG_USB_PID, USB_BCD_DEVICE);
uint32_t expected_vdo_vpd = VDO_VPD(
- VPD_HW_VERSION,
- VPD_FW_VERSION,
- VPD_MAX_VBUS_20V,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CT_CURRENT
- : 0,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_VBUS_IMP(
- VPD_VBUS_IMPEDANCE)
- : 0,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_GND_IMP(
- VPD_GND_IMPEDANCE)
- : 0,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CTS_SUPPORTED
- : VPD_CTS_NOT_SUPPORTED);
+ VPD_HW_VERSION, VPD_FW_VERSION, VPD_MAX_VBUS_20V,
+ IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CT_CURRENT : 0,
+ IS_ENABLED(CONFIG_USB_CTVPD) ?
+ VPD_VBUS_IMP(VPD_VBUS_IMPEDANCE) :
+ 0,
+ IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_GND_IMP(VPD_GND_IMPEDANCE) :
+ 0,
+ IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CTS_SUPPORTED :
+ VPD_CTS_NOT_SUPPORTED);
mock_set_vconn(VCONN_0);
host_disconnect_source();
@@ -608,8 +601,8 @@ static int test_vpd_host_src_detection_message_reception(void)
simulate_discovery_identity(port);
task_wait_event(30 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(30 * MSEC);
@@ -617,9 +610,10 @@ static int test_vpd_host_src_detection_message_reception(void)
/* Test Discover Identity Ack */
TEST_ASSERT(pd_test_tx_msg_verify_sop_prime(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_VENDOR_DEF, PD_PLUG_FROM_CABLE, 0,
- pd_port[port].msg_tx_id, 5, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_VENDOR_DEF, PD_PLUG_FROM_CABLE, 0,
+ pd_port[port].msg_tx_id, 5, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_vdm_header));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_vdo_id_header));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_vdo_cert));
@@ -648,7 +642,6 @@ static int test_vpd_host_src_detection_message_reception(void)
TEST_EQ(get_state_tc(port), TC_UNATTACHED_SNK, "%d");
-
return EC_SUCCESS;
}
@@ -992,35 +985,27 @@ static int test_ctvpd_behavior_case3(void)
static int test_ctvpd_behavior_case4(void)
{
int port = PORT0;
- uint32_t expected_vdm_header = VDO(USB_VID_GOOGLE,
- 1, /* Structured VDM */
- VDO_SVDM_VERS(1) |
- VDO_CMDT(CMDT_RSP_ACK) |
- CMD_DISCOVER_IDENT);
- uint32_t expected_vdo_id_header = VDO_IDH(
- 0, /* Not a USB Host */
+ uint32_t expected_vdm_header = VDO(
+ USB_VID_GOOGLE, 1, /* Structured VDM */
+ VDO_SVDM_VERS(1) | VDO_CMDT(CMDT_RSP_ACK) | CMD_DISCOVER_IDENT);
+ uint32_t expected_vdo_id_header =
+ VDO_IDH(0, /* Not a USB Host */
1, /* Capable of being enumerated as USB Device */
- IDH_PTYPE_VPD,
- 0, /* Modal Operation Not Supported */
+ IDH_PTYPE_VPD, 0, /* Modal Operation Not Supported */
USB_VID_GOOGLE);
uint32_t expected_vdo_cert = 0;
- uint32_t expected_vdo_product = VDO_PRODUCT(
- CONFIG_USB_PID,
- USB_BCD_DEVICE);
+ uint32_t expected_vdo_product =
+ VDO_PRODUCT(CONFIG_USB_PID, USB_BCD_DEVICE);
uint32_t expected_vdo_vpd = VDO_VPD(
- VPD_HW_VERSION,
- VPD_FW_VERSION,
- VPD_MAX_VBUS_20V,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CT_CURRENT
- : 0,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_VBUS_IMP(
- VPD_VBUS_IMPEDANCE)
- : 0,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_GND_IMP(
- VPD_GND_IMPEDANCE)
- : 0,
- IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CTS_SUPPORTED
- : VPD_CTS_NOT_SUPPORTED);
+ VPD_HW_VERSION, VPD_FW_VERSION, VPD_MAX_VBUS_20V,
+ IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CT_CURRENT : 0,
+ IS_ENABLED(CONFIG_USB_CTVPD) ?
+ VPD_VBUS_IMP(VPD_VBUS_IMPEDANCE) :
+ 0,
+ IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_GND_IMP(VPD_GND_IMPEDANCE) :
+ 0,
+ IS_ENABLED(CONFIG_USB_CTVPD) ? VPD_CTS_SUPPORTED :
+ VPD_CTS_NOT_SUPPORTED);
init_port(port);
mock_set_vconn(VCONN_0);
@@ -1107,8 +1092,8 @@ static int test_ctvpd_behavior_case4(void)
simulate_discovery_identity(port);
task_wait_event(40 * MSEC);
- TEST_ASSERT(verify_goodcrc(port,
- PD_ROLE_SINK, pd_port[port].msg_rx_id));
+ TEST_ASSERT(
+ verify_goodcrc(port, PD_ROLE_SINK, pd_port[port].msg_rx_id));
task_wake(PD_PORT_TO_TASK_ID(port));
task_wait_event(40 * MSEC);
@@ -1116,9 +1101,10 @@ static int test_ctvpd_behavior_case4(void)
/* Test Discover Identity Ack */
TEST_ASSERT(pd_test_tx_msg_verify_sop_prime(port));
- TEST_ASSERT(pd_test_tx_msg_verify_short(port,
- PD_HEADER(PD_DATA_VENDOR_DEF, PD_PLUG_FROM_CABLE, 0,
- pd_port[port].msg_tx_id, 5, pd_port[port].rev, 0)));
+ TEST_ASSERT(pd_test_tx_msg_verify_short(
+ port,
+ PD_HEADER(PD_DATA_VENDOR_DEF, PD_PLUG_FROM_CABLE, 0,
+ pd_port[port].msg_tx_id, 5, pd_port[port].rev, 0)));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_vdm_header));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_vdo_id_header));
TEST_ASSERT(pd_test_tx_msg_verify_word(port, expected_vdo_cert));
@@ -1268,8 +1254,8 @@ static int test_ctvpd_behavior_case5(void)
* e. CTVPD connects VBUS from the Charge-Through side to the Host
* side
*/
- wait_for_state_change(port, PD_T_TRY_CC_DEBOUNCE +
- PD_T_DRP_TRY + 40 * MSEC);
+ wait_for_state_change(port,
+ PD_T_TRY_CC_DEBOUNCE + PD_T_DRP_TRY + 40 * MSEC);
TEST_ASSERT(get_state_tc(port) == TC_TRY_WAIT_SRC);
TEST_ASSERT(check_host_rpusb());
@@ -1502,7 +1488,7 @@ static int test_ctvpd_behavior_case6(void)
}
#endif
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_typec_ctvpd.tasklist b/test/usb_typec_ctvpd.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_typec_ctvpd.tasklist
+++ b/test/usb_typec_ctvpd.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_typec_drp_acc_trysrc.c b/test/usb_typec_drp_acc_trysrc.c
index 106370db72..28da84e228 100644
--- a/test/usb_typec_drp_acc_trysrc.c
+++ b/test/usb_typec_drp_acc_trysrc.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -34,11 +34,12 @@ const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_MAX_COUNT] = {
},
};
-const struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .driver = &mock_usb_mux_driver,
- }
-};
+const struct usb_mux_chain usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { {
+ .mux =
+ &(const struct usb_mux){
+ .driver = &mock_usb_mux_driver,
+ },
+} };
void charge_manager_set_ceil(int port, enum ceil_requestor requestor, int ceil)
{
@@ -732,8 +733,8 @@ __maybe_unused static int test_auto_toggle_delay_early_connect(void)
/* Ensure the auto toggle enable was never called */
task_wait_event(SECOND);
- TEST_EQ(mock_tcpc.first_call_to_enable_auto_toggle,
- TIMER_DISABLED, "%" PRIu64);
+ TEST_EQ(mock_tcpc.first_call_to_enable_auto_toggle, TIMER_DISABLED,
+ "%" PRIu64);
/* Ensure that the first CC set call was to Rd. */
TEST_GT(cc_pull_count, 0, "%d");
@@ -816,7 +817,7 @@ void before_test(void)
mock_tcpc.should_print_call = true;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/usb_typec_drp_acc_trysrc.mocklist b/test/usb_typec_drp_acc_trysrc.mocklist
index 71c2e2cee9..cbff5e73eb 100644
--- a/test/usb_typec_drp_acc_trysrc.mocklist
+++ b/test/usb_typec_drp_acc_trysrc.mocklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/usb_typec_drp_acc_trysrc.tasklist b/test/usb_typec_drp_acc_trysrc.tasklist
index eb41326e3e..5c7f804157 100644
--- a/test/usb_typec_drp_acc_trysrc.tasklist
+++ b/test/usb_typec_drp_acc_trysrc.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/utils.c b/test/utils.c
index 3fc70cdc75..fccfee0923 100644
--- a/test/utils.c
+++ b/test/utils.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -14,171 +14,14 @@
#include "util.h"
#include "watchdog.h"
-static int test_memmove(void)
-{
- int i;
- timestamp_t t0, t1, t2, t3;
- char *buf;
- const int buf_size = 1000;
- const int len = 400;
- const int iteration = 1000;
-
- TEST_ASSERT(shared_mem_acquire(buf_size, &buf) == EC_SUCCESS);
-
- for (i = 0; i < len; ++i)
- buf[i] = i & 0x7f;
- for (i = len; i < buf_size; ++i)
- buf[i] = 0;
-
- t0 = get_time();
- for (i = 0; i < iteration; ++i)
- memmove(buf + 101, buf, len); /* unaligned */
- t1 = get_time();
- TEST_ASSERT_ARRAY_EQ(buf + 101, buf, len);
- ccprintf(" (speed gain: %" PRId64 " ->", t1.val-t0.val);
-
- t2 = get_time();
- for (i = 0; i < iteration; ++i)
- memmove(buf + 100, buf, len); /* aligned */
- t3 = get_time();
- ccprintf(" %" PRId64 " us) ", t3.val-t2.val);
- TEST_ASSERT_ARRAY_EQ(buf + 100, buf, len);
-
- if (!IS_ENABLED(EMU_BUILD))
- TEST_ASSERT((t1.val - t0.val) > (t3.val - t2.val));
-
- /* Test small moves */
- memmove(buf + 1, buf, 1);
- TEST_ASSERT_ARRAY_EQ(buf + 1, buf, 1);
- memmove(buf + 5, buf, 4);
- memmove(buf + 1, buf, 4);
- TEST_ASSERT_ARRAY_EQ(buf + 1, buf + 5, 4);
-
- shared_mem_release(buf);
- return EC_SUCCESS;
-}
-
-static int test_memcpy(void)
-{
- int i;
- timestamp_t t0, t1, t2, t3;
- char *buf;
- const int buf_size = 1000;
- const int len = 400;
- const int dest_offset = 500;
- const int iteration = 1000;
-
- TEST_ASSERT(shared_mem_acquire(buf_size, &buf) == EC_SUCCESS);
-
- for (i = 0; i < len; ++i)
- buf[i] = i & 0x7f;
- for (i = len; i < buf_size; ++i)
- buf[i] = 0;
-
- t0 = get_time();
- for (i = 0; i < iteration; ++i)
- memcpy(buf + dest_offset + 1, buf, len); /* unaligned */
- t1 = get_time();
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf, len);
- ccprintf(" (speed gain: %" PRId64 " ->", t1.val-t0.val);
-
- t2 = get_time();
- for (i = 0; i < iteration; ++i)
- memcpy(buf + dest_offset, buf, len); /* aligned */
- t3 = get_time();
- ccprintf(" %" PRId64 " us) ", t3.val-t2.val);
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset, buf, len);
-
- if (!IS_ENABLED(EMU_BUILD))
- TEST_ASSERT((t1.val - t0.val) > (t3.val - t2.val));
-
- memcpy(buf + dest_offset + 1, buf + 1, len - 1);
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf + 1, len - 1);
-
- /* Test small copies */
- memcpy(buf + dest_offset, buf, 1);
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset, buf, 1);
- memcpy(buf + dest_offset, buf, 4);
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset, buf, 4);
- memcpy(buf + dest_offset + 1, buf, 1);
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf, 1);
- memcpy(buf + dest_offset + 1, buf, 4);
- TEST_ASSERT_ARRAY_EQ(buf + dest_offset + 1, buf, 4);
-
- shared_mem_release(buf);
- return EC_SUCCESS;
-}
-
-/* Plain memset, used as a reference to measure speed gain */
-static void *dumb_memset(void *dest, int c, int len)
-{
- char *d = (char *)dest;
- while (len > 0) {
- *(d++) = c;
- len--;
- }
- return dest;
-}
-
-static int test_memset(void)
-{
- int i;
- timestamp_t t0, t1, t2, t3;
- char *buf;
- const int buf_size = 1000;
- const int len = 400;
- const int iteration = 1000;
-
- TEST_ASSERT(shared_mem_acquire(buf_size, &buf) == EC_SUCCESS);
-
- t0 = get_time();
- for (i = 0; i < iteration; ++i)
- dumb_memset(buf, 1, len);
- t1 = get_time();
- TEST_ASSERT_MEMSET(buf, (char)1, len);
- ccprintf(" (speed gain: %" PRId64 " ->", t1.val-t0.val);
-
- t2 = get_time();
- for (i = 0; i < iteration; ++i)
- memset(buf, 1, len);
- t3 = get_time();
- TEST_ASSERT_MEMSET(buf, (char)1, len);
- ccprintf(" %" PRId64 " us) ", t3.val-t2.val);
-
- if (!IS_ENABLED(EMU_BUILD))
- TEST_ASSERT((t1.val - t0.val) > (t3.val - t2.val));
-
- memset(buf, 128, len);
- TEST_ASSERT_MEMSET(buf, (char)128, len);
-
- memset(buf, -2, len);
- TEST_ASSERT_MEMSET(buf, (char)-2, len);
-
- memset(buf + 1, 1, len - 2);
- TEST_ASSERT_MEMSET(buf + 1, (char)1, len - 2);
-
- shared_mem_release(buf);
- return EC_SUCCESS;
-}
-
-static int test_memchr(void)
-{
- char *buf = "1234";
-
- TEST_ASSERT(memchr("123567890", '4', 8) == NULL);
- TEST_ASSERT(memchr("123", '3', 2) == NULL);
- TEST_ASSERT(memchr(buf, '3', 4) == buf + 2);
- TEST_ASSERT(memchr(buf, '4', 4) == buf + 3);
- return EC_SUCCESS;
-}
-
static int test_uint64divmod_0(void)
{
uint64_t n = 8567106442584750ULL;
int d = 54870071;
int r = uint64divmod(&n, d);
- TEST_CHECK(r == 5991285 && n == 156134415ULL);
+ TEST_ASSERT(r == 5991285 && n == 156134415ULL);
+ return EC_SUCCESS;
}
static int test_uint64divmod_1(void)
@@ -187,7 +30,8 @@ static int test_uint64divmod_1(void)
int d = 2;
int r = uint64divmod(&n, d);
- TEST_CHECK(r == 0 && n == 4283553221292375ULL);
+ TEST_ASSERT(r == 0 && n == 4283553221292375ULL);
+ return EC_SUCCESS;
}
static int test_uint64divmod_2(void)
@@ -196,7 +40,8 @@ static int test_uint64divmod_2(void)
int d = 0;
int r = uint64divmod(&n, d);
- TEST_CHECK(r == 0 && n == 0ULL);
+ TEST_ASSERT(r == 0 && n == 0ULL);
+ return EC_SUCCESS;
}
static int test_get_next_bit(void)
@@ -361,25 +206,24 @@ static int test_mula32(void)
}
t1 = get_time();
- ccprintf("After %d iterations, r=%08x%08x, r2=%08x%08x (time: %d)\n",
- i, (uint32_t)(r >> 32), (uint32_t)r,
- (uint32_t)(r2 >> 32), (uint32_t)r2, t1.le.lo-t0.le.lo);
- TEST_ASSERT(r == 0x9df59b9fb0ab9d96L);
+ ccprintf("After %d iterations, r=%08x%08x, r2=%08x%08x (time: %d)\n", i,
+ (uint32_t)(r >> 32), (uint32_t)r, (uint32_t)(r2 >> 32),
+ (uint32_t)r2, t1.le.lo - t0.le.lo);
+ TEST_ASSERT(r == 0x9df59b9fb0ab9d96L);
TEST_ASSERT(r2 == 0x9df59b9fb0beabd6L);
/* well okay then */
return EC_SUCCESS;
}
-#define SWAP_TEST_HARNESS(t, x, y) \
- do { \
- t a = x, b = y; \
- swap(a, b); \
+#define SWAP_TEST_HARNESS(t, x, y) \
+ do { \
+ t a = x, b = y; \
+ swap(a, b); \
TEST_ASSERT(a == y); \
TEST_ASSERT(b == x); \
} while (0)
-
static int test_swap(void)
{
SWAP_TEST_HARNESS(uint8_t, UINT8_MAX, 0);
@@ -455,15 +299,15 @@ test_static int test_alignment_log2(void)
test_static int test_binary_first_base3_from_bits(void)
{
- int n0[] = {0, 0, 0}; /* LSB first */
- int n7[] = {1, 1, 1};
- int n8[] = {2, 0, 0};
- int n9[] = {2, 1, 0};
- int n10[] = {0, 2, 0};
- int n11[] = {1, 2, 0};
- int n18[] = {0, 0, 2};
- int n26[] = {2, 2, 2};
- int n38[] = {1, 2, 0, 1};
+ int n0[] = { 0, 0, 0 }; /* LSB first */
+ int n7[] = { 1, 1, 1 };
+ int n8[] = { 2, 0, 0 };
+ int n9[] = { 2, 1, 0 };
+ int n10[] = { 0, 2, 0 };
+ int n11[] = { 1, 2, 0 };
+ int n18[] = { 0, 0, 2 };
+ int n26[] = { 2, 2, 2 };
+ int n38[] = { 1, 2, 0, 1 };
TEST_EQ(binary_first_base3_from_bits(n0, ARRAY_SIZE(n0)), 0, "%d");
TEST_EQ(binary_first_base3_from_bits(n7, ARRAY_SIZE(n7)), 7, "%d");
@@ -477,14 +321,68 @@ test_static int test_binary_first_base3_from_bits(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+test_static int test_parse_bool(void)
+{
+ int bool_val;
+ int rv;
+
+ /* False cases. */
+
+ bool_val = 1;
+ rv = parse_bool("off", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 0, "%d");
+
+ bool_val = 1;
+ rv = parse_bool("dis", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 0, "%d");
+
+ bool_val = 1;
+ rv = parse_bool("f", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 0, "%d");
+
+ bool_val = 1;
+ rv = parse_bool("n", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 0, "%d");
+
+ /* True cases. */
+
+ bool_val = 0;
+ rv = parse_bool("on", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 1, "%d");
+
+ bool_val = 0;
+ rv = parse_bool("ena", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 1, "%d");
+
+ bool_val = 0;
+ rv = parse_bool("t", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 1, "%d");
+
+ bool_val = 0;
+ rv = parse_bool("y", &bool_val);
+ TEST_EQ(rv, 1, "%d");
+ TEST_EQ(bool_val, 1, "%d");
+
+ /* Error case. */
+ bool_val = -1;
+ rv = parse_bool("a", &bool_val);
+ TEST_EQ(rv, 0, "%d");
+ TEST_EQ(bool_val, -1, "%d");
+
+ return EC_SUCCESS;
+}
+
+void run_test(int argc, const char **argv)
{
test_reset();
- RUN_TEST(test_memmove);
- RUN_TEST(test_memcpy);
- RUN_TEST(test_memset);
- RUN_TEST(test_memchr);
RUN_TEST(test_uint64divmod_0);
RUN_TEST(test_uint64divmod_1);
RUN_TEST(test_uint64divmod_2);
@@ -499,6 +397,7 @@ void run_test(int argc, char **argv)
RUN_TEST(test_safe_memcmp);
RUN_TEST(test_alignment_log2);
RUN_TEST(test_binary_first_base3_from_bits);
+ RUN_TEST(test_parse_bool);
test_print_result();
}
diff --git a/test/utils.tasklist b/test/utils.tasklist
index da0ab6211a..100cb6b5bd 100644
--- a/test/utils.tasklist
+++ b/test/utils.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/utils_str.c b/test/utils_str.c
index f184abffa6..36ad63989e 100644
--- a/test/utils_str.c
+++ b/test/utils_str.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -13,34 +13,6 @@
#include "timer.h"
#include "util.h"
-static int test_isalpha(void)
-{
- TEST_CHECK(isalpha('a') && isalpha('z') && isalpha('A') &&
- isalpha('Z') && !isalpha('0') && !isalpha('~') &&
- !isalpha(' ') && !isalpha('\0') && !isalpha('\n'));
-}
-
-static int test_isprint(void)
-{
- TEST_CHECK(isprint('a') && isprint('z') && isprint('A') &&
- isprint('Z') && isprint('0') && isprint('~') &&
- isprint(' ') && !isprint('\0') && !isprint('\n'));
-}
-
-static int test_strstr(void)
-{
- const char s1[] = "abcde";
-
- TEST_ASSERT(strstr(s1, "ab") == s1);
- TEST_ASSERT(strstr(s1, "") == NULL);
- TEST_ASSERT(strstr("", "ab") == NULL);
- TEST_ASSERT(strstr("", "x") == NULL);
- TEST_ASSERT(strstr(s1, "de") == &s1[3]);
- TEST_ASSERT(strstr(s1, "def") == NULL);
-
- return EC_SUCCESS;
-}
-
static int test_strtoi(void)
{
char *e;
@@ -99,64 +71,6 @@ static int test_strtoi(void)
return EC_SUCCESS;
}
-static int test_strtoull(void)
-{
- char *e;
-
- TEST_ASSERT(strtoull("10", &e, 0) == 10);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("010", &e, 0) == 8);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("+010", &e, 0) == 8);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("-010", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '-'));
- TEST_ASSERT(strtoull("0x1f z", &e, 0) == 31);
- TEST_ASSERT(e && (*e == ' '));
- TEST_ASSERT(strtoull("0X1f z", &e, 0) == 31);
- TEST_ASSERT(e && (*e == ' '));
- TEST_ASSERT(strtoull("10a", &e, 16) == 266);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("0x02C", &e, 16) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("+0x02C", &e, 16) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("-0x02C", &e, 16) == 0);
- TEST_ASSERT(e && (*e == '-'));
- TEST_ASSERT(strtoull("0x02C", &e, 0) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("+0x02C", &e, 0) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("-0x02C", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '-'));
- TEST_ASSERT(strtoull("0X02C", &e, 16) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("+0X02C", &e, 16) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("-0X02C", &e, 16) == 0);
- TEST_ASSERT(e && (*e == '-'));
- TEST_ASSERT(strtoull("0X02C", &e, 0) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("+0X02C", &e, 0) == 44);
- TEST_ASSERT(e && (*e == '\0'));
- TEST_ASSERT(strtoull("-0X02C", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '-'));
- TEST_ASSERT(strtoull(" -12", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '-'));
- TEST_ASSERT(strtoull("!", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '!'));
- TEST_ASSERT(strtoull("+!", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '!'));
- TEST_ASSERT(strtoull("+0!", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '!'));
- TEST_ASSERT(strtoull("+0x!", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '!'));
- TEST_ASSERT(strtoull("+0X!", &e, 0) == 0);
- TEST_ASSERT(e && (*e == '!'));
-
- return EC_SUCCESS;
-}
-
static int test_parse_bool(void)
{
int v;
@@ -190,123 +104,13 @@ static int test_strzcpy(void)
return EC_SUCCESS;
}
-static int test_strncpy(void)
-{
- char dest[10];
-
- strncpy(dest, "test", 10);
- TEST_ASSERT_ARRAY_EQ("test", dest, 5);
- strncpy(dest, "12345", 6);
- TEST_ASSERT_ARRAY_EQ("12345", dest, 6);
- strncpy(dest, "testtesttest", 10);
- TEST_ASSERT_ARRAY_EQ("testtestte", dest, 10);
-
- return EC_SUCCESS;
-}
-
-static int test_strncmp(void)
-{
- TEST_ASSERT(strncmp("123", "123", 8) == 0);
- TEST_ASSERT(strncmp("789", "456", 8) > 0);
- TEST_ASSERT(strncmp("abc", "abd", 4) < 0);
- TEST_ASSERT(strncmp("abc", "abd", 2) == 0);
- return EC_SUCCESS;
-}
-
-static int test_strlen(void)
-{
- TEST_CHECK(strlen("this is a string") == 16);
-}
-
-static int test_strnlen(void)
-{
- TEST_ASSERT(strnlen("this is a string", 17) == 16);
- TEST_ASSERT(strnlen("this is a string", 16) == 16);
- TEST_ASSERT(strnlen("this is a string", 5) == 5);
-
- return EC_SUCCESS;
-}
-
-static int test_strcasecmp(void)
-{
- TEST_CHECK((strcasecmp("test string", "TEST strIng") == 0) &&
- (strcasecmp("test123!@#", "TesT123!@#") == 0) &&
- (strcasecmp("lower", "UPPER") != 0));
-}
-
-static int test_strncasecmp(void)
-{
- TEST_CHECK((strncasecmp("test string", "TEST str", 4) == 0) &&
- (strncasecmp("test string", "TEST str", 8) == 0) &&
- (strncasecmp("test123!@#", "TesT321!@#", 5) != 0) &&
- (strncasecmp("test123!@#", "TesT321!@#", 4) == 0) &&
- (strncasecmp("1test123!@#", "1TesT321!@#", 5) == 0) &&
- (strncasecmp("1test123", "teststr", 0) == 0));
-}
-
-static int test_atoi(void)
-{
- TEST_CHECK((atoi(" 901") == 901) &&
- (atoi("-12c") == -12) &&
- (atoi(" 0 ") == 0) &&
- (atoi("\t111") == 111));
-}
-
-static int test_snprintf(void)
-{
- char buffer[32];
-
- TEST_CHECK(snprintf(buffer, sizeof(buffer), "%u", 1234) == 4);
- TEST_CHECK(strncmp(buffer, "1234", sizeof(buffer)));
-}
-
-static int test_strcspn(void)
-{
- const char str1[] = "abc";
- const char str2[] = "This is a string\nwith newlines!";
-
- TEST_EQ(strcspn(str1, "a"), (size_t)0, "%zu");
- TEST_EQ(strcspn(str1, "b"), (size_t)1, "%zu");
- TEST_EQ(strcspn(str1, "c"), (size_t)2, "%zu");
- TEST_EQ(strcspn(str1, "ccc"), (size_t)2, "%zu");
- TEST_EQ(strcspn(str1, "cba"), (size_t)0, "%zu");
- TEST_EQ(strcspn(str1, "cb"), (size_t)1, "%zu");
- TEST_EQ(strcspn(str1, "bc"), (size_t)1, "%zu");
- TEST_EQ(strcspn(str1, "cbc"), (size_t)1, "%zu");
- TEST_EQ(strcspn(str1, "z"), strlen(str1), "%zu");
- TEST_EQ(strcspn(str1, "xyz"), strlen(str1), "%zu");
- TEST_EQ(strcspn(str1, ""), strlen(str1), "%zu");
-
- TEST_EQ(strcspn(str2, " "), (size_t)4, "%zu");
- TEST_EQ(strcspn(str2, "\n"), (size_t)16, "%zu");
- TEST_EQ(strcspn(str2, "\n "), (size_t)4, "%zu");
- TEST_EQ(strcspn(str2, "!"), strlen(str2) - 1, "%zu");
- TEST_EQ(strcspn(str2, "z"), strlen(str2), "%zu");
- TEST_EQ(strcspn(str2, "z!"), strlen(str2) - 1, "%zu");
-
- return EC_SUCCESS;
-}
-
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
- RUN_TEST(test_isalpha);
- RUN_TEST(test_isprint);
- RUN_TEST(test_strstr);
RUN_TEST(test_strtoi);
- RUN_TEST(test_strtoull);
RUN_TEST(test_parse_bool);
RUN_TEST(test_strzcpy);
- RUN_TEST(test_strncpy);
- RUN_TEST(test_strncmp);
- RUN_TEST(test_strlen);
- RUN_TEST(test_strnlen);
- RUN_TEST(test_strcasecmp);
- RUN_TEST(test_strncasecmp);
- RUN_TEST(test_atoi);
- RUN_TEST(test_snprintf);
- RUN_TEST(test_strcspn);
test_print_result();
}
diff --git a/test/utils_str.tasklist b/test/utils_str.tasklist
index 7150f17cbd..6373a70ab1 100644
--- a/test/utils_str.tasklist
+++ b/test/utils_str.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/vboot.c b/test/vboot.c
index 7dab08ac05..f75208de90 100644
--- a/test/vboot.c
+++ b/test/vboot.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -131,7 +131,7 @@ static int test_vboot(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
test_reset();
diff --git a/test/vboot.tasklist b/test/vboot.tasklist
index 7150f17cbd..6373a70ab1 100644
--- a/test/vboot.tasklist
+++ b/test/vboot.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/version.c b/test/version.c
index ad7571d5f6..9731863f29 100644
--- a/test/version.c
+++ b/test/version.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -139,7 +139,7 @@ static int test_image_unknown(void)
return EC_SUCCESS;
}
-void run_test(int argc, char **argv)
+void run_test(int argc, const char **argv)
{
RUN_TEST(test_version);
RUN_TEST(test_fwid);
diff --git a/test/version.tasklist b/test/version.tasklist
index e54ea001bd..cd866d90e1 100644
--- a/test/version.tasklist
+++ b/test/version.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2021 The Chromium OS Authors. All rights reserved.
+/* Copyright 2021 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
diff --git a/test/vpd_api.c b/test/vpd_api.c
index 65e86adb96..51a2e76cd6 100644
--- a/test/vpd_api.c
+++ b/test/vpd_api.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -33,11 +33,11 @@
#endif
#ifndef CC_RA
-#define CC_RA(port, cc, sel) (cc < pd_src_rd_threshold[ct_cc_rp_value])
+#define CC_RA(port, cc, sel) (cc < pd_src_rd_threshold[ct_cc_rp_value])
#endif
#define CC_RD(cc) ((cc >= PD_SRC_RD_THRESHOLD) && (cc < PD_SRC_VNC))
#ifndef CC_NC
-#define CC_NC(port, cc, sel) (cc >= PD_SRC_VNC)
+#define CC_NC(port, cc, sel) (cc >= PD_SRC_VNC)
#endif
/*
@@ -54,7 +54,7 @@
#define PD_SNK_VA PD_SNK_VA_MV
#endif
-#define CC_RP(cc) (cc >= PD_SNK_VA)
+#define CC_RP(cc) (cc >= PD_SNK_VA)
/* Mock Board State */
static enum vpd_pwr mock_vconn_pwr_sel_odl;
@@ -266,7 +266,7 @@ static int vpd_cc_voltage_to_status(int cc_volt, int cc_pull)
return TYPEC_CC_VOLT_RA;
else
return TYPEC_CC_VOLT_RD;
- /* If we have a pull-down, then we are sink, check for Rp. */
+ /* If we have a pull-down, then we are sink, check for Rp. */
} else if (cc_pull == TYPEC_CC_RD || cc_pull == TYPEC_CC_RA_RD) {
if (cc_volt >= TYPE_C_SRC_3000_THRESHOLD)
return TYPEC_CC_VOLT_RP_3_0;
diff --git a/test/vpd_api.h b/test/vpd_api.h
index f848138172..62dab34377 100644
--- a/test/vpd_api.h
+++ b/test/vpd_api.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -16,39 +16,22 @@
* voltage (set by selecting the proper Rd resistor). Any voltage below
* TYPE_C_SRC_DEFAULT_THRESHOLD will not be identified as a type C charger.
*/
-#define TYPE_C_SRC_DEFAULT_THRESHOLD 200 /* mV */
-#define TYPE_C_SRC_1500_THRESHOLD 660 /* mV */
-#define TYPE_C_SRC_3000_THRESHOLD 1230 /* mV */
+#define TYPE_C_SRC_DEFAULT_THRESHOLD 200 /* mV */
+#define TYPE_C_SRC_1500_THRESHOLD 660 /* mV */
+#define TYPE_C_SRC_3000_THRESHOLD 1230 /* mV */
+enum vpd_pin { PIN_ADC, PIN_CMP, PIN_GPO };
-enum vpd_pin {
- PIN_ADC,
- PIN_CMP,
- PIN_GPO
-};
-
-enum vpd_gpo {
- GPO_HZ,
- GPO_HIGH,
- GPO_LOW
-};
+enum vpd_gpo { GPO_HZ, GPO_HIGH, GPO_LOW };
enum vpd_pwr {
PWR_VCONN,
PWR_VBUS,
};
-enum vpd_cc {
- CT_OPEN,
- CT_CC1,
- CT_CC2
-};
+enum vpd_cc { CT_OPEN, CT_CC1, CT_CC2 };
-enum vpd_billboard {
- BB_NONE,
- BB_SRC,
- BB_SNK
-};
+enum vpd_billboard { BB_NONE, BB_SRC, BB_SNK };
struct mock_pin {
enum vpd_pin cfg;
diff --git a/test/x25519.tasklist b/test/x25519.tasklist
index 80072bb620..329f9a3d28 100644
--- a/test/x25519.tasklist
+++ b/test/x25519.tasklist
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/