From 4e41b13a218dd08597fbda2fee0b1324ef6979da Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Tue, 10 Nov 2026 14:22:57 -0600 Subject: [PATCH] Build Civic AOL recovery against current Dom --- .../locationd/models/generated/car.cpp | 684 +++--- .../locationd/models/generated/car.h | 42 +- .../locationd/models/generated/libcar.so | Bin 24120528 -> 24120528 bytes .../locationd/models/generated/libpose.so | Bin 20605632 -> 20605624 bytes .../locationd/models/generated/pose.cpp | 1938 ++++++++--------- .../locationd/models/generated/pose.h | 26 +- panda/board/obj/body_h7.bin.signed | Bin 205388 -> 205388 bytes panda/board/obj/bootstub.body_h7.bin | Bin 13512 -> 13512 bytes panda/board/obj/bootstub.panda.bin | Bin 12072 -> 12072 bytes .../obj/bootstub.panda_can_ignition_only.bin | Bin 12072 -> 12072 bytes panda/board/obj/bootstub.panda_h7.bin | Bin 20604 -> 20604 bytes .../bootstub.panda_h7_can_ignition_only.bin | Bin 20604 -> 20604 bytes .../obj/bootstub.panda_h7_hkg_remote.bin | Bin 20604 -> 20604 bytes ....panda_h7_hkg_remote_can_ignition_only.bin | Bin 20604 -> 20604 bytes panda/board/obj/bootstub.panda_h7_remote.bin | Bin 20604 -> 20604 bytes ...stub.panda_h7_remote_can_ignition_only.bin | Bin 20604 -> 20604 bytes .../obj/bootstub.panda_h7_tesla_wake.bin | Bin 20604 -> 20604 bytes ....panda_h7_tesla_wake_can_ignition_only.bin | Bin 20604 -> 20604 bytes panda/board/obj/bootstub.panda_hkg_remote.bin | Bin 12072 -> 12072 bytes ...tub.panda_hkg_remote_can_ignition_only.bin | Bin 12072 -> 12072 bytes panda/board/obj/bootstub.panda_remote.bin | Bin 12072 -> 12072 bytes ...ootstub.panda_remote_can_ignition_only.bin | Bin 12072 -> 12072 bytes panda/board/obj/bootstub.panda_tesla_wake.bin | Bin 12072 -> 12072 bytes ...tub.panda_tesla_wake_can_ignition_only.bin | Bin 12072 -> 12072 bytes panda/board/obj/gitversion.h | 2 +- panda/board/obj/panda.bin.signed | Bin 192496 -> 192496 bytes .../obj/panda_can_ignition_only.bin.signed | Bin 192472 -> 192472 bytes panda/board/obj/panda_h7.bin.signed | Bin 209088 -> 209088 bytes .../obj/panda_h7_can_ignition_only.bin.signed | Bin 209064 -> 209064 bytes .../board/obj/panda_h7_hkg_remote.bin.signed | Bin 209208 -> 209208 bytes ...h7_hkg_remote_can_ignition_only.bin.signed | Bin 209192 -> 209192 bytes panda/board/obj/panda_h7_remote.bin.signed | Bin 209088 -> 209088 bytes ...nda_h7_remote_can_ignition_only.bin.signed | Bin 209064 -> 209064 bytes .../board/obj/panda_h7_tesla_wake.bin.signed | Bin 209220 -> 209220 bytes ...h7_tesla_wake_can_ignition_only.bin.signed | Bin 209196 -> 209196 bytes panda/board/obj/panda_hkg_remote.bin.signed | Bin 192608 -> 192608 bytes ...da_hkg_remote_can_ignition_only.bin.signed | Bin 192588 -> 192588 bytes panda/board/obj/panda_remote.bin.signed | Bin 192492 -> 192492 bytes .../panda_remote_can_ignition_only.bin.signed | Bin 192468 -> 192468 bytes panda/board/obj/panda_tesla_wake.bin.signed | Bin 192624 -> 192624 bytes ...da_tesla_wake_can_ignition_only.bin.signed | Bin 192600 -> 192600 bytes panda/board/obj/version | 2 +- prebuilt.json | 2 +- 43 files changed, 1348 insertions(+), 1348 deletions(-) diff --git a/openpilot/selfdrive/locationd/models/generated/car.cpp b/openpilot/selfdrive/locationd/models/generated/car.cpp index 56b1811501..06ea3aaad3 100644 --- a/openpilot/selfdrive/locationd/models/generated/car.cpp +++ b/openpilot/selfdrive/locationd/models/generated/car.cpp @@ -45,326 +45,326 @@ const static double MAHA_THRESH_31 = 3.8414588206941227; * * * This file is part of 'ekf' * ******************************************************************************/ -void err_fun(double *nom_x, double *delta_x, double *out_1014334527327209848) { - out_1014334527327209848[0] = delta_x[0] + nom_x[0]; - out_1014334527327209848[1] = delta_x[1] + nom_x[1]; - out_1014334527327209848[2] = delta_x[2] + nom_x[2]; - out_1014334527327209848[3] = delta_x[3] + nom_x[3]; - out_1014334527327209848[4] = delta_x[4] + nom_x[4]; - out_1014334527327209848[5] = delta_x[5] + nom_x[5]; - out_1014334527327209848[6] = delta_x[6] + nom_x[6]; - out_1014334527327209848[7] = delta_x[7] + nom_x[7]; - out_1014334527327209848[8] = delta_x[8] + nom_x[8]; +void err_fun(double *nom_x, double *delta_x, double *out_2633990546043802948) { + out_2633990546043802948[0] = delta_x[0] + nom_x[0]; + out_2633990546043802948[1] = delta_x[1] + nom_x[1]; + out_2633990546043802948[2] = delta_x[2] + nom_x[2]; + out_2633990546043802948[3] = delta_x[3] + nom_x[3]; + out_2633990546043802948[4] = delta_x[4] + nom_x[4]; + out_2633990546043802948[5] = delta_x[5] + nom_x[5]; + out_2633990546043802948[6] = delta_x[6] + nom_x[6]; + out_2633990546043802948[7] = delta_x[7] + nom_x[7]; + out_2633990546043802948[8] = delta_x[8] + nom_x[8]; } -void inv_err_fun(double *nom_x, double *true_x, double *out_3206419511188405682) { - out_3206419511188405682[0] = -nom_x[0] + true_x[0]; - out_3206419511188405682[1] = -nom_x[1] + true_x[1]; - out_3206419511188405682[2] = -nom_x[2] + true_x[2]; - out_3206419511188405682[3] = -nom_x[3] + true_x[3]; - out_3206419511188405682[4] = -nom_x[4] + true_x[4]; - out_3206419511188405682[5] = -nom_x[5] + true_x[5]; - out_3206419511188405682[6] = -nom_x[6] + true_x[6]; - out_3206419511188405682[7] = -nom_x[7] + true_x[7]; - out_3206419511188405682[8] = -nom_x[8] + true_x[8]; +void inv_err_fun(double *nom_x, double *true_x, double *out_1648181344021920920) { + out_1648181344021920920[0] = -nom_x[0] + true_x[0]; + out_1648181344021920920[1] = -nom_x[1] + true_x[1]; + out_1648181344021920920[2] = -nom_x[2] + true_x[2]; + out_1648181344021920920[3] = -nom_x[3] + true_x[3]; + out_1648181344021920920[4] = -nom_x[4] + true_x[4]; + out_1648181344021920920[5] = -nom_x[5] + true_x[5]; + out_1648181344021920920[6] = -nom_x[6] + true_x[6]; + out_1648181344021920920[7] = -nom_x[7] + true_x[7]; + out_1648181344021920920[8] = -nom_x[8] + true_x[8]; } -void H_mod_fun(double *state, double *out_992849709061666640) { - out_992849709061666640[0] = 1.0; - out_992849709061666640[1] = 0.0; - out_992849709061666640[2] = 0.0; - out_992849709061666640[3] = 0.0; - out_992849709061666640[4] = 0.0; - out_992849709061666640[5] = 0.0; - out_992849709061666640[6] = 0.0; - out_992849709061666640[7] = 0.0; - out_992849709061666640[8] = 0.0; - out_992849709061666640[9] = 0.0; - out_992849709061666640[10] = 1.0; - out_992849709061666640[11] = 0.0; - out_992849709061666640[12] = 0.0; - out_992849709061666640[13] = 0.0; - out_992849709061666640[14] = 0.0; - out_992849709061666640[15] = 0.0; - out_992849709061666640[16] = 0.0; - out_992849709061666640[17] = 0.0; - out_992849709061666640[18] = 0.0; - out_992849709061666640[19] = 0.0; - out_992849709061666640[20] = 1.0; - out_992849709061666640[21] = 0.0; - out_992849709061666640[22] = 0.0; - out_992849709061666640[23] = 0.0; - out_992849709061666640[24] = 0.0; - out_992849709061666640[25] = 0.0; - out_992849709061666640[26] = 0.0; - out_992849709061666640[27] = 0.0; - out_992849709061666640[28] = 0.0; - out_992849709061666640[29] = 0.0; - out_992849709061666640[30] = 1.0; - out_992849709061666640[31] = 0.0; - out_992849709061666640[32] = 0.0; - out_992849709061666640[33] = 0.0; - out_992849709061666640[34] = 0.0; - out_992849709061666640[35] = 0.0; - out_992849709061666640[36] = 0.0; - out_992849709061666640[37] = 0.0; - out_992849709061666640[38] = 0.0; - out_992849709061666640[39] = 0.0; - out_992849709061666640[40] = 1.0; - out_992849709061666640[41] = 0.0; - out_992849709061666640[42] = 0.0; - out_992849709061666640[43] = 0.0; - out_992849709061666640[44] = 0.0; - out_992849709061666640[45] = 0.0; - out_992849709061666640[46] = 0.0; - out_992849709061666640[47] = 0.0; - out_992849709061666640[48] = 0.0; - out_992849709061666640[49] = 0.0; - out_992849709061666640[50] = 1.0; - out_992849709061666640[51] = 0.0; - out_992849709061666640[52] = 0.0; - out_992849709061666640[53] = 0.0; - out_992849709061666640[54] = 0.0; - out_992849709061666640[55] = 0.0; - out_992849709061666640[56] = 0.0; - out_992849709061666640[57] = 0.0; - out_992849709061666640[58] = 0.0; - out_992849709061666640[59] = 0.0; - out_992849709061666640[60] = 1.0; - out_992849709061666640[61] = 0.0; - out_992849709061666640[62] = 0.0; - out_992849709061666640[63] = 0.0; - out_992849709061666640[64] = 0.0; - out_992849709061666640[65] = 0.0; - out_992849709061666640[66] = 0.0; - out_992849709061666640[67] = 0.0; - out_992849709061666640[68] = 0.0; - out_992849709061666640[69] = 0.0; - out_992849709061666640[70] = 1.0; - out_992849709061666640[71] = 0.0; - out_992849709061666640[72] = 0.0; - out_992849709061666640[73] = 0.0; - out_992849709061666640[74] = 0.0; - out_992849709061666640[75] = 0.0; - out_992849709061666640[76] = 0.0; - out_992849709061666640[77] = 0.0; - out_992849709061666640[78] = 0.0; - out_992849709061666640[79] = 0.0; - out_992849709061666640[80] = 1.0; +void H_mod_fun(double *state, double *out_6471050303960736584) { + out_6471050303960736584[0] = 1.0; + out_6471050303960736584[1] = 0.0; + out_6471050303960736584[2] = 0.0; + out_6471050303960736584[3] = 0.0; + out_6471050303960736584[4] = 0.0; + out_6471050303960736584[5] = 0.0; + out_6471050303960736584[6] = 0.0; + out_6471050303960736584[7] = 0.0; + out_6471050303960736584[8] = 0.0; + out_6471050303960736584[9] = 0.0; + out_6471050303960736584[10] = 1.0; + out_6471050303960736584[11] = 0.0; + out_6471050303960736584[12] = 0.0; + out_6471050303960736584[13] = 0.0; + out_6471050303960736584[14] = 0.0; + out_6471050303960736584[15] = 0.0; + out_6471050303960736584[16] = 0.0; + out_6471050303960736584[17] = 0.0; + out_6471050303960736584[18] = 0.0; + out_6471050303960736584[19] = 0.0; + out_6471050303960736584[20] = 1.0; + out_6471050303960736584[21] = 0.0; + out_6471050303960736584[22] = 0.0; + out_6471050303960736584[23] = 0.0; + out_6471050303960736584[24] = 0.0; + out_6471050303960736584[25] = 0.0; + out_6471050303960736584[26] = 0.0; + out_6471050303960736584[27] = 0.0; + out_6471050303960736584[28] = 0.0; + out_6471050303960736584[29] = 0.0; + out_6471050303960736584[30] = 1.0; + out_6471050303960736584[31] = 0.0; + out_6471050303960736584[32] = 0.0; + out_6471050303960736584[33] = 0.0; + out_6471050303960736584[34] = 0.0; + out_6471050303960736584[35] = 0.0; + out_6471050303960736584[36] = 0.0; + out_6471050303960736584[37] = 0.0; + out_6471050303960736584[38] = 0.0; + out_6471050303960736584[39] = 0.0; + out_6471050303960736584[40] = 1.0; + out_6471050303960736584[41] = 0.0; + out_6471050303960736584[42] = 0.0; + out_6471050303960736584[43] = 0.0; + out_6471050303960736584[44] = 0.0; + out_6471050303960736584[45] = 0.0; + out_6471050303960736584[46] = 0.0; + out_6471050303960736584[47] = 0.0; + out_6471050303960736584[48] = 0.0; + out_6471050303960736584[49] = 0.0; + out_6471050303960736584[50] = 1.0; + out_6471050303960736584[51] = 0.0; + out_6471050303960736584[52] = 0.0; + out_6471050303960736584[53] = 0.0; + out_6471050303960736584[54] = 0.0; + out_6471050303960736584[55] = 0.0; + out_6471050303960736584[56] = 0.0; + out_6471050303960736584[57] = 0.0; + out_6471050303960736584[58] = 0.0; + out_6471050303960736584[59] = 0.0; + out_6471050303960736584[60] = 1.0; + out_6471050303960736584[61] = 0.0; + out_6471050303960736584[62] = 0.0; + out_6471050303960736584[63] = 0.0; + out_6471050303960736584[64] = 0.0; + out_6471050303960736584[65] = 0.0; + out_6471050303960736584[66] = 0.0; + out_6471050303960736584[67] = 0.0; + out_6471050303960736584[68] = 0.0; + out_6471050303960736584[69] = 0.0; + out_6471050303960736584[70] = 1.0; + out_6471050303960736584[71] = 0.0; + out_6471050303960736584[72] = 0.0; + out_6471050303960736584[73] = 0.0; + out_6471050303960736584[74] = 0.0; + out_6471050303960736584[75] = 0.0; + out_6471050303960736584[76] = 0.0; + out_6471050303960736584[77] = 0.0; + out_6471050303960736584[78] = 0.0; + out_6471050303960736584[79] = 0.0; + out_6471050303960736584[80] = 1.0; } -void f_fun(double *state, double dt, double *out_7284810420003339157) { - out_7284810420003339157[0] = state[0]; - out_7284810420003339157[1] = state[1]; - out_7284810420003339157[2] = state[2]; - out_7284810420003339157[3] = state[3]; - out_7284810420003339157[4] = state[4]; - out_7284810420003339157[5] = dt*((-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]))*state[6] - 9.8100000000000005*state[8] + stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*state[1]) + (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*state[4])) + state[5]; - out_7284810420003339157[6] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*state[4])) + state[6]; - out_7284810420003339157[7] = state[7]; - out_7284810420003339157[8] = state[8]; +void f_fun(double *state, double dt, double *out_3688269730868187383) { + out_3688269730868187383[0] = state[0]; + out_3688269730868187383[1] = state[1]; + out_3688269730868187383[2] = state[2]; + out_3688269730868187383[3] = state[3]; + out_3688269730868187383[4] = state[4]; + out_3688269730868187383[5] = dt*((-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]))*state[6] - 9.8100000000000005*state[8] + stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*state[1]) + (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*state[4])) + state[5]; + out_3688269730868187383[6] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*state[4])) + state[6]; + out_3688269730868187383[7] = state[7]; + out_3688269730868187383[8] = state[8]; } -void F_fun(double *state, double dt, double *out_8279640069865100833) { - out_8279640069865100833[0] = 1; - out_8279640069865100833[1] = 0; - out_8279640069865100833[2] = 0; - out_8279640069865100833[3] = 0; - out_8279640069865100833[4] = 0; - out_8279640069865100833[5] = 0; - out_8279640069865100833[6] = 0; - out_8279640069865100833[7] = 0; - out_8279640069865100833[8] = 0; - out_8279640069865100833[9] = 0; - out_8279640069865100833[10] = 1; - out_8279640069865100833[11] = 0; - out_8279640069865100833[12] = 0; - out_8279640069865100833[13] = 0; - out_8279640069865100833[14] = 0; - out_8279640069865100833[15] = 0; - out_8279640069865100833[16] = 0; - out_8279640069865100833[17] = 0; - out_8279640069865100833[18] = 0; - out_8279640069865100833[19] = 0; - out_8279640069865100833[20] = 1; - out_8279640069865100833[21] = 0; - out_8279640069865100833[22] = 0; - out_8279640069865100833[23] = 0; - out_8279640069865100833[24] = 0; - out_8279640069865100833[25] = 0; - out_8279640069865100833[26] = 0; - out_8279640069865100833[27] = 0; - out_8279640069865100833[28] = 0; - out_8279640069865100833[29] = 0; - out_8279640069865100833[30] = 1; - out_8279640069865100833[31] = 0; - out_8279640069865100833[32] = 0; - out_8279640069865100833[33] = 0; - out_8279640069865100833[34] = 0; - out_8279640069865100833[35] = 0; - out_8279640069865100833[36] = 0; - out_8279640069865100833[37] = 0; - out_8279640069865100833[38] = 0; - out_8279640069865100833[39] = 0; - out_8279640069865100833[40] = 1; - out_8279640069865100833[41] = 0; - out_8279640069865100833[42] = 0; - out_8279640069865100833[43] = 0; - out_8279640069865100833[44] = 0; - out_8279640069865100833[45] = dt*(stiffness_front*(-state[2] - state[3] + state[7])/(mass*state[1]) + (-stiffness_front - stiffness_rear)*state[5]/(mass*state[4]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[6]/(mass*state[4])); - out_8279640069865100833[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2)); - out_8279640069865100833[47] = -dt*stiffness_front*state[0]/(mass*state[1]); - out_8279640069865100833[48] = -dt*stiffness_front*state[0]/(mass*state[1]); - out_8279640069865100833[49] = dt*((-1 - (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*pow(state[4], 2)))*state[6] - (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*pow(state[4], 2))); - out_8279640069865100833[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1; - out_8279640069865100833[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4])); - out_8279640069865100833[52] = dt*stiffness_front*state[0]/(mass*state[1]); - out_8279640069865100833[53] = -9.8100000000000005*dt; - out_8279640069865100833[54] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front - pow(center_to_rear, 2)*stiffness_rear)*state[6]/(rotational_inertia*state[4])); - out_8279640069865100833[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2)); - out_8279640069865100833[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); - out_8279640069865100833[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); - out_8279640069865100833[58] = dt*(-(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*pow(state[4], 2)) - (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*pow(state[4], 2))); - out_8279640069865100833[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]); - out_8279640069865100833[60] = dt*(-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])/(rotational_inertia*state[4]) + 1; - out_8279640069865100833[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); - out_8279640069865100833[62] = 0; - out_8279640069865100833[63] = 0; - out_8279640069865100833[64] = 0; - out_8279640069865100833[65] = 0; - out_8279640069865100833[66] = 0; - out_8279640069865100833[67] = 0; - out_8279640069865100833[68] = 0; - out_8279640069865100833[69] = 0; - out_8279640069865100833[70] = 1; - out_8279640069865100833[71] = 0; - out_8279640069865100833[72] = 0; - out_8279640069865100833[73] = 0; - out_8279640069865100833[74] = 0; - out_8279640069865100833[75] = 0; - out_8279640069865100833[76] = 0; - out_8279640069865100833[77] = 0; - out_8279640069865100833[78] = 0; - out_8279640069865100833[79] = 0; - out_8279640069865100833[80] = 1; +void F_fun(double *state, double dt, double *out_9019266380936848145) { + out_9019266380936848145[0] = 1; + out_9019266380936848145[1] = 0; + out_9019266380936848145[2] = 0; + out_9019266380936848145[3] = 0; + out_9019266380936848145[4] = 0; + out_9019266380936848145[5] = 0; + out_9019266380936848145[6] = 0; + out_9019266380936848145[7] = 0; + out_9019266380936848145[8] = 0; + out_9019266380936848145[9] = 0; + out_9019266380936848145[10] = 1; + out_9019266380936848145[11] = 0; + out_9019266380936848145[12] = 0; + out_9019266380936848145[13] = 0; + out_9019266380936848145[14] = 0; + out_9019266380936848145[15] = 0; + out_9019266380936848145[16] = 0; + out_9019266380936848145[17] = 0; + out_9019266380936848145[18] = 0; + out_9019266380936848145[19] = 0; + out_9019266380936848145[20] = 1; + out_9019266380936848145[21] = 0; + out_9019266380936848145[22] = 0; + out_9019266380936848145[23] = 0; + out_9019266380936848145[24] = 0; + out_9019266380936848145[25] = 0; + out_9019266380936848145[26] = 0; + out_9019266380936848145[27] = 0; + out_9019266380936848145[28] = 0; + out_9019266380936848145[29] = 0; + out_9019266380936848145[30] = 1; + out_9019266380936848145[31] = 0; + out_9019266380936848145[32] = 0; + out_9019266380936848145[33] = 0; + out_9019266380936848145[34] = 0; + out_9019266380936848145[35] = 0; + out_9019266380936848145[36] = 0; + out_9019266380936848145[37] = 0; + out_9019266380936848145[38] = 0; + out_9019266380936848145[39] = 0; + out_9019266380936848145[40] = 1; + out_9019266380936848145[41] = 0; + out_9019266380936848145[42] = 0; + out_9019266380936848145[43] = 0; + out_9019266380936848145[44] = 0; + out_9019266380936848145[45] = dt*(stiffness_front*(-state[2] - state[3] + state[7])/(mass*state[1]) + (-stiffness_front - stiffness_rear)*state[5]/(mass*state[4]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[6]/(mass*state[4])); + out_9019266380936848145[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2)); + out_9019266380936848145[47] = -dt*stiffness_front*state[0]/(mass*state[1]); + out_9019266380936848145[48] = -dt*stiffness_front*state[0]/(mass*state[1]); + out_9019266380936848145[49] = dt*((-1 - (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*pow(state[4], 2)))*state[6] - (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*pow(state[4], 2))); + out_9019266380936848145[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1; + out_9019266380936848145[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4])); + out_9019266380936848145[52] = dt*stiffness_front*state[0]/(mass*state[1]); + out_9019266380936848145[53] = -9.8100000000000005*dt; + out_9019266380936848145[54] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front - pow(center_to_rear, 2)*stiffness_rear)*state[6]/(rotational_inertia*state[4])); + out_9019266380936848145[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2)); + out_9019266380936848145[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); + out_9019266380936848145[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); + out_9019266380936848145[58] = dt*(-(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*pow(state[4], 2)) - (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*pow(state[4], 2))); + out_9019266380936848145[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]); + out_9019266380936848145[60] = dt*(-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])/(rotational_inertia*state[4]) + 1; + out_9019266380936848145[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); + out_9019266380936848145[62] = 0; + out_9019266380936848145[63] = 0; + out_9019266380936848145[64] = 0; + out_9019266380936848145[65] = 0; + out_9019266380936848145[66] = 0; + out_9019266380936848145[67] = 0; + out_9019266380936848145[68] = 0; + out_9019266380936848145[69] = 0; + out_9019266380936848145[70] = 1; + out_9019266380936848145[71] = 0; + out_9019266380936848145[72] = 0; + out_9019266380936848145[73] = 0; + out_9019266380936848145[74] = 0; + out_9019266380936848145[75] = 0; + out_9019266380936848145[76] = 0; + out_9019266380936848145[77] = 0; + out_9019266380936848145[78] = 0; + out_9019266380936848145[79] = 0; + out_9019266380936848145[80] = 1; } -void h_25(double *state, double *unused, double *out_8642135170742394965) { - out_8642135170742394965[0] = state[6]; +void h_25(double *state, double *unused, double *out_797744778366010140) { + out_797744778366010140[0] = state[6]; } -void H_25(double *state, double *unused, double *out_8200338516850570597) { - out_8200338516850570597[0] = 0; - out_8200338516850570597[1] = 0; - out_8200338516850570597[2] = 0; - out_8200338516850570597[3] = 0; - out_8200338516850570597[4] = 0; - out_8200338516850570597[5] = 0; - out_8200338516850570597[6] = 1; - out_8200338516850570597[7] = 0; - out_8200338516850570597[8] = 0; +void H_25(double *state, double *unused, double *out_1567358478776071744) { + out_1567358478776071744[0] = 0; + out_1567358478776071744[1] = 0; + out_1567358478776071744[2] = 0; + out_1567358478776071744[3] = 0; + out_1567358478776071744[4] = 0; + out_1567358478776071744[5] = 0; + out_1567358478776071744[6] = 1; + out_1567358478776071744[7] = 0; + out_1567358478776071744[8] = 0; } -void h_24(double *state, double *unused, double *out_9197263242363141624) { - out_9197263242363141624[0] = state[4]; - out_9197263242363141624[1] = state[5]; +void h_24(double *state, double *unused, double *out_190155790201239850) { + out_190155790201239850[0] = state[4]; + out_190155790201239850[1] = state[5]; } -void H_24(double *state, double *unused, double *out_1027726669218624628) { - out_1027726669218624628[0] = 0; - out_1027726669218624628[1] = 0; - out_1027726669218624628[2] = 0; - out_1027726669218624628[3] = 0; - out_1027726669218624628[4] = 1; - out_1027726669218624628[5] = 0; - out_1027726669218624628[6] = 0; - out_1027726669218624628[7] = 0; - out_1027726669218624628[8] = 0; - out_1027726669218624628[9] = 0; - out_1027726669218624628[10] = 0; - out_1027726669218624628[11] = 0; - out_1027726669218624628[12] = 0; - out_1027726669218624628[13] = 0; - out_1027726669218624628[14] = 1; - out_1027726669218624628[15] = 0; - out_1027726669218624628[16] = 0; - out_1027726669218624628[17] = 0; +void H_24(double *state, double *unused, double *out_5549681630173839642) { + out_5549681630173839642[0] = 0; + out_5549681630173839642[1] = 0; + out_5549681630173839642[2] = 0; + out_5549681630173839642[3] = 0; + out_5549681630173839642[4] = 1; + out_5549681630173839642[5] = 0; + out_5549681630173839642[6] = 0; + out_5549681630173839642[7] = 0; + out_5549681630173839642[8] = 0; + out_5549681630173839642[9] = 0; + out_5549681630173839642[10] = 0; + out_5549681630173839642[11] = 0; + out_5549681630173839642[12] = 0; + out_5549681630173839642[13] = 0; + out_5549681630173839642[14] = 1; + out_5549681630173839642[15] = 0; + out_5549681630173839642[16] = 0; + out_5549681630173839642[17] = 0; } -void h_30(double *state, double *unused, double *out_8720849294696219296) { - out_8720849294696219296[0] = state[4]; +void h_30(double *state, double *unused, double *out_8511282010659690294) { + out_8511282010659690294[0] = state[4]; } -void H_30(double *state, double *unused, double *out_5718709226731372821) { - out_5718709226731372821[0] = 0; - out_5718709226731372821[1] = 0; - out_5718709226731372821[2] = 0; - out_5718709226731372821[3] = 0; - out_5718709226731372821[4] = 1; - out_5718709226731372821[5] = 0; - out_5718709226731372821[6] = 0; - out_5718709226731372821[7] = 0; - out_5718709226731372821[8] = 0; +void H_30(double *state, double *unused, double *out_5349331862715545011) { + out_5349331862715545011[0] = 0; + out_5349331862715545011[1] = 0; + out_5349331862715545011[2] = 0; + out_5349331862715545011[3] = 0; + out_5349331862715545011[4] = 1; + out_5349331862715545011[5] = 0; + out_5349331862715545011[6] = 0; + out_5349331862715545011[7] = 0; + out_5349331862715545011[8] = 0; } -void h_26(double *state, double *unused, double *out_4724221511352486675) { - out_4724221511352486675[0] = state[7]; +void h_26(double *state, double *unused, double *out_5186767263433807506) { + out_5186767263433807506[0] = state[7]; } -void H_26(double *state, double *unused, double *out_6504902237984924795) { - out_6504902237984924795[0] = 0; - out_6504902237984924795[1] = 0; - out_6504902237984924795[2] = 0; - out_6504902237984924795[3] = 0; - out_6504902237984924795[4] = 0; - out_6504902237984924795[5] = 0; - out_6504902237984924795[6] = 0; - out_6504902237984924795[7] = 1; - out_6504902237984924795[8] = 0; +void H_26(double *state, double *unused, double *out_1737167490984728857) { + out_1737167490984728857[0] = 0; + out_1737167490984728857[1] = 0; + out_1737167490984728857[2] = 0; + out_1737167490984728857[3] = 0; + out_1737167490984728857[4] = 0; + out_1737167490984728857[5] = 0; + out_1737167490984728857[6] = 0; + out_1737167490984728857[7] = 1; + out_1737167490984728857[8] = 0; } -void h_27(double *state, double *unused, double *out_2893523921247530795) { - out_2893523921247530795[0] = state[3]; +void h_27(double *state, double *unused, double *out_3402150099174707791) { + out_3402150099174707791[0] = state[3]; } -void H_27(double *state, double *unused, double *out_7942303297915316038) { - out_7942303297915316038[0] = 0; - out_7942303297915316038[1] = 0; - out_7942303297915316038[2] = 0; - out_7942303297915316038[3] = 1; - out_7942303297915316038[4] = 0; - out_7942303297915316038[5] = 0; - out_7942303297915316038[6] = 0; - out_7942303297915316038[7] = 0; - out_7942303297915316038[8] = 0; +void H_27(double *state, double *unused, double *out_3174568550915120100) { + out_3174568550915120100[0] = 0; + out_3174568550915120100[1] = 0; + out_3174568550915120100[2] = 0; + out_3174568550915120100[3] = 1; + out_3174568550915120100[4] = 0; + out_3174568550915120100[5] = 0; + out_3174568550915120100[6] = 0; + out_3174568550915120100[7] = 0; + out_3174568550915120100[8] = 0; } -void h_29(double *state, double *unused, double *out_2618329858963024906) { - out_2618329858963024906[0] = state[1]; +void h_29(double *state, double *unused, double *out_2753297096665952338) { + out_2753297096665952338[0] = state[1]; } -void H_29(double *state, double *unused, double *out_6228940571045765005) { - out_6228940571045765005[0] = 0; - out_6228940571045765005[1] = 1; - out_6228940571045765005[2] = 0; - out_6228940571045765005[3] = 0; - out_6228940571045765005[4] = 0; - out_6228940571045765005[5] = 0; - out_6228940571045765005[6] = 0; - out_6228940571045765005[7] = 0; - out_6228940571045765005[8] = 0; +void H_29(double *state, double *unused, double *out_5859563207029937195) { + out_5859563207029937195[0] = 0; + out_5859563207029937195[1] = 1; + out_5859563207029937195[2] = 0; + out_5859563207029937195[3] = 0; + out_5859563207029937195[4] = 0; + out_5859563207029937195[5] = 0; + out_5859563207029937195[6] = 0; + out_5859563207029937195[7] = 0; + out_5859563207029937195[8] = 0; } -void h_28(double *state, double *unused, double *out_8550457448668955042) { - out_8550457448668955042[0] = state[0]; +void h_28(double *state, double *unused, double *out_6022818472511333083) { + out_6022818472511333083[0] = state[0]; } -void H_28(double *state, double *unused, double *out_1146541553976234431) { - out_1146541553976234431[0] = 1; - out_1146541553976234431[1] = 0; - out_1146541553976234431[2] = 0; - out_1146541553976234431[3] = 0; - out_1146541553976234431[4] = 0; - out_1146541553976234431[5] = 0; - out_1146541553976234431[6] = 0; - out_1146541553976234431[7] = 0; - out_1146541553976234431[8] = 0; +void H_28(double *state, double *unused, double *out_3621193193023961507) { + out_3621193193023961507[0] = 1; + out_3621193193023961507[1] = 0; + out_3621193193023961507[2] = 0; + out_3621193193023961507[3] = 0; + out_3621193193023961507[4] = 0; + out_3621193193023961507[5] = 0; + out_3621193193023961507[6] = 0; + out_3621193193023961507[7] = 0; + out_3621193193023961507[8] = 0; } -void h_31(double *state, double *unused, double *out_7603820894445690215) { - out_7603820894445690215[0] = state[8]; +void h_31(double *state, double *unused, double *out_8679017429120059325) { + out_8679017429120059325[0] = state[8]; } -void H_31(double *state, double *unused, double *out_8169692554973610169) { - out_8169692554973610169[0] = 0; - out_8169692554973610169[1] = 0; - out_8169692554973610169[2] = 0; - out_8169692554973610169[3] = 0; - out_8169692554973610169[4] = 0; - out_8169692554973610169[5] = 0; - out_8169692554973610169[6] = 0; - out_8169692554973610169[7] = 0; - out_8169692554973610169[8] = 1; +void H_31(double *state, double *unused, double *out_5509316771735745509) { + out_5509316771735745509[0] = 0; + out_5509316771735745509[1] = 0; + out_5509316771735745509[2] = 0; + out_5509316771735745509[3] = 0; + out_5509316771735745509[4] = 0; + out_5509316771735745509[5] = 0; + out_5509316771735745509[6] = 0; + out_5509316771735745509[7] = 0; + out_5509316771735745509[8] = 1; } #include #include @@ -518,68 +518,68 @@ void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, doubl void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) { update<1, 3, 0>(in_x, in_P, h_31, H_31, NULL, in_z, in_R, in_ea, MAHA_THRESH_31); } -void car_err_fun(double *nom_x, double *delta_x, double *out_1014334527327209848) { - err_fun(nom_x, delta_x, out_1014334527327209848); +void car_err_fun(double *nom_x, double *delta_x, double *out_2633990546043802948) { + err_fun(nom_x, delta_x, out_2633990546043802948); } -void car_inv_err_fun(double *nom_x, double *true_x, double *out_3206419511188405682) { - inv_err_fun(nom_x, true_x, out_3206419511188405682); +void car_inv_err_fun(double *nom_x, double *true_x, double *out_1648181344021920920) { + inv_err_fun(nom_x, true_x, out_1648181344021920920); } -void car_H_mod_fun(double *state, double *out_992849709061666640) { - H_mod_fun(state, out_992849709061666640); +void car_H_mod_fun(double *state, double *out_6471050303960736584) { + H_mod_fun(state, out_6471050303960736584); } -void car_f_fun(double *state, double dt, double *out_7284810420003339157) { - f_fun(state, dt, out_7284810420003339157); +void car_f_fun(double *state, double dt, double *out_3688269730868187383) { + f_fun(state, dt, out_3688269730868187383); } -void car_F_fun(double *state, double dt, double *out_8279640069865100833) { - F_fun(state, dt, out_8279640069865100833); +void car_F_fun(double *state, double dt, double *out_9019266380936848145) { + F_fun(state, dt, out_9019266380936848145); } -void car_h_25(double *state, double *unused, double *out_8642135170742394965) { - h_25(state, unused, out_8642135170742394965); +void car_h_25(double *state, double *unused, double *out_797744778366010140) { + h_25(state, unused, out_797744778366010140); } -void car_H_25(double *state, double *unused, double *out_8200338516850570597) { - H_25(state, unused, out_8200338516850570597); +void car_H_25(double *state, double *unused, double *out_1567358478776071744) { + H_25(state, unused, out_1567358478776071744); } -void car_h_24(double *state, double *unused, double *out_9197263242363141624) { - h_24(state, unused, out_9197263242363141624); +void car_h_24(double *state, double *unused, double *out_190155790201239850) { + h_24(state, unused, out_190155790201239850); } -void car_H_24(double *state, double *unused, double *out_1027726669218624628) { - H_24(state, unused, out_1027726669218624628); +void car_H_24(double *state, double *unused, double *out_5549681630173839642) { + H_24(state, unused, out_5549681630173839642); } -void car_h_30(double *state, double *unused, double *out_8720849294696219296) { - h_30(state, unused, out_8720849294696219296); +void car_h_30(double *state, double *unused, double *out_8511282010659690294) { + h_30(state, unused, out_8511282010659690294); } -void car_H_30(double *state, double *unused, double *out_5718709226731372821) { - H_30(state, unused, out_5718709226731372821); +void car_H_30(double *state, double *unused, double *out_5349331862715545011) { + H_30(state, unused, out_5349331862715545011); } -void car_h_26(double *state, double *unused, double *out_4724221511352486675) { - h_26(state, unused, out_4724221511352486675); +void car_h_26(double *state, double *unused, double *out_5186767263433807506) { + h_26(state, unused, out_5186767263433807506); } -void car_H_26(double *state, double *unused, double *out_6504902237984924795) { - H_26(state, unused, out_6504902237984924795); +void car_H_26(double *state, double *unused, double *out_1737167490984728857) { + H_26(state, unused, out_1737167490984728857); } -void car_h_27(double *state, double *unused, double *out_2893523921247530795) { - h_27(state, unused, out_2893523921247530795); +void car_h_27(double *state, double *unused, double *out_3402150099174707791) { + h_27(state, unused, out_3402150099174707791); } -void car_H_27(double *state, double *unused, double *out_7942303297915316038) { - H_27(state, unused, out_7942303297915316038); +void car_H_27(double *state, double *unused, double *out_3174568550915120100) { + H_27(state, unused, out_3174568550915120100); } -void car_h_29(double *state, double *unused, double *out_2618329858963024906) { - h_29(state, unused, out_2618329858963024906); +void car_h_29(double *state, double *unused, double *out_2753297096665952338) { + h_29(state, unused, out_2753297096665952338); } -void car_H_29(double *state, double *unused, double *out_6228940571045765005) { - H_29(state, unused, out_6228940571045765005); +void car_H_29(double *state, double *unused, double *out_5859563207029937195) { + H_29(state, unused, out_5859563207029937195); } -void car_h_28(double *state, double *unused, double *out_8550457448668955042) { - h_28(state, unused, out_8550457448668955042); +void car_h_28(double *state, double *unused, double *out_6022818472511333083) { + h_28(state, unused, out_6022818472511333083); } -void car_H_28(double *state, double *unused, double *out_1146541553976234431) { - H_28(state, unused, out_1146541553976234431); +void car_H_28(double *state, double *unused, double *out_3621193193023961507) { + H_28(state, unused, out_3621193193023961507); } -void car_h_31(double *state, double *unused, double *out_7603820894445690215) { - h_31(state, unused, out_7603820894445690215); +void car_h_31(double *state, double *unused, double *out_8679017429120059325) { + h_31(state, unused, out_8679017429120059325); } -void car_H_31(double *state, double *unused, double *out_8169692554973610169) { - H_31(state, unused, out_8169692554973610169); +void car_H_31(double *state, double *unused, double *out_5509316771735745509) { + H_31(state, unused, out_5509316771735745509); } void car_predict(double *in_x, double *in_P, double *in_Q, double dt) { predict(in_x, in_P, in_Q, dt); diff --git a/openpilot/selfdrive/locationd/models/generated/car.h b/openpilot/selfdrive/locationd/models/generated/car.h index a5c58382bc..5fed943d99 100644 --- a/openpilot/selfdrive/locationd/models/generated/car.h +++ b/openpilot/selfdrive/locationd/models/generated/car.h @@ -9,27 +9,27 @@ void car_update_27(double *in_x, double *in_P, double *in_z, double *in_R, doubl void car_update_29(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); -void car_err_fun(double *nom_x, double *delta_x, double *out_1014334527327209848); -void car_inv_err_fun(double *nom_x, double *true_x, double *out_3206419511188405682); -void car_H_mod_fun(double *state, double *out_992849709061666640); -void car_f_fun(double *state, double dt, double *out_7284810420003339157); -void car_F_fun(double *state, double dt, double *out_8279640069865100833); -void car_h_25(double *state, double *unused, double *out_8642135170742394965); -void car_H_25(double *state, double *unused, double *out_8200338516850570597); -void car_h_24(double *state, double *unused, double *out_9197263242363141624); -void car_H_24(double *state, double *unused, double *out_1027726669218624628); -void car_h_30(double *state, double *unused, double *out_8720849294696219296); -void car_H_30(double *state, double *unused, double *out_5718709226731372821); -void car_h_26(double *state, double *unused, double *out_4724221511352486675); -void car_H_26(double *state, double *unused, double *out_6504902237984924795); -void car_h_27(double *state, double *unused, double *out_2893523921247530795); -void car_H_27(double *state, double *unused, double *out_7942303297915316038); -void car_h_29(double *state, double *unused, double *out_2618329858963024906); -void car_H_29(double *state, double *unused, double *out_6228940571045765005); -void car_h_28(double *state, double *unused, double *out_8550457448668955042); -void car_H_28(double *state, double *unused, double *out_1146541553976234431); -void car_h_31(double *state, double *unused, double *out_7603820894445690215); -void car_H_31(double *state, double *unused, double *out_8169692554973610169); +void car_err_fun(double *nom_x, double *delta_x, double *out_2633990546043802948); +void car_inv_err_fun(double *nom_x, double *true_x, double *out_1648181344021920920); +void car_H_mod_fun(double *state, double *out_6471050303960736584); +void car_f_fun(double *state, double dt, double *out_3688269730868187383); +void car_F_fun(double *state, double dt, double *out_9019266380936848145); +void car_h_25(double *state, double *unused, double *out_797744778366010140); +void car_H_25(double *state, double *unused, double *out_1567358478776071744); +void car_h_24(double *state, double *unused, double *out_190155790201239850); +void car_H_24(double *state, double *unused, double *out_5549681630173839642); +void car_h_30(double *state, double *unused, double *out_8511282010659690294); +void car_H_30(double *state, double *unused, double *out_5349331862715545011); +void car_h_26(double *state, double *unused, double *out_5186767263433807506); +void car_H_26(double *state, double *unused, double *out_1737167490984728857); +void car_h_27(double *state, double *unused, double *out_3402150099174707791); +void car_H_27(double *state, double *unused, double *out_3174568550915120100); +void car_h_29(double *state, double *unused, double *out_2753297096665952338); +void car_H_29(double *state, double *unused, double *out_5859563207029937195); +void car_h_28(double *state, double *unused, double *out_6022818472511333083); +void car_H_28(double *state, double *unused, double *out_3621193193023961507); +void car_h_31(double *state, double *unused, double *out_8679017429120059325); +void car_H_31(double *state, double *unused, double *out_5509316771735745509); void car_predict(double *in_x, double *in_P, double *in_Q, double dt); void car_set_mass(double x); void car_set_rotational_inertia(double x); diff --git a/openpilot/selfdrive/locationd/models/generated/libcar.so b/openpilot/selfdrive/locationd/models/generated/libcar.so index 4a8a78eb46ac018458d3a38a547b6cb9660f8b2e..4233fb3c77addcccb02f1da61b17446363c0938d 100755 GIT binary patch delta 15851 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 aRE$Z!ef4$ZpoEV5{_;PdC%%V_5B?v>Wrl$O delta 15862 zcmX}z1$b1~_V@Ap5)xd4J99K>T#(`p#ai4gK%uzH;1nrdDAr&t(BkgFrMSDhyW9Jn z`+x84^L*Am898U~wbnif$@KV)9Vw4v<#}aXGdcLyFYE7YobxiL=cmMxKc{{1I(*n; zje0B}e*_>20uh9yNQUG{fs{yv)JTK0NQd;ufM8@qCS*nyWJNY)M-JpfF62fYZ#Sju9A% zQTPR;F$QBX4!>eNCSW2aVKSy*Dt^N>Ovmq-fti?v*_eYrkbt?Ehxu55h4>SHVG$N% z3I4`ESc+v>julvmRalKRSc`R7j}6#}P1uYr*otk~jzsLhPVB;N?7?2_!+spVLHvtD zIE*7WieosA6F7-eIE^zni*q=S3%H0&xQr{fifg!z8@P#ExQ#owi+i|_2Y84_c#J1_ zif4F^7kG(Rc#SuBi+6aB5BP{r_>3?3if>~ljnM@7g1;{W_(Bq22=s*@Ur6c;$$TNX zFQo8=l)jM47gGB|8ed533+a3zy)R_&g533x$25h%bctLYOav z`$B{-MEXLMFGTx7j4#CcLYyxY^@U=-P}~RehnFFI4x1?|q?$FVysfTE0-*7wY)J55DlDFVyvgdcIKK7aI6N zLtkj5L~bp*-X=IKG%PYAA~GsGCL%m0JTxvgGIn~c>k0W2mp^YT*}-vPaWUc15#f>H z5z!H0kzvu{kqIr5H&)TZU! zbHZ{?kv2FohQ)`6v8sru@W|Nc=$QXbvBv+-5gip885bHJ9uY$Vfiw=$WzoleO7|%Jp{k*w#FxicaWpY%NvPQ7bn1mY(8>@UmVr&!joiaCD z-U&HlnuyTU7n=D(b6;rT3oVtHGp3ae#L^cradc5=bX;t7R9I+eY(&KL7KMgIOs_ej zMWG4xy0j9ZwJ)?$V!bYHwe4-+Gd+9*0^}pNWSy3s}!{Z{q`j+;p+*im>BnKyt=1R%fw}~cx8}kCZ3rWuLAyhm8gaB zGE%93qP3E2q*JNHHap_ACa(nQTLnPgYOFXa@)R8dtJ(HI+&jQmC`CXmi30#(H|0_`>(Kzvd+-5ACb~e+4C^ z4)3gpzzom%W|2^y<98atEu^z5s&V27#$o;%l#o2Svle-OrQUz`_4B*-k4Ja$6=Ror z^a#fD-#XYJ-j#j=!)C{cn0*UE$yjrl$4t%XGk_ zLRi3Yb;dSGAVVV<=U_FDZ(}@zRXqNNG4(-@cJg>3#`4(B<82rR;y91bVO)nZJbs4p z39j*Y>VG}5yo7r^QJ%30p7O*%#^3OP$Ja3)!51EX!Wejn6{0Z05R2j{i0a)9m1Hc3 zR_KrBhdo+y#G?^MJ=%1P>>cN^6O`;E6FudTcgks2e8!{vXFck6&ZCCsJ*suVqgP0K z$)oicec7X$S6Jy)kLJU?#+#A!x<_ZR>V`)PZ+dj&7G=Cm>hE~e_O3@+?s>ElJ?_&p z4?J3f*oT}CS5W&A^`G;IX2aaa9!+^d%ARuaXCC>zU=j#@<&p84W_d#+p>*=pe%0}b zrviMGz#V*_h*^} zkzeT8uO7X?#c!8js@s2r#q*C6XA*8E7bLkfF6`mekNKtVzaek{jBMjwuYK zOlfE+*5DoHr7~12wV{mOG=_>GXLfH-N#KIg*Ca0lun3#(`$ZcpJismtN2%k|ZFBirmOwVVivd573GhwG; z=qJ-q4vS+{w+-#bO2^Pvmp6wP`j+3&>4Ju?7UIN3cs|t7%y2Fk!AYYG4T(0CCzch( zaa`0;<6?%67B}Qy!cZiJV>6y2?{{Pcn@bvA-7C#S${Jcx&d})chKg0-VklmTOkhT3 zLkG~m3M;5;XhAhYO{yC*zBg1GS@;&ynbBmN#aNPY4`V&X$BaKSW~yOmBx4E2>@^ML z#t_`A>7@>}s2!qe8`_Ai*oFN#jMzGc%AzI;{lIEa3gd7Ig?}{E54YjgH8c=ca0jF6 zkwx6XdnB!I=ppJfFqDWQ-iC&LN1jH8*28VgMVjyiylrY|P%}d)AVmj5vta&YXgj>sI~ux%o}K9M zpJ^_%?`%k23{~oCXbSRnGc*Sg-N^=OpfO7KF!UUKdKwDsWoQYadmHN1hsXO;rhXjb z3u5}ycqlx;&~+RgXsGuf>hCK-)L>39#L%w@8_JU?HH__pqQmKa$7}7hIh8t&S8;1UBD1cO_8gJ+qjK>Sqo?vJ;hEFuqZ4wucn9PdNb&8== zQw=pwAL&=)H+BN@PBSzKvvC?95Hy_{BgG6u7qDxlp$xMq1scw#jL0>I`l8JrhQ=fq zdO6q7*?ESJ&8H*_*g*>oE&kI`g7+_O8jCpLVz%HCLk0h4Wmx+UD_d&lJQ^&cq43jk zng`ui80rfz{#r@Dtft%10zbiv1DL#q-LsYqtRs8tx%q4`bYdfu+)T-~P~vU8cJOx6 zn@9?GumyJ-x{GJ{f~LD@9Gu!sz4wy-eWdgNB{*p4?|-?-A$HFZZbV1v?qi1hj&r9& z3!HmY&TksyW0)rl+2#EF&ZYOL9>;%SDc+r+{+~JMa*{h5UgHDuoFWrwkNG%^9H$L^ zk1^PV0%zC(cnbS0`y72S7+bLu`;hU+B!1b>aSb%P>S_t&QFI%`4?X9of8q1Y7@e^f zA5r20b;obGh|r6q42ziTEygEke~CSg7MCdxQeWX>7=>w=g)~>`1x!Q&GF&5jsEP*g zdI{q&9kZ{~L>PO+P_kPz7}DTk@(^WU%!EAfz=DecD2(wq4C}U`fAQlT%5j(Nj5+t% z5%&$XdO&G0>mj%JN9?S}OrX&dL&wqSsi95i{*0~joZaw(8^=pS8!+q@t9;E}@C}Xj zmQ=oDFTXcb}gC*L$b7{ z`XYaNQz zL6MxM;&U;%Jf?c#8wTYy^$>6JnHuIXRl+dU38&G@WHK-b^1s+lT=il~96$XcCj;GgeF-@#bF;Wa2tO;cHFnL2^LYqPRCr2Pj|?{NG_ zQ)B9KfqG1?zNxoZ*}&B3hNj9iGF85@sUMn9T4ZfX>F}YM*VOmTO|3vs3sW6inws2- zw6c!~P$Of~61kNjk+ z_RpqvcssNDZlObKRQ*9DVe#c;H=3JU$9_2vPd`8SzKxZRnAt%K(l=zcuAW=KI*{c|_hMUS- zQV)B*snr{}Z=lddvVshcFuTR+l3pG=MaY--#W z?rvXM?Khg!&r%UtO6zawFa`%$DwD+00@Mk#v>s`LEHy-$q+UyVlUf>+%;Mi`mOkUV zl$JK7vUD-ErO33FGN!Zi4R_O9x}Cw&u3$_5WVGbXWNAibOMSCgiq2~3A(m#dlq9>Q zwJ4s0iy>Q1OMfD3E-sqe(wRJ#vgETg*<vNXxIl*+aAeTb!l`7Na^XlZ02 zO9u*DDjRBPM3^PN2unkeG}2N(d_=n_OY3kg+EVpcOVbb*XX$Um7qyh3n5CS>EwwIT zY1DU?UYF$Jr7aCFV`))Y7Ll>MrQQ`R&8%qYk4l!NR<^XEiY2p}rHa*A$@iAd)v#2q z7ALIDjO$q3ZaHCHODmAF9w)&ARIATQak2p`ZNvo|lj^2qqM4;V%_&1mOPyO;8s8di zENy9Pc~!QZr7rC)z3*Vj>S$?MCsO~jrIuazD@Rvm+uc$k`t`8%3LSg$ST9REP`fuJ z!Q4J%sV^l$=KhvS4Z?sfp6SYVC&6eyf>;QDzO6s>+`hb<& zEnQEfY&&VlU6iiiZcFv{SZcJ_(%5~L3hbv=sBys3Zp0j<4F6KM!%X4`O>>M%9H-$< z(s-vWr9MkDowHQ(JSV-t>o1bYOLYEan(?Zor`IeUy}@K|Sqi$tb9dQc_j&GtrCyJy zf6d31NOIV8e28fd2KCCXKQ?V zTSYV2>VcEU7R+M^&1mZke$8a7P-aewmRW4wMz^fC-XcDmtp&)Q-Bwjh#2lQ!H>ApG zYvp);U}da=3D}L}xop+(=C?*L<0$ClyRdW7U5Oc*EN$VQ=q3cm)#^=~kf=PU5t2*AG zP)S>tk+qbq0|+c_s{{5TLm69La1`^)+PYcJ%ZbbL<_fl+;$%f$T*+2kWm`|Mvx==z zRc*aO$!fOB;}yOlTXj~5TgX$x){>euUM*XRwRvA1ThD&5b^k}oQ;&1O)4*1EL;3?x zQKylub##tJ*HwIvhfeq z5HcU(rT*V>P#u*9+lm=ts{|fk>QGzGFj9$9!^s5Jj^M&0IWZn0=O`KtzvEwcej&AR zMw3-6#W5zZi_sZl>rgL0zwwOsVT`raaV!`1A4g*$>Q}lRg~#(X0w<7CJVL{Xw$@Ez zyWt!TPqy_L8-@?@Yd?iXoJ!fIvFhoz{+VGbXqK&Ov+49dXvn#?M$ThfFR)d4p{=Wb zGOh2xEXD=RcyPh?-QBS4(^0IslVSY(u$G0>F_-?2a4<^ z<@;znq}b17;2dBzXpC(z4)SIkLBoG}?u4y&j3?0TkgXB8ff9#pr9MJaq9dN*9d;dM z0>`L-&ts$tC69CGLIF-x9Ch#rb5F9BF!+?M$kVI@)y{At_?_jRfm!F6)Opf*k-O$4 zTlFs6%5sIG-3wCulCAiPCVazP@-35iXY2iYCh?Ko@QLz$wsi_0zu2ny z)mEEtY;QkDfANRfS^kc^0ggs_lQ?P_=;+5FM;((os+-JFy5x?I;iY-98*#` zs+8K{kCBdAA#EB*d5|xyqn;RyvgsW8r+2g$!!tN)8q9e!I(qGlG(pVg6H zHb(>CO_|-%Jox2s6o?ealG9OD{DM_TpUY7QDxxXoA`w^d0n2kcdX5Eo9F5NFC?cPu zBpye7(9~c8rlS?8VL5t&#oSh+mUUFRyraq$ypEPtbTqY+qjQxV4Xom*R#it|aiX-CyrWHh9KGqw>-#%eJHSzqL1ctQ_ZsY|#}Ml840ZJPFj6v{7msk1 zVI+Mpie^E@(T-A$p$W%2nuC(#9GyVhUmZQhfbovLAa)}CFv(HB$sA9i!KU(21kC=; z(K`&8=19{W{fwx0&H+>`X_kXVJ;Css9{mgsp$jjB_2WL$!I1Ze#X* zO0j?xFXR}t|0GL)Ihur0iyW;)!Np_{HI_KK__w3Q|FHU{ED*hyv2&I?I)=O}96en@ zD!#2`6{}d$YDfFmu+7%88W`(n7hJqYK$dY9M#|I=rkH`qi42L-$c%Z z4LjJ%J89fqTnM>#Q=UESqJ8udLiST$R6gM7UoRp2prfS!vT9^L%=S9Mn~t&yJV(o8 z4!=^T1Sd%CN$Psa(dENBQrvg>WBr?vYC5xlfI71tAaUepGl!H$S4=G59fced;LVGbZ)i z(Kd8^LDRzf($T_KG~H`5^2Sk)w{$+1zjJi!Jq`bXMSr6Hv7gv>i2h7XzOZ_f{Yq^x z`x`6w;{zXZ^)IscyDA;vYGo2WZi1nKt`-Nmx|q~e;bg9oCU><9vs1XrmeN(FR4%_8 z<`B_$#-oad})d&CC1nYd%*6Jg)wL$8a?hB}`YY#W|70 z<~?4*6})sfiR)^9h^q@InV%Wr0V)?@l2}^MRsBM)f(pA@hChqA>K@7md%|3e3g=@y z5ll4F)gqLPViM>Y?dls^#JJjofLK>E5FY1hE4(#}@~H$E#rUL7aaYevu)6PDJw%_9 zuBw!Bm7%n&t9V_8&!&_krMOU@i&b!S7rQI6h)S+vD!VFH#ntwzuAWtM75u%c-Z+6= zHC*+__ch5-Ef!MS)s8wYzyJM#i~h(b9qPJ@t4GS}yQzF? zMxlEr>c68CZ^9+qL!r*D(s!ZRU}I2MF5b;mC!Fc-YE2Jn*OO0Qp>;2^(A!l%Ovg&> zLVO=r127mPF$NPc4NLkmVI0CqFX0j%^>gLdpV}flG9l#vnhO~RG7%KS61>G1BpKwY zBi3LuZsHdf)NL>mLERzj8hk&Li{TkQB6=9-9quXw-cUlm5!7lVGew_Kq!HF=x_b<1 z9_woEI9F-LGm#0d`r^_=KKU|<$0yTNQ(PUJ$_0Mo&+gM)Rh-V2MCRXVKIEF=s>n>X z8Vb##IZDhx#Y~gViOtDmRxV!l!wpd_JpOz^7vV8i@ zWIz_=L_RMeKl)%cZsH>f?RM1+!>|EckbDoXML3G10tVw8p5p_)!hbKBLO2@Z7p%q= z1npx|@E{7_nuMuXj~hs~pXP&sMi`4txPX^6$l+uNvaab)3~=NWI{KAz(}*216H%|uFM^b&HyL}5guBr2gc8lx@xU=$`| z1{Po`)?qvL;~382D(>J3UgI+Y&rw>WMHb|N18*2179~*u)lnBs&=xE zoOBN3Us#5<*or+kgj2YL+emtzkK!=C!B?c`>tN(NPyL&4&>0J`1Z%Jz`*0LzaTRy* z6mRhrLG(x(WI-M{D1u@LzDN@?Rze1jt1;F_bHt-3`oVjF`VZ$|9A;t_|DNx{I1hPw zqm9KJFUJOKM+Y3i9vsF=T)<5{z)O6Dcy9`%M>gbvg#rjeQIzo#s^SMULM!}Elk{O6 zivAdjshEYiScK(Ri>=s&L6^82G9JZgT*OU0!b`k|AFm0*3XW4VW`fsCILHGz8ILiV zj0F&mIFvyp)W8JPLvzHVGkRelMq)fRVLIkwF;-zCcHt0C;V}X)lbOrZKL-aE3L^%k zP#Lw+2(8fxz2LFh~?OTzwiTgU@!i~F`U6gT*Dna#B;pG=gZXp5C`G40{wJ_ zdLaX{Auk*hMih#pG%BJx>Y_RPuhA2XozVk*;l&7y!9+~MY%IXvSb=reQjU;_JvfM? zIE{HI&cPzkiY{YIH#Rc5K3w%NlD@~8A$cutJ7J*_Yi>mkmF3*J`4rNdowa@^~uTk@M z9CSf148&n>3Ij0$Irt_sjd3`SkHuun#5^p)YHY$z9K;En$2Hu;Q@q7jq-7@sUgrjc zV9K19G5z&MbTS9C@i#Ui8*;!!e#D|EDxnJMqaiZgV2d)gK__%ZAN0d8j7aF(s z;n5sS#w;wvGOR};4&VeX;uap`4Zb4jEi#3?D26)dfT5UyKd}tEaSDrXQ>8onY=NA2 znZP}&aNo=JeZ+UT$22UWpR&?tWbZjyz`+;H@+GT7i&vBrQLmX4KD{CP@7Xyxh#MdH z!RHg-$dKg=*}&GXeAoR(gZqW(7lmlPe~9h}geWjDgiqs!DAG%qj+4}UHsdZNAloj| zjiVfI$4>0UK^(yeoWTWL!Bt$uS)9a8+`t_?#YcRBe^7|>p$H=3twU&ypV1S2&>w>^ z8sqUB=3yl^VHbYo2iGas&+%bo-=0kwaF*jY$jJX|kOdi8gvD3{ad^bf8)X?Qp?1;` zuj+Bo7TqzvX+8~L9E;yDA4{r+Wmt*bn0Sp(S~A|iGrWZ#pTqOMqj>$r^vc!qZf$U-`i2L%)6wd*WT;vVATd5TC_m7=?#_hwcjY$E!*hS0`+4vG`+q)szI&aSZ8LLb=Q?xF3F$|! zms*GMPus$lKa*ms`r6L?BT=X3v?x7#(5KByZyUCJbd6_*-Lj3mWmClvfa0(t5G7C& zrBE7WP!{D-9u-g#l~5T~P!*4%8XiY=)W8#X5;ai^wNVFkQ4jUe08gPI8lf?s#xrPw zXYm}KM^iLgd&?Hoyqj&z+S)yWlFL3`yLA4@P659=>~#W4I|3@Y?6m{FVPWn0zCqQC zJypAOBu`Y*wY~KvPdg}m?0Ab}6)pD3ufCEuL!GH(jinF)GC}JdLVk%;hf~7pS zl(-P-#a;F^;(DyZKI}pkPT?35QI9%x*`E*WXn!uyVQ=KHzv!}uI_#|+_BW}B_73~! zF0Gai9QN;Bc20{wUG_g5T5FLU;t?F)_Z{|Wwmkb}ii=sbh&UGs*nm{5!bH^LyBzkW zd{+~`tF=o{icT(j2Z#Mrm;J-SFZq_U!=Y!#>khuhY3Ho`*vTy+!&*LOc;6Czj3pWu#RYns>5FZj_ss1UH$Lo5`M?B_WCG>Q$cwN21>VJwV z38G4x7FN)IE>+a}`p-pso!Ife2i14h=jC;I`TuLQ1(xY(4=5dwZ7=q;%`O2;{>Za8 zDP8QTDuDslxp+Ji5X+V|C_EKkaM(i}_P1R2&JOz<4*ORw`YsYj*vD#(Visq_G~!a?5~7|lX_Pk;*I_T^EMhD!a0=_0aT51guN8d@ zdQllpr455cIhIOxPGMm@7P7E_7>_y7tH(I3#0qT3798hw$B2h;gYtFaMO=U%K0LrU zYF#fJBN0b=HgPKS>{-h4V&Wn_EA;ZTg@tsa;t)?BB<{vJ%6di7tH}+bUUhP8srHf7 zxSl0LFqN}IFB&mOqP&KkqXKyG^ zraX!AI3!Y@PmIHCti>8ELkh+q6B*coY#hLTT*VbW?+Wo83_i<4yyxU07ZIF-E)2ya zjK>+)FC(VF$DS`DZV7bR(}}5Ak3%?!-MGwimxyQJrkqc_i#r%mg1sdUB@V$vM8mnD zgv*{tVGh<&UQ1k#Wyr!#WZ)Ffog^N?ZOXTZS8y06%LZ{4qD%fGjw6o3oRThk9B~?^ zVks755jK{j{?}26z)>8*Jhn0cnke@3=Bv2E`g1r710LMN=u$3wR4LAC%%nVnI2n_W z1Q!+{5$mxUdwAV$;&z-U<#gGPQn<;=8^lZSQqCuC#kkUW_OYcoixF3vvzRy)D=04~ zCSfb(4B|#?KsF9zFZSRf7U3)mUh5&=Lu45))Xp+&C1$cPgE$#WC?^vWF&~?;32U(i zdodAN*ol+K!BO17Z9e=q@hTqjSp`G`9*ix^7h@D=pk6Ewmw93paV3WF<|V}KWnK1d z#Lcn$Ck8#~JWtUFFYY4`k>#i%;t1mGaxVKUVk}Z9FC{KS2IVcp4LD5s5OEK7;}S07 zG*00@*5fYjU}$-+Q$({Ir^zH1CbBS*I2QBEyX^CbvoQ-Rk%Fbzf=w8W(>R3%Z0J$q z9o~1FcokRh5Ct$Wp@PdEQ-SwkF69K`Ow6djWnu+|NG!z?q+=tpdEsH=URs+SJvitcTa$Cu%kuSuC|M3r!_~Xwx+YizsW; zBmrwFYvR%N%N}04yEujIv4i7+>ck$N5>(w8#l;~W2J2@LXCehj*h;d5@ z4Okt!J0_@(^Df0q+{6u7@FIrG{CLjVC?rshC(gihti%c=Ba`R06Vs4GS<}V=Y{C_m zFAzt<`*+lIk%uU*>XD_mkPPFpu6bc9G*3)~=7$92^1>~|bc|!8#^3_`mCBnB;UMcZ zcU-2dsp1UWlr>%4#T{s>h`iz z$1!NG$i)p@#}Ka8nM4zQjAJ##u>t$A3sZ3s7jOy> zc+-8N=8#($!KHIJG>=T>;-V=d28$>!Bqksp>ky5iRFX+K11EXi31T*!w^+DI;W944 zf(bXqlOUqG#%p4Ur#y!^9n&xp%aDvDY{dcIlR?~wgS>t(@dEKY@g#C7-y)_WvV5w2 zRCz~${aBgU_A`PU&imzQ8FRV3h2dPchjHz-D92KsLU}wEQeHre#~iH3I%qCfj-42X zZP<#VID~_^j%$40HR1*M_$)8+KJqGXB5E=ij$xRB2{^}-D~QWM+OsDSw~_!dh?*EQ zDP-d?_TnnfT_K)>LD@sRhg^)T#0g3qMs#5^Vz7w*kA;=UXbCK&vap`G5-YG9yRZ#s zcHKfxtbcXO^k37~|B$tuq@jN&ZCxr%U3w!$wL#NY6c_eL=#A72QkC9f zPr^iK56pb%9k$*>6{WGgl=mPLdN1WX!^3Ih;3%{g<{GX-Z=&3oK#GbX^^8Uo<{|-_ z?*3IT%t_v(ch%atvII8*@(O!kH1%nE(_8nU#X0}{6!f-2bKC@s!6MR__PA&o(_8FR zXs?UjX0O0*?7}u|#Vnk_Q5?ZFXd-x^UqUt+0!@QH)=eN&#jrdY^X>0aHx%?nY7I}U zChASpQtW`t#_`7H~Y-}G+m98q&z9y#wGQFGi4=#7#|^h47@6pm5W^tK2O*egwO8%TMn#8o9Y ztSc$(!ES8FS)M#YJceA#ngFlk8Xn>({P1Bc`6m+bB(ga~O@1pVFDE8JZ=ALw1Kd23 z{9J|iO#3PS<35R>wcaT0g_|ce^TmS9R~SbTHTg{^X-y+)@|%E#n1{JogB2J8O?U?| zn~j@^Job1O@4bNYtUrkpxQ{&Ca`F&C0vkah((D&YS+n1GL?aOv>l29aScPTS$?J9y zx8OKsO?-!N5JibkZ=@`q)5Pb-IP%n3a?(gVV0jkH&S{#Yu$dLhh$&cvEj*b{OvQf6 zyNRcX$B7H@piJt&OnMg2PbAl9avKLtcC)aaT&78H1(su1S?WKF!dCnv^Kp16Yv#Mh zi*t!L;NpTel*_xHvL?cqa;f&QERR7PWv(=GaXEHV-bLJoQ1| zybwW*AnGmBRI*zvF$UwIxg!DbScPRM;PnTH`!SuZ$s(TTeVQFl;5hQ28S-XD>S_d8 zY`A7KR!pI+DKZ-4FdruCtXcEG5hP-hHjZ9G{e3X#w>sCR%fFdfT~47~$k&M`DiNH^x!Wl(~{8H9aO{ z8)fY#+=PudjK$cGeb5wn8u`5L0a5P{AI**hEXR_liZbM4vYU1l&cz1GsYK0?@ujK% zU98aizU?@To4olH@hI-_oOb(Ng-O{UMv>hjxVCG5WIWle=$=qBSH~jd>{SUnCCGEC!RZACo9+iq!taF-X8{XqsG&W4uOFWF}c~J24G8l#dei zHtrhbt3>T*Ovcc1dG;YBsY$#~`yHJV$YwFD7>)Uq=MiUP4dwqSJs#yXGoc-iH+k(1 zqINu*l>NkfL~{ilN50_xkW9#VMVyAI&}_J@JoUer!XiW<9UHL$`=F^Z3+Hi;4?IUa zfjmC!9`Pn_U6yg80E#pMR>rT&LwUjTc#2x>B?eOqhiqFiROa}5sH~^U`S&RM=M1zL4%z-#IM7b-rH*~-K>G~(7pD_- zJXJd`laYk^(7ww}*a#hhKg?^je{v5lQNBn#jUCVtGmUp~2Sd5$TQ-ir$%2lSjU!Gb zMr$(Q?k|z3BW9_Tbv#w?_;yp?Mcf7*S3QN3ID%{}$4%(X-Vid-L!uXtW;q>G)f+zT z-(2lvVU?yL=v`eVwj&KX$a(~t3U%b{050Mzw4>9Fd_Fv%sHtuwS*mFCOvhIzbJ^3; zGaX-@3%v~9X8lH@j-ZX^z3p`vZ7**u8bUiq`7G;>nyv-I(qk~BWQZ(mjg|6 zV`GO#GM2E57i6)x6_5679%lI#in=!S9#0e678E75NKO<@Qo}J5Gk9(WaWa;WsI+S{ z5%W=$)Yeee%lmdr4CJSLnSu_K>A>-SH&`~3oDu=O|C>&-((cXwu4_{hS`0L)t%i=3 zX+HW_V`Z0luAl^`l6HD}@UJ>Ob>M6{iAa;wAzrub@2K~F+R=H0=dy|WptpKON$m_} z9T&Te4bUVu7RT9HP3zi*8R;Y$MX*v6+H7b?=xWxjA}+-eWJ24NY1oV$=s20)3u&ytaxsS7Gn#y(w|~Pi3p1e!ZY9sHAeKqyK?lyZm3GAL928W~xqyXp&|XhX ziC&^+usmoM)1J*?(19`?B-5TvO$fo7naOyyrc5G@A z%H?%;iPtfdi_j3gXY;Y(#RRUu+Os(tI*c-ps99_cWzAwKm3IX45EZ=9++H z%1Ole*hE>A)*7saCa%5M;p8C`I#f0n$DvtCvsTeCnGTWZSe*8ddJs+G(F`^UBQXop zFcnGAUekPDw}Y4oP2D>I4oaZ+D=Nm>*j0!1ne!@6wsw!Ct2m zJt>8ucHv`__lmkV!(2KaB$)4i-C=L%uz%vx(YW^pR!ihrz3+I$Ykda&@op-25 zrgjt!#I0nt4z4YQ4!&uE%VwPpzU{>Y%4dj=P5~K8Uec)_yAh)UYs9fmuI~vv5l@@} z?atIBrqe!>q1XTEeArZd6UL)X>Z5~;MSJqkJJPFga$NVqoZY{0l1l{d)tOdY1P2%H z5tCY+g`Yfuwf{WnN@up{ge(0!guzmrx11bx3cRR(^$?f#_#Vig`ytX%akucJ7_mS8wtDgP0+jEI)NMQ5*U#E zmlgvS2RJ&}pNsexEtrmlGkvJuPYP#*^>x{QES%yq$fdKv#<3fWuR06ogZ0p6N~$(< zbSBs==!Cx&&KA09k9QE(=Eu9F0p5VbzF!Los} zc2DaObMEGFXkiCV@x-GomD{Y-uIVe-4n4!P>7-|l9u-c6M<(1gWT4sc_nf;<4m-Qw zzHp)wv+nv8jWQ4A6STp`?51dnqqS|tgt?`h+63KEo!qpMr?mQYs9C=!6Q@~sim0c- zP0Ck^CQ)}fA5m<3MBz5-Nt{>MT1#TxV%F(tFc%xK0XpkV`|LT`PJ29W*0!V0u%dd` zb+R{(vNzy&+|p%l&OW&8ZJ8YCvcFx}Chb-@-;_0i|KRE2Y|Ird1#wQG- zIl@-yPh~DKj;I6YI$*AQw}o|^i2I3p6gTKl#CaC*G6X1nO*dwjbT^DvdKE} zv*>ragyo`1pL#ayZ*?=);Q+7OLp(z~K|BtvN*!e|S*L^NQM4vcqZ2hLK~M&>cxrhJ{a7B@MUwLe80m@%{!$5M_b z>WD!KQAgEvM17MEMHEf!+|P;`&9t6Q){o;ZwE3w+3>Li5;Rx+B@veQ^87)}dt7__yieJB&O zMTk?BwNpq(6GjuAItwC^CgnP;V&zVvHaT^8;Sf>#PA)-57PRlg4IP5W$6efk_LFF< zQb!G@(wfwv^+ci$tH(oIm&>4CCh0^SPS-Ayz1p{;O-vn6zXSlpI)wh{Jgf!U{(_De=p3tcIE+)g*I6_v>k@B%bV61hFVKltI-)Ry#+;5w z@4^f%vsbaiMYJllb-A9Xt;!w5twbFW&=CWjm2?0)KdY!Qsof(6uX{j@sKC9wi-z4$ zOoEOc%%dTwKb8w3}oyQ3n&wR;bRG@<#0e@=>2U^P~)(Tr&cbWQe17*j@~HE5)|XDTucNHDr8`)^m8jQ` zBhZn@1JF@Ny)kw3d_GaHAHz9KhVTP;NLgoW>dmN5!_m>mxrl>aMzo7nZ%}nM=k3z8 zB(_k{sho%SfP+LGg}g|)XzI;9%C}jk({oZvr^X(b7ZekCn%`)4x!7LwgIWaYP~^<= zv2pW*CIss6Szh_r(8Qp2&VQV+%x|af%w=!E-yFE~mZFPG?;5)6Omn-Q$En(8`F}c( zU4?&q@UPBc=l|s-{#WPlD$dPi$l(0dX3HU>p1b;IDn)%}`gaF6a2?v58N%uHkXY1T zHkM_lPBAYU3ex^DJ!dzuPKSSX6Sb+L&5}pYS?x2s1MTZ7`a6{<%0p=(=*)7R95I2G zhxUz)MilgK4rW4IDf;Ir+Js@Ia^=E?wa$u2hYktti>26*Y$J2n&R!lT867jS; zW)V~VZmle)tSy!G&=DVPnP|V54)SQ@<2GgO7t_h(I^|EN`)T8(s81}0N}ta1cw!V1 zXlTR}=@)Yr&i&Jth<1!6p=i#Z&JWaXA)VoIgm{%VX-maJyiXiKW8$ADi|ZT+ZNbbZ z>hwOH6|jcatsrhAYC|Or+DO@l3nfUc+A`634@IpKZGGsd&QKK1d(eR$ZJmt4Xr%C( zxkMe{Sw$m6Cje?+m`(uH$$#27*$nLqI}DxwFbmrB+Jl>vb!_fxN#5*5er)O@YC|t9 zYoT)hb((`VNV2$SXjfMbQ7c=kZM+y-1Wp*O9YCZGYT@UPrWtOD`GG#L;DG=tgOKffYK1K^q^_ zv4SUcY({4qXt!BL*;M;x%7M+HFVCm4#%Y844Sjd+6K`cES>YMbNyDMX!zvk!a8l_y#2q?$oZd>!@rRmod2qUqkT|Cjhk$e!U2{q5VdnAm#Fu% znlM~k<24TDnym@NkN;19oTl>wEA#OdG>;WbwTJm?f@%l%_N177}$z zfR2{0p{%pybPho>{SP`;qPMXpSg$kWZV>gafDB^M)BwG0;vxZIr*Et4yJ39f3 zx!CIzfVn!nulKa;unH@Yi4163(V_ngHcanh@A9Ub#D_#baV!`2NG{l;ptr2C&?x{q zO<)O8rvd0+7;WZtdKS>q&fFdsU>;XW~&NXm9{AFFLgu9mEf zA?mP698v$IXgYLML`OVyrrc;0jf||Le1O;OA)X=XY`EjNg=;WbXAq;f;z#h~(~%J! z5z$-Q8N|t0qSM0l9#(Tn7Ef&A#TwVMypOW}DUr^OJ4^WtQD?{9rmWM!*TTi{egSbj zDPRm&@HxbpL>(Z}Y2O=(IxwOGCw{KjdX?Xc9k{@AXLNX9M@IC1^(G3SgCgU&)N9I^ zNt{a5KO0&~S#MSKFKW^#YpT#$a5}njq-XxdoAI-MTAjhIf2&`KLbr4_!KP z(bHw`N{4S@&;C;mJ2{8Z`o4vK7C%z&ZJ}Mi`q!-5yFCR-lox0hsP_2kee-JUqO3i> z+J}0|RzzF4^?e;t zlgutYplFCbgXLq;KRwbRdc6&~fMpoUiJ)0iZ%3GdUD%zd^UQQeUWel~xjZ_*Oo!q% z32FbRHq0UMyng(=vD zGq82ETl+{g$viq7pUv`Z=-r6s8y%A8F2q?l9KW3fojEs|GhNf@IrdD4=!@o>&1St$ z#nxMqEv(nu5B(F>-9$}1(Ui{kY|hq?Jl7{F_wm9KFo?^Td3j-k1y{89XFvlF`w2=8QQDCynX2 z{9IP(TNZE>VZ!S94`sRgT}^QhfsYheg^;x)}$dSx4t%>mL$n&b&s{KUi@Sqsnu3 za^cr0xRZ$b$Ek@(Ks<(H9g3z^XYso2Eawmp6UjV<$>#iP6!KZA9hk$&6q;G|rbIK& zWUjy3F{)W+ED|vvanMdtz57{1ToD^NmhMXJ71G4A3^e=uIRff90%|$}db{{PPC9X) z6~O<0Q73?B>jpf}DR#D8z-#|l!K+wTMSGI!J&(wFNOt>&Qr zU2N=#jY|u9EOu#HP~d+&lqg*%Abl|J;Ki{A(}JqR9{44wQkeh--s%L*AM9f7owT4@ zjyeJ6ppusYs-*^SGS>~L=_2Zv=`g9SOh9Go-xjcsmjnjn@INwS*a`=20|Sn-u!{v| z4hIGtU}0M92kAj=pQv3r!2MU=fA_!0#OnVd6T34#=s;s$bd5pW|J#2iGcs*U5SpU} zf)Rq2XoXOOAsjE@MYP6Cco}W*3fiI_Ud3x@kJs@AI^az>&=H-`8E@fjyn}b~9^OY6 ze1H$}5kAHz_!OVvb9{j>@fEtF8@i(hdg5z*gI@R+-{E`o#t-O&AJG^6&>uhHXZ(Tz z_!YllAb!Um_!EC&5C+4EAs7l5hG95HAOa&X3XzDyXpF&Fj6*cWBL)*N5tA?(QxJ=( zn1<Rhy_@PMOcg^Bx4DdA_dE^94oLAtFRhtuommE9;w)X zjo5_ENJBcdAOl;m4cn249oUI1?80vB!CvgcejLC-9KvB_;|Pu-2gh(6CvXy{a2jWD z7Uyst7jO}ma2Z!{71wYbH*gcTa2t1U7rD5HJlw|vk3nmOj+hhdTODS0C!>Lw$W{pbt;!Lql6y+LlJPRjw)_ zq0O6z2Zx1(hX)6@Xb}|DDzsH>{KEkqW0&n2R4Hyz(}@;Lqo&ES~YLkJS-%%Ws9&D zp>etTY~cq7hqi3V2et|iV}scIprE*l#fm;Sq(yMcR-xf7g2RJagaow;ZW$aN7xbUc z2DNAr-aI_CMf1?G;8v|#h6Dvg4}Q?t#>3P4@Qgk*(T8XC;W>SH-j+7_K~vk5?6xg9 zP`o)TG^iEd+B_t@rRcr{x8$>0@Nwa6R#5Y>7QtbK>zjv!wg_t;9@0FFooE#n(jqjr zo;9#h?2x6qYsL<_^j7`Y@%K9ykKUBk%*I2IJ~X$bZOUq4EC03q51%D}q#bA)YLI8gDX8&-7lF-0_2AymQ-FEAl>60u>Mb5)wq6d1>2mqv1z%)&;Z+% zw5Q(-wpA%>I~3RYOa1KRw4kqoZNWC%nY5l=gKZOw*;>RI-Ss_P(gyYjwlxT}?N6Ke zU9fHK{Yp>1?~wua`f?8@>c#c^BE;6w78tjT_j=7A7fk0)#|rggm;V(VqMZAjah8)9?5 zWcxF%L(`VFyX|aiqQm;PwDHi&mKN4O)Yf;Ktz7iNmSMKEg)PHvq1A1Z)6R7cx0NVe z={stqYp)yf1A61dG~=Ui+h^^lj4so|ZP7JmKkbqFKjuqg^uRpaNA)<9=W}em(z0iS z+Zq?MjY%_Sh1-&B_GYgZNU^x&xNw`_mJ_#dPB@j_FfNyvVjB`SCqCTvxO4S4Zka&k z9UEh+}ACE{oFDaefzs5;3vKuul~%Nkc;nr z;XQa_fLp5k>XuJ`bIbb!-7@`mw@m!QEhqkT%i+Ixez04rI@y6CZuxMiTV}iXjA3p$ zH=Ngua7+D>JXv9sTfU8SOQ$Hej34cmvSZwG89T=Ef#clb81I%wF>cw3tO;(ZH_0uJ zO?FH5DQ?+}8?kPgJk>3~Omj<{>28r3ZkdKUGu@Jb(zD$1GLDxQIlZL0T*m^I182MC zBPS2t&>PL--16sw02zv=i~aHj%boE)-k8JDh-Zrv+;S3==kmUJZmB$Vg*| z7ElEX-Es>L7O}^R-O@3MBZ8D%AEioi_&j`d%q>fC{+QD(t&X!LxPwL~ zsN0il;VHKMv|G~7a2B8C!_ILyFR)>k+%oD4C+k(}`?_0PH{9~aE%yAjTe{z6uX5co zD37YS&v}*amXdC_4E4CBtKpV2UaHIIme()|yU@~Ux@A!TTP_|MRm>yz13c0z&?ARR zc;xlc9{B^wFwnEChm*)7?JIgDwX#PVRrSb>Y91+3-6MZJ;gRoZdgR+$9&yxW8Ci8a zGO(^kTGrz;aiYFQW;Wn;Pw_qsZ0Hf^Up$;e`$ir~LFL9CnTTp!ZJt0~G(;0jK|GdX z^fMlrfZ4c#@FpG^gJWp-tVben5-&dIkymjU<)8ORTYQMGF|et}Dbma%7m*j_kzbp8 zq;m_8#K9HJ7UR_rHVk!Ia)eN!l}8d$J=7z$!aQ;q_fa;SBZkg6hhJatNW~XDG8bK1 z^ZJ)OvIiW>(<5u~gTo_TJF+pIJaQ9T7T@3y`S&}c=c0{ypJoW`TYtU-pZrAqZ~Dn2 z&;87vVDK*d?+5thg6UB$QrbW;>FlD+9TaKJG+eW zNH$KO?O2bzGtMKMqCHY(JnL{J#v@-$;LuO>NEE71@<=QS@bzSl!hTEK#2=^dTAYvN zC{5*Lp5~Ep)7h9A?1+07bbJkF6A6a@yNktZ1{41aw|F6R`HWtL$$4CFV}Ilr*fz_cx2~Bk9@kBs!QV> z*y54k435NB>i@_hIWB6pv6 zi|qhM1|K3GiFo3mN502w%taQCqRJu85&VknFb+}w%?|Uk!9twFo7o;&iLysHOECtq zn2i%Si%W>^SX@Gna>TF#rE)kL6$_*tu@_no78yv4z$sKZMwMbAl5r1j9H;)Hk8{?u z)jneJ6CN1?69Z3jSn<>;k35UnSb`O3c$%Yy1z3Y;&UhpY-O&$IFc(X)@+^Ccgme7N zFL<04vLq#E$yB@QvZz0BEvg^j$*_2C-ziy7DX z72NPhpPL-DTkPd+PU^dyPiUCyky&``9w%xZm-qV~al?7~0oUn#4k_}G;`T^ik4Hut zoP<7)yyxfSGuay~!$#~xHu@KECgU`2z>SoL95wV5L#Sa{YBS^k78NsOR)8UI7B}Q+ zyCD?=4Y?9%(Ecl7$de@v*?^!@hO9wQX+uhuF{CZFAhfI@$>>wwkPj;u@=-;W(Y+EM zR@sm^)U9GjCi+!1WIRSZMq|F3A%7wVKRj+o@#=;w!7DWkxr9bfIt|ILX~-M33^{^N zY8$c(CF&Sb6Th@8kY0G07$6N;Zi2V)2?k*lmLUyCa26L4Sl5ussEsC=gKG5*nT!tg z*|`RWm{{$6ials(h!0m98Isc2kcg)ZdF>fP)?-f-L%w{L4|>j!cd!9(JPIE(|QNM*D$5AJkox{!$cBG{t@3%7K#ZW^kg&8svuZJ7ryu!n0FBozj zpS{Q-X>G_?*p7NH8PXT~5%n@#-o}usuNblyliC^*-_DTvud=bP8L|zRaIigx|8+y| zy$l7S9y8?q5)-l0Cph>sIr z#c1RlvLv1O;9ctTeM5f55RAeEoJOfGoD0~3S3WSr{-Gi3u$2DYr%2E8x zX^8F9cGBZ>4%-)o$d}Y5W_@MI=UokXp_?IIa?@c#kC7i8i@L^buoftNgEydkgeAsM$ zVsX?pPT~%l%;8+XVL0Lq`2s&7d zrv6tX@zY4=tVfL{hU`PeQZ_1u!@7(^hvm!pf))IvR&s9O^HrQ^_-Hi|Th{Ok!dGkA zTa;L5$k*74@b#Re2uNi^aSXv5IB#%fgVT`K8~K@_`zAv!pz3Br#^8lCu3C5{opS&` zY%!!|h9PCQa>C*DZT##|dOL?4y)wCQ?chiuZYRHnEG|I14M|5H!uRl*`#72R8`A9n zM;xP_2My_eh!ZQ@kikc&^P~K9urr5i!7)RI9;XgZ7_tg4o;1XdX{QW%_p~96&+q{_ zhSq1PHXKFgbA}}0Ha@=ooD`fl@b{duTY0q`HjPK&5&nra43;` zlV8Fuw(>T0cE^xE?(!4OHKffwL(1oI65i(=K-L38rsnf|cJnzNE;0tcBrg{xA3rmk z^|K=;XS&7DwSb*@Xvj|Tis^vWkCyz)*-uhcE& zmB&kamAulvvR4+NMis9lqeoSi@#SM) zd9RvR3UK;yuWYaGl^Hd>(&!1NR}MVkm3~ip6KSnc_j^vLirNZ4)e+sln?hx zr589NFM8!Jj<)tn&zHP%5ssI=vK*({c;(%;Uiqt?SMI&)m749n;*5FSE1TZ%O7NRr zneFgOR!6TK>Eso8iw%35y?MtgkG;nizwedRUA%Jc1FwAWkynO%?3MgasG`r<@Xx)H z{snvZl~=lU<^A2fV(a0R-+Fpw?$=aDFRJES_WnDL+V@`h;s>g^k5?Z4Nd1rL>y^^| zr~*91fc{?j_$T)KXRieP!r>d>mCC*FuiT#Ol^2>8WHxk(S57*YdgZfaoWaYzQh%jazFWnKx0*d)%SpJ-E1vay z_y(_R-sqK=H+yA7npf;wywWMdD|@!Ghugg3$Isinaue=Mj>rzLT-xcC!&#iDyVy&- zvD+(4(Pj@v0?qb%rTaeWKX<=Z8XV*VImDX|^D{f*mBgdewaE+7hx>riw^h)e4uk5-_HQr^K51UjC#%uEl23Ny<;p(U zhm%!&a-)jVCk-C+$yH3R#*>fp#rUwgPuA7&$-F0hGNP7GuGIF)w{?ADujiv3=aX$1 zR-e~2@X58OcyB|WyxqtrCXyTbq|4JjdG{GUyNORGAoy9IT*lbvd{X~;pX|W4rtFZj znUCMPPh5Djg-Mfr*hrR8S zKJWPGk?_f<@3GbI`y>l-U3}8&1D^zb=##o1`D8iX`Pe5@K4JMYHso{m^b4Qled&|G zy80xen@>9RU~hY}G2c)vy?k=(Tc5P}-X|M-vm zwlRG0Sk__RIF3d%>+!^RpY*^9yg0!pjVAeI+>A`i&VoUpUk}C6YDB_eBCFGn^e{u zli|6XsQ1{w`#uTD=kq+AR|fU&^GQ`d=M{c8eNxNfJMm!w^?!_qZyxefz-Qu@Sd_Q< zr45E72HSBT65y98+IQuMFJl6goo`{f==F$T4ve1TLU zK8|{5f{)Q31CRkPYSi#cW3lX#;p8;E}O zILh_?64byi<(%!^@)CthSoM@&K5yukGL3jKJP2vb9^nDnKJAw{SUC8MUn)JzUgEFk z{8H= zIgXpS^#(_wgI}I`lh1VUCEYF&#POJc#hBmSFOz!sWjbE($!jtEYmU}8ewhVFFRJBR zz8KZMqZ;u$wjdvkzvqynV{hJv^-dm2{lH1Xm)0Q;$K+o{ZW7z~;jBg$zWR}$Utdlj zlnX z9D&(G_+7jFa&eenQb+hDF~Tn|j$*^2IEfTcU|2vHVQYcPi%##-r~vzdSje&q3G>>c9U?4$&+Q-)z5}kK>JV z*pPU?97>=%=5hq)`Q_93Y(OIC1u87?%hL-v63D}Ai&(dqy~S&okMc>>J2sti;Y|IOZI`_w#;v;vx%|_<3FC@Li>Du2Ch| z`DxzZx-A9K{vnmNFR)Gv!@8 zUdEK;h%0MKw{mUR|V9J;`dEZ?Jhq$9DZ+152mA6cp`!-wk zjw#l=raX9$!`8)Q0E#dC(3I4VIAottcNqDpDPfe%Ew=sau%+x zrj+l-PQXNDci!8>l!`q$+FzS8>Kjw;_oDvgJ5zdp&tdFMUH(8__o43kn(}QwQx5kx z<=jtH!!LaB08_U9%HI8E%8S3V!GD;t`cKyVWlFQb?3vS)MMF4(Lpg%OOldxxdLCg) zQUvGBC^j_Gl$a>ao6(#jV@>IVfn)Ve6z<@_IQBByl#(&*AqGt_rT#?Dg-IOB$)=Q; zV#)=ajWxONGbMbwDfSuc#WGV`E;l88g(<~XnG(I4BeTYo zFV~rpu%12Jz|q-g%3qsI3EgZ;Mw%&sTiDwSQ;uxq^R}BZFO#FR)0CgHI3ag&Lhs?T z_EP^@JS^PD;oi^60~`f(ImpR{s)zW=AO@$f<*+HYvQ61}#FR5fO-ae&*K^F2rpKx8 z6Z~RM@~gntr#Nz_P1%M?XH0qiEJp^j&+(e`rd+~D7fi{yK>fdbk)PNlzT~ng-LJ5x zSJ?^Epx_3;8g&+Oza_H}w(jm{3x9_vj4@|j^N%^L{ z>SiPGw#O8Q!8zmQr|L6hBYyEyt)|nI(o!aB@m(=XZs5HDOPUn7 zq^8}Hwt-3geCE)Q`3?pJXMPbAL`e!WK~^D9%4m(OC~k2)IwEQt-Vp zFInRB@sRj3TiV8w+OJqL5oOw1G81LmSuz42zsi@qW{HK_?JaSvY{|;EEJnI5iFwzOpWn0OqxUVk=Pl{pg`@C+#r>ou3266`CHFqEoHFWT z_U;o)YJF-+htDi|^>a&p{DMROC42dmCDC0iN$qCI>h6}D>tV^so_xqRd~q*Jp8J-= z{2kTvy(OJ{TQcwmOMdA?Rs3kljJ{M)KT9(DTXN?os_|z_stsUz*{_zo{2NDMpe5h@ z?qtjUuw>kymPGw!$(lhN-ofkv>-P#*!gp+2C;;)o6|u`i{4xy)%ZB34ctmp#=p?V+BV?z5!qeoMYUH*7j!Ny^hdZ{6YvRK8=$(|7rTT+aA={G4FR;#qu%L5RXs9Do#Xe&8+i!VeGGL;Qw&AeqWv zwgUO2Sb-!VHK0IVE?yw-+6&}3&f_ZXAQwK&EmI)2zyc|W3Qits;u(bEb#y^@^u?cu z#55!#1*zDAEF8pXT*f^}2|g4xPzOg?*Mt~~5WI?4@D@IY^E)2;;a6S2C`4llW@A2* zQL$u!tRQYcF+OxFaSsmTBrYNjw=sg(x`_`_f^r4aKs_`;FkZqNB@3K%5*0`f{DeO- z9ODp+Iaq`hNJR#+Z~(_}7FUsr`|zPysRAjD%BYD3XoBVlLtAvfyZEG(vp~90=!L%c z4MR|g4;n>`!BoUy0aCCAn~{nA$U_d!;W|tdploTr2%lmcCSf)fVL8@gi<5^e9K>;) z$93F;7sWVPN~1EKKqC~ODS}}k6fdD8-a}V>jqlMHzhMLlzV9iY5yzlRS#}c6i7ZS* z0v6!|tV0UcViUGuFS2nOmvIaEFj1TjDvgS$hMH)I=g|sn@H*bYFwTh{#6I|@EcO2@ z1t%i#e>%1kn5ydl4&eV+F3|D_kHDh@O;OYaA}StGp@FDmnDeM5sST(+yA0=>rL*kt z>X5R%6w}OfSsrOkS_Y*pr?X*{M~9kemQ-Y@z4|EI=lA{nd3$gF|L=Tz`~RO~8RbM+ z$3{w;MuQLJ4l1eQD{45xPn@BS*Z7CPdrH}&9wT?k=CTbP=uFS1`oFhICQou3`P{{L ziYR6VvsuGaJjZfYQo%;Hv5P~T;}X~SJ+TD|B#}ZogBVIdSTU9&N}0tR7O*-0f;>}5YS9A+~&)i(-$kf-^B27=~VgJ!fQ++LALS9+2`Hb1(RYM3lwG~>9B zDU>pu$C$&@EMhS)^EwgMu%1n9VJDST@g)bE>;G?5j&Xut`I8G=qoSVVY*qQO5e606>Xc-oRoclwb@J-0K25fm_% z@l0Y0Qz_$FUga&;v6byq^96^fjnn_9R8I33QDQt%l0XXm8B7i%DQ6=eQ{f?m!}1Il zi1C0zJY7j+6!%cZd|u#HRtNOF7!6t_npR0#rj!2eti^6N#k#mCwszIRtW0*H+}J%DOz7dW!abuw zUN2LIZ>hhZzpDkAY;9L+&8`KV0QbMlpgshHy8d8A}llGo43yiPfy5nnV1+DbDa4bzCCkv7K02 z(TN`Pp>3hNr3=I7gG>imv`IS?G$T*Fn1w8&r!Sc+Z!T+3#5F@n8(&G(#O!{8CVaE`R|QCML6^BQmR zHe2|V{TwNbE-wmotn6{9e<*!vXi21~I5X6@@y6#{z+uqm0TYwmtFq{`N{?& delta 34052 zcmcHB2Xs_ryXf&}2orh}1Z*^^QVglYf`SSaT2)*|jU}pBr-r@eAeC909cfRkOv(~*=*KeM8@7Xi6+q}=bC9FDft;7b5 zsc(CINrOeUO2&hPs&x;w4k&uatY0du?e&0s@7N(XZNqQcR1pNADC`JCF%(A$ltd|% zMj4bvIh02QJb{X+geOrMRZtaA;b}aBXYm}Wp*m`yCTih%)J7fDMLpC<1H6ESXoSXS zf)`ibv;{ToVjHuvTGybo(p9RLd^o&q!0!%wjewGlfbuST^?+|#Sb45@P}L%}tCt+X z6BTrAFWscRgHlIFJBk&x_(L9>KG!d(TY$4k$>Ns+1FV5Ad*gs10S&V?6thvoVXx-0HwtWHZy4yX*Kycia@oTj_ArP2ZHN6$hrN?a zFVTk%dk>fW8;5;>%g$ZH6^!N#N7=Y^A2{p@wmka;&h$Li%_XKF8JSp(Wf%wjEQh@@ zpVffRdfBCSNE?^EwZs0Y%l=Wpr*!95ap)u1^!AvEdu+Rk zn1OA)W|Nab4uylni^Q|UGswej+`@iDab@)DVNssQWgbg;CQ)yV8PMB8uii%1tt0Lu zW)s)o+~4sm@i=mkhkJ0|;Nd!kaw%hpQAE9OCUN;EQjXL0n1v)HVkz`?G1=}Pm;ZS# z$%|Z)#swGXzgw!omettu?^w35@Q)bZ=l7sz;&1g0D*i7XN;*rmu?Lh4IBYLc-)5J9 zg#+^J4NDfOT`@4=8uiBu0rBilZHN68m;L2}8?e30-mc&_{K{qjl6%Bq@941ib=dnj z>^-?3xl~+^Ru20>hy4$Zl7$$|;69i_Ttw75LvP3pl(TG9NqRT#WnmXF0T;M)&l6AL z0qgZ9aX$2((duC%^d2}A;BwjzQrL}iYSq!C_b|8^jqHQ~Vz>jyM9z#a;F!;uK8A zA}qjstix&y$5G^9b|6*#O!m~^i1+j2tGL1w=WrGVyvW0-5-$7565PO;PI($}5+))I zLogSq$ixclVY}VLZ8$;sDDfuo2JsSnC7N>TC~QGo$vk^(N$z4Km82FUPR26IONnXN zQqmQFVscQ;QuA3j3xgHqrUX6doL-7uD#b1#o$^9rD&`;y>#+(eu@@7t3p;TV$8Z#P zaGN*2O}vUhrCs(%L<3&LmZn0$2uwo)E|=mwE~k)zC|;aS+{O#H60?v?`55sau2a57 zynyrY!-ogBkC-xC3*s$1-#CSnFMuo#Q53F|Qmr*R5%+0moKJ5FABo5EFG z!Ju*u`y--(@#S3haV(F*EXp&9(=iRp5Q9ZX$40Ef5w<%_+>6VUFA>k+G(2$QE@JqV zIift@qai#@Wnl_&0tRC~%X5g?Y`E_4xR$sAdwFgTaXYr*B#z-IuH!N?aF7Gok2zen z-FywIJNQY{#{L4|n%a+L6=(bZl2-b<{>~|_G^e=!&M6Zq>8}k4!U-J5VI0DB=noP7;o)W52R81%7#5<7WELcs$s~)yUmEi%&!ghkUmB|@ zYm#wc58Li0YO*=a`cuTC$iW@x4~?sEkq-t_Kj?4K@s!6=*59EckphGDGXl8(rn9gZ zY1qPsn~D0X;|S%$#J$*q!XKh%C>uQICF(Da7!rg22pxjEENimS9~%>phD_G|tAvxy zcH5n7kW1kRQL{~6(aeG@qiOUXndbjK(VQfaoFGqVvbjb1Ch;-`QU5z1Q7|x;g)!V5 zF&KdqBx5S3K$DDz?G_T#kcGkoqsc|H*a2cTF7RIGi6?Oa_izh0@d$qG#MEM3|0yJd zOB}gon>3Qd0^)4U!aA(Q3hd{(eMC(*=O~{g9!Dk^(6_zg$qv88IYJ$0sktBr}azGR`kxYgrmI=^= zG86aMZWD1M;@GLtxWECg;kAdHJRIZ+%{G@QYj!yU4`od-cX0=rT!v#X2H_Oz;)&yt zMxt3joQ-vq*AiD?KjnSIoj6BX^UiVPA`kb_@CFapF_;{&ooK;C9LpmSgJhOdN;%@I zuOneCV8uqP!&>Y^HYVdDF5na%lFS|uH6h)?Fsj_4(4;h(N=XyYILxO!k2n)4SdB3# z%uCxTZ^lWsJ5ib&<_HV7Shz{Nj7!Le1rNrOSjLbWG$Ex>P9{#p6hvbQ79tH>aDdlr zCa%Llw%<#)tI3F`zNuGj z#Z{iXLOch9vX_{Ldx);U5fh_`Lof;BFrQwPdBmAmLphU}fo0f@Y;46Do;yuER)On( zmxVhlTtf~XvFs-%VcZk{h+~N(G4lz&^u%eHiX~WxG-P27Mj(})n+-qLT7Ljm4{ZB( zTYJNI|4Y7X&kz50|I23B|Lc@_Nz>-*JdigF+Gd(MN0KOFpl!2hq{FGiiI{--n1k6U zY^b~9cgF=qIR7~#<-^?~EqHOp=?nqLv|>@-E^QJl;E#&hm|bJo^=*CPqzuLy0b; zwxqQ!q6u(3w5Mi1Ic^?Nb6iSM$H(?H6f%*4W!Q~uY{eGLKw-~J4&`gmH1SYBgj_Qi znk4(v~gt-O=w0K ziCoH>`sU*y$E4|REop8IaXB)u2fMKiXL;@nQPbZ&%9;YN<61E~B?pmmj+Q%O`)h??=n zV;*K>7FJ>z27@H$v>%|5$o@>neGW347hk}6)}O=)JivY2!f>+IFp`gEyadXc@y22d zQjyO#Gl?l!jwRU1b~}ihaGbJcyF)lwl3ZVy?Jlw+pC>ijc@Rgkils`A#zU58uslT* z6|z`fLR^gb*u-<10M}qY<=w>7#N))dcvvd)Unf2%Pv&C+2}d(r95mz2Kqd)IGv6{S zMK*R}3;vP)I6IUz`Q@?gJ>m@vp~7-eJ)4v@8ICKHX^&-jG?Fk4n*3J6nZ^byC@h9H z$#!5nHev&EaSR7>hc~`Wyoy02s7FKt7ZAs?#*yTd`NX+IO?ukyOeU`8c};vvv72%> zacfz}3pBmxAYdT}N1!b)&3fAMx(o}OVZ_gH20c?^1$k;Yd1z7mlJ!B)JFie&2u)$< z@euc*?Wt%g@8QJZL~TM%CIcl9$6+kAf}e>LEXNW&V*3Nc{g}$9?joM&b(+CW;5hC> zv)Ik@+`hxeG($Dxup*warm-=I!yH(wPa!5l)7WC{V7u+ajmV`;3bP-?0bGY>u?w(x z&Lp}KOV%1qRvL~6EKg^7@)O*?>seULN{x$%^RSU8HxM(i8vBrqT{wkYq+%;Or@4DF z*FgI zp&gRm_|)j2>dvX;mcqVgZ4Ex&=cui?{m?GQY-rNceo7sh&=%nX5~a5OhLY%_sM`Ly z+gban7ZuGb=xWxyHJ5ERux%D`H4YWkK1~Xm2ru%4HW9S%@gy`MJiu+-!Y)LSU`3&%z z1`C=Y;xP#e5ruh}3r&eDv5)Qc5_jP7ba;&AdninaQKYXSq%4bd6Dd!i91G2ivsl)y z$E}o|EB`L6ATGuZp4?8{2yGc^emn?m8D7L$q~j6tp&hLJ04Nw*@bcO*q_#M|YMLvf zk&Gm0zRch`&5aAOl`=hvt?cVrSck({fc@A9&5x(yX2XX>Z4o}68y~TpK$?Y~55He3O1VQD7ZPPW@d z+<;@HUGZ7kYr2pHSD8HfV6x9dHq_3@@no!VERVt*%Cm`ySV{T6%X&xIW;zbxCfnX1 zYG0&9*(AC#hDtMz6roMO^bqt|d3FVTI<$4D7*fY{OZe(@w`+ z+@q`svY-t}97GDxwxJ0>Vp)zs3W+b7I2Fq%Yr9X|d<(Dzh0VUBJeT8Sg=Wpi+kDyv z^zfu+OwGJ8ahRfu=jS@e=Ha$8%jzUjA?W^ z>Ja!uXjkS!q(KKywL5b?)?pI+T7IJMh3pBTx%>aR)By^L(NO9ZQcR z>UjDX%%x4H1ExA&wuZ8ft7}*0Zpzujt=IzX#ykn_#yowm9!Ghs zlLhU^oXvu^+;q@%1?A<$MbOsSc5K52WFZIBpyOr-a1lC)s>!QhOr1B^adk~%(d3`P zv9m!`-#VnOV`pPA3r-z8z0HQ}h&q6#GYWJNZ7(k@96&oq`7G;>>nsl;pA?Rt zX$$TcG=XWJd3+3Q6u$1>@v?if_7_qG0sVH`B(j#I+(VU=QJrDV#BR}M{Ve7 zS7r{+9U<<6HtY(M*cr+?R(2a}p-C$i$2nR}<2pVbP3{@aI!$2CL>{!Sa|J7x6Bi*J z+o3-$Hy{hgpo3@H@Y7^=1@mzMn$$Fz-NR@y&?vHwHui>M2Bt$3S_aQ8BQAuFrEM+A z_1{8aJ=P%ynzFR7b1yDoF3v&wJT*J|h??T=L(`mgYer!RbofovoFehl^@!FqO2QvJc}aYd7a8=vd5bqNcf( zlr_yQ#&qbg+a}^h6`suw&q{GhOlG18^e zj6xmu)(-m{%mj1k6ps!LdoTK2dpb0^{qEAVHk@pvvvuBQrvZf*C;VKXtP_16pV#3c2Wj5gjd41xMvSEJWo6a?Hkp+Je*?~#;)oFriqkw;?f+V_Jt-QgYsgc9{(1O zUE>CpkFfqQQJarC=j}3_mw3>LOzWY)2(tA>(1Fexfots&7;u<*H#GtS<_9?1+8Yo1 z&p%iGUD zXG5blo=>sSw_vl~aUufq%WQSaKkf?r~3tXsf3z3Q{D4r`$^8?~35lUp!9Pk$Ebt;fY& z)z)4=CjQ(~I-GuX*k3Q0-uFYn1Wo-N83m?iPU3U*=AT7OBI-!Ej)3a{Y+{{$`}Py{ zJgvof%6fMej)?0o#KJqZ@LM>JebsA}L@fB`>2$hu%!iJI>+PxEzAUW90XEcIRHtN~ zARfmpXs?FFIvwF2$*;oU{7}=b3hmqXuugvkPC`1*=`_1k>|*`;fXsryYMpMUgWlD2 zTIN|6^e192Zd1NaT!ovqm4{M;X4nF?BY9L{{BQGuf}I}9+M(>mUEF~-eD!yOb^=f4 z=YkH8rV@2%GzI$eVF|PmtV5)Sh}!1e3;hY9Bcd0f?Oz@B90w1yk9a6Q4Rl0wB9VS! zCIwN@`8WFeK|6yBe>22U-VE&&*5T2^Y`33yo~SKjZ57|eO$;KN>j-EpQGX`rPlqJR ziIlZJI029M2hU@958G@hMg6^*1sxeZ!V3-)_v(|-QPDG?Y0S?Bt`oEanU;L~vH3w` z0}qoDPnC}Ey&xz!a2l!7Dixo)AZT2mHV!YBi+?RGsHKzXi4FL+)#2L~;j)L2DqNZ> zK5}Wz`Ch?X(Ju?yKrIRyK-|7RYW>RZ1a7wp#4$v@^-?ecOIfG4>;|IVrfE3%chrhi zzk9oI0q1pk=}8KD59{}h#fOADc)YTG#Ik<1w8GT}kj~%G3Rfo*t|aPLPb=Q7+@TwZ zdROa2!NNYfbCk6)^nmB@6ZMYPxg7aL_&|$=G2DHH6FHJ8Ct(UELmNK}Ks8)2D_I*p zI%9ATZ?Kbins|zM6gpv0+b~z5!(9uh_lELAS0@aPr|qJXMQ0LqlIRlR!WtBGLWg$Q z6%Jn=pgbM>u`9lOI=zUov{PcVc|p{UxoD(QUPw%Z&JWDOdaQ!BZw^97yL1*sHZHLJ zdE!Z351s#4*u>Ep8-DDB4o~S&n>J(S(u|oE=x9O*9J6Iuv5mNisAE-!u^&24rDIuz zZJ9IiCv~4^(pu4hnI%N+ZcBr9!Rf5NP0&dg+G^36eA=)m9EsAYgBMxW$rulL?E~U% z+`=%v{6kULa?x%#o%wf~=d@38G;}1&2;hr5mzGH;wCimbQ72>QM2y44L%59d&>4Q( zn$g*PTHEO4iV@TpL#YkoiQ|b{L+B8ccDF5Ooz^a!iCUXz58DxFgGGDUw3fMCg7&;t zGiTs}cC%^B!{gm-j}Jl3q2|y&Hl3i6Su)eUnzFW1cCcO>CtBNR!{i_iKu4UkG2-EQ zH&JVwp;Qt&?_!XS4Cw?wZGq^-3muA@g(PUTqaAPBD$&V-+G)3ms1pMZ@dgKpIs|o* zveq)%D9NLIo2c_M7PE8Fv=OxbZ4!+KZH#C`L`R-7h}r;gF5*F3AM3FWNjQu{*n>-K zc#f!@GIxl#p?z;U=R)UO=x~!x`qQDNkyt`mN11eVNGJYnf{rrj915M&cbeB7A!@D1 zd<&=jGB40hw=?=Abn@RnPyEvsi;ka7r%Kd*w*|CNbl7PPQRi6fBr?oo-vXW7cL)cu z96J3$TQA!G=3_f;jYQMJ(76^v%GKf2P|(SKb6A-|%pfi%>IA(9U~+9{a@YR1m3h~KIo>U(#xw2zxf*x= z@9S|_!H?trT!;T(SK-d(RKZKInfh6Oi5wzo-F=Q&*omd{@br&Du0wyJ=sdi~JFsF| z)(PMGOGF1<(xFxMde-Sc%Wk6n_|P93k5}3BVL7R{^_R#$>g_8;?FiFp2U>4yU8r@p zc2?Xt{|;&^{_3#%k8nQJFDR zzFNtrP*KkyE+(cC7eFiaOz5bKc35d&)iI*ZNw`f}D{`IWt#k0SGS5e0Kh-!Y#i=Zh zC62^Q>hKhz_Ek;A5+@JZS(Sz?tbtBg(5@OyN;$-!opz_Sy!KILLHnn)w$}*=GoYDj4{lP{0WzJG;44noyZ*S0p@tqt z&6_|hoOv*ZW&J^^)&45zoIIU@pw<5_w$py8V??d?58*P-Lu-4j>7%Hbb)tdR=#wZ< zq^!RiW1*7`<{+sg-*)|hxrvQd5|_m%j%2ju3fo^`QGat9RJb~aU^riN?Ouu}jwjA0 z>WGR~>N=XT2wJI+#a3*AR_ZxyrYV%|k zreYaS>d1)>_iLZk=F*u3v$+qm{_zU^BF}3@Tv(}V#ea{TA3;4k6!Fx_G zo~(f;g~BNVI+${W?RC1qS$z%E7~~FnE*Oa zKOPH62RcwsBcb50XI2xJL)!}5u^F0obbx*{J9e6Qm)GdDwL#SSCNY*6LybNH(~yAp zVtoI7JekgdwjNTE#fI8q*hAFu4IQLE0iBk1gLPMk2Js)3jp{1x+i3Q?(~j z*0iF3c%&_cxmZU!(4h)#Ff4cSpyL^Ppab@rS5D#>=0K+*JRlw+YP!G6i(ORvI%q$R zsAC;TME%>KsnDSe9j4I9Y@<*(oUxkn0k+#iJVVs^YRBQ!$!gbNvC<%pBp(dtyQ$+D zI*y?o7So86kj``3FQGYQ7wgxvtTB`2eUx+!CFoco$N5rw@ zhtX8;$)!k&(<$iKg$~WHBkGuij%k?G=b8idVh1kpoF)_4UmIi>Ro=A-Q^&Go;+lR5$IEFMzU32HhyO{-v? z$mZp*q$X33Pefrt(UJLOEN>-h>pm062wMH>IL9g0>tFrE@w)j$XJJy=O|sBIj^o4};t^cMMQDRT6OPWjHlQ=FN0K*m zOhc!uO(g1H0O>e}CY6<}(;3)Xi5rQUOEkx59?5|Y!0Y%1xy1P&Gp}`kL#J_j@c<(j zuh7}onn-kXT}R+2Lr36s2KHR&2)xd5o5>C(V>GAv2Hy-?DEcQu_4v~KQm-_`)>t3`+W*V-n9=~d-t`gSN{f8JFnxBM!B$uS9_dRAe(jC!>b*t zr)cLY9EyTo%&Mj zV*72xW5mP6L%59daI-Ft7-i@CuQS2!vM}lISojC2{}@oG7G!-A5}|Dqt>0G@HOV|S zuwL+oskyAvzZKGPb#13yfDXXBxDhmKYI{ZJN{?b$CxcB3?84XK@8t6MEHE8F*CezT z`cqz$%o(=RInlR>*N8eJ%nuJnk`HwJd@^w&QOC}Qf_c&LWrqYk<;-9~$D?%;v?i3t z2h5MKT-f!b$wddvwN0V}=G&lC*(PyUYsx&wQRv?W70&)jWW7#|)^^Dz)@xft|E_d5 zQIpIV%Je=t3%Z|9u;Ms$a*7U`YXe2QptPe~dyS@0*0FKzikeGVXF}^Z`BI|AwmV92 zi!}!bD6uThWIcc9Q!pT&L0MZV+U2A( zp0#D-9L2+i5}5^mbgI4EmwDnm(M{AQN)#3UAS!#!DB90dIJZj&$7ivubG&r0dpX-J zA#NsWM$v93{WBcxYC6ZdQ^Y$&o#Cvrp0%rq$ZbwR|LD|!4kC|*_BZL@`pkx=s#!!G z3|~Ptww$OloztOz>!TS)n=J>S8Ahi^>)-Zhdb~!|zyI(MN0J0|8kbI%E%;kg%Bf|k z=4Mhz!BDJ5;WX!6Y`Bf(W5mNm%`%!uwcDK(bl7|YbZ*z0;)R#o^=HDa`CT}w6&iv z6YvpF1n_LlfX3W_XUhb<`HvNB#XA0KV0Wp2mb$7T$6q{vQ3YBQfx1-m9ea&7_M!pr zb0ZcM>J(42*VHw2io9w2&!rjxQBM6A4Qd83$Pn?HroPqEH*G8hlOkw7VE-(7N*3%zagl_ z)747`xCiF_tAF+-UjNyb_$?cP_Sa*htABDH{)d14W%!znL1>C#gdh}Q2uB2(Ardd) zWxRq{(HyVgb+kZByn#3I7FwY--o`s{pbgsMU9>}cyodMk0XpDAe1wnj2|D6ae1=Z= z9ABU_zQkAPg0ImP-S7>*MR$CM9_Wc)_#QvtNAyM?^hH1XgrD&Xe#LL-kKZu>e_$Z~ z#9we?5C+4AA&A0I48w3lV+3L_5~DC0v53PMjKw&N#{^8oB*Y^DlQ9KTF%8o(1BpmN zGEy)TvoITTkczpOhxu55G%Q3q7GW`#U@4X%1Iw`jE3pczk%=`}i*;C!ENs9=Y{F)2 z!B%X;cI?1T>_RqnV-NOXANJz_4&o3F;|Owa6vvQ@<2ZqnIEB+VgR?k?^SFSExP;5N zf~&ZO>$riNxP{xegS)tgJlw|vJcJt_cwxW?KTKH2$D@&JHrnE#4@LALKp%?ggIym2 z^`V$P6xW9m`cP6IO6fyseJG<3W%Z$)K9tvo3i|MbK2+3)O8W4mK2+9+D*8}WAD+^O zr}g0(eRx(Mp3{eF`cPdTYUo2veW;}m&+9{NeW+v0TC=gPEyGnYIJ{Z2kl>)Ek>L>$ z5n&-=Va+1PpQ}dTNiHHaZOFW-f&lX-WI5H?KG%`HASy*U9 zc(c&pX2H!88{V&Ht6ecHv}s6iaMSS6;HHtG%_71h!LMX8qViMghnHW*kUp5U5jf`v-6rmp* z77`g88WJ4WpI7rxUmqIi!wdS*P#+rULt|T3{|8NMlMc7w1Nbj8G9n^4G$AS&k89QIJ z@ergBO>J2jJA-W%zOfJVSu!wdSCbH1Yn$!q#3zD6Z1rpnvR)!iwb|+?<}?kly=HSH zRt^raRktN&g%dm2ZTqrfB0_AvY)>|+lrJ4&Ls?YE{=|}zA-1lz%2_`WTib1?5?3@2 zvE8?Qnl=Bm5Zj^Bwgp*#wGFWa*h=Iy&zJal0b(S^yvrL`s8ZE0+ZG1Mk4G$dB0WI5 zCEjNJAGXSgJ==xYoVK{E>%@ovTS8W?4?=7eOWO`7hIiKYPS1Mb%Me?L&2~1c^H(9Z z@kMN*iFse^Yd+5E*EPiUe4y<>)}$UGww3oQJlDY^zu0TZJ(zetvGW(9wl=oniSvma z$_$(4m0zmVl0H>yNnTdT&Y`x}rEFhkeb6J+cH`+1%h~59RqD&8tX5H>wnc4ieY4#A zLv3B3w!ND5*^N+Jce`y})~36mHs`ChKeJjk3A5d4XcOz}ZN>=E_75S?Bb@?8>@M>1xCy};JEx8!&rbOD}Y)Ofy ziB-5-ZsJi}kF32@BW?AH*kZHX(<5yQZ1$#ama?g&$U;>-gKe17!z}}Py5*-{Zpr-KEn|Oh%jzH9(!RG_iuZBL zZ1nBx7JENF9B=)^YmkRtKl2(q`-@wi{M9X=|K^sD`nzS??;O|wx19XLEk_3O{9kUV z?BoCj@z8OwTasM7$q=`kk7A>tZmB)oEfu2O(sP7c+QqnK+(@^S9p#oQ*g2XvjCD)f zF>a|p)-Ah`JiEep%l3O<5X1rVC6WsFaWVf`K;+7&)-7*z5r@3VdN>6vo z>rNhW%Zi*@*i^1z9?QjNxaCuH#Sdtj=$1cH17t9Q=KJLxmfPbaypzP)NM?sq+;R%> zGkM)Cw^W+VPGRsIw`9PN;i+7Lxm-@T=W)REx#aII;FMrVnp>JLbjuzLNO#L~i`bhG7-sH${xux434(cwaI*&_ppZn^eTS~g!GQ{JSubp1EoHe*!KDV^OB6Qig z?74U(rie!#26&`LphpfD^T^vJJu(pK@ZsCi9yw9gBdyDOWbG3ksb9$>(<^(VL{*Rc z^|VKNJ?oL4&v~S6HI|WG-6I2PcqF2xN1Q!)I9bahGoEL|+Pn}0>aZcsp>@eO6Wyer6j5CA^;U1Zbrz1R4y_rXj z;33LJa>mde=h6Qqk38|RM`q*WSDd`yRgbK|ldpN?8T5o7QLlTXS__XX#A_{iLv(wC z4|>xhJJIDWKCqQX?qg7Ek60N0HfIBiuogeP>r%1fgYLl zr$@H`<&jJ$+Ye$#26LTV9vOz$hInKP+D5T0z8UHfH_V}ITx6I>LWXlnqCJua6M-YR zFR%)sF>H)&BR$fUoAcvQ9?8K;yfNA%AH=e=aULl%hIP0))+1kz*V1=Jf|svyLqxl#!O*nrg9{BV;XOa^V7Lji5`hh@<@Xej$)=q zPS0Y;=kS$G^~iJcJo5T{>W2kY}VI`_yTj~rUejxXUWw~U)DgRk5QF55~Dauqjw zCTDsLmu%Nsk9@wKLKgSHMvsJT;!JGjySs&T+xT8@=PuppkCt&mQo|_ejEQWFO%AAEWT(L2eTC$9DM8^blVg z%*T1OIqZ?;D0_sP6tS3$B%H)KTt-}*q7s?I8AAq29p!A4&zCoeJ@Cq3A_IugIDM4s zU-1~%6!Vde`*wziA~T9FQYkH;7znfDlVb<1ug?RUgQ*` z=Oym`%k1P8>W8Zy*@fxX_!eCENbeh*wVNE|EpF;N+)r@UyX%oeRJq5Unn(S9-y>d} zc|bk=kW-2WSmO3bUynydc)1CE9{JGE&1Z5nSc>)7g&h2p&y9>TxCt+oJmRe3Tk(p4 z#Wt_FZCXjGlUU?$WD_8MTF|RyV+$-x4T*51>5M0tLB};kb4Qxha zX|JTCcUiA=Ea#O^%d?Db6?m^FypoJs6}_?p{VI879ELyXmES6RXk)k`IJ{Kqy95q$$8c*?>y&~qv%x4E4xvmx>u^<*OvLx1CQneNFA0N;XQPM6ERqd zjW~*PxP;<0yiy4@&$r7SC-WCN_2g%v})j$ zHQ4)tSH5b<8#VIE2Uv&q8gq1bs)<*ge$gwZu`b9fHJf^6ENTaPLm%MTTU%bp2dBrPTupQ68>Xp7YfKkoa@z=ak`E{@C z!=x5onc31Ssc*2eZ+c}LF5}Q!oc>l`x!>9=X>WUF_B-4M?{NK{4zE1fh7U%=wq6;7 z8)){fS2mzcJFjekqrF$wqs)7}DH-u8;#(Mv+=G^EBD&w_a(3`af4C5X2{?mNA962X zGg^M+m0}-zCG%q^*Yy*xJo_mhj_cU*8K<$6S8SiPly5%gw0+@~BAvOGNc_?(oxk$R zD_y+eNAA~NN$AS`(9J7h-*5)M^~ymk?(UU7-+85d53iK#>6P0^@5Ro3@0E9d;M)J_ zm7BCjGrq=Xb8-0M67vuRQY? zclRL9oXac2qP*f6%1s>2hmP>dkr)nWlvh^cHDd*#C^URjRjQ+YG2#4Ze-#*X6Nblz+RU$I24HBR9!8YOWr;0W3#d*w^~ zf)SVwTZ&iO!8VI~3Oi}8XSN3B| zIy<$9)4G^bhh8+e{^w>tlwVgAC#lqB+Ug>bkD-BNbdK^ddGh8+tL;JH{S%^F6 zc&(Ahd9Htz3!Ey{yvUsl`z4MTZ(QaYUg0|qn1$d^SA?f(063h7NNv9znRyIVc@Iq{_YRL4b45|OL zAqUa#8AGn%hi8dc`kWy*@P0Kz7Q&CuYZ&rmO+(7oGNdc6!TG!)#cLZf5k7oW$B-1n z)itDjJw6;E^$l6?45? z4C&CqkiS|Qa{moOs=Z~%_*RBwwKgQ|9Yc~FhGe%fk{6~g-@`)j?j)r(X~FXn-3_O- z{*I&X!D;Jh$d})9oqsUI*4vO+l}HnljXk*nZ%`jfJKA2oP$~CG9=H%iq%65c@)Lb596qYQ;z0n zMi{a`#*oaBhO8N7$h6UhM91=mah$R-#IYRVI74zVW4s}5%$s1yor#A07|$h1UUoA7n9nIqV^0?vaw^@BFBWqL zFEOO{GDCW0aN{lK$X9X`t}?_}&6}?=WW!oRUSDs>@GL`$Z8W6aCPVga<_Nd&4Z<&5 z4Y>vHHqOX)LoV+y@Uz_Q=Qy(ShJ1X{kP(+Sm@9@ju5!~|Go;iF zLnhxeWcMvD;~kFtF4sSg>)-x9H{b(9o^TtI>|yV`?0}EE*KbHYi|>5CA=e)nGERK* zuFWUA(WZ!x`oSmZ0X}J6)F)>#)6VmOKJg%^xKFy3@X3IZK8Y{o6Zg@Fl3m&-CvdEc zPx8w8B&57gR+e}21{Hj=2d_Wjll?eV(I+=i=SiPj!?emgSA`Eo$ErTbe99+tp7F`> z=X`RtnooMx@JX?nK7PjeWE+OoVw>lEa=kXMt>csT>-r=g>Ggc_aebe3Xux~F;FAdm zb2jwJ6~s02N$tiy*@zc4KG0<+615$?fla657)z>wEc}QuGI( z#Qx}$!@Ygdxi5R)&nHcO_Q}t`aN2(5X!~J)ZtmQU<+d~!FHYdX&-uPpG%^faGDr?XRwIDjQw z&t*QTvD_!F6+ZcK6(78s4_(8Nuk%UCET4S8f%n_Q{jr&QXe;-Pb31qA4o>ebpETd? zlf*qfiP`6q8~c5dbI>OdhdHe|J{fY9H_Y|PzT>?3q)(nX?UTT>KIwjr(|>`>aM33- zF8k!s6^{6tPukw#GTrjYl-oWTc9$FV9y@s7C*coyKM(hnm&@+s`d9XIW8n|eC)F)J z6dm(@ava}1;+udk#4nRk-sYDU7>4oKj)y1`;FnSS#w$mB9Ye7i+ltazZTE{8{Q~_` zx|m-!p+j-Mq@h9yzf*oI;g?jDDCw71@FPZI2kv5BDZhA-R@yJCP@{}r+CB=9^~COF z{qj^fznsG(d{>^GLe&a>`3*U6J>i!Ln2HoE#D^9AGMm`7qSG(ES@^J$Uw&tB<>-@s zNvQ0XPpkOl3htv6V^HhL=F5}Br|>));WPY%->?OKJoA)a8Xy8KaS{ujW{02gOOt0g zBN+djU*4+5dsX+#DJKu_)L;+MuO_FtmS2LO_e+_#-0~XnGFH^~OXoVQtIM`95MGZX zf*Wtt_e(M!;ZOs=RBXsm;;%-2sovNx0ZrHzJzw-owIILbVO3KfpoMaIM>N6z%-76Z6`0 zKfK3jL!_gtKe~U)*+Re1{Bi^FowzKY zb3o|*1v}oE>)+x_ZWQ=X>?^-C#!Fap<3({0$6yEUBcKaANw-ThaU7;24XI!IWl~qa zOvBsV*cQXS;cR{DmqfJf&H;VL2cv2aE+hWHW+x9GH0bG*BODEX@k=KZ?bS`3 zJ1DgO%`aE`bJPR;QgWbQzWLKH%{enkgZN&%{BmiCU)B!w%iLjpc{Q3Hi{UhmqwayW&{F_SYe%P*hLW(VeQU!X#&UtXBYnZN_I zn#a2N94%TQ73CLj-LV1f(>UA9ILa?5Y(w{jei?vVG)w0w7jc8&2i%8+?8RKuC0r`p zK%1r91Bh70b;p)f0-{nGIkwc~AS%RAiV_oz$q_-^0#i~S)L zj+=EJPQRDB#bD=syq}+&(ez7@#n&{S>wh|*+UpUgSxmWvMK)7@D`HC108>6FYKqft zN=l$9rHY$U8Fg_CSCLo3WHii_4tT1RDJPIz+LW$kcrOerYsyFEOnI%mDP<~{G7(=q zValf!O}U2;D>+%HWJ+iBdeW3coP@oyDc|5vOvO?>K*cJi1mj&4scOob@Zi)_rVM}D zl#b7svKvdEHD$narUXp};@_UFWy+cho5N68ua8nvI z)TdnhZekfghW)_7l$7r(8OW_{@}-I+;@M zb5r&q^$Sx*b~fd+FHJdzsIN>Z--UxfeizdzBfsXwT}^qS8>jmlQ)0d~#rQ$Z>GHZJ3BnUl$C$5ZXoy2 zUmTdzlm&x0gM&GPLre*Y;xZ34W#KUHnP{G@H^P+hG2A#Kxk*Nw(hdW#0C#aPmZOX_ zrQ}$S5YBO?)E>{hFo9D!(UcOCOu2}2@h0s)Q(m58O0lUNT*uHErc_Ae zjG#%9DL*B1shu-TS%FrwOnG)TryQkHP5F5)A2g2_&F3sEFy-?!Q@&nkO6hct1Sb}8 zUo18yVu>l6mYNcnVanL$oS7A-e6`AyS*tm)HJqKbru?5aWhZxJHh1)H-fWL4*_gkV)4h*%`#B5v_y9K-Dj(zQmW|Gt zav7hVHzgOZU*I0N$cJ1qrQ2nW^a?wHiC0azhRkcG?7hyVxxo(HpOWAI(|nX(?g`nj&ADQD2c;>_f; zESCI+w{4bq(5r|gH}PSBC5?(&Qq6A38-bP_EN0O`WyuaSEMZ9!Qc7BKu9PL8l(uA0 z8A}?Jv&326lARSS>Fum&N#jbE+(y&NM0{PvlIB${>G>3I`n1Jhge5ak^I1z4qV97< zn5bRdk`*;9vDLIBqn0I;p0}iPZQiSnB|p@)B%&V6^)2c50)vhXExF#9_k7WkpPO2; zE0`Ub9BRq6FiU=lwB(hSE$Q@%CFNh`%`vw*8@y&ojn^%ih%zlKnSnAbEg6o_-rz&t zwB!+z-m;`^D@(ezw&cXymIOE~nb5|P5p6lrcP&}o&SIe3lJW0b^2-O7eA>aHd){(N zw+}fDA6YagEt!QkKe6OKVmfkkpITD=GfNzuEP3m5OZt4lsqf5Derd_ruPj;H#gdg@ zTXMduC8xUa9^dl8-7RVI9jCbmm#3#C?R!}=;CoAc{eesIqb1XOb9wq$vZb#jcl$ZH zjz3va^%slIBuifZjkD0-lJ9=Eq}u>X#{6N)sDYNO`jgZ97e~PM`v-B22U}ubj?0pd zhp>}ToKD0JWk*n9I0q1I$q^JAVM#mW;++^vPGbB>mJ#b5Wr=GvdmPJYjpKBo?-)y3 zkL6~ z!EwBl$brL|oWv+@7Jx{H4 zfg9r@mBS@2#brx+TxCbDS#lWRH!OMYChJk@wk0pz;REh+$KT`Ygn&G5SnNjs``q;p zxWf_s(2^orWTRVd!XJ7|Xw@j1F;5_aGwYWS!VP#=vE zj6q1oJS@XHc+k#oNq6+YFZdmQVjd3R5gM3W{|`-`z_*qqlZk2Aj#4Z)Mn^a?3R7?p zMe?~n@E&^L$449?e#d>}^Z#GAeCbpqUlw9*K)$?QG+#Q{^W_9C;2Q2adB}r_*`@L& zATVD_q5`U+AtLcMK1Mh6#h)07shEo;Sc}cb#vz=+72HRWV!S7wK}{TGT_d71l811- zg_d{^ozV;Z&>w>lgRw|J5>k;6Mj-LRa)aU;GXiD)L4##POJdWX!`7tilHDzyUl!F3#fy@*yReMGFT$ z#~3FMlaPc3ScWy&jBFgj30%Mp+=m}UxmQY~5}rkUNa=hDB8K4+BJmpD#fSJB-SIv8 z;&(WQ^N`=On|wixMH$|tA|_Ividk5IPmqZvSdA=f!#?ET46fidJjh2N?^7C2pem}N z9$rKf1AR47|MUV zERT$TeYTzR`F+3l{`dd?@4dg*J^yompNm_`r+^@Cd^g%{V6T0@Ikm9CDe@`+UH1R_Wmf?(IEaQ2J8NA6t zma&el6mXDVI7bmTqP5&IF*>u28q}dNNu*NIYgMU50?kRLBVFmm0}SL*wiq17FoCyB zFw@0R_CLu)rZAn^%p)&G%UvQ_%?7?8pKsYmA-{6dn0!|Joj^Tb5{r1Isybp03n{km z78T`{h^ID*w4ej&T%!j)LyCT6Gl;>AWHjTM%4`;}f>mr{3%mJ_!yM%g&U2NZnubU% zlITchGP$2T))M+kvBZjlW8wvFQo(A3cE0t<$ZKpA&X{ha;LFGo4YuAD2uB{9hGrPQPWO-Z2(J?KM!hA@)xOlBtUu!61ZWH(3nlZ#x= z2pJM3*C{4KROd)=8@F=@RfwTFHHoJVNpxW~)je!lkA^fRjaA1yjw=q}F~%~9sl3c| zW`-26F^@BrKUIrs7A%*qh;2yCj#ca+} zwS2=)_K?=wI6z-=daM5-lF>X%q6RWqoW-t|LGYgVx(O&xT*(Hu(~rIU$Vtw!rjMJ; zzGgZ4_cK+pgJs#~_Z-_S;zK@SBRfj&QV&Ru=S1Ef7S-_UgrC|+rQ}A<3qSmLhp2WH z*3W4jl>D6uFDTiLnjhXTW?1$W^F&D;5za1+uY_|; #include @@ -1113,44 +1113,44 @@ void pose_update_13(double *in_x, double *in_P, double *in_z, double *in_R, doub void pose_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) { update<3, 3, 0>(in_x, in_P, h_14, H_14, NULL, in_z, in_R, in_ea, MAHA_THRESH_14); } -void pose_err_fun(double *nom_x, double *delta_x, double *out_5912021845748559900) { - err_fun(nom_x, delta_x, out_5912021845748559900); +void pose_err_fun(double *nom_x, double *delta_x, double *out_2521549048397866319) { + err_fun(nom_x, delta_x, out_2521549048397866319); } -void pose_inv_err_fun(double *nom_x, double *true_x, double *out_8843896357291937735) { - inv_err_fun(nom_x, true_x, out_8843896357291937735); +void pose_inv_err_fun(double *nom_x, double *true_x, double *out_4368796387448451064) { + inv_err_fun(nom_x, true_x, out_4368796387448451064); } -void pose_H_mod_fun(double *state, double *out_2688320196777535589) { - H_mod_fun(state, out_2688320196777535589); +void pose_H_mod_fun(double *state, double *out_4711938499332200676) { + H_mod_fun(state, out_4711938499332200676); } -void pose_f_fun(double *state, double dt, double *out_650263676124789422) { - f_fun(state, dt, out_650263676124789422); +void pose_f_fun(double *state, double dt, double *out_3583623669529018238) { + f_fun(state, dt, out_3583623669529018238); } -void pose_F_fun(double *state, double dt, double *out_7315646842237993430) { - F_fun(state, dt, out_7315646842237993430); +void pose_F_fun(double *state, double dt, double *out_147281941884768427) { + F_fun(state, dt, out_147281941884768427); } -void pose_h_4(double *state, double *unused, double *out_2905496685476842828) { - h_4(state, unused, out_2905496685476842828); +void pose_h_4(double *state, double *unused, double *out_8338357592566013610) { + h_4(state, unused, out_8338357592566013610); } -void pose_H_4(double *state, double *unused, double *out_5413221642194876961) { - H_4(state, unused, out_5413221642194876961); +void pose_H_4(double *state, double *unused, double *out_940131289488293104) { + H_4(state, unused, out_940131289488293104); } -void pose_h_10(double *state, double *unused, double *out_1191620274986758585) { - h_10(state, unused, out_1191620274986758585); +void pose_h_10(double *state, double *unused, double *out_8345234452777105931) { + h_10(state, unused, out_8345234452777105931); } -void pose_H_10(double *state, double *unused, double *out_1027777997724036985) { - H_10(state, unused, out_1027777997724036985); +void pose_H_10(double *state, double *unused, double *out_1248319787069001495) { + H_10(state, unused, out_1248319787069001495); } -void pose_h_13(double *state, double *unused, double *out_7783237198684558375) { - h_13(state, unused, out_7783237198684558375); +void pose_h_13(double *state, double *unused, double *out_1047798615184752827) { + h_13(state, unused, out_1047798615184752827); } -void pose_H_13(double *state, double *unused, double *out_2200947816862544160) { - H_13(state, unused, out_2200947816862544160); +void pose_H_13(double *state, double *unused, double *out_375529369806449000) { + H_13(state, unused, out_375529369806449000); } -void pose_h_14(double *state, double *unused, double *out_1027602586512413166) { - h_14(state, unused, out_1027602586512413166); +void pose_h_14(double *state, double *unused, double *out_4235679239024063539) { + h_14(state, unused, out_4235679239024063539); } -void pose_H_14(double *state, double *unused, double *out_1449980785855392432) { - H_14(state, unused, out_1449980785855392432); +void pose_H_14(double *state, double *unused, double *out_4022919721783665400) { + H_14(state, unused, out_4022919721783665400); } void pose_predict(double *in_x, double *in_P, double *in_Q, double dt) { predict(in_x, in_P, in_Q, dt); diff --git a/openpilot/selfdrive/locationd/models/generated/pose.h b/openpilot/selfdrive/locationd/models/generated/pose.h index 49896d141c..00fb226953 100644 --- a/openpilot/selfdrive/locationd/models/generated/pose.h +++ b/openpilot/selfdrive/locationd/models/generated/pose.h @@ -5,18 +5,18 @@ void pose_update_4(double *in_x, double *in_P, double *in_z, double *in_R, doubl void pose_update_10(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_13(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); -void pose_err_fun(double *nom_x, double *delta_x, double *out_5912021845748559900); -void pose_inv_err_fun(double *nom_x, double *true_x, double *out_8843896357291937735); -void pose_H_mod_fun(double *state, double *out_2688320196777535589); -void pose_f_fun(double *state, double dt, double *out_650263676124789422); -void pose_F_fun(double *state, double dt, double *out_7315646842237993430); -void pose_h_4(double *state, double *unused, double *out_2905496685476842828); -void pose_H_4(double *state, double *unused, double *out_5413221642194876961); -void pose_h_10(double *state, double *unused, double *out_1191620274986758585); -void pose_H_10(double *state, double *unused, double *out_1027777997724036985); -void pose_h_13(double *state, double *unused, double *out_7783237198684558375); -void pose_H_13(double *state, double *unused, double *out_2200947816862544160); -void pose_h_14(double *state, double *unused, double *out_1027602586512413166); -void pose_H_14(double *state, double *unused, double *out_1449980785855392432); +void pose_err_fun(double *nom_x, double *delta_x, double *out_2521549048397866319); +void pose_inv_err_fun(double *nom_x, double *true_x, double *out_4368796387448451064); +void pose_H_mod_fun(double *state, double *out_4711938499332200676); +void pose_f_fun(double *state, double dt, double *out_3583623669529018238); +void pose_F_fun(double *state, double dt, double *out_147281941884768427); +void pose_h_4(double *state, double *unused, double *out_8338357592566013610); +void pose_H_4(double *state, double *unused, double *out_940131289488293104); +void pose_h_10(double *state, double *unused, double *out_8345234452777105931); +void pose_H_10(double *state, double *unused, double *out_1248319787069001495); +void pose_h_13(double *state, double *unused, double *out_1047798615184752827); +void pose_H_13(double *state, double *unused, double *out_375529369806449000); +void pose_h_14(double *state, double *unused, double *out_4235679239024063539); +void pose_H_14(double *state, double *unused, double *out_4022919721783665400); void pose_predict(double *in_x, double *in_P, double *in_Q, double dt); } \ No newline at end of file diff --git a/panda/board/obj/body_h7.bin.signed b/panda/board/obj/body_h7.bin.signed index a1c34e6508ba63e1277b0fcb72761d1621d25131..8a7272b83af16a8d6712ec0ca16eee5c592cc4d0 100644 GIT binary patch delta 170 zcmV;b09F6Y#0<>D41k0Iv;wsE2sJS=G-fn5Hn+U@0t705PWlXyRz*@%0ssI2t1vfl z#!xNDbHkZz0$MdwPDcK~`e?P)=FA$PO_lvjY1ld6DO>%)APpIc6g-J|6Rw&td`yXs zxr%h;PJpFGBnx|r4yfZHx5u-ag6@q}$m*BuF6`diQ>a9lRD3{zmsU_=tfg)Cq6{%u YYYnlVcU{vB#+XW3!AphuI><@(xdoq3yZ`_I delta 170 zcmV;b09F6Y#0<>D41k0Iv;wsE2sAckWMVR8IJdm_0t705tgn%%Rz*@%0ssI2f-v0e zakCpnr9<~naJ!kUY3l$RxjW|d4Z-Aqzsd_p;FcbPx5$mV#^AL4C6<8Q+|eh%kW Yc03bYswu4vY`(Ds<`g{aA)`v%9Z2C#2><{9 diff --git a/panda/board/obj/bootstub.body_h7.bin b/panda/board/obj/bootstub.body_h7.bin index c3fb78d7c4873454bb1b7cee1960fc6f0bc84779..c1e915be768dbc8627bdbee4dc74d5bf98aace1e 100644 GIT binary patch delta 21 ccmX?+c_MRzhXIGFp`l5diJ95v0D}q^09mpJ6951J delta 21 ccmX?+c_MRzhXIF)Sz1bxQHsUp0D}q^0AC^prT_o{ diff --git a/panda/board/obj/bootstub.panda.bin b/panda/board/obj/bootstub.panda.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_can_ignition_only.bin b/panda/board/obj/bootstub.panda_can_ignition_only.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_h7.bin b/panda/board/obj/bootstub.panda_h7.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_can_ignition_only.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_hkg_remote.bin b/panda/board/obj/bootstub.panda_h7_hkg_remote.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_hkg_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_hkg_remote_can_ignition_only.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_remote.bin b/panda/board/obj/bootstub.panda_h7_remote.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_remote_can_ignition_only.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_tesla_wake.bin b/panda/board/obj/bootstub.panda_h7_tesla_wake.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_h7_tesla_wake_can_ignition_only.bin b/panda/board/obj/bootstub.panda_h7_tesla_wake_can_ignition_only.bin index 93f718bd68ba56d6e1e048b1f69087086de1d266..7adbc26d40e66b07452344c45b37fc416b484945 100644 GIT binary patch delta 23 fcmeyffbq`)#tm1zI7|%ZqTEGebfqn_| diff --git a/panda/board/obj/bootstub.panda_hkg_remote.bin b/panda/board/obj/bootstub.panda_hkg_remote.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_hkg_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_hkg_remote_can_ignition_only.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_remote.bin b/panda/board/obj/bootstub.panda_remote.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_remote_can_ignition_only.bin b/panda/board/obj/bootstub.panda_remote_can_ignition_only.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_tesla_wake.bin b/panda/board/obj/bootstub.panda_tesla_wake.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/bootstub.panda_tesla_wake_can_ignition_only.bin b/panda/board/obj/bootstub.panda_tesla_wake_can_ignition_only.bin index 33f9595068c1e2e43506ed9366d3b4fc594a7c59..01a62e0ea632cf46a9ea0d0f8c4eda5a41c05c8d 100644 GIT binary patch delta 21 ccmZ1xw<2ysgcgUXp`l5diJ95v1g#S+091qrApigX delta 21 ccmZ1xw<2ysgcgU1Sz1bxQHsUp1g#S+09o`0v;Y7A diff --git a/panda/board/obj/gitversion.h b/panda/board/obj/gitversion.h index b3fd7b1de3..e844548dd0 100644 --- a/panda/board/obj/gitversion.h +++ b/panda/board/obj/gitversion.h @@ -1,4 +1,4 @@ #pragma once extern const uint8_t gitversion[29]; -const uint8_t gitversion[29] = "DEV-46fdb2d8-Pf38f504f-DEBUG"; +const uint8_t gitversion[29] = "DEV-5114f466-Pf38f504f-DEBUG"; diff --git a/panda/board/obj/panda.bin.signed b/panda/board/obj/panda.bin.signed index 92d8415ae24a8576f92d1500d4ab850d2b62697e..053f29f5e1e3a3067eb2e4c633d7f0483dd590dc 100644 GIT binary patch delta 170 zcmV;b09F6+-wW{H3xI?Hv;uU!2sJS=G-fn5Hn)7e0_ZV+lX{aPRz*@%0ssI2q|47( zWRhJqk4h<61Xc=vJ0Mci9Ekd{c`jry Yenqq6Mezg;DeBO7&rmf9VynaUPm|?@Ub9Zqv{#SW+|Q2d2xYlNV5cb z&6RB5K{4edgTp#jHHS(GDac+Z`-q80sJ7r8zu-IT)Fsku(}kE#_S#lQapVjKDB1V* Y?Gb{!osC)zUxE`wq$NsR(gn7PmQh4d@Bjb+ diff --git a/panda/board/obj/panda_can_ignition_only.bin.signed b/panda/board/obj/panda_can_ignition_only.bin.signed index 7cbc12455ac23f1b35b74779d6e31e92bddad05b..263dff3d13ed06cef4693c8d50e33af8b7508291 100644 GIT binary patch delta 170 zcmV;b09F6k-wW8^3xI?Hv;thc2sJS=G-fn5Hn(KG0_ZV+3B`DMRz*@%0ssI2j&nFW zx+1T0Iwsd=lzBs@$?O4CsE+88DzyJj@SaOgkz0|k)QrSD-Zj#uDYqmsS6XKpBH3K`0Nuhhd60KdYJiN@$N`{NMH^u-hhQz&r#1d7kBI&e$9&1Z Y%4{Qgq{i{<^Rz*@%0ssI2w8wxH zuO=`;_}^Rk;)AyT4q>efF{IQ{H(3c1}S0nyehU64$a zqtp$EeTtR)1AQ&Xl1wPqaByndGeG#UjM5&`k(a-tPgFDlvu*OS1vXP;sSoMGFnNp{ Y7_Fi2Z;#gv*!vi~kX2~0wH8an1;z(X6aWAK delta 170 zcmV;b09F6M;S9jx41k0Iv;q+Q2sAckWMVR8IJX%60vt1czNl`FRz*@%0ssI2U5}wl zzR+^1ARGd)4;+ik6W*4N8$o8ZQq1G;OK%jKz>oz&ygAa;&01P@Cc{9FDMIeuXIJ~AQUCw| diff --git a/panda/board/obj/panda_h7_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_can_ignition_only.bin.signed index 9868590b870c0e799f24a0b97fce3871319e4bc0..5d3693bdac99c6dffde6011750448b0576a206f4 100644 GIT binary patch delta 169 zcmV;a09OB~;S8wZ41k0Iv;z422sJS=G-fn5Hn#l&95a7ihV5QfMN(4&0000T(ESpk zR`D63rrh!lpM+;tT0#??Yr@NEqf)hyW07kBv>lrlBo77Gt?%xw*Qz6m*)Qr`ZO5T6 zRxs4NvO~?bXa=>2xSJ-QXwg?7g?x2MQ&A9#r-otj#UbLS14TueZ!$n&PW^y3%Lc|o X3f_uG=_L(z>Gl5YeDY6e@>mr#=-o~+ delta 169 zcmV;a09OB~;S8wZ41k0Iv;z422sAckWMVR8IJW%)95a7HSjLuCMN(4&00001mSp;? zun6C-^Lim!LrN(N&8IA-rSlc%jBABV9FZij3X$w==9cN(*dNUmI`Jk0FfXp(f5d@> zYnUhnAF3Tj%Y+rbJA;h%Up0Te`OypRcd6xqa>|fKV()$#s`7_Arys|$iv`y${I@Yx X0PrjK^fe9lB?~vpYVNjq?KdSf9LP@f diff --git a/panda/board/obj/panda_h7_hkg_remote.bin.signed b/panda/board/obj/panda_h7_hkg_remote.bin.signed index bf2a0056a8c5a57fcd6643bf86376fe2ba727455..861c32272adf2960ffb58e39f2aa1fc14a3aba8b 100644 GIT binary patch delta 170 zcmV;b09F6E;taUr41k0Iv;v6z2sJS=G-fn5Hn))d0vt1c8Z`irRz*@%0ssI2Ln)a* z#jU@H*2%y9HQ3e~f&_#$1CCltH8TqrOG}*P1xt$OJ-y_|7*k%ONd Y%8LZ_cv7hiBvf22!1|?8jGu1!GfFs0p8x;= delta 170 zcmV;b09F6E;taUr41k0Iv;v6z2sAckWMVR8IJc1f0vt1c1?wwVRz*@%0ssI2m!>=> zg0ralEi9|Lx)2K=!`P<57=ue2MALd~sm)B-4Y?1EM1N~7}j Y;U&H&uZfrqR*O~Q-6|FEc~uJwpRX=W^Z)<= diff --git a/panda/board/obj/panda_h7_hkg_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_hkg_remote_can_ignition_only.bin.signed index 272fc7ef2142222f90376faf5e524b50ad8a051a..bd3abf5ce90569a5ff3a629a422f60cf0abef2f6 100644 GIT binary patch delta 170 zcmV;b09F5};tZ(b41k0Iv;uhj2sJS=G-fn5Hn)KN0vt1c(;0t|Rz*@%0ssI2PmK`Q zXAto_jUKKjCw3+?$iNMaQ@^P*R_lE7R^3{gUMQzD_h*(%dlry<{`nR3b~=L0E(27| z438vy@>dUG2ORzoXL#ghH+iV8VF-c~63WWKZs4&n_bh>sKj#plUz4FML<-nYlAdVQ Y^~_VGr-lO!oVpkVNi4HHkFZnQjG{hDBLDyZ delta 170 zcmV;b09F5};tZ(b41k0Iv;uhj2sAckWMVR8IJbcP0vt1c%*Rw%Rz*@%0ssI2u?C55 zd=SYex7II}&ae9}-CYb>w{5}eS3L5i0e53_3S>l}r6OWC@R8X^&C zL3smsWB!<8q-@h?@L+*0e&_VU7uWA;2-`+RxxhJFvUR?(i@Jg#Y|(c(^4s*-EQ1N) YCHFFdt@`~9Rp)?7Yr&zeXUv2puBQ@GL;wH) diff --git a/panda/board/obj/panda_h7_remote.bin.signed b/panda/board/obj/panda_h7_remote.bin.signed index 2698f223607a834381f49a6968783d78bbd2f2be..dd566d8d92f1648bbee30805a4546dc9025468a7 100644 GIT binary patch delta 170 zcmV;b09F6M;S9jx41k0Iv;q+Q2sJS=G-fn5Hn$l40vt1cFL1v@Rz*@%0ssI2t1BT2 zv{sngDm7*CLIk=3+V43nq({_qC$9=YoNi-Yf#&ArIT$Yq(9swhqu|?tOZEr&6*y`x z))oh`Fq5-}4~{qv&Gs4^oUb%AG<|7)zg@<_RT<{9 delta 170 zcmV;b09F6M;S9jx41k0Iv;q+Q2sAckWMVR8IJX%60vt1cFs_t~Rz*@%0ssI2o;0@r zP-%XHuQ#t1DAko_PbG-qsTztd3Gb!ap)~*?gC|8iJ(j1~0D#HcKhN_2=Ggl(6^OC2 zQj$AM&~UVWp?`wtt~%xaSR$xe>MYA6Lf!LHs1XVh Y*)*3QB>)`_%I|?{*m(^TLLm+P(yxe3iU0rr diff --git a/panda/board/obj/panda_h7_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_remote_can_ignition_only.bin.signed index 52dfaec7a884cfd07c54a1cbe558cccd14b0eb57..d5a180b6b9e8dcb4b902cef5291569a5194abe6b 100644 GIT binary patch delta 169 zcmV;a09OB~;S8wZ41k0Iv;z422sJS=G-fn5Hn#l&95a6vsSICMMN(4&0001r|MUU; zX}i6U&SxjK`c06)QUI1bO@j`u0M52B_iG{~($SHPapIe4`B#ZUaJn_Iz`X#L&jbE3 z=sF5Z`B#5f_!J@aUXgl3e3lGVGD6ePiNWU$o^2c85}W8dl_(UmueB(X00GH={zTPB XI^v~4G_wu29R!DvmJUUuYZaXl)~HL2 delta 169 zcmV;a09OB~;S8wZ41k0Iv;z422sAckWMVR8IJW%)95a6kcPE!tMN(4&0000vrx8j8 zSaMSD&hx=8j3n)$=HvM*t7wdcyG85fETSFhEaTBg*1A3|`TmpZ9XH-}m_wyB_=_17 z<@%meMYrj!aM!fO!^D5DNjH$cuh2`U^ Y*K)$OJjSREoy=kAkrBE8|4ZqekK4&qnE(I) delta 170 zcmV;b09F6Q;ta&%41k0Iv;vU*2sAckWMVR8IJcPn0w6PgHsG+=Rz*@%0ssI23PuQH zw1n4uGfz!t&uiN!W#D#N?6f;yqpaRxx9zf@mPGT|_cE8|*YzPly+6^%V_%%sq5$e? z;>pjSw#79BaWd5U{j}dlSp3(OU;4w*xWKmo67+rL?0RUaSjQ+hIJ6_C6?rU=uJuK+ Y%B3e_dK@VYqOv^@iKQB_-dNoo&W#< diff --git a/panda/board/obj/panda_h7_tesla_wake_can_ignition_only.bin.signed b/panda/board/obj/panda_h7_tesla_wake_can_ignition_only.bin.signed index 3ce274f391dff5a5dda101c668f4e6c492de8673..4d401e1cefa1d65757042f0053a337e06cf05a5d 100644 GIT binary patch delta 170 zcmV;b09F62;tZ_f41k0Iv;uhj2sJS=G-fn5Hn)KN0w6Pgj~(u8Rz*@%0ssI2W&-{8 zGra#6+Vn2Qah#@GcRzeD3l+=J`f79ezK8VYHfa)>*l7|${1~tl)B<^Etz>% delta 170 zcmV;b09F62;tZ_f41k0Iv;uhj2sAckWMVR8IJbcP0w6Pgm-S2lRz*@%0ssI2v6F=4 z;;2_T-xL;Gp@)dC)9sVW0j#p761>cu&}voNGpLFlxKy2}PlDFQXzb@WEaETZ5m5P2 z#w!(={b+Q~tAxbcJazRz58H|${I>8dWAnT>*Z4TMv6ZFI{<-XS6DSPApcVC+_t8Jf Y1ZS|gx3MG*rhh|samyw^k8|ZGU@wNHV0Iuv8Hg?{gXyZkG4X489-G{<|?5 zQj;hryxt4=1S;(6bzON!j#Az7lTQ~vD>u(hDIvCPD`-A} zzYB3IW|*Zkl%w9ADqr36+`{kMCUX<;jTtz{f}p&zoTr}ZF7HoL6iXDSqL1~?3an#B Y1J?Cb!W?W3?=*l5Jah?LGZn+{YGoHqbN~PV diff --git a/panda/board/obj/panda_hkg_remote_can_ignition_only.bin.signed b/panda/board/obj/panda_hkg_remote_can_ignition_only.bin.signed index e4f50cc1d42b5a43ee36e1a13ae80c77bcbdb1b9..9e8258f7003e51c869349d9e53294beef4a04e1a 100644 GIT binary patch delta 170 zcmV;b09F6Y;0w&)3xI?Hv;xq*2sJS=G-fn5Hn-Tl0_ZV+R!+ADRz*@%0ssI2HT=6h z$P(3d&ru%%vql=vQ^lj~c-w#31ITDBH=l2E1W_^Dk6jQsc`GkFi=wMj5E8`49(xwy z6ShupW_e8MGUfF;FI^@=pn0T)c&F6?*q;At;oCrUgi7{y^sD4ehHTR=0MWh7UB6!{ Y#?Yp9Qy)tW5^B5zfMaSb{Kg7DvvAW)LjV8( delta 170 zcmV;b09F6Y;0w&)3xI?Hv;xq*2sAckWMVR8IJeln0_ZV+8$B%gRz*@%0ssI2ds2q{ z*G!?*mqj3*5_9pWc#3ZmjDe!mWDo%Ywo$a62N1;cCSqVF6~*P~bSW(a5SB#4TJ z(DBd&juD5u4IGq4&V6FU8UU!E`S&Ki{ZWqI07Ml=gTN1^*-c}X7DTN)5Q5lB&Lu9p Y?m7jind%e`{t`4B`@rG@$|Ze90)zBVlK=n! diff --git a/panda/board/obj/panda_remote.bin.signed b/panda/board/obj/panda_remote.bin.signed index 726ac5864bc34466f3d8c88b6d8dcdcbf836b11e..b2b1495687121cebddd890847db068ba02cf3803 100644 GIT binary patch delta 170 zcmV;b09F6&-wW*D3xI?Hv;uIw2sJS=G-fn5Hn(`a0_ZV+V*M+?Rz*@%0ssI2KoB4; zq)BqArX8=__m>(IL_sw?_(t;mC&imUXP80XA|CN(q7L5j4d$+9&9Rf$HqgF_yRzr9 zo^e_HZ7Tx!&7cf^mdxuVb;7;@V=NRGYmOg#QQZLwH(;czpkn`JFleS*lei&obot5869=jCfu^7Ly=2!>Xi`M9p16LvtNed#9c@XpO{eM=DG$M<|$zuyT(%cT$?eg@PMza3ryk-b)dlkf*9gqdvn^*=1ZSzu>>sy?8uFa@RJ+-p!^`wBcfXsvYt##Q2+n{ delta 170 zcmV;b09F6g-wV{=3xI?Hv;tVY2sAckWMVR8IJaQE0_ZV+Q%}#2Rz*@%0ssI2qT?}u z_V*#$!`V&*h0Q=toj2eK9a%D&Fv4+hb-)So=ZS_Gcbg^;8q4Ey@Pp_q_3wtgU827D zCy4*gai@=ZiN0x=V47lF{rE*THjynDi$Zh78L*KS@p`fb4P@759?b;A%HEPjz})^t YyM(MQiy_wyWrDW!U-GIxq4?y9jZH37zyJUM diff --git a/panda/board/obj/panda_tesla_wake.bin.signed b/panda/board/obj/panda_tesla_wake.bin.signed index 9dc0d07d59161b1daa85e4a17fe2477cd9a4b6cc..a6524ecee1955a3a25b0b5462068842e460c09e8 100644 GIT binary patch delta 170 zcmV;b09F6+;0y5J3xI?Hv;y$G2sJS=G-fn5Hn;e_0_-t=2gD#@Rz*@%0ssI2g4%xL z@r1-QV<9}|CreFU{EU{ZnU~#uZSS9XW`OBGNc6LqB5)`cc`$7)N$dgOl7vqk3}T)G zdZ&3Tdu|oEplfzjPL1gTlyek554OW5k}95z5bVq(2d0`emXA)&J5YCI#}$>;Wa8R8 YYU+~M>nqv~m6xM}a4r|1;dlfhz9=3{=>Px# delta 170 zcmV;b09F6+;0y5J3xI?Hv;y$G2sAckWMVR8IJfw{0_-t=2!B_2Rz*@%0ssI2LZAvF z=J0$|-GpasFm1?E_&Vr4r0Lks`dR%k73E*1l^~VmQr2xB!MN*Bn_R7o?R_Yr4kMHz zXjZ9DA82JfuSERe^iOlDdmV%yTq)xVZOgV1)c0MlF$f_NHFbu$9B1?9pOo)6qOUj! YH)LUrZjccTkCJ}H?4+mCwN}*9v|U3{SpWb4 diff --git a/panda/board/obj/panda_tesla_wake_can_ignition_only.bin.signed b/panda/board/obj/panda_tesla_wake_can_ignition_only.bin.signed index 3827f7e8731a8cedaab3c8f974117374f7ea36d2..d2b447682a2013d0d3f9c9bd614ec3699c92d585 100644 GIT binary patch delta 170 zcmV;b09F6k;0xH`3xI?Hv;x?@2sJS=G-fn5Hn-rt0_-t=Zq#t&Rz*@%0ssI2FPo?@ z;Yz9f=M17;yRXzi$>NBfcMS=;48+yCw_ Y9$In`)clbR0R`L3qt|+hi{X7#rPf$hiU0rr delta 170 zcmV;b09F6k;0xH`3xI?Hv;x?@2sAckWMVR8IJe-v0_-t=VQ&ZeRz*@%0ssI2DL^_0 z(!n1*RaXx6!h%?j@Xe*d{6-(;v+AWmCCdh<<$d{`D>-6Ikl3IdC>iU)Hy|ZU+WC~n zem{gRVpv?s`c}=%7D@l!jFG!C1|a7f1G*GS;->fY>fFUo^bqDe4_ibDxPs}c(|QQ2 YwD1qigVlQt1aR7