From 2a0f066426d2eedced2024475a24ef640f2f4e6a Mon Sep 17 00:00:00 2001 From: Vehicle Researcher Date: Tue, 26 Mar 2019 01:03:49 -0700 Subject: [PATCH 1/4] Squashed 'panda/' changes from 39c1e39e..06958e42 06958e42 Fix pedal bootstub build f5817e6b Fix Pedal bootstub version c00fe867 CircleCI needs to check bootstub doesn't break too 9b5b696e Subaru: remove GM leftover 20c76ad5 Power Saving (#169) c6eeaad6 Subaru: added last engage/disengage regression test 37d46e0c Subaru: added subaru safety tests 5686dae2 Subaru updated driver factor a6193a82 Dcp remove (#168) e437b9b4 Subaru: fixed bug and added safety tests 176f1325 Subaru: added proper safety model 0b10bb70 Subaru safety: move camera to bus 2 bce279a6 Pedal: only one firmware (#164) 4f73cb48 Toyota pedal: checking for no pedal being commanded when openpilot is off 0b2327e5 Merge pull request #160 from commaai/capture_make_failure 7b504d2f panda safety test that replays drives of saved CAN messages (#151) d7d08892 Capture make failure so it can be logged to sentry git-subtree-dir: panda git-subtree-split: 06958e424cad7efa3fb35d262480c29817733059 --- .circleci/config.yml | 12 +- board/build.mk | 8 + board/gpio.h | 1 + board/main.c | 11 +- board/{pedal_honda => pedal}/.gitignore | 0 board/{pedal_honda => pedal}/Makefile | 10 +- board/{pedal_honda => pedal}/README | 0 board/{pedal_honda => pedal}/main.c | 62 +++-- board/{pedal_honda => pedal}/obj/.gitkeep | 0 board/pedal_toyota/.gitignore | 1 - board/pedal_toyota/Makefile | 58 ----- board/pedal_toyota/README | 30 --- board/pedal_toyota/main.c | 291 ---------------------- board/pedal_toyota/obj/.gitkeep | 0 board/safety/safety_subaru.h | 104 +++++++- board/safety/safety_toyota.h | 9 + common/version.mk | 22 +- python/__init__.py | 13 +- python/update.py | 4 +- tests/safety/libpandasafety_py.py | 36 +-- tests/safety/test.c | 29 ++- tests/safety/test_chrysler.py | 34 +++ tests/safety/test_subaru.py | 170 +++++++++++++ tests/safety/test_toyota.py | 14 ++ tests/safety/trim_csv.py | 21 ++ 25 files changed, 483 insertions(+), 457 deletions(-) rename board/{pedal_honda => pedal}/.gitignore (100%) rename board/{pedal_honda => pedal}/Makefile (85%) rename board/{pedal_honda => pedal}/README (100%) rename board/{pedal_honda => pedal}/main.c (83%) rename board/{pedal_honda => pedal}/obj/.gitkeep (100%) delete mode 100644 board/pedal_toyota/.gitignore delete mode 100644 board/pedal_toyota/Makefile delete mode 100644 board/pedal_toyota/README delete mode 100644 board/pedal_toyota/main.c delete mode 100644 board/pedal_toyota/obj/.gitkeep create mode 100644 tests/safety/test_subaru.py create mode 100755 tests/safety/trim_csv.py diff --git a/.circleci/config.yml b/.circleci/config.yml index 2289ad8aa..6b98610c5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,13 +29,17 @@ jobs: command: | docker run panda_build /bin/bash -c "cd /panda/board; make bin" - run: - name: Build Honda Pedal STM image + name: Build Panda STM bootstub image command: | - docker run panda_build /bin/bash -c "cd /panda/board/pedal_honda; make obj/comma.bin" + docker run panda_build /bin/bash -c "cd /panda/board; make obj/bootstub.panda.bin" - run: - name: Build Toyota Pedal STM image + name: Build Pedal STM image command: | - docker run panda_build /bin/bash -c "cd /panda/board/pedal_toyota; make obj/comma.bin" + docker run panda_build /bin/bash -c "cd /panda/board/pedal; make obj/comma.bin" + - run: + name: Build Pedal STM bootstub image + command: | + docker run panda_build /bin/bash -c "cd /panda/board/pedal; make obj/bootstub.bin" - run: name: Build NEO STM image command: | diff --git a/board/build.mk b/board/build.mk index 9f2c4250c..a84ed3fd9 100644 --- a/board/build.mk +++ b/board/build.mk @@ -2,6 +2,14 @@ CFLAGS += -I inc -I ../ -nostdlib -fno-builtin -std=gnu11 -Os CFLAGS += -Tstm32_flash.ld +# Compile fast charge (DCP) only not on EON +ifeq (,$(wildcard /EON)) + BUILDER = DEV +else + CFLAGS += "-DEON" + BUILDER = EON +endif + CC = arm-none-eabi-gcc OBJCOPY = arm-none-eabi-objcopy OBJDUMP = arm-none-eabi-objdump diff --git a/board/gpio.h b/board/gpio.h index 6112f6f88..7bd24ecbb 100644 --- a/board/gpio.h +++ b/board/gpio.h @@ -454,6 +454,7 @@ void early() { #ifdef PANDA // enable the ESP, disable ESP boot mode // unless we are on a giant panda, then there's no ESP + // dont disable on grey panda if (is_giant_panda) { set_esp_mode(ESP_DISABLED); } else { diff --git a/board/main.c b/board/main.c index 16d64916a..8ee1bb0c8 100644 --- a/board/main.c +++ b/board/main.c @@ -539,6 +539,9 @@ int main() { } else { // enable ESP uart uart_init(USART1, 115200); + #ifdef EON + set_esp_mode(ESP_DISABLED); + #endif } // enable LIN uart_init(UART5, 10400); @@ -590,8 +593,6 @@ int main() { uint64_t marker = 0; #define CURRENT_THRESHOLD 0xF00 #define CLICKS 8 - // Enough clicks to ensure that enumeration happened. Should be longer than bootup time of the device connected to EON - #define CLICKS_BOOTUP 30 #endif for (cnt=0;;cnt++) { @@ -618,8 +619,9 @@ int main() { } break; case USB_POWER_CDP: - // been CLICKS_BOOTUP clicks since we switched to CDP - if ((cnt-marker) >= CLICKS_BOOTUP ) { +#ifndef EON + // been CLICKS clicks since we switched to CDP + if ((cnt-marker) >= CLICKS) { // measure current draw, if positive and no enumeration, switch to DCP if (!is_enumerated && current < CURRENT_THRESHOLD) { puts("USBP: no enumeration with current draw, switching to DCP mode\n"); @@ -631,6 +633,7 @@ int main() { if (current >= CURRENT_THRESHOLD) { marker = cnt; } +#endif break; case USB_POWER_DCP: // been at least CLICKS clicks since we switched to DCP diff --git a/board/pedal_honda/.gitignore b/board/pedal/.gitignore similarity index 100% rename from board/pedal_honda/.gitignore rename to board/pedal/.gitignore diff --git a/board/pedal_honda/Makefile b/board/pedal/Makefile similarity index 85% rename from board/pedal_honda/Makefile rename to board/pedal/Makefile index 9917e3815..37b95f90f 100644 --- a/board/pedal_honda/Makefile +++ b/board/pedal/Makefile @@ -30,12 +30,20 @@ recover: obj/bootstub.bin obj/$(PROJ_NAME).bin $(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08004000 -D obj/$(PROJ_NAME).bin $(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08000000:leave -D obj/bootstub.bin +include ../../common/version.mk + +obj/cert.h: ../../crypto/getcertheader.py + ../../crypto/getcertheader.py ../../certs/debug.pub ../../certs/release.pub > $@ + obj/main.o: main.c ../*.h mkdir -p obj $(CC) $(CFLAGS) -o $@ -c $< -obj/bootstub.o: ../bootstub.c ../*.h +obj/bootstub.o: ../bootstub.c ../*.h obj/gitversion.h obj/cert.h mkdir -p obj + mkdir -p ../obj + cp obj/gitversion.h ../obj/gitversion.h + cp obj/cert.h ../obj/cert.h $(CC) $(CFLAGS) -o $@ -c $< obj/$(STARTUP_FILE).o: ../$(STARTUP_FILE).s diff --git a/board/pedal_honda/README b/board/pedal/README similarity index 100% rename from board/pedal_honda/README rename to board/pedal/README diff --git a/board/pedal_honda/main.c b/board/pedal/main.c similarity index 83% rename from board/pedal_honda/main.c rename to board/pedal/main.c index 5d5264791..13a221a87 100644 --- a/board/pedal_honda/main.c +++ b/board/pedal/main.c @@ -70,21 +70,24 @@ int usb_cb_control_msg(USB_Setup_TypeDef *setup, uint8_t *resp, int hardwired) { #endif -// ***************************** honda can checksum ***************************** +// ***************************** pedal can checksum ***************************** -int can_cksum(uint8_t *dat, int len, int addr, int idx) { - int i; - int s = 0; - for (i = 0; i < len; i++) { - s += (dat[i] >> 4); - s += dat[i] & 0xF; +uint8_t pedal_checksum(uint8_t *dat, int len) { + uint8_t crc = 0xFF; + uint8_t poly = 0xD5; // standard crc8 + int i, j; + for (i = len - 1; i >= 0; i--) { + crc ^= dat[i]; + for (j = 0; j < 8; j++) { + if ((crc & 0x80) != 0) { + crc = (uint8_t)((crc << 1) ^ poly); + } + else { + crc <<= 1; + } + } } - s += (addr>>0)&0xF; - s += (addr>>4)&0xF; - s += (addr>>8)&0xF; - s += idx; - s = 8-s; - return s&0xF; + return crc; } // ***************************** can port ***************************** @@ -92,6 +95,8 @@ int can_cksum(uint8_t *dat, int len, int addr, int idx) { // addresses to be used on CAN #define CAN_GAS_INPUT 0x200 #define CAN_GAS_OUTPUT 0x201 +#define CAN_GAS_SIZE 6 +#define COUNTER_CYCLE 0xF void CAN1_TX_IRQHandler() { // clear interrupt @@ -134,14 +139,19 @@ void CAN1_RX0_IRQHandler() { } // normal packet - uint8_t *dat = (uint8_t *)&CAN->sFIFOMailBox[0].RDLR; - uint8_t *dat2 = (uint8_t *)&CAN->sFIFOMailBox[0].RDHR; + uint8_t dat[8]; + uint8_t *rdlr = (uint8_t *)&CAN->sFIFOMailBox[0].RDLR; + uint8_t *rdhr = (uint8_t *)&CAN->sFIFOMailBox[0].RDHR; + for (int i=0; i<4; i++) { + dat[i] = rdlr[i]; + dat[i+4] = rdhr[i]; + } uint16_t value_0 = (dat[0] << 8) | dat[1]; uint16_t value_1 = (dat[2] << 8) | dat[3]; - uint8_t enable = (dat2[0] >> 7) & 1; - uint8_t index = (dat2[1] >> 4) & 3; - if (can_cksum(dat, 5, CAN_GAS_INPUT, index) == (dat2[1] & 0xF)) { - if (((current_index+1)&3) == index) { + uint8_t enable = (dat[4] >> 7) & 1; + uint8_t index = dat[4] & COUNTER_CYCLE; + if (pedal_checksum(dat, CAN_GAS_SIZE - 1) == dat[5]) { + if (((current_index + 1) & COUNTER_CYCLE) == index) { #ifdef DEBUG puts("setting gas "); puth(value); @@ -196,18 +206,18 @@ void TIM3_IRQHandler() { // check timer for sending the user pedal and clearing the CAN if ((CAN->TSR & CAN_TSR_TME0) == CAN_TSR_TME0) { uint8_t dat[8]; - dat[0] = (pdl0>>8)&0xFF; - dat[1] = (pdl0>>0)&0xFF; - dat[2] = (pdl1>>8)&0xFF; - dat[3] = (pdl1>>0)&0xFF; - dat[4] = state; - dat[5] = can_cksum(dat, 5, CAN_GAS_OUTPUT, pkt_idx) | (pkt_idx<<4); + dat[0] = (pdl0>>8) & 0xFF; + dat[1] = (pdl0>>0) & 0xFF; + dat[2] = (pdl1>>8) & 0xFF; + dat[3] = (pdl1>>0) & 0xFF; + dat[4] = (state & 0xF) << 4 | pkt_idx; + dat[5] = pedal_checksum(dat, CAN_GAS_SIZE - 1); CAN->sTxMailBox[0].TDLR = dat[0] | (dat[1]<<8) | (dat[2]<<16) | (dat[3]<<24); CAN->sTxMailBox[0].TDHR = dat[4] | (dat[5]<<8); CAN->sTxMailBox[0].TDTR = 6; // len of packet is 5 CAN->sTxMailBox[0].TIR = (CAN_GAS_OUTPUT << 21) | 1; ++pkt_idx; - pkt_idx &= 3; + pkt_idx &= COUNTER_CYCLE; } else { // old can packet hasn't sent! state = FAULT_SEND; diff --git a/board/pedal_honda/obj/.gitkeep b/board/pedal/obj/.gitkeep similarity index 100% rename from board/pedal_honda/obj/.gitkeep rename to board/pedal/obj/.gitkeep diff --git a/board/pedal_toyota/.gitignore b/board/pedal_toyota/.gitignore deleted file mode 100644 index 94053f292..000000000 --- a/board/pedal_toyota/.gitignore +++ /dev/null @@ -1 +0,0 @@ -obj/* diff --git a/board/pedal_toyota/Makefile b/board/pedal_toyota/Makefile deleted file mode 100644 index 1235cc715..000000000 --- a/board/pedal_toyota/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# :set noet -PROJ_NAME = comma - -CFLAGS = -O2 -Wall -std=gnu11 -DPEDAL -CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m3 -CFLAGS += -msoft-float -DSTM32F2 -DSTM32F205xx -CFLAGS += -I ../inc -I ../ -I ../../ -nostdlib -CFLAGS += -T../stm32_flash.ld - -STARTUP_FILE = startup_stm32f205xx - -CC = arm-none-eabi-gcc -OBJCOPY = arm-none-eabi-objcopy -OBJDUMP = arm-none-eabi-objdump -DFU_UTIL = "dfu-util" - -# pedal only uses the debug cert -CERT = ../../certs/debug -CFLAGS += "-DALLOW_DEBUG" - -canflash: obj/$(PROJ_NAME).bin - ../../tests/pedal/enter_canloader.py $< - -usbflash: obj/$(PROJ_NAME).bin - ../../tests/pedal/enter_canloader.py; sleep 0.5 - PYTHONPATH=../../ python -c "from python import Panda; p = [x for x in [Panda(x) for x in Panda.list()] if x.bootstub]; assert(len(p)==1); p[0].flash('obj/$(PROJ_NAME).bin', reconnect=False)" - -recover: obj/bootstub.bin obj/$(PROJ_NAME).bin - ../../tests/pedal/enter_canloader.py --recover; sleep 0.5 - $(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08004000 -D obj/$(PROJ_NAME).bin - $(DFU_UTIL) -d 0483:df11 -a 0 -s 0x08000000:leave -D obj/bootstub.bin - -obj/main.o: main.c ../*.h - mkdir -p obj - $(CC) $(CFLAGS) -o $@ -c $< - -obj/bootstub.o: ../bootstub.c ../*.h - mkdir -p obj - $(CC) $(CFLAGS) -o $@ -c $< - -obj/$(STARTUP_FILE).o: ../$(STARTUP_FILE).s - $(CC) $(CFLAGS) -o $@ -c $< - -obj/%.o: ../../crypto/%.c - $(CC) $(CFLAGS) -o $@ -c $< - -obj/$(PROJ_NAME).bin: obj/$(STARTUP_FILE).o obj/main.o - # hack - $(CC) -Wl,--section-start,.isr_vector=0x8004000 $(CFLAGS) -o obj/$(PROJ_NAME).elf $^ - $(OBJCOPY) -v -O binary obj/$(PROJ_NAME).elf obj/code.bin - SETLEN=1 ../../crypto/sign.py obj/code.bin $@ $(CERT) - -obj/bootstub.bin: obj/$(STARTUP_FILE).o obj/bootstub.o obj/sha.o obj/rsa.o - $(CC) $(CFLAGS) -o obj/bootstub.$(PROJ_NAME).elf $^ - $(OBJCOPY) -v -O binary obj/bootstub.$(PROJ_NAME).elf $@ - -clean: - rm -f obj/* diff --git a/board/pedal_toyota/README b/board/pedal_toyota/README deleted file mode 100644 index f7c56c3bf..000000000 --- a/board/pedal_toyota/README +++ /dev/null @@ -1,30 +0,0 @@ -MOVE ALL FILES TO board/pedal TO FLASH - - -This is the firmware for the comma pedal. It borrows a lot from panda. - -The comma pedal is a gas pedal interceptor for Honda/Acura. It allows you to "virtually" press the pedal. - -This is the open source software. Note that it is not ready to use yet. - -== Test Plan == - -* Startup -** Confirm STATE_FAULT_STARTUP -* Timeout -** Send value -** Confirm value is output -** Stop sending messages -** Confirm value is passthru after 100ms -** Confirm STATE_FAULT_TIMEOUT -* Random values -** Send random 6 byte messages -** Confirm random values cause passthru -** Confirm STATE_FAULT_BAD_CHECKSUM -* Same message lockout -** Send same message repeated -** Confirm timeout behavior -* Don't set enable -** Confirm no output -* Set enable and values -** Confirm output diff --git a/board/pedal_toyota/main.c b/board/pedal_toyota/main.c deleted file mode 100644 index a9b6cec46..000000000 --- a/board/pedal_toyota/main.c +++ /dev/null @@ -1,291 +0,0 @@ -//#define DEBUG -//#define CAN_LOOPBACK_MODE -//#define USE_INTERNAL_OSC - -#include "../config.h" - -#include "drivers/drivers.h" -#include "drivers/llgpio.h" -#include "gpio.h" - -#define CUSTOM_CAN_INTERRUPTS - -#include "libc.h" -#include "safety.h" -#include "drivers/adc.h" -#include "drivers/uart.h" -#include "drivers/dac.h" -#include "drivers/can.h" -#include "drivers/timer.h" - -#define CAN CAN1 - -//#define PEDAL_USB - -#ifdef PEDAL_USB - #include "drivers/usb.h" -#endif - -#define ENTER_BOOTLOADER_MAGIC 0xdeadbeef -uint32_t enter_bootloader_mode; - -void __initialize_hardware_early() { - early(); -} - -// ********************* serial debugging ********************* - -void debug_ring_callback(uart_ring *ring) { - char rcv; - while (getc(ring, &rcv)) { - putc(ring, rcv); - } -} - -#ifdef PEDAL_USB - -int usb_cb_ep1_in(uint8_t *usbdata, int len, int hardwired) { return 0; } -void usb_cb_ep2_out(uint8_t *usbdata, int len, int hardwired) {} -void usb_cb_ep3_out(uint8_t *usbdata, int len, int hardwired) {} -void usb_cb_enumeration_complete() {} - -int usb_cb_control_msg(USB_Setup_TypeDef *setup, uint8_t *resp, int hardwired) { - int resp_len = 0; - uart_ring *ur = NULL; - switch (setup->b.bRequest) { - // **** 0xe0: uart read - case 0xe0: - ur = get_ring_by_number(setup->b.wValue.w); - if (!ur) break; - if (ur == &esp_ring) uart_dma_drain(); - // read - while ((resp_len < min(setup->b.wLength.w, MAX_RESP_LEN)) && - getc(ur, (char*)&resp[resp_len])) { - ++resp_len; - } - break; - } - return resp_len; -} - -#endif - -// ***************************** toyota can checksum **************************** - -int can_cksum(uint8_t *dat, uint8_t len, uint16_t addr) -{ - uint8_t checksum = 0; - checksum =((addr & 0xFF00) >> 8) + (addr & 0x00FF) + len + 1; - //uint16_t temp_msg = msg; - - for (int ii = 0; ii < len; ii++) - { - checksum += (dat[ii]); - //temp_msg = temp_msg >> 8; - } - //return ((msg & ~0xFF) & (checksum & 0xFF)); - return checksum; -} - -// ***************************** can port ***************************** - -// addresses to be used on CAN -#define CAN_GAS_INPUT 0x200 -#define CAN_GAS_OUTPUT 0x201 - -void CAN1_TX_IRQHandler() { - // clear interrupt - CAN->TSR |= CAN_TSR_RQCP0; -} - -// two independent values -uint16_t gas_set_0 = 0; -uint16_t gas_set_1 = 0; - -#define MAX_TIMEOUT 10 -uint32_t timeout = 0; - -#define NO_FAULT 0 -#define FAULT_BAD_CHECKSUM 1 -#define FAULT_SEND 2 -#define FAULT_SCE 3 -#define FAULT_STARTUP 4 -#define FAULT_TIMEOUT 5 -#define FAULT_INVALID 6 -uint8_t state = FAULT_STARTUP; - -void CAN1_RX0_IRQHandler() { - while (CAN->RF0R & CAN_RF0R_FMP0) { - #ifdef DEBUG - puts("CAN RX\n"); - #endif - uint32_t address = CAN->sFIFOMailBox[0].RIR>>21; - if (address == CAN_GAS_INPUT) { - // softloader entry - if (CAN->sFIFOMailBox[0].RDLR == 0xdeadface) { - if (CAN->sFIFOMailBox[0].RDHR == 0x0ab00b1e) { - enter_bootloader_mode = ENTER_SOFTLOADER_MAGIC; - NVIC_SystemReset(); - } else if (CAN->sFIFOMailBox[0].RDHR == 0x02b00b1e) { - enter_bootloader_mode = ENTER_BOOTLOADER_MAGIC; - NVIC_SystemReset(); - } - } - - // normal packet - uint8_t *dat = (uint8_t *)&CAN->sFIFOMailBox[0].RDLR; - uint8_t *dat2 = (uint8_t *)&CAN->sFIFOMailBox[0].RDHR; - uint16_t value_0 = (dat[0] << 8) | dat[1]; - uint16_t value_1 = (dat[2] << 8) | dat[3]; - uint8_t enable = (dat2[0] >> 7) & 1; - uint8_t index = 0; - if (can_cksum(dat, 5, CAN_GAS_INPUT) == dat2[1]) { - if (index == 0) { - #ifdef DEBUG - puts("setting gas "); - puth(value); - puts("\n"); - #endif - if (enable) { - gas_set_0 = value_0; - gas_set_1 = value_1; - } else { - // clear the fault state if values are 0 - if (value_0 == 0 && value_1 == 0) { - state = NO_FAULT; - } else { - state = FAULT_INVALID; - } - gas_set_0 = gas_set_1 = 0; - } - // clear the timeout - timeout = 0; - } - - } else { - // wrong checksum = fault - state = FAULT_BAD_CHECKSUM; - } - } - // next - CAN->RF0R |= CAN_RF0R_RFOM0; - } -} - -void CAN1_SCE_IRQHandler() { - state = FAULT_SCE; - can_sce(CAN); -} - -int pdl0 = 0, pdl1 = 0; - - -int led_value = 0; - -void TIM3_IRQHandler() { - #ifdef DEBUG - puth(TIM3->CNT); - puts(" "); - puth(pdl0); - puts(" "); - puth(pdl1); - puts("\n"); - #endif - - // check timer for sending the user pedal and clearing the CAN - if ((CAN->TSR & CAN_TSR_TME0) == CAN_TSR_TME0) { - uint8_t dat[8]; - dat[0] = (pdl0>>8)&0xFF; - dat[1] = (pdl0>>0)&0xFF; - dat[2] = (pdl1>>8)&0xFF; - dat[3] = (pdl1>>0)&0xFF; - dat[4] = state; - dat[5] = can_cksum(dat, 5, CAN_GAS_OUTPUT); - CAN->sTxMailBox[0].TDLR = dat[0] | (dat[1]<<8) | (dat[2]<<16) | (dat[3]<<24); - CAN->sTxMailBox[0].TDHR = dat[4] | (dat[5]<<8); - CAN->sTxMailBox[0].TDTR = 6; // len of packet is 5 - CAN->sTxMailBox[0].TIR = (CAN_GAS_OUTPUT << 21) | 1; - } else { - // old can packet hasn't sent! - state = FAULT_SEND; - #ifdef DEBUG - puts("CAN MISS\n"); - #endif - } - - // blink the LED - set_led(LED_GREEN, led_value); - led_value = !led_value; - - TIM3->SR = 0; - - // up timeout for gas set - if (timeout == MAX_TIMEOUT) { - state = FAULT_TIMEOUT; - } else { - timeout += 1; - } -} - -// ***************************** main code ***************************** - -void pedal() { - // read/write - pdl0 = adc_get(ADCCHAN_ACCEL0); - pdl1 = adc_get(ADCCHAN_ACCEL1); - - // write the pedal to the DAC - if (state == NO_FAULT) { - dac_set(0, max(gas_set_0, pdl0)); - dac_set(1, max(gas_set_1, pdl1)); - } else { - dac_set(0, pdl0); - dac_set(1, pdl1); - } - - // feed the watchdog - IWDG->KR = 0xAAAA; -} - -int main() { - __disable_irq(); - - // init devices - clock_init(); - periph_init(); - gpio_init(); - -#ifdef PEDAL_USB - // enable USB - usb_init(); -#endif - - // pedal stuff - dac_init(); - adc_init(); - - // init can - can_silent = ALL_CAN_LIVE; - can_init(0); - - // 48mhz / 65536 ~= 732 - timer_init(TIM3, 15); - NVIC_EnableIRQ(TIM3_IRQn); - - // setup watchdog - IWDG->KR = 0x5555; - IWDG->PR = 0; // divider /4 - // 0 = 0.125 ms, let's have a 50ms watchdog - IWDG->RLR = 400 - 1; - IWDG->KR = 0xCCCC; - - puts("**** INTERRUPTS ON ****\n"); - __enable_irq(); - - // main pedal loop - while (1) { - pedal(); - } - - return 0; -} \ No newline at end of file diff --git a/board/pedal_toyota/obj/.gitkeep b/board/pedal_toyota/obj/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/board/safety/safety_subaru.h b/board/safety/safety_subaru.h index 3d21d2269..00fe1abf9 100644 --- a/board/safety/safety_subaru.h +++ b/board/safety/safety_subaru.h @@ -1,28 +1,110 @@ -void subaru_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {} +const int SUBARU_MAX_STEER = 2047; // 1s +// real time torque limit to prevent controls spamming +// the real time limit is 1500/sec +const int SUBARU_MAX_RT_DELTA = 940; // max delta torque allowed for real time checks +const int32_t SUBARU_RT_INTERVAL = 250000; // 250ms between real time checks +const int SUBARU_MAX_RATE_UP = 50; +const int SUBARU_MAX_RATE_DOWN = 70; +const int SUBARU_DRIVER_TORQUE_ALLOWANCE = 60; +const int SUBARU_DRIVER_TORQUE_FACTOR = 10; -// FIXME -// *** all output safety mode *** +int subaru_cruise_engaged_last = 0; +int subaru_rt_torque_last = 0; +int subaru_desired_torque_last = 0; +uint32_t subaru_ts_last = 0; +struct sample_t subaru_torque_driver; // last few driver torques measured -static void subaru_init(int16_t param) { - controls_allowed = 1; + +static void subaru_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) { + int bus_number = (to_push->RDTR >> 4) & 0xFF; + uint32_t addr = to_push->RIR >> 21; + + if ((addr == 0x119) && (bus_number == 0)){ + int torque_driver_new = ((to_push->RDLR >> 16) & 0x7FF); + torque_driver_new = to_signed(torque_driver_new, 11); + // update array of samples + update_sample(&subaru_torque_driver, torque_driver_new); + } + + // enter controls on rising edge of ACC, exit controls on ACC off + if ((addr == 0x240) && (bus_number == 0)) { + int cruise_engaged = (to_push->RDHR >> 9) & 1; + if (cruise_engaged && !subaru_cruise_engaged_last) { + controls_allowed = 1; + } else if (!cruise_engaged) { + controls_allowed = 0; + } + subaru_cruise_engaged_last = cruise_engaged; + } } static int subaru_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) { + uint32_t addr = to_send->RIR >> 21; + + // steer cmd checks + if (addr == 0x122) { + int desired_torque = ((to_send->RDLR >> 16) & 0x1FFF); + int violation = 0; + uint32_t ts = TIM2->CNT; + desired_torque = to_signed(desired_torque, 13); + + if (controls_allowed) { + + // *** global torque limit check *** + violation |= max_limit_check(desired_torque, SUBARU_MAX_STEER, -SUBARU_MAX_STEER); + + // *** torque rate limit check *** + int desired_torque_last = subaru_desired_torque_last; + violation |= driver_limit_check(desired_torque, desired_torque_last, &subaru_torque_driver, + SUBARU_MAX_STEER, SUBARU_MAX_RATE_UP, SUBARU_MAX_RATE_DOWN, + SUBARU_DRIVER_TORQUE_ALLOWANCE, SUBARU_DRIVER_TORQUE_FACTOR); + + // used next time + subaru_desired_torque_last = desired_torque; + + // *** torque real time rate limit check *** + violation |= rt_rate_limit_check(desired_torque, subaru_rt_torque_last, SUBARU_MAX_RT_DELTA); + + // every RT_INTERVAL set the new limits + uint32_t ts_elapsed = get_ts_elapsed(ts, subaru_ts_last); + if (ts_elapsed > SUBARU_RT_INTERVAL) { + subaru_rt_torque_last = desired_torque; + subaru_ts_last = ts; + } + } + + // no torque if controls is not allowed + if (!controls_allowed && (desired_torque != 0)) { + violation = 1; + } + + // reset to 0 if either controls is not allowed or there's a violation + if (violation || !controls_allowed) { + subaru_desired_torque_last = 0; + subaru_rt_torque_last = 0; + subaru_ts_last = ts; + } + + if (violation) { + return false; + } + + } return true; } static int subaru_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) { - + // shifts bits 29 > 11 int32_t addr = to_fwd->RIR >> 21; // forward CAN 0 > 1 if (bus_num == 0) { - return 1; // ES CAN + return 2; // ES CAN } // forward CAN 1 > 0, except ES_LKAS - else if (bus_num == 1) { - + else if (bus_num == 2) { + // outback 2015 if (addr == 0x164) { return -1; @@ -40,10 +122,10 @@ static int subaru_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) { } const safety_hooks subaru_hooks = { - .init = subaru_init, + .init = nooutput_init, .rx = subaru_rx_hook, .tx = subaru_tx_hook, .tx_lin = nooutput_tx_lin_hook, .ignition = default_ign_hook, .fwd = subaru_fwd_hook, -}; \ No newline at end of file +}; diff --git a/board/safety/safety_toyota.h b/board/safety/safety_toyota.h index 9cab1512f..50d457ab6 100644 --- a/board/safety/safety_toyota.h +++ b/board/safety/safety_toyota.h @@ -79,6 +79,15 @@ static int toyota_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) { // no IPAS in non IPAS mode if (((to_send->RIR>>21) == 0x266) || ((to_send->RIR>>21) == 0x167)) return false; + // GAS PEDAL: safety check + if ((to_send->RIR>>21) == 0x200) { + if (controls_allowed && toyota_actuation_limits) { + // all messages are fine here + } else { + if ((to_send->RDLR & 0xFFFF0000) != to_send->RDLR) return 0; + } + } + // ACCEL: safety check on byte 1-2 if ((to_send->RIR>>21) == 0x343) { int desired_accel = ((to_send->RDLR & 0xFF) << 8) | ((to_send->RDLR >> 8) & 0xFF); diff --git a/common/version.mk b/common/version.mk index cc42223da..cc66efaa6 100644 --- a/common/version.mk +++ b/common/version.mk @@ -1,18 +1,20 @@ ifeq ($(RELEASE),1) - BUILD_TYPE = "RELEASE" + BUILD_TYPE = "RELEASE" else - BUILD_TYPE = "DEBUG" + BUILD_TYPE = "DEBUG" endif -ifneq ($(wildcard ../.git/HEAD),) -obj/gitversion.h: ../VERSION ../.git/HEAD ../.git/index - echo "const uint8_t gitversion[] = \"$(shell cat ../VERSION)-$(shell git rev-parse --short=8 HEAD)-$(BUILD_TYPE)\";" > $@ +SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST))) + +ifneq ($(wildcard $(SELF_DIR)/../.git/HEAD),) +obj/gitversion.h: $(SELF_DIR)/../VERSION $(SELF_DIR)/../.git/HEAD $(SELF_DIR)/../.git/index + echo "const uint8_t gitversion[] = \"$(shell cat $(SELF_DIR)/../VERSION)-$(BUILDER)-$(shell git rev-parse --short=8 HEAD)-$(BUILD_TYPE)\";" > $@ else -ifneq ($(wildcard ../../.git/modules/panda/HEAD),) -obj/gitversion.h: ../VERSION ../../.git/modules/panda/HEAD ../../.git/modules/panda/index - echo "const uint8_t gitversion[] = \"$(shell cat ../VERSION)-$(shell git rev-parse --short=8 HEAD)-$(BUILD_TYPE)\";" > $@ +ifneq ($(wildcard $(SELF_DIR)/../../.git/modules/panda/HEAD),) +obj/gitversion.h: $(SELF_DIR)/../VERSION $(SELF_DIR)/../../.git/modules/panda/HEAD $(SELF_DIR)/../../.git/modules/panda/index + echo "const uint8_t gitversion[] = \"$(shell cat $(SELF_DIR)/../VERSION)-$(BUILDER)-$(shell git rev-parse --short=8 HEAD)-$(BUILD_TYPE)\";" > $@ else -obj/gitversion.h: ../VERSION - echo "const uint8_t gitversion[] = \"$(shell cat ../VERSION)-unknown-$(BUILD_TYPE)\";" > $@ +obj/gitversion.h: $(SELF_DIR)/../VERSION + echo "const uint8_t gitversion[] = \"$(shell cat $(SELF_DIR)/../VERSION)-$(BUILDER)-unknown-$(BUILD_TYPE)\";" > $@ endif endif diff --git a/python/__init__.py b/python/__init__.py index c49ee8362..b3610e6c3 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -8,6 +8,7 @@ import usb1 import os import time import traceback +import subprocess from dfu import PandaDFU from esptool import ESPROM, CesantaFlasher from flash_release import flash_release @@ -25,7 +26,13 @@ DEBUG = os.getenv("PANDADEBUG") is not None def build_st(target, mkfile="Makefile"): from panda import BASEDIR - assert(os.system('cd %s && make -f %s clean && make -f %s %s >/dev/null' % (os.path.join(BASEDIR, "board"), mkfile, mkfile, target)) == 0) + cmd = 'cd %s && make -f %s clean && make -f %s %s >/dev/null' % (os.path.join(BASEDIR, "board"), mkfile, mkfile, target) + try: + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) + except subprocess.CalledProcessError as exception: + output = exception.output + returncode = exception.returncode + raise def parse_can_buffer(dat): ret = [] @@ -243,6 +250,7 @@ class Panda(object): pass def flash(self, fn=None, code=None, reconnect=True): + print("flash: main version is " + self.get_version()) if not self.bootstub: self.reset(enter_bootstub=True) assert(self.bootstub) @@ -263,7 +271,7 @@ class Panda(object): code = f.read() # get version - print("flash: version is "+self.get_version()) + print("flash: bootstub version is " + self.get_version()) # do flash Panda.flash_static(self._handle, code) @@ -541,4 +549,3 @@ class Panda(object): msg = self.kline_ll_recv(2, bus=bus) msg += self.kline_ll_recv(ord(msg[1])-2, bus=bus) return msg - diff --git a/python/update.py b/python/update.py index d393df9fb..ce730e491 100755 --- a/python/update.py +++ b/python/update.py @@ -8,6 +8,8 @@ def ensure_st_up_to_date(): with open(os.path.join(BASEDIR, "VERSION")) as f: repo_version = f.read() + repo_version += "-EON" if os.path.isfile('/EON') else "-DEV" + panda = None panda_dfu = None should_flash_recover = False @@ -24,7 +26,7 @@ def ensure_st_up_to_date(): if len(panda_dfu) > 0: panda_dfu = PandaDFU(panda_dfu[0]) panda_dfu.recover() - + print "waiting for board..." time.sleep(1) diff --git a/tests/safety/libpandasafety_py.py b/tests/safety/libpandasafety_py.py index 53936761d..d8cb27cf8 100644 --- a/tests/safety/libpandasafety_py.py +++ b/tests/safety/libpandasafety_py.py @@ -30,25 +30,20 @@ typedef struct uint32_t CNT; } TIM_TypeDef; +void set_controls_allowed(int c); +int get_controls_allowed(void); +void set_timer(int t); +void reset_angle_control(void); + +void init_tests_toyota(void); void toyota_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); int toyota_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); void toyota_init(int16_t param); -void set_controls_allowed(int c); -void reset_angle_control(void); -int get_controls_allowed(void); -void init_tests_toyota(void); -void set_timer(int t); -void set_toyota_torque_meas(int min, int max); -void set_cadillac_torque_driver(int min, int max); -void set_gm_torque_driver(int min, int max); -void set_hyundai_torque_driver(int min, int max); -void set_chrysler_torque_meas(int min, int max); -void set_toyota_rt_torque_last(int t); -void set_toyota_desired_torque_last(int t); int get_toyota_torque_meas_min(void); int get_toyota_torque_meas_max(void); -int get_chrysler_torque_meas_min(void); -int get_chrysler_torque_meas_max(void); +void set_toyota_torque_meas(int min, int max); +void set_toyota_desired_torque_last(int t); +void set_toyota_rt_torque_last(int t); void init_tests_honda(void); int get_ego_speed(void); @@ -66,6 +61,7 @@ void cadillac_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); int cadillac_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); void set_cadillac_desired_torque_last(int t); void set_cadillac_rt_torque_last(int t); +void set_cadillac_torque_driver(int min, int max); void init_tests_gm(void); void gm_init(int16_t param); @@ -73,6 +69,7 @@ void gm_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); int gm_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); void set_gm_desired_torque_last(int t); void set_gm_rt_torque_last(int t); +void set_gm_torque_driver(int min, int max); void init_tests_hyundai(void); void nooutput_init(int16_t param); @@ -80,6 +77,7 @@ void hyundai_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); int hyundai_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); void set_hyundai_desired_torque_last(int t); void set_hyundai_rt_torque_last(int t); +void set_hyundai_torque_driver(int min, int max); void toyota_ipas_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); int toyota_ipas_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); @@ -89,6 +87,16 @@ void chrysler_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); int chrysler_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); void set_chrysler_desired_torque_last(int t); void set_chrysler_rt_torque_last(int t); +int get_chrysler_torque_meas_min(void); +int get_chrysler_torque_meas_max(void); +void set_chrysler_torque_meas(int min, int max); + +void init_tests_subaru(void); +void subaru_rx_hook(CAN_FIFOMailBox_TypeDef *to_push); +int subaru_tx_hook(CAN_FIFOMailBox_TypeDef *to_send); +void set_subaru_desired_torque_last(int t); +void set_subaru_rt_torque_last(int t); +void set_subaru_torque_driver(int min, int max); """) diff --git a/tests/safety/test.c b/tests/safety/test.c index b1390c41c..9b4c807d7 100644 --- a/tests/safety/test.c +++ b/tests/safety/test.c @@ -26,7 +26,8 @@ struct sample_t toyota_torque_meas; struct sample_t cadillac_torque_driver; struct sample_t gm_torque_driver; struct sample_t hyundai_torque_driver; -struct sample_t chrysler_torque_driver; +struct sample_t chrysler_torque_meas; +struct sample_t subaru_torque_driver; TIM_TypeDef timer; TIM_TypeDef *TIM2 = &timer; @@ -87,6 +88,11 @@ void set_chrysler_torque_meas(int min, int max){ chrysler_torque_meas.max = max; } +void set_subaru_torque_driver(int min, int max){ + subaru_torque_driver.min = min; + subaru_torque_driver.max = max; +} + int get_chrysler_torque_meas_min(void){ return chrysler_torque_meas.min; } @@ -123,6 +129,10 @@ void set_chrysler_rt_torque_last(int t){ chrysler_rt_torque_last = t; } +void set_subaru_rt_torque_last(int t){ + subaru_rt_torque_last = t; +} + void set_toyota_desired_torque_last(int t){ toyota_desired_torque_last = t; } @@ -143,6 +153,10 @@ void set_chrysler_desired_torque_last(int t){ chrysler_desired_torque_last = t; } +void set_subaru_desired_torque_last(int t){ + subaru_desired_torque_last = t; +} + int get_ego_speed(void){ return ego_speed; } @@ -200,14 +214,23 @@ void init_tests_hyundai(void){ } void init_tests_chrysler(void){ - chrysler_torque_driver.min = 0; - chrysler_torque_driver.max = 0; + chrysler_torque_meas.min = 0; + chrysler_torque_meas.max = 0; chrysler_desired_torque_last = 0; chrysler_rt_torque_last = 0; chrysler_ts_last = 0; set_timer(0); } +void init_tests_subaru(void){ + subaru_torque_driver.min = 0; + subaru_torque_driver.max = 0; + subaru_desired_torque_last = 0; + subaru_rt_torque_last = 0; + subaru_ts_last = 0; + set_timer(0); +} + void init_tests_honda(void){ ego_speed = 0; gas_interceptor_detected = 0; diff --git a/tests/safety/test_chrysler.py b/tests/safety/test_chrysler.py index 568c92aaa..0fcfc3bcf 100755 --- a/tests/safety/test_chrysler.py +++ b/tests/safety/test_chrysler.py @@ -1,4 +1,6 @@ #!/usr/bin/env python2 +import csv +import glob import unittest import numpy as np import libpandasafety_py @@ -24,6 +26,11 @@ def sign(a): else: return -1 +def swap_bytes(data_str): + """Accepts string with hex, returns integer with order swapped for CAN.""" + a = int(data_str, 16) + return ((a & 0xff) << 24) + ((a & 0xff00) << 8) + ((a & 0x00ff0000) >> 8) + ((a & 0xff000000) >> 24) + class TestChryslerSafety(unittest.TestCase): @classmethod def setUp(cls): @@ -166,6 +173,33 @@ class TestChryslerSafety(unittest.TestCase): self.assertEqual(0, self.safety.get_chrysler_torque_meas_max()) self.assertEqual(0, self.safety.get_chrysler_torque_meas_min()) + def _replay_drive(self, csv_reader): + for row in csv_reader: + if len(row) != 4: # sometimes truncated at end of the file + continue + if row[0] == 'time': # skip CSV header + continue + addr = int(row[1]) + bus = int(row[2]) + data_str = row[3] # Example '081407ff0806e06f' + to_send = libpandasafety_py.ffi.new('CAN_FIFOMailBox_TypeDef *') + to_send[0].RIR = addr << 21 + to_send[0].RDHR = swap_bytes(data_str[8:]) + to_send[0].RDLR = swap_bytes(data_str[:8]) + if (bus == 128): + self.assertTrue(self.safety.chrysler_tx_hook(to_send), msg=row) + else: + self.safety.chrysler_rx_hook(to_send) + + def test_replay_drive(self): + # In Cabana, click "Save Log" and then put the downloaded CSV in this directory. + test_files = glob.glob('chrysler_*.csv') + for filename in test_files: + print 'testing %s' % filename + with open(filename) as csvfile: + reader = csv.reader(csvfile) + self._replay_drive(reader) + if __name__ == "__main__": unittest.main() diff --git a/tests/safety/test_subaru.py b/tests/safety/test_subaru.py new file mode 100644 index 000000000..a1e03fea1 --- /dev/null +++ b/tests/safety/test_subaru.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python2 +import unittest +import numpy as np +import libpandasafety_py + +MAX_RATE_UP = 50 +MAX_RATE_DOWN = 70 +MAX_STEER = 2047 + +MAX_RT_DELTA = 940 +RT_INTERVAL = 250000 + +DRIVER_TORQUE_ALLOWANCE = 60; +DRIVER_TORQUE_FACTOR = 10; + +def twos_comp(val, bits): + if val >= 0: + return val + else: + return (2**bits) + val + +def sign(a): + if a > 0: + return 1 + else: + return -1 + +class TestSubaruSafety(unittest.TestCase): + @classmethod + def setUp(cls): + cls.safety = libpandasafety_py.libpandasafety + cls.safety.nooutput_init(0) + cls.safety.init_tests_subaru() + + def _set_prev_torque(self, t): + self.safety.set_subaru_desired_torque_last(t) + self.safety.set_subaru_rt_torque_last(t) + + def _torque_driver_msg(self, torque): + to_send = libpandasafety_py.ffi.new('CAN_FIFOMailBox_TypeDef *') + to_send[0].RIR = 0x119 << 21 + + t = twos_comp(torque, 11) + to_send[0].RDLR = ((t & 0x7FF) << 16) + return to_send + + def _torque_msg(self, torque): + to_send = libpandasafety_py.ffi.new('CAN_FIFOMailBox_TypeDef *') + to_send[0].RIR = 0x122 << 21 + + t = twos_comp(torque, 13) + to_send[0].RDLR = (t << 16) + return to_send + + def test_default_controls_not_allowed(self): + self.assertFalse(self.safety.get_controls_allowed()) + + def test_enable_control_allowed_from_cruise(self): + to_push = libpandasafety_py.ffi.new('CAN_FIFOMailBox_TypeDef *') + to_push[0].RIR = 0x240 << 21 + to_push[0].RDHR = 1 << 9 + + self.safety.subaru_rx_hook(to_push) + self.assertTrue(self.safety.get_controls_allowed()) + + def test_disable_control_allowed_from_cruise(self): + to_push = libpandasafety_py.ffi.new('CAN_FIFOMailBox_TypeDef *') + to_push[0].RIR = 0x240 << 21 + to_push[0].RDHR = 0 + + self.safety.set_controls_allowed(1) + self.safety.subaru_rx_hook(to_push) + self.assertFalse(self.safety.get_controls_allowed()) + + def test_steer_safety_check(self): + for enabled in [0, 1]: + for t in range(-3000, 3000): + self.safety.set_controls_allowed(enabled) + self._set_prev_torque(t) + if abs(t) > MAX_STEER or (not enabled and abs(t) > 0): + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg(t))) + else: + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(t))) + + def test_manually_enable_controls_allowed(self): + self.safety.set_controls_allowed(1) + self.assertTrue(self.safety.get_controls_allowed()) + self.safety.set_controls_allowed(0) + self.assertFalse(self.safety.get_controls_allowed()) + + def test_non_realtime_limit_up(self): + self.safety.set_subaru_torque_driver(0, 0) + self.safety.set_controls_allowed(True) + + self._set_prev_torque(0) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(MAX_RATE_UP))) + self._set_prev_torque(0) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(-MAX_RATE_UP))) + + self._set_prev_torque(0) + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg(MAX_RATE_UP + 1))) + self.safety.set_controls_allowed(True) + self._set_prev_torque(0) + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg(-MAX_RATE_UP - 1))) + + def test_non_realtime_limit_down(self): + self.safety.set_subaru_torque_driver(0, 0) + self.safety.set_controls_allowed(True) + + def test_against_torque_driver(self): + self.safety.set_controls_allowed(True) + + for sign in [-1, 1]: + for t in np.arange(0, DRIVER_TORQUE_ALLOWANCE + 1, 1): + t *= -sign + self.safety.set_subaru_torque_driver(t, t) + self._set_prev_torque(MAX_STEER * sign) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(MAX_STEER * sign))) + + self.safety.set_subaru_torque_driver(DRIVER_TORQUE_ALLOWANCE + 1, DRIVER_TORQUE_ALLOWANCE + 1) + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg(-MAX_STEER))) + + # spot check some individual cases + for sign in [-1, 1]: + driver_torque = (DRIVER_TORQUE_ALLOWANCE + 10) * sign + torque_desired = (MAX_STEER - 10 * DRIVER_TORQUE_FACTOR) * sign + delta = 1 * sign + self._set_prev_torque(torque_desired) + self.safety.set_subaru_torque_driver(-driver_torque, -driver_torque) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(torque_desired))) + self._set_prev_torque(torque_desired + delta) + self.safety.set_subaru_torque_driver(-driver_torque, -driver_torque) + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg(torque_desired + delta))) + + self._set_prev_torque(MAX_STEER * sign) + self.safety.set_subaru_torque_driver(-MAX_STEER * sign, -MAX_STEER * sign) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg((MAX_STEER - MAX_RATE_DOWN) * sign))) + self._set_prev_torque(MAX_STEER * sign) + self.safety.set_subaru_torque_driver(-MAX_STEER * sign, -MAX_STEER * sign) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(0))) + self._set_prev_torque(MAX_STEER * sign) + self.safety.set_subaru_torque_driver(-MAX_STEER * sign, -MAX_STEER * sign) + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg((MAX_STEER - MAX_RATE_DOWN + 1) * sign))) + + + def test_realtime_limits(self): + self.safety.set_controls_allowed(True) + + for sign in [-1, 1]: + self.safety.init_tests_subaru() + self._set_prev_torque(0) + self.safety.set_subaru_torque_driver(0, 0) + for t in np.arange(0, MAX_RT_DELTA, 1): + t *= sign + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(t))) + self.assertFalse(self.safety.subaru_tx_hook(self._torque_msg(sign * (MAX_RT_DELTA + 1)))) + + self._set_prev_torque(0) + for t in np.arange(0, MAX_RT_DELTA, 1): + t *= sign + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(t))) + + # Increase timer to update rt_torque_last + self.safety.set_timer(RT_INTERVAL + 1) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(sign * (MAX_RT_DELTA - 1)))) + self.assertTrue(self.safety.subaru_tx_hook(self._torque_msg(sign * (MAX_RT_DELTA + 1)))) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/safety/test_toyota.py b/tests/safety/test_toyota.py index 40bc4bcf5..52c7015af 100644 --- a/tests/safety/test_toyota.py +++ b/tests/safety/test_toyota.py @@ -119,6 +119,13 @@ class TestToyotaSafety(unittest.TestCase): to_send[0].RDLR = (a & 0xFF) << 8 | (a >> 8) return to_send + def _gas_msg(self, gas): + to_send = libpandasafety_py.ffi.new('CAN_FIFOMailBox_TypeDef *') + to_send[0].RIR = 0x200 << 21 + to_send[0].RDLR = gas + + return to_send + def test_default_controls_not_allowed(self): self.assertFalse(self.safety.get_controls_allowed()) @@ -409,6 +416,13 @@ class TestToyotaSafety(unittest.TestCase): # reset no angle control at the end of the test self.safety.reset_angle_control() + def test_gas_safety_check(self): + self.safety.set_controls_allowed(0) + self.assertTrue(self.safety.honda_tx_hook(self._gas_msg(0x0000))) + self.assertFalse(self.safety.honda_tx_hook(self._gas_msg(0x1000))) + self.safety.set_controls_allowed(1) + self.assertTrue(self.safety.honda_tx_hook(self._gas_msg(0x1000))) + if __name__ == "__main__": unittest.main() diff --git a/tests/safety/trim_csv.py b/tests/safety/trim_csv.py new file mode 100755 index 000000000..511bd385f --- /dev/null +++ b/tests/safety/trim_csv.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python2 + +# This trims CAN message CSV files to just the messages relevant for Panda testing. +# Usage: +# cat input.csv | ./trim_csv.py > output.csv +import fileinput + +addr_to_keep = [544, 0x1f4, 0x292] # For Chrysler, update to the addresses that matter for you. + +for line in fileinput.input(): + line = line.strip() + cols = line.split(',') + if len(cols) != 4: + continue # malformed, such as at the end or every 60s. + (_, addr, bus, _) = cols + if (addr == 'addr'): + continue + if (int(bus) == 128): # Keep all messages sent by OpenPilot. + print line + elif (int(addr) in addr_to_keep): + print line From 6aa1048d15f66b81ca17a374a676dabb6c3db8dd Mon Sep 17 00:00:00 2001 From: Vehicle Researcher Date: Tue, 26 Mar 2019 01:03:50 -0700 Subject: [PATCH 2/4] Squashed 'opendbc/' changes from 45c32855..3a55ae92 3a55ae92 New camry steer message (#149) 6cd02385 Add 2019 CR-V Hybrid DBC (#148) 721e9b23 Subaru: set speed can be in kph and it needs 8 bits 0e98b2c5 Subaru: update LKAS_State 945b6ad7 Subaru: slightly touched wheel speed factor 608a4a62 Add files via upload (#147) 6a29f7ef Subaru: fixed DOOR_OPEN sgs 434debbd Adds dbc for 2017 lexus is300h (hybrid) (#146) 679dd421 Subaru: some cleanup to dbc 38140d28 Subaru: endianess consistency in wheel speeds 82818134 Subaru Global: more endianess consistency. Still a long way to go a3b78a32 Subaru Global: simplified Stalk Message b8250bca fixed sign in steering angle 9552df4a Subaru: left steer is positive 4aca14c2 SUBARU LKAS: minus sign to steer command to match standard convention a6cc574d Merge pull request #145 from Jafaral/master abcb9a28 Add Mazda CX-5 2017 GT f4a8f79f Pedal: back again at 6 bytes 3fd25bf3 Pedal: same checksum and counter (#143) 2c74c55f Toyota pedal: messages are now 7 bytes 732f3fcd Toyota pedal: added counter acf0da72 Subaru global dbc (#142) e0fa5d0b Subaru: added global dbc cb221257 change chrysler radar to all big endian to avoid OP can parser bug (#141) ecf99e03 chrysler car model in LKAS message so we can use CAN packer (#140) git-subtree-dir: opendbc git-subtree-split: 3a55ae92d4e621c3fc1ad3c8dffd76c6daa74bef --- ESR.dbc | 1080 +++++++++++++++++ acura_ilx_2016_can_generated.dbc | 10 +- acura_rdx_2018_can_generated.dbc | 10 +- chrysler_pacifica_2017_hybrid.dbc | 1 + ...er_pacifica_2017_hybrid_private_fusion.dbc | 26 +- generator/honda/_comma.dbc | 10 +- generator/honda/honda_crv_hybrid_2019_can.dbc | 48 + generator/toyota/_comma.dbc | 8 +- generator/toyota/lexus_is_hybrid_2017_pt.dbc | 41 + .../toyota/toyota_camry_hybrid_2018_pt.dbc | 1 + honda_civic_touring_2016_can_generated.dbc | 10 +- honda_crv_hybrid_2019_can_generated.dbc | 316 +++++ honda_crv_touring_2016_can_generated.dbc | 10 +- honda_fit_ex_2018_can_generated.dbc | 10 +- honda_odyssey_exl_2018_generated.dbc | 10 +- honda_pilot_touring_2017_can_generated.dbc | 10 +- ...eline_black_edition_2017_can_generated.dbc | 10 +- lexus_is_2018_pt_generated.dbc | 8 +- lexus_is_hybrid_2017_pt_generated.dbc | 331 +++++ lexus_rx_hybrid_2017_pt_generated.dbc | 8 +- mazda_cx5_gt_2017.dbc | 694 +++++++++++ subaru_global_2017.dbc | 363 ++++++ subaru_outback_2015_eyesight.dbc | 8 +- toyota_avalon_2017_pt_generated.dbc | 8 +- toyota_camry_hybrid_2018_pt_generated.dbc | 9 +- toyota_chr_2018_pt_generated.dbc | 8 +- toyota_chr_hybrid_2018_pt_generated.dbc | 8 +- toyota_corolla_2017_pt_generated.dbc | 8 +- toyota_highlander_2017_pt_generated.dbc | 8 +- ...ta_highlander_hybrid_2018_pt_generated.dbc | 8 +- toyota_prius_2017_pt_generated.dbc | 8 +- toyota_rav4_2017_pt_generated.dbc | 8 +- toyota_rav4_hybrid_2017_pt_generated.dbc | 8 +- toyota_sienna_xle_2018_pt_generated.dbc | 8 +- 34 files changed, 3008 insertions(+), 104 deletions(-) create mode 100644 ESR.dbc create mode 100644 generator/honda/honda_crv_hybrid_2019_can.dbc create mode 100644 generator/toyota/lexus_is_hybrid_2017_pt.dbc create mode 100644 honda_crv_hybrid_2019_can_generated.dbc create mode 100644 lexus_is_hybrid_2017_pt_generated.dbc create mode 100644 mazda_cx5_gt_2017.dbc create mode 100644 subaru_global_2017.dbc diff --git a/ESR.dbc b/ESR.dbc new file mode 100644 index 000000000..e3837a68b --- /dev/null +++ b/ESR.dbc @@ -0,0 +1,1080 @@ +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: Gateway ESR +VAL_TABLE_ ForwardReverse 1 "Reverse" 0 "Forward" ; +VAL_TABLE_ LeftRight 1 "Right Clockwise" 0 "Left CounterClockwise" ; +VAL_TABLE_ ValidInvalid 1 "Valid" 0 "Invalid" ; +VAL_TABLE_ TrueFalse 1 "True" 0 "False" ; + + +BO_ 1343 Target64: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1342 Target63: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1341 Target62: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1340 Target61: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1339 Target60: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1338 Target59: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1337 Target58: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1336 Target57: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1335 Target56: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1334 Target55: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1333 Target54: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1332 Target53: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1331 Target52: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1330 Target51: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1329 Target50: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1328 Target49: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1327 Target48: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1326 Target47: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1325 Target46: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1324 Target45: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1323 Target44: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1322 Target43: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1321 Target42: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1320 Target41: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1319 Target40: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1318 Target39: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1317 Target38: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1316 Target37: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1315 Target36: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1314 Target35: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1313 Target34: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1312 Target33: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1311 Target32: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1310 Target31: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1309 Target30: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1308 Target29: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1307 Target28: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1306 Target27: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1305 Target26: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1304 Target25: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1303 Target24: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1302 Target23: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1301 Target22: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1300 Target21: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1299 Target20: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1298 Target19: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1297 Target18: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1296 Target17: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1295 Target16: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1294 Target15: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1293 Target14: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1292 Target13: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1291 Target12: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1290 Target11: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1289 Target10: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1288 Target9: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1287 Target8: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1285 Target6: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1286 Target7: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1284 Target5: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1283 Target4: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1282 Target3: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1281 Target2: 8 Vector__XXX + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1524 VehicleData3: 8 Gateway + SG_ CAN_RX_YAW_RATE_BIAS_SHIFT : 15|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_WHEELBASE : 55|8@0+ (2,200) [200|710] "cm" Vector__XXX + SG_ CAN_RX_STEERING_GEAR_RATIO : 63|8@0+ (0.125,0) [0|31.875] "" Vector__XXX + SG_ CAN_RX_OVERSTEER_UNDERSTEER : 7|8@0- (1,0) [-128|127] "%" Vector__XXX + SG_ CAN_RX_FUNNEL_OFFSET_RIGHT : 31|8@0- (0.1,0) [-12.8|12.7] "m" Vector__XXX + SG_ CAN_RX_FUNNEL_OFFSET_LEFT : 23|8@0- (0.1,0) [-12.8|12.7] "m" Vector__XXX + SG_ CAN_RX_DISTANCE_REAR_AXLE : 47|8@0+ (2,200) [200|710] "cm" Vector__XXX + SG_ CAN_RX_CW_BLOCKAGE_TRESHOLD : 39|8@0+ (0.0078125,0) [0|1.9921875] "" Vector__XXX + SG_ CAN_RX_BEAMWIDTH_VERT : 14|7@0+ (0.0625,0) [0|7.9375] "deg" Vector__XXX + +BO_ 1523 FactoryAlignment: 8 Gateway + +BO_ 1522 Vehicle_Data2: 8 Gateway + SG_ CAN_RX_WHEEL_SLIP : 41|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_RX_SERV_ALIGN_UPDATES_NEED : 55|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_RX_SERV_ALIGN_TYPE : 47|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_RADAR_HEIGHT : 38|7@0+ (1,0) [0|127] "cm" Vector__XXX + SG_ CAN_RX_RADAR_FOV_MR : 30|7@0+ (1,0) [0|127] "deg" Vector__XXX + SG_ CAN_RX_RADAR_FOV_LR : 19|5@0+ (1,0) [0|31] "deg" Vector__XXX + SG_ CAN_RX_LONG_ACCEL_VALIDITY : 7|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_LONG_ACCEL : 12|9@0- (0.03125,0) [-8|7.96875] "m/s^2" Vector__XXX + SG_ CAN_RX_LAT_ACCEL_VALIDITY : 6|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_LAT_ACCEL : 5|9@0- (0.03125,0) [-8|7.96875] "m/s^2" Vector__XXX + SG_ CAN_RX_AUTO_ALIGN_DISABLE : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_AUTO_ALIGN_CONVERGED : 42|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_ANGLE_MOUNTING_OFFSET : 63|8@0- (0.0625,0) [-8|7.9375] "deg" Vector__XXX + SG_ CAN_RX_AALIGN_AVG_CTR_TOTAL : 45|3@0+ (250,250) [250|2000] "" Vector__XXX + +BO_ 1512 CIPV_Targets_Etc: 8 ESR + +BO_ 1511 ESR_History_Fault: 8 ESR + +BO_ 1510 ESR_Active_Fault: 8 ESR + +BO_ 1508 AD_Data: 8 ESR + +BO_ 1489 SensorValidation2: 8 ESR + SG_ CAN_TX_VALID_MR_SN : 7|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_VALID_MR_RANGE_RATE : 31|16@0- (0.0078125,0) [-256|255.9921875] "m/s" Vector__XXX + SG_ CAN_TX_VALID_MR_RANGE : 15|16@0+ (0.0078125,0) [0|511.9921875] "m" Vector__XXX + SG_ CAN_TX_VALID_MR_POWER : 63|8@0- (1,0) [-128|127] "db" Vector__XXX + SG_ CAN_TX_VALID_MR_ANGLE : 40|16@1- (0.0625,0) [-2048|2047.9375] "deg" Vector__XXX + +BO_ 1488 SensorValidation: 8 ESR + SG_ CAN_TX_VALID_LR_SN : 7|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_VALID_LR_RANGE_RATE : 31|16@0- (0.0078125,0) [-256|255.9921875] "m/s" Vector__XXX + SG_ CAN_TX_VALID_LR_RANGE : 15|16@0+ (0.0078125,0) [0|511.9921875] "m" Vector__XXX + SG_ CAN_TX_VALID_LR_POWER : 63|8@0- (1,0) [-128|127] "db" Vector__XXX + SG_ CAN_TX_VALID_LR_ANGLE : 47|16@0- (0.0625,0) [-2048|2047.9375] "deg" Vector__XXX + +BO_ 1344 Track_Sensor: 1 ESR + SG_ CAN_TX_TRACK_ROLLING_COUNT_2 : 4|1@0+ (1,0) [0|1] "" Vector__XXX + +BO_ 1280 Target1: 8 ESR + SG_ CAN_TX_TRACK_WIDTH : 37|4@0+ (0.5,0) [0|7.5] "" Vector__XXX + SG_ CAN_TX_TRACK_STATUS : 15|3@0+ (1,0) [0|7] "" Vector__XXX + SG_ CAN_TX_TRACK_ROLLING_COUNT : 38|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_RATE : 53|14@0- (0.01,0) [-81.92|81.91] "m/s" Vector__XXX + SG_ CAN_TX_TRACK_RANGE_ACCEL : 33|10@0- (0.05,0) [-25.6|25.55] "m/s^2" Vector__XXX + SG_ CAN_TX_TRACK_RANGE : 18|11@0+ (0.1,0) [0|204.7] "m" Vector__XXX + SG_ CAN_TX_TRACK_ONCOMING : 0|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_MED_RANGE_MODE : 55|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_TRACK_LAT_RATE : 7|6@0- (0.25,0) [-8|7.75] "" Vector__XXX + SG_ CAN_TX_TRACK_GROUPING_CHANGED : 1|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_BRIDGE_OBJECT : 39|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_TRACK_ANGLE : 12|10@0- (0.1,0) [-51.2|51.1] "" Vector__XXX + +BO_ 1265 SensorInput: 8 Gateway + SG_ CAN_RX_USE_ANGLE_MISALIGNMENT : 23|1@0+ (1,0) [0|0] "" Vector__XXX + SG_ CAN_RX_SCAN_INDEX_ACK : 7|16@0+ (1,0) [0|65535] "" Vector__XXX + SG_ CAN_RX_LATERAL_MOUNTING_OFFSET : 47|8@0- (0.01563,0) [-2.00064|1.98501] "m" Vector__XXX + SG_ CAN_RX_WIPER_STATUS : 57|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_VOLVO_SHORT_TRACK_ROC : 31|4@0- (500,0) [-4000|3500] "m" Vector__XXX + SG_ CAN_RX_VEHICLE_SPEED_VALIDITY : 61|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_TURN_SIGNAL_STATUS : 63|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_RX_RAW_DATA_ENABLE : 56|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_RADAR_CMD_RADIATE : 55|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_MR_ONLY_TRANSMIT : 25|1@0+ (1,0) [0|0] "" Vector__XXX + SG_ CAN_RX_MMR_UPSIDE_DOWN : 60|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_MAXIMUM_TRACKS : 53|6@0+ (1,0) [0|63] "" Vector__XXX + SG_ CAN_RX_LR_ONLY_TRANSMIT : 24|1@0+ (1,0) [0|0] "" Vector__XXX + SG_ CAN_RX_HIGH_YAW_ANGLE : 21|6@0- (1,0) [-32|31] "deg" Vector__XXX + SG_ CAN_RX_GROUPING_MODE : 59|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_RX_CLEAR_FAULTS : 22|1@0- (1,0) [0|0] "" Vector__XXX + SG_ CAN_RX_BLOCKAGE_DISABLE : 54|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_ANGLE_MISALIGNMENT : 39|8@0- (0.0625,0) [-8|7.9375] "deg" Vector__XXX + +BO_ 1264 Vehicle_Data: 8 Gateway + SG_ CAN_RX_YAW_RATE_VALIDITY : 31|1@0+ (1,0) [0|0] "" Vector__XXX + SG_ CAN_RX_YAW_RATE : 11|12@0- (0.0625,0) [-128|127.9375] "deg/s" Vector__XXX + SG_ CAN_RX_VEHICLE_SPEED_DIRECTION : 12|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_VEHICLE_SPEED : 7|11@0+ (0.0625,0) [0|127.9375] "m/s" Vector__XXX + SG_ CAN_RX_RADIUS_CURVATURE : 29|14@0- (1,0) [-8192|8191] "m" Vector__XXX + SG_ CAN_RX_STEERING_VALIDITY : 47|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_STEERING_ANGLE_SIGN : 46|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_STEERING_ANGLE_RATE_SIGN : 30|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_RX_STEERING_ANGLE_RATE : 50|11@0+ (1,0) [0|2047] "deg/s" Vector__XXX + SG_ CAN_RX_STEERING_ANGLE : 45|11@0+ (1,0) [0|2047] "deg" Vector__XXX + +BO_ 1251 ESR_Output_InPath: 8 ESR + SG_ CAN_TX_PATH_ID_ACC_MOVE : 15|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_TRUCK_TARGET_DET : 7|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_SIDELOBE_BLOCKATE : 5|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_ROLLING_COUNT_3 : 1|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_PATH_ID_FCW_STAT : 47|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_PATH_ID_FCW_MOVE : 39|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_PATH_ID_CMBB_STAT : 31|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_PATH_ID_CMBB_MOVE : 23|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_PATH_ID_ACC_STAT : 63|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_PARTIAL_BLOCKAGE : 4|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_LR_ONLY_GRATING_LOBE_DET : 6|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_LMR_LR_MODE : 3|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_AUTO_ALIGN_ANGLE : 55|8@0- (0.0625,0) [-8|7.9375] "" Vector__XXX + +BO_ 1250 ESR_SW: 8 ESR + SG_ CAN_TX_SW_VERSION_PLD : 63|8@0+ (1,0) [0|255] "" Vector__XXX + SG_ CAN_TX_SW_VERSION_HOST : 15|24@0+ (1,0) [0|16777215] "" Vector__XXX + SG_ CAN_TX_SERIAL_NUM : 39|24@0+ (1,0) [0|16777215] "" Vector__XXX + SG_ CAN_TX_INTERFACE_VERSION : 7|4@0+ (1,0) [0|15] "" Vector__XXX + SG_ CAN_TX_HW_VERSION : 3|4@0+ (1,0) [0|15] "" Vector__XXX + +BO_ 1249 ESR_Status2: 8 ESR + SG_ CAN_TX_YAW_RATE_BIAS : 47|8@0- (0.125,0) [-16|15.875] "" Vector__XXX + SG_ CAN_TX_XCVR_OPERATIONAL : 12|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_VEH_SPD_COMP_FACTOR : 39|6@0- (0.00195,1) [0.9376|1.06045] "" Vector__XXX + SG_ CAN_TX_TEMPERATURE : 31|8@0- (1,0) [-128|127] "degC" Vector__XXX + SG_ CAN_TX_SW_VERSION_DSP : 55|16@0+ (1,0) [0|65535] "" Vector__XXX + SG_ CAN_TX_STEERING_ANGLE_ACK : 10|11@0+ (1,0) [0|2047] "deg" Vector__XXX + SG_ CAN_TX_ROLLING_COUNT_2 : 1|2@0+ (1,0) [0|3] "" Vector__XXX + SG_ CAN_TX_RAW_DATA_MODE : 11|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_RANGE_PERF_ERROR : 14|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_OVERHEAT_ERROR : 15|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_MAXIMUM_TRACKS_ACK : 7|6@0+ (1,1) [1|64] "" Vector__XXX + SG_ CAN_TX_INTERNAL_ERROR : 13|1@0+ (1,0) [0|1] "" Vector__XXX + SG_ CAN_TX_GROUPING_MODE : 33|2@0+ (1,0) [0|3] "" Vector__XXX + +BO_ 1248 ESR_Status: 8 ESR + SG_ CAN_TX_COMM_ERROR : 14|1@0+ (1,0) [0|0] "" Vector__XXX + SG_ CAN_TX_RADIUS_CURVATURE_CALC : 13|14@0- (1,0) [-8192|8191] "" Vector__XXX + SG_ CAN_TX_YAW_RATE_CALC : 47|12@0- (0.0625,0) [-128|127.9375] "deg/s" Vector__XXX + SG_ CAN_TX_VEHICLE_SPEED_CALC : 50|11@0+ (0.0625,0) [0|127.9375] "m/s" Vector__XXX + SG_ CAN_TX_DSP_TIMESTAMP : 5|7@0+ (2,0) [0|254] "ms" Vector__XXX + SG_ CAN_TX_SCAN_INDEX : 31|16@0+ (1,0) [0|65535] "" Vector__XXX + SG_ CAN_TX_ROLLING_COUNT_1 : 6|2@1+ (1,0) [0|3] "" Vector__XXX + + + +BA_DEF_ "BusType" STRING ; +BA_DEF_DEF_ "BusType" "CAN"; +VAL_ 1264 CAN_RX_YAW_RATE_VALIDITY 1 "Valid" 0 "Invalid" ; +VAL_ 1264 CAN_RX_VEHICLE_SPEED_DIRECTION 1 "Reverse" 0 "Forward" ; +VAL_ 1264 CAN_RX_STEERING_VALIDITY 1 "True" 0 "False" ; +VAL_ 1264 CAN_RX_STEERING_ANGLE_SIGN 1 "Right Clockwise" 0 "Left CounterClockwise" ; +VAL_ 1264 CAN_RX_STEERING_ANGLE_RATE_SIGN 1 "Right Clockwise" 0 "Left CounterClockwise" ; + diff --git a/acura_ilx_2016_can_generated.dbc b/acura_ilx_2016_can_generated.dbc index 592b6a5ad..dd112ca32 100644 --- a/acura_ilx_2016_can_generated.dbc +++ b/acura_ilx_2016_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/acura_rdx_2018_can_generated.dbc b/acura_rdx_2018_can_generated.dbc index 4cbcfe182..a8e69b14e 100644 --- a/acura_rdx_2018_can_generated.dbc +++ b/acura_rdx_2018_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/chrysler_pacifica_2017_hybrid.dbc b/chrysler_pacifica_2017_hybrid.dbc index a1aa04145..dd5a7fe99 100644 --- a/chrysler_pacifica_2017_hybrid.dbc +++ b/chrysler_pacifica_2017_hybrid.dbc @@ -122,6 +122,7 @@ BO_ 678 LKAS_HUD: 8 XXX SG_ LKAS_ICON_COLOR : 1|2@0+ (1,0) [0|3] "" XXX SG_ LKAS_LANE_LINES : 19|4@0+ (1,0) [0|1] "" XXX SG_ LKAS_ALERTS : 27|4@0+ (1,0) [0|1] "" XXX + SG_ CAR_MODEL : 15|8@0+ (1,0) [0|255] "" XXX BO_ 705 AUTO_PARK_BUTTON: 8 XXX SG_ AUTO_PARK_TOGGLE_2 : 8|1@0+ (1,0) [0|1] "" XXX diff --git a/chrysler_pacifica_2017_hybrid_private_fusion.dbc b/chrysler_pacifica_2017_hybrid_private_fusion.dbc index 0c5d01c79..07c37e1fa 100644 --- a/chrysler_pacifica_2017_hybrid_private_fusion.dbc +++ b/chrysler_pacifica_2017_hybrid_private_fusion.dbc @@ -44,15 +44,15 @@ BO_ 544 a_1: 8 XXX SG_ status2 : 39|6@0+ (1,0) [0|15] "" XXX SG_ sig2 : 33|10@0+ (1,0) [0|255] "" XXX SG_ zeros : 55|4@0+ (1,0) [0|15] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 576 b_1: 8 XXX - SG_ sig0 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ sig0 : 7|8@0+ (1,0) [0|255] "" XXX SG_ sig1 : 15|16@0+ (1,0) [0|65535] "" XXX SG_ sig2 : 31|16@0+ (1,0) [0|255] "" XXX SG_ zeros : 47|12@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 608 a_2: 8 XXX @@ -63,15 +63,15 @@ BO_ 608 a_2: 8 XXX SG_ status2 : 39|6@0+ (1,0) [0|15] "" XXX SG_ sig2 : 33|10@0+ (1,0) [0|255] "" XXX SG_ zeros : 55|4@0+ (1,0) [0|15] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 640 b_2: 8 XXX - SG_ sig0 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ sig0 : 7|8@0+ (1,0) [0|255] "" XXX SG_ sig1 : 15|16@0+ (1,0) [0|65535] "" XXX SG_ sig2 : 31|16@0+ (1,0) [0|255] "" XXX SG_ zeros : 47|12@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 644 a_3: 8 XXX @@ -82,15 +82,15 @@ BO_ 644 a_3: 8 XXX SG_ status2 : 39|6@0+ (1,0) [0|15] "" XXX SG_ sig2 : 33|10@0+ (1,0) [0|255] "" XXX SG_ zeros : 55|4@0+ (1,0) [0|15] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 648 b_3: 8 XXX - SG_ sig0 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ sig0 : 7|8@0+ (1,0) [0|255] "" XXX SG_ sig1 : 15|16@0+ (1,0) [0|65535] "" XXX SG_ sig2 : 31|16@0+ (1,0) [0|255] "" XXX SG_ zeros : 47|12@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 652 a_4: 8 XXX @@ -101,19 +101,19 @@ BO_ 652 a_4: 8 XXX SG_ status2 : 39|6@0+ (1,0) [0|15] "" XXX SG_ sig2 : 33|10@0+ (1,0) [0|255] "" XXX SG_ zeros : 55|4@0+ (1,0) [0|15] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 656 b_4: 8 XXX - SG_ sig0 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ sig0 : 7|8@0+ (1,0) [0|255] "" XXX SG_ sig1 : 15|16@0+ (1,0) [0|65535] "" XXX SG_ sig2 : 31|16@0+ (1,0) [0|255] "" XXX SG_ zeros : 47|12@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX BO_ 512 unknown_200: 8 XXX - SG_ COUNTER : 48|4@1+ (1,0) [0|15] "" XXX + SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX SG_ increasing : 31|16@0+ (1,0) [0|255] "" XXX SG_ zeros_0 : 3|12@0+ (1,0) [0|63] "" XXX diff --git a/generator/honda/_comma.dbc b/generator/honda/_comma.dbc index 0be227538..c96250bae 100644 --- a/generator/honda/_comma.dbc +++ b/generator/honda/_comma.dbc @@ -2,14 +2,14 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/generator/honda/honda_crv_hybrid_2019_can.dbc b/generator/honda/honda_crv_hybrid_2019_can.dbc new file mode 100644 index 000000000..2398526e0 --- /dev/null +++ b/generator/honda/honda_crv_hybrid_2019_can.dbc @@ -0,0 +1,48 @@ +CM_ "IMPORT _bosch_2018.dbc" + +BO_ 419 GEARBOX: 8 PCM + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + SG_ GEAR_SHIFTER : 29|6@0+ (1,0) [0|63] "" EON + SG_ GEAR : 7|8@0+ (1,0) [0|255] "" EON + +BO_ 432 STANDSTILL: 7 VSA + SG_ WHEELS_MOVING : 12|1@0+ (1,0) [0|1] "" EON + SG_ BRAKE_ERROR_1 : 11|1@0+ (1,0) [0|1] "" EON + SG_ BRAKE_ERROR_2 : 9|1@0+ (1,0) [0|1] "" EON + SG_ COUNTER : 53|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 51|4@0+ (1,0) [0|15] "" EON + +BO_ 927 RADAR_HUD: 8 RADAR + SG_ ZEROS_BOH : 7|10@0+ (1,0) [0|127] "" BDY + SG_ CMBS_OFF : 12|1@0+ (1,0) [0|1] "" BDY + SG_ ZEROS_BOH3 : 31|32@0+ (1,0) [0|4294967295] "" XXX + SG_ RESUME_INSTRUCTION : 21|1@0+ (1,0) [0|1] "" XXX + SG_ SET_TO_1 : 13|1@0+ (1,0) [0|1] "" BDY + SG_ ZEROS_BOH2 : 11|4@0+ (1,0) [0|1] "" XXX + SG_ APPLY_BRAKES_FOR_CANC : 23|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_ALERTS : 20|5@0+ (1,0) [0|1] "" BDY + SG_ SET_TO_0 : 22|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 1302 ODOMETER: 8 XXX + SG_ ODOMETER : 7|24@0+ (1,0) [0|16777215] "km" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + +CM_ SG_ 344 DISTANCE_COUNTER ""; +CM_ SG_ 450 EPB_STATE "3: On, 2: Disengaging, 1: Engaging, 0: Off"; +CM_ SG_ 479 CONTROL_ON "Set to 5 when car is being controlled"; +CM_ SG_ 479 RELATED_TO_GAS "bits 7, 3, and 1 set to 1 when gas not applied"; +CM_ SG_ 479 GAS_BRAKE "Signed value, negative when braking and positive when applying gas"; + +VAL_ 419 GEAR_SHIFTER 32 "D" 8 "R" 4 "P" ; +VAL_ 545 ECON_ON_2 0 "off" 3 "on" ; +VAL_ 662 CRUISE_BUTTONS 7 "tbd" 6 "tbd" 5 "tbd" 4 "accel_res" 3 "decel_set" 2 "cancel" 1 "main" 0 "none" ; +VAL_ 662 CRUISE_SETTING 3 "distance_adj" 2 "tbd" 1 "lkas_button" 0 "none" ; +VAL_ 806 CMBS_BUTTON 3 "pressed" 0 "released" ; +VAL_ 891 WIPERS 4 "High" 2 "Low" 0 "Off" ; +VAL_ 829 BEEP 3 "single_beep" 2 "triple_beep" 1 "repeated_beep" 0 "no_beep" ; + +CM_ "CHFFR_METRIC 330 STEER_ANGLE STEER_ANGLE 0.36 180; CHFFR_METRIC 380 ENGINE_RPM ENGINE_RPM 1 0; CHFFR_METRIC 804 ENGINE_TEMPERATURE ENGINE_TEMPERATURE 1 0"; diff --git a/generator/toyota/_comma.dbc b/generator/toyota/_comma.dbc index 64d5ebc8d..aa6a55f8b 100644 --- a/generator/toyota/_comma.dbc +++ b/generator/toyota/_comma.dbc @@ -14,12 +14,14 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/generator/toyota/lexus_is_hybrid_2017_pt.dbc b/generator/toyota/lexus_is_hybrid_2017_pt.dbc new file mode 100644 index 000000000..7fb743770 --- /dev/null +++ b/generator/toyota/lexus_is_hybrid_2017_pt.dbc @@ -0,0 +1,41 @@ +CM_ "IMPORT _toyota_2017.dbc" +CM_ "IMPORT _comma.dbc" + +BO_ 581 GAS_PEDAL: 5 XXX + SG_ GAS_PEDAL : 23|8@0+ (0.005,0) [0|1] "" XXX + +BO_ 550 BRAKE_MODULE: 8 XXX + SG_ BRAKE_PRESSURE : 0|9@0+ (1,0) [0|511] "" XXX + SG_ BRAKE_POSITION : 16|9@0+ (1,0) [0|511] "" XXX + SG_ BRAKE_PRESSED : 37|1@0+ (1,0) [0|1] "" XXX + +BO_ 608 STEER_TORQUE_SENSOR: 8 XXX + SG_ STEER_TORQUE_EPS : 47|16@0- (0.66,0) [-20000|20000] "" XXX + SG_ STEER_TORQUE_DRIVER : 15|16@0- (1,0) [-32768|32767] "" XXX + SG_ STEER_OVERRIDE : 0|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 610 EPS_STATUS: 5 EPS + SG_ IPAS_STATE : 3|4@0+ (1,0) [0|15] "" XXX + SG_ LKA_STATE : 31|7@0+ (1,0) [0|127] "" XXX + SG_ TYPE : 24|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 39|8@0+ (1,0) [0|255] "" XXX + +BO_ 956 GEAR_PACKET: 8 XXX + SG_ GEAR : 13|6@0+ (1,0) [0|63] "" XXX + +BO_ 1009 PCM_CRUISE_ISH: 8 XXX + SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX + SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" XXX + SG_ SET_SPEED : 23|8@0+ (1,0) [0|255] "mph" XXX + +BO_ 1599 LIGHT_STALK_ISH: 8 SCM + SG_ AUTO_HIGH_BEAM : 19|1@0+ (1,0) [0|1] "" XXX + +CM_ SG_ 550 BRAKE_PRESSURE "seems prop to pedal force"; +CM_ SG_ 550 BRAKE_POSITION "seems proportional to pedal displacement, unclear the max value of 0x1c8"; +CM_ SG_ 610 TYPE "seems 1 on Corolla, 0 on all others"; +CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to"; +VAL_ 956 GEAR 0 "D" 1 "S" 8 "N" 16 "R" 32 "P"; +VAL_ 610 IPAS_STATE 5 "override" 3 "enabled" 1 "disabled"; +VAL_ 610 LKA_STATE 25 "temporary_fault" 9 "temporary_fault2" 5 "active" 1 "standby"; diff --git a/generator/toyota/toyota_camry_hybrid_2018_pt.dbc b/generator/toyota/toyota_camry_hybrid_2018_pt.dbc index c21dc779e..efde86ba9 100644 --- a/generator/toyota/toyota_camry_hybrid_2018_pt.dbc +++ b/generator/toyota/toyota_camry_hybrid_2018_pt.dbc @@ -20,6 +20,7 @@ BO_ 608 STEER_TORQUE_SENSOR: 8 XXX SG_ STEER_TORQUE_DRIVER : 15|16@0- (1,0) [-32768|32767] "" XXX SG_ STEER_OVERRIDE : 0|1@0+ (1,0) [0|1] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + SG_ STEER_ANGLE : 31|16@0- (0.05527,0) [-500|500] "" XXX BO_ 610 EPS_STATUS: 8 EPS SG_ IPAS_STATE : 3|4@0+ (1,0) [0|15] "" XXX diff --git a/honda_civic_touring_2016_can_generated.dbc b/honda_civic_touring_2016_can_generated.dbc index 8a281e265..7cee7c73d 100644 --- a/honda_civic_touring_2016_can_generated.dbc +++ b/honda_civic_touring_2016_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/honda_crv_hybrid_2019_can_generated.dbc b/honda_crv_hybrid_2019_can_generated.dbc new file mode 100644 index 000000000..73e5a431c --- /dev/null +++ b/honda_crv_hybrid_2019_can_generated.dbc @@ -0,0 +1,316 @@ +CM_ "AUTOGENERATED FILE, DO NOT EDIT" + + +CM_ "Imported file _bosch_2018.dbc starts here" +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BU_: EBCM EON CAM RADAR PCM EPS VSA SCM BDY XXX EPB + +BO_ 228 STEERING_CONTROL: 5 EON + SG_ STEER_TORQUE_REQUEST : 23|1@0+ (1,0) [0|1] "" EPS + SG_ SET_ME_X00 : 22|7@0+ (1,0) [0|127] "" EPS + SG_ SET_ME_X00_2 : 31|8@0+ (1,0) [0|0] "" EPS + SG_ STEER_TORQUE : 7|16@0- (1,0) [-4096|4096] "" EPS + SG_ COUNTER : 37|2@0+ (1,0) [0|3] "" EPS + SG_ CHECKSUM : 35|4@0+ (1,0) [0|15] "" EPS + +BO_ 232 BRAKE_HOLD: 7 XXX + SG_ XMISSION_SPEED : 7|14@0- (1,0) [1|0] "" XXX + SG_ COMPUTER_BRAKE : 39|16@0+ (1,0) [0|0] "" XXX + SG_ COMPUTER_BRAKE_REQUEST : 29|1@0+ (1,0) [0|0] "" XXX + SG_ COUNTER : 53|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 51|4@0+ (1,0) [0|15] "" XXX + +BO_ 304 GAS_PEDAL_2: 8 PCM + SG_ ENGINE_TORQUE_ESTIMATE : 7|16@0- (1,0) [-1000|1000] "Nm" EON + SG_ ENGINE_TORQUE_REQUEST : 23|16@0- (1,0) [-1000|1000] "Nm" EON + SG_ CAR_GAS : 39|8@0+ (1,0) [0|255] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" EON + +BO_ 330 STEERING_SENSORS: 8 EPS + SG_ STEER_ANGLE : 7|16@0- (-0.1,0) [-500|500] "deg" EON + SG_ STEER_ANGLE_RATE : 23|16@0- (-1,0) [-3000|3000] "deg/s" EON + SG_ STEER_ANGLE_OFFSET : 39|8@0- (-0.1,0) [-128|127] "deg" EON + SG_ STEER_WHEEL_ANGLE : 47|16@0- (-0.1,0) [-500|500] "deg" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" EON + +BO_ 344 ENGINE_DATA: 8 PCM + SG_ XMISSION_SPEED : 7|16@0+ (0.01,0) [0|250] "kph" EON + SG_ ENGINE_RPM : 23|16@0+ (1,0) [0|15000] "rpm" EON + SG_ XMISSION_SPEED2 : 39|16@0+ (0.01,0) [0|250] "kph" EON + SG_ ODOMETER : 55|8@0+ (10,0) [0|2550] "m" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" EON + +BO_ 380 POWERTRAIN_DATA: 8 PCM + SG_ PEDAL_GAS : 7|8@0+ (1,0) [0|255] "" EON + SG_ ENGINE_RPM : 23|16@0+ (1,0) [0|15000] "rpm" EON + SG_ GAS_PRESSED : 39|1@0+ (1,0) [0|1] "" EON + SG_ ACC_STATUS : 38|1@0+ (1,0) [0|1] "" EON + SG_ BOH_17C : 37|5@0+ (1,0) [0|1] "" EON + SG_ BRAKE_SWITCH : 32|1@0+ (1,0) [0|1] "" EON + SG_ BOH2_17C : 47|10@0+ (1,0) [0|1] "" EON + SG_ BRAKE_PRESSED : 53|1@0+ (1,0) [0|1] "" EON + SG_ BOH3_17C : 52|5@0+ (1,0) [0|1] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" EON + +BO_ 399 STEER_STATUS: 7 EPS + SG_ STEER_TORQUE_SENSOR : 7|16@0- (1,0) [-31000|31000] "tbd" EON + SG_ STEER_TORQUE_MOTOR : 23|16@0- (1,0) [-31000|31000] "tbd" EON + SG_ STEER_STATUS : 39|4@0+ (1,0) [0|15] "" EON + SG_ STEER_CONTROL_ACTIVE : 35|1@0+ (1,0) [0|1] "" EON + SG_ COUNTER : 53|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 51|4@0+ (1,0) [0|15] "" EON + +BO_ 420 VSA_STATUS: 8 VSA + SG_ ESP_DISABLED : 28|1@0+ (1,0) [0|1] "" EON + SG_ USER_BRAKE : 7|16@0+ (0.015625,-1.609375) [0|1000] "" EON + SG_ BRAKE_HOLD_ACTIVE : 46|1@0+ (1,0) [0|1] "" EON + SG_ BRAKE_HOLD_ENABLED : 45|1@0+ (1,0) [0|1] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" EON + +BO_ 450 EPB_STATUS: 8 EPB + SG_ EPB_ACTIVE : 3|1@0+ (1,0) [0|1] "" EON + SG_ EPB_STATE : 29|2@0+ (1,0) [0|3] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 464 WHEEL_SPEEDS: 8 VSA + SG_ WHEEL_SPEED_FL : 7|15@0+ (0.01,0) [0|250] "kph" EON + SG_ WHEEL_SPEED_FR : 8|15@0+ (0.01,0) [0|250] "kph" EON + SG_ WHEEL_SPEED_RL : 25|15@0+ (0.01,0) [0|250] "kph" EON + SG_ WHEEL_SPEED_RR : 42|15@0+ (0.01,0) [0|250] "kph" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + +BO_ 479 ACC_CONTROL: 8 EON + SG_ SET_TO_1 : 20|5@0+ (1,0) [0|1] "" PCM + SG_ CONTROL_ON : 23|3@0+ (1,0) [0|5] "" XXX + SG_ RELATED_TO_GAS : 7|7@0+ (1,0) [0|69] "" XXX + SG_ GAS_COMMAND : 0|9@0+ (1,0) [0|1] "" PCM + SG_ GAS_BRAKE : 31|14@0- (1,0) [0|1] "" XXX + SG_ ZEROS_BOH : 33|18@0+ (1,0) [100|100] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 495 ACC_CONTROL_ON: 8 XXX + SG_ SET_TO_75 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ SET_TO_30 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ ZEROS_BOH : 23|8@0+ (1,0) [0|255] "" XXX + SG_ ZEROS_BOH2 : 47|16@0+ (1,0) [0|255] "" XXX + SG_ SET_TO_FF : 15|8@0+ (1,0) [0|255] "" XXX + SG_ SET_TO_3 : 6|7@0+ (1,0) [0|4095] "" XXX + SG_ CONTROL_ON : 7|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + +BO_ 545 XXX_16: 6 SCM + SG_ ECON_ON : 23|1@0+ (1,0) [0|1] "" XXX + SG_ DRIVE_MODE : 37|2@0+ (1,0) [0|3] "" XXX + SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" BDY + SG_ CHECKSUM : 43|4@0+ (1,0) [0|15] "" BDY + +BO_ 597 ROUGH_WHEEL_SPEED: 8 VSA + SG_ WHEEL_SPEED_FL : 7|8@0+ (1,0) [0|255] "mph" EON + SG_ WHEEL_SPEED_FR : 15|8@0+ (1,0) [0|255] "mph" EON + SG_ WHEEL_SPEED_RL : 23|8@0+ (1,0) [0|255] "mph" EON + SG_ WHEEL_SPEED_RR : 31|8@0+ (1,0) [0|255] "mph" EON + SG_ SET_TO_X55 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ SET_TO_X55_2 : 47|8@0+ (1,0) [0|255] "" EON + SG_ LONG_COUNTER : 55|8@0+ (1,0) [0|255] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + + BO_ 662 SCM_BUTTONS: 4 SCM + SG_ CRUISE_BUTTONS : 7|3@0+ (1,0) [0|7] "" EON + SG_ CRUISE_SETTING : 3|2@0+ (1,0) [0|3] "" EON + SG_ COUNTER : 29|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 27|4@0+ (1,0) [0|15] "" EON + +BO_ 773 SEATBELT_STATUS: 7 BDY + SG_ SEATBELT_DRIVER_LAMP : 7|1@0+ (1,0) [0|1] "" EON + SG_ SEATBELT_PASS_UNLATCHED : 10|1@0+ (1,0) [0|1] "" EON + SG_ SEATBELT_PASS_LATCHED : 11|1@0+ (1,0) [0|1] "" EON + SG_ SEATBELT_DRIVER_UNLATCHED : 12|1@0+ (1,0) [0|1] "" EON + SG_ SEATBELT_DRIVER_LATCHED : 13|1@0+ (1,0) [0|1] "" EON + SG_ PASS_AIRBAG_OFF : 14|1@0+ (1,0) [0|1] "" EON + SG_ PASS_AIRBAG_ON : 15|1@0+ (1,0) [0|1] "" EON + SG_ COUNTER : 53|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 51|4@0+ (1,0) [0|3] "" EON + +BO_ 777 CAR_SPEED: 8 PCM + SG_ ROUGH_CAR_SPEED : 23|8@0+ (1,0) [0|255] "" XXX + SG_ CAR_SPEED : 7|16@0+ (1,0) [0|65535] "" XXX + SG_ ROUGH_CAR_SPEED_3 : 39|16@0+ (1,0) [0|65535] "" XXX + SG_ ROUGH_CAR_SPEED_2 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ LOCK_STATUS : 55|2@0+ (1,0) [0|255] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 780 ACC_HUD: 8 ADAS + SG_ CRUISE_SPEED : 31|8@0+ (1,0) [0|255] "" BDY + SG_ DTC_MODE : 39|1@0+ (1,0) [0|1] "" BDY + SG_ BOH : 38|1@0+ (1,0) [0|1] "" BDY + SG_ FCM_PROBLEM : 34|1@0+ (1,0) [0|1] "" BDY + SG_ RADAR_OBSTRUCTED : 33|1@0+ (1,0) [0|1] "" BDY + SG_ ENABLE_MINI_CAR : 32|1@0+ (1,0) [0|1] "" BDY + SG_ BOH_3 : 43|1@0+ (1,0) [0|3] "" BDY + SG_ BOH_4 : 42|1@0+ (1,0) [0|3] "" BDY + SG_ BOH_5 : 41|1@0+ (1,0) [0|3] "" BDY + SG_ CRUISE_CONTROL_LABEL : 40|1@0+ (1,0) [0|3] "" BDY + SG_ ZEROS_BOH : 7|24@0+ (0.002759506,0) [0|100] "m/s" BDY + SG_ FCM_OFF : 35|1@0+ (1,0) [0|1] "" BDY + SG_ SET_TO_1 : 36|1@0+ (1,0) [0|1] "" XXX + SG_ HUD_DISTANCE : 47|2@0+ (1,0) [0|3] "" BDY + SG_ HUD_LEAD : 45|2@0+ (1,0) [0|3] "" BDY + SG_ ACC_PROBLEM : 37|1@0+ (1,0) [0|1] "" BDY + SG_ ACC_ON : 52|1@0+ (1,0) [0|1] "" XXX + SG_ BOH_6 : 51|4@0+ (1,0) [0|15] "" XXX + SG_ SET_TO_X3 : 55|2@0+ (1,0) [0|3] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 804 CRUISE: 8 PCM + SG_ TRIP_FUEL_CONSUMED : 23|16@0+ (1,0) [0|255] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" EON + +BO_ 806 SCM_FEEDBACK: 8 SCM + SG_ DRIVERS_DOOR_OPEN : 17|1@0+ (1,0) [0|1] "" XXX + SG_ MAIN_ON : 28|1@0+ (1,0) [0|1] "" EON + SG_ RIGHT_BLINKER : 27|1@0+ (1,0) [0|1] "" EON + SG_ LEFT_BLINKER : 26|1@0+ (1,0) [0|1] "" EON + SG_ CMBS_STATES : 22|2@0+ (1,0) [0|3] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 829 LKAS_HUD: 5 ADAS + SG_ CAM_TEMP_HIGH : 7|1@0+ (1,0) [0|255] "" BDY + SG_ SET_ME_X41 : 6|7@0+ (1,0) [0|127] "" BDY + SG_ BOH : 6|7@0+ (1,0) [0|127] "" BDY + SG_ DASHED_LANES : 14|1@0+ (1,0) [0|1] "" BDY + SG_ DTC : 13|1@0+ (1,0) [0|1] "" BDY + SG_ LKAS_PROBLEM : 12|1@0+ (1,0) [0|1] "" BDY + SG_ LKAS_OFF : 11|1@0+ (1,0) [0|1] "" BDY + SG_ SOLID_LANES : 10|1@0+ (1,0) [0|1] "" BDY + SG_ LDW_RIGHT : 9|1@0+ (1,0) [0|1] "" BDY + SG_ STEERING_REQUIRED : 8|1@0+ (1,0) [0|1] "" BDY + SG_ BOH : 23|2@0+ (1,0) [0|4] "" BDY + SG_ LDW_PROBLEM : 21|1@0+ (1,0) [0|1] "" BDY + SG_ BEEP : 17|2@0+ (1,0) [0|1] "" BDY + SG_ LDW_ON : 28|1@0+ (1,0) [0|1] "" BDY + SG_ LDW_OFF : 27|1@0+ (1,0) [0|1] "" BDY + SG_ CLEAN_WINDSHIELD : 26|1@0+ (1,0) [0|1] "" BDY + SG_ SET_ME_X48 : 31|8@0+ (1,0) [0|255] "" BDY + SG_ COUNTER : 37|2@0+ (1,0) [0|3] "" BDY + SG_ CHECKSUM : 35|4@0+ (1,0) [0|15] "" BDY + +BO_ 862 CAMERA_MESSAGES: 8 CAM + SG_ ZEROS_BOH : 7|50@0+ (1,0) [0|127] "" BDY + SG_ AUTO_HIGHBEAMS_ACTIVE : 53|1@0+ (1,0) [0|1] "" XXX + SG_ HIGHBEAMS_ON : 52|1@0+ (1,0) [0|1] "" XXX + SG_ ZEROS_BOH_2 : 51|4@0+ (1,0) [0|15] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 884 STALK_STATUS: 8 XXX + SG_ AUTO_HEADLIGHTS : 46|1@0+ (1,0) [0|1] "" EON + SG_ HIGH_BEAM_HOLD : 47|1@0+ (1,0) [0|1] "" EON + SG_ HIGH_BEAM_FLASH : 45|1@0+ (1,0) [0|1] "" EON + SG_ HEADLIGHTS_ON : 54|1@0+ (1,0) [0|1] "" EON + SG_ WIPER_SWITCH : 53|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + +BO_ 891 STALK_STATUS_2: 8 XXX + SG_ WIPERS : 17|2@0+ (1,0) [0|3] "" EON + SG_ LOW_BEAMS : 35|1@0+ (1,0) [0|1] "" XXX + SG_ HIGH_BEAMS : 34|1@0+ (1,0) [0|1] "" XXX + SG_ PARK_LIGHTS : 36|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + +VAL_ 399 STEER_STATUS 6 "tmp_fault" 5 "fault_1" 4 "no_torque_alert_2" 3 "low_speed_lockout" 2 "no_torque_alert_1" 0 "normal" ; +CM_ "honda_crv_hybrid_2019_can.dbc starts here" + + +BO_ 419 GEARBOX: 8 PCM + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + SG_ GEAR_SHIFTER : 29|6@0+ (1,0) [0|63] "" EON + SG_ GEAR : 7|8@0+ (1,0) [0|255] "" EON + +BO_ 432 STANDSTILL: 7 VSA + SG_ WHEELS_MOVING : 12|1@0+ (1,0) [0|1] "" EON + SG_ BRAKE_ERROR_1 : 11|1@0+ (1,0) [0|1] "" EON + SG_ BRAKE_ERROR_2 : 9|1@0+ (1,0) [0|1] "" EON + SG_ COUNTER : 53|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 51|4@0+ (1,0) [0|15] "" EON + +BO_ 927 RADAR_HUD: 8 RADAR + SG_ ZEROS_BOH : 7|10@0+ (1,0) [0|127] "" BDY + SG_ CMBS_OFF : 12|1@0+ (1,0) [0|1] "" BDY + SG_ ZEROS_BOH3 : 31|32@0+ (1,0) [0|4294967295] "" XXX + SG_ RESUME_INSTRUCTION : 21|1@0+ (1,0) [0|1] "" XXX + SG_ SET_TO_1 : 13|1@0+ (1,0) [0|1] "" BDY + SG_ ZEROS_BOH2 : 11|4@0+ (1,0) [0|1] "" XXX + SG_ APPLY_BRAKES_FOR_CANC : 23|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_ALERTS : 20|5@0+ (1,0) [0|1] "" BDY + SG_ SET_TO_0 : 22|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX + SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 1302 ODOMETER: 8 XXX + SG_ ODOMETER : 7|24@0+ (1,0) [0|16777215] "km" EON + SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" EON + SG_ CHECKSUM : 59|4@0+ (1,0) [0|3] "" EON + +CM_ SG_ 344 DISTANCE_COUNTER ""; +CM_ SG_ 450 EPB_STATE "3: On, 2: Disengaging, 1: Engaging, 0: Off"; +CM_ SG_ 479 CONTROL_ON "Set to 5 when car is being controlled"; +CM_ SG_ 479 RELATED_TO_GAS "bits 7, 3, and 1 set to 1 when gas not applied"; +CM_ SG_ 479 GAS_BRAKE "Signed value, negative when braking and positive when applying gas"; + +VAL_ 419 GEAR_SHIFTER 32 "D" 8 "R" 4 "P" ; +VAL_ 545 ECON_ON_2 0 "off" 3 "on" ; +VAL_ 662 CRUISE_BUTTONS 7 "tbd" 6 "tbd" 5 "tbd" 4 "accel_res" 3 "decel_set" 2 "cancel" 1 "main" 0 "none" ; +VAL_ 662 CRUISE_SETTING 3 "distance_adj" 2 "tbd" 1 "lkas_button" 0 "none" ; +VAL_ 806 CMBS_BUTTON 3 "pressed" 0 "released" ; +VAL_ 891 WIPERS 4 "High" 2 "Low" 0 "Off" ; +VAL_ 829 BEEP 3 "single_beep" 2 "triple_beep" 1 "repeated_beep" 0 "no_beep" ; + +CM_ "CHFFR_METRIC 330 STEER_ANGLE STEER_ANGLE 0.36 180; CHFFR_METRIC 380 ENGINE_RPM ENGINE_RPM 1 0; CHFFR_METRIC 804 ENGINE_TEMPERATURE ENGINE_TEMPERATURE 1 0"; diff --git a/honda_crv_touring_2016_can_generated.dbc b/honda_crv_touring_2016_can_generated.dbc index dd924bf6a..aaee239b9 100644 --- a/honda_crv_touring_2016_can_generated.dbc +++ b/honda_crv_touring_2016_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/honda_fit_ex_2018_can_generated.dbc b/honda_fit_ex_2018_can_generated.dbc index 2cd5a1ea3..62be687b1 100644 --- a/honda_fit_ex_2018_can_generated.dbc +++ b/honda_fit_ex_2018_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/honda_odyssey_exl_2018_generated.dbc b/honda_odyssey_exl_2018_generated.dbc index 090c9688e..6f00df2d4 100644 --- a/honda_odyssey_exl_2018_generated.dbc +++ b/honda_odyssey_exl_2018_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/honda_pilot_touring_2017_can_generated.dbc b/honda_pilot_touring_2017_can_generated.dbc index a14ad60e5..310de029b 100644 --- a/honda_pilot_touring_2017_can_generated.dbc +++ b/honda_pilot_touring_2017_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/honda_ridgeline_black_edition_2017_can_generated.dbc b/honda_ridgeline_black_edition_2017_can_generated.dbc index a5ce2d23d..04e1c78a2 100644 --- a/honda_ridgeline_black_edition_2017_can_generated.dbc +++ b/honda_ridgeline_black_edition_2017_can_generated.dbc @@ -6,15 +6,15 @@ BO_ 512 GAS_COMMAND: 6 EON SG_ GAS_COMMAND : 7|16@0+ (0.253984064,-83.3) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" INTERCEPTOR - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.253984064,-83.3) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.126992032,-83.3) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ COUNTER : 45|2@0+ (1,0) [0|3] "" EON - SG_ CHECKSUM : 43|4@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/lexus_is_2018_pt_generated.dbc b/lexus_is_2018_pt_generated.dbc index f5f52c02a..a207b26d6 100644 --- a/lexus_is_2018_pt_generated.dbc +++ b/lexus_is_2018_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/lexus_is_hybrid_2017_pt_generated.dbc b/lexus_is_hybrid_2017_pt_generated.dbc new file mode 100644 index 000000000..e94824670 --- /dev/null +++ b/lexus_is_hybrid_2017_pt_generated.dbc @@ -0,0 +1,331 @@ +CM_ "AUTOGENERATED FILE, DO NOT EDIT" + + +CM_ "Imported file _comma.dbc starts here" +BO_ 359 STEERING_IPAS_COMMA: 8 IPAS + SG_ STATE : 7|4@0+ (1,0) [0|15] "" XXX + SG_ ANGLE : 3|12@0- (1.5,0) [-510|510] "deg" XXX + SG_ SET_ME_X10 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ SET_ME_X00 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ DIRECTION_CMD : 38|2@0+ (1,0) [0|3] "" XXX + SG_ SET_ME_X40 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ SET_ME_X00 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the Park Assist ECU is connected (Panda spoofs 614 with 359 on connector J70). Note that addresses 0x266 and 0x167 are checksum-invariant"; + + BO_ 512 GAS_COMMAND: 6 EON + SG_ GAS_COMMAND : 7|16@0+ (0.0244140625,0) [0|1] "" INTERCEPTOR + SG_ GAS_COMMAND2 : 23|16@0+ (0.0244140625,-11.962890625) [0|1] "" INTERCEPTOR + SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR + SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + + BO_ 513 GAS_SENSOR: 6 INTERCEPTOR + SG_ INTERCEPTOR_GAS : 7|16@0+ (0.0244140625,0) [0|1] "" EON + SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.0244140625,-11.962890625) [0|1] "" EON + SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON + SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + + VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; + + +CM_ "Imported file _toyota_2017.dbc starts here" +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: XXX DSU HCU EPS IPAS + +BO_ 36 KINEMATICS: 8 XXX + SG_ ACCEL_Y : 33|10@0+ (1,-512) [0|65535] "" XXX + SG_ YAW_RATE : 1|10@0+ (1,-512) [0|65535] "" XXX + SG_ STEERING_TORQUE : 17|10@0+ (1,-512) [0|65535] "" XXX + +BO_ 37 STEER_ANGLE_SENSOR: 8 XXX + SG_ STEER_ANGLE : 3|12@0- (1.5,0) [-500|500] "deg" XXX + SG_ STEER_FRACTION : 39|4@0- (0.1,0) [-0.7|0.7] "deg" XXX + SG_ STEER_RATE : 35|12@0- (1,0) [-2000|2000] "deg/s" XXX + +BO_ 166 BRAKE: 8 XXX + SG_ BRAKE_AMOUNT : 7|8@0+ (1,0) [0|255] "" XXX + SG_ BRAKE_PEDAL : 23|8@0+ (1,0) [0|255] "" XXX + +BO_ 170 WHEEL_SPEEDS: 8 XXX + SG_ WHEEL_SPEED_FR : 7|16@0+ (0.01,-67.67) [0|250] "kph" XXX + SG_ WHEEL_SPEED_FL : 23|16@0+ (0.01,-67.67) [0|250] "kph" XXX + SG_ WHEEL_SPEED_RR : 39|16@0+ (0.01,-67.67) [0|250] "kph" XXX + SG_ WHEEL_SPEED_RL : 55|16@0+ (0.01,-67.67) [0|250] "kph" XXX + +BO_ 180 SPEED: 8 XXX + SG_ ENCODER : 39|8@0+ (1,0) [0|255] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + SG_ SPEED : 47|16@0+ (0.01,0) [0|250] "kph" XXX + +BO_ 466 PCM_CRUISE: 8 XXX + SG_ GAS_RELEASED : 4|1@0+ (1,0) [0|1] "" XXX + SG_ CRUISE_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX + SG_ STANDSTILL_ON : 12|1@0+ (1,0) [0|1] "" XXX + SG_ ACCEL_NET : 23|16@0- (0.001,0) [-20|20] "m/s2" XXX + SG_ CRUISE_STATE : 55|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 467 PCM_CRUISE_2: 8 XXX + SG_ MAIN_ON : 15|1@0+ (1,0) [0|1] "" XXX + SG_ LOW_SPEED_LOCKOUT : 14|2@0+ (1,0) [0|3] "kph" XXX + SG_ SET_SPEED : 23|8@0+ (1,0) [0|255] "kph" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 552 ACCELEROMETER: 8 XXX + SG_ ACCEL_Z : 22|15@0- (1,0) [0|32767] "" XXX + SG_ ACCEL_X : 6|15@0- (0.001,0) [-20|20] "m/s2" XXX + +BO_ 560 BRAKE_MODULE2: 7 XXX + SG_ BRAKE_PRESSED : 26|1@0+ (1,0) [0|1] "" XXX + +BO_ 614 STEERING_IPAS: 8 IPAS + SG_ STATE : 7|4@0+ (1,0) [0|15] "" XXX + SG_ ANGLE : 3|12@0- (1.5,0) [-510|510] "deg" XXX + SG_ SET_ME_X10 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ SET_ME_X00 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ DIRECTION_CMD : 38|2@0+ (1,0) [0|3] "" XXX + SG_ SET_ME_X40 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ SET_ME_X00 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 643 PRE_COLLISION: 8 XXX + +BO_ 740 STEERING_LKA: 5 XXX + SG_ LKA_STATE : 31|8@0+ (1,0) [0|255] "" XXX + SG_ STEER_REQUEST : 0|1@0+ (1,0) [0|1] "" XXX + SG_ COUNTER : 6|6@0+ (1,0) [0|63] "" XXX + SG_ SET_ME_1 : 7|1@0+ (1,0) [0|1] "" XXX + SG_ STEER_TORQUE_CMD : 15|16@0- (1,0) [0|65535] "" XXX + SG_ CHECKSUM : 39|8@0+ (1,0) [0|255] "" XXX + +BO_ 742 LEAD_INFO: 8 DSU + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" HCU + SG_ LEAD_REL_SPEED : 23|12@0- (0.025,0) [-100|100] "m/s" HCU + SG_ LEAD_LONG_DIST : 7|13@0+ (0.05,0) [0|300] "m" HCU + +BO_ 835 ACC_CONTROL: 8 DSU + SG_ ACCEL_CMD : 7|16@0- (0.001,0) [-20|20] "m/s2" HCU + SG_ SET_ME_X63 : 23|8@0+ (1,0) [0|255] "" HCU + SG_ SET_ME_1 : 30|1@0+ (1,0) [0|1] "" HCU + SG_ RELEASE_STANDSTILL : 31|1@0+ (1,0) [0|1] "" HCU + SG_ CANCEL_REQ : 24|1@0+ (1,0) [0|1] "" HCU + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 921 PCM_CRUISE_SM: 8 XXX + SG_ MAIN_ON : 4|1@0+ (1,0) [0|1] "" XXX + SG_ CRUISE_CONTROL_STATE : 11|4@0+ (1,0) [0|15] "" XXX + SG_ DISTANCE_LINES : 14|2@0+ (1,0) [0|3] "" XXX + SG_ UI_SET_SPEED : 31|8@0+ (1,0) [0|255] "" XXX + +BO_ 951 ESP_CONTROL: 8 ESP + SG_ TC_DISABLED : 13|1@0+ (1,0) [0|1] "" XXX + SG_ BRAKE_LIGHTS_ACC : 18|1@0+ (1,0) [0|1] "" XXX + +BO_ 1041 ACC_HUD: 8 DSU + SG_ FCW : 4|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X20 : 15|8@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X10 : 39|8@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X80 : 55|8@0+ (1,0) [0|1] "" XXX + +BO_ 1042 LKAS_HUD: 8 XXX + SG_ BARRIERS : 1|2@0+ (1,0) [0|3] "" XXX + SG_ RIGHT_LINE : 3|2@0+ (1,0) [0|3] "" XXX + SG_ LEFT_LINE : 5|2@0+ (1,0) [0|3] "" XXX + SG_ SET_ME_X01 : 7|2@0+ (1,0) [0|3] "" XXX + SG_ SET_ME_X01_2 : 11|2@0+ (1,0) [0|3] "" XXX + SG_ LDA_ALERT : 9|2@0+ (1,0) [0|3] "" XXX + SG_ TWO_BEEPS : 12|1@0+ (1,0) [0|1] "" XXX + SG_ ADJUSTING_CAMERA : 13|1@0+ (1,0) [0|1] "" XXX + SG_ LDA_MALFUNCTION : 15|1@0+ (1,0) [0|1] "" XXX + SG_ REPEATED_BEEPS : 32|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X0C : 23|8@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X2C : 47|8@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X38 : 55|8@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_X02 : 63|8@0+ (1,0) [0|1] "" XXX + +BO_ 1553 UI_SEETING: 8 XXX + SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX + +BO_ 1556 STEERING_LEVERS: 8 XXX + SG_ TURN_SIGNALS : 29|2@0+ (1,0) [0|3] "" XXX + +BO_ 1568 SEATS_DOORS: 8 XXX + SG_ SEATBELT_DRIVER_UNLATCHED : 62|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_FL : 45|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_RL : 42|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_RR : 43|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_FR : 44|1@0+ (1,0) [0|1] "" XXX + +BO_ 1570 LIGHT_STALK: 8 SCM + SG_ AUTO_HIGH_BEAM : 37|1@0+ (1,0) [0|1] "" XXX + +BO_ 1161 RSA1: 8 FCM + SG_ TSGN1 : 7|8@0+ (1,0) [0|0] "" XXX + SG_ TSGNGRY1 : 12|3@0+ (1,0) [0|0] "" XXX + SG_ TSGNHLT1 : 9|2@0+ (1,0) [0|0] "" XXX + SG_ SPDVAL1 : 23|8@0+ (1,0) [0|0] "kph" XXX + SG_ SPLSGN1 : 31|4@0+ (1,0) [0|0] "" XXX + SG_ SPLSGN2 : 27|4@0+ (1,0) [0|0] "" XXX + SG_ TSGN2 : 39|8@0+ (1,0) [0|0] "" XXX + SG_ TSGNGRY2 : 44|3@0+ (1,0) [0|0] "" XXX + SG_ TSGNHLT2 : 41|2@0+ (1,0) [0|0] "" XXX + SG_ SPDVAL2 : 55|8@0+ (1,0) [0|0] "" XXX + SG_ BZRRQ_P : 63|2@0+ (1,0) [0|0] "" XXX + SG_ BZRRQ_A : 61|2@0+ (1,0) [0|0] "" XXX + SG_ SYNCID1 : 59|4@0+ (1,0) [0|0] "" XXX + +BO_ 1162 RSA2: 8 FCM + SG_ TSGN3 : 7|8@0+ (1,0) [0|0] "" XXX + SG_ TSGNGRY3 : 12|3@0+ (1,0) [0|0] "" XXX + SG_ TSGNHLT3 : 9|2@0+ (1,0) [0|0] "" XXX + SG_ SPLSGN3 : 31|4@0+ (1,0) [0|0] "" XXX + SG_ SPLSGN4 : 27|4@0+ (1,0) [0|0] "" XXX + SG_ TSGN4 : 39|8@0+ (1,0) [0|0] "" XXX + SG_ TSGNGRY4 : 44|3@0+ (1,0) [0|0] "" XXX + SG_ TSGNHLT4 : 41|2@0+ (1,0) [0|0] "" XXX + SG_ DPSGNREQ : 54|1@0+ (1,0) [0|0] "" XXX + SG_ SGNNUMP : 53|3@0+ (1,0) [0|0] "" XXX + SG_ SGNNUMA : 50|3@0+ (1,0) [0|0] "" XXX + SG_ SPDUNT : 63|2@0+ (1,0) [0|0] "" XXX + SG_ TSRWMSG : 61|2@0+ (1,0) [0|0] "" XXX + SG_ SYNCID2 : 59|4@0+ (1,0) [0|0] "" XXX + +BO_ 1163 RSA3: 8 FCM + SG_ TSREQPD : 7|1@0+ (1,0) [0|0] "" XXX + SG_ TSRMSW : 6|1@0+ (1,0) [0|0] "" XXX + SG_ OTSGNNTM : 5|2@0+ (1,0) [0|0] "" XXX + SG_ NTLVLSPD : 3|2@0+ (1,0) [0|0] "" XXX + SG_ OVSPNTM : 1|2@0+ (1,0) [0|0] "" XXX + SG_ OVSPVALL : 11|4@0+ (1,-5) [0|0] "" XXX + SG_ OVSPVALM : 19|4@0+ (1,-5) [0|0] "" XXX + SG_ OVSPVALH : 27|4@0+ (1,-5) [0|0] "" XXX + SG_ TSRSPU : 33|2@0+ (1,0) [0|0] "" XXX + +CM_ SG_ 36 ACCEL_Y "unit is tbd"; +CM_ SG_ 36 YAW_RATE "verify"; +CM_ SG_ 36 STEERING_TORQUE "does not seem the steer torque, tbd"; +CM_ SG_ 37 STEER_FRACTION "1/15th of the signal STEER_ANGLE, which is 1.5 deg; note that 0x8 is never set"; +CM_ SG_ 37 STEER_RATE "factor is tbd"; +CM_ SG_ 466 ACCEL_NET "net acceleration produced by the system, given ACCEL_CMD, road grade and other factors"; +CM_ SG_ 467 SET_SPEED "43 kph are shown as 28mph, so conversion isnt perfect"; +CM_ SG_ 467 LOW_SPEED_LOCKOUT "in low speed lockout, system would always disengage below 28mph"; +CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?"; +CM_ SG_ 608 STEER_TORQUE_DRIVER "driver torque"; +CM_ SG_ 608 STEER_OVERRIDE "set when driver torque exceeds a certain value"; +CM_ SG_ 614 ANGLE "set to measured angle when ipas control isn't active"; +CM_ SG_ 921 UI_SET_SPEED "set speed shown in UI with user set unit"; +CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel"; +CM_ SG_ 1042 SET_ME_1 "unclear what this is, but it's always 1 in drive traces"; +CM_ SG_ 1042 REPEATED_BEEPS "recommended for fcw and other important alerts"; +CM_ SG_ 1161 SPDVAL1 "Numbers 0-199 is displayed, 200-254 displays circle without number and 255 is for no limit."; +CM_ SG_ 1161 SYNCID1 "counter from 1 to f at 1 Hz"; +CM_ SG_ 1161 SPDVAL2 "conditional speed value 70" +CM_ SG_ 1162 SGNNUMP "1 if SPDVAL1 is set, otherwise 0"; +CM_ SG_ 1162 SYNCID2 "counter from 1 to f at 1 Hz"; +CM_ SG_ 1163 TSREQPD "always 1"; +CM_ SG_ 1163 TSRMSW "always 1"; +CM_ SG_ 1163 OTSGNNTM "always 3"; +CM_ SG_ 1163 NTLVLSPD "always 3"; +CM_ SG_ 1163 OVSPNTM "always 3"; +CM_ SG_ 1163 OVSPVALL "-5 at start then 2 after 2 seconds"; +CM_ SG_ 1163 OVSPVALM "-5 at start then 5 after 2 seconds"; +CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds"; +CM_ SG_ 1163 TSRSPU "always 1"; + +VAL_ 466 CRUISE_STATE 8 "active" 7 "standstill" 1 "off"; +VAL_ 467 LOW_SPEED_LOCKOUT 2 "low speed locked" 1 "ok"; +VAL_ 614 STATE 3 "enabled" 1 "disabled"; +VAL_ 614 DIRECTION_CMD 3 "right" 2 "center" 1 "left"; +VAL_ 921 CRUISE_CONTROL_STATE 2 "disabled" 11 "hold" 10 "hold_waiting_user_cmd" 6 "enabled" 5 "faulted"; +VAL_ 1042 LDA_ALERT 3 "hold with continuous beep" 2 "LDA unavailable" 1 "hold" 0 "none"; +VAL_ 1042 BARRIERS 3 "both" 2 "right" 1 "left" 0 "none"; +VAL_ 1042 RIGHT_LINE 3 "orange" 2 "double" 1 "solid" 0 "none"; +VAL_ 1042 LEFT_LINE 3 "orange" 2 "double" 1 "solid" 0 "none"; +VAL_ 1553 UNITS 1 "km" 2 "miles"; +VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left"; +VAL_ 1161 TSGN1 1 "speed sign" 0 "none"; +VAL_ 1161 TSGN2 1 "speed sign" 0 "none"; +VAL_ 1161 SPLSGN2 15 "conditional blank" 5 "rain" 0 "none"; +VAL_ 1162 TSGN3 0 "none" 1 "speed sign" 2 "0 unlimited" 7 "unlimited" 16 "highway" 17 "no highway" 18 "motorway" 19 "no motorway" 20 "in city" 21 "outside city" 22 "pedestrian area" 23 "no pedestrian area" 65 "no overtaking left" 66 "no overtaking right" 67 "overtaking allowed again" 65 "no overtake" 129 "no entry"; +VAL_ 1162 SPLSGN3 15 "conditional blank" 5 "rain" 0 "none"; + + +CM_ "CHFFR_METRIC 37 STEER_ANGLE STEER_ANGLE 0.36 180"; + +CM_ "lexus_is_hybrid_2017_pt.dbc starts here" + + + +BO_ 581 GAS_PEDAL: 5 XXX + SG_ GAS_PEDAL : 23|8@0+ (0.005,0) [0|1] "" XXX + +BO_ 550 BRAKE_MODULE: 8 XXX + SG_ BRAKE_PRESSURE : 0|9@0+ (1,0) [0|511] "" XXX + SG_ BRAKE_POSITION : 16|9@0+ (1,0) [0|511] "" XXX + SG_ BRAKE_PRESSED : 37|1@0+ (1,0) [0|1] "" XXX + +BO_ 608 STEER_TORQUE_SENSOR: 8 XXX + SG_ STEER_TORQUE_EPS : 47|16@0- (0.66,0) [-20000|20000] "" XXX + SG_ STEER_TORQUE_DRIVER : 15|16@0- (1,0) [-32768|32767] "" XXX + SG_ STEER_OVERRIDE : 0|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 610 EPS_STATUS: 5 EPS + SG_ IPAS_STATE : 3|4@0+ (1,0) [0|15] "" XXX + SG_ LKA_STATE : 31|7@0+ (1,0) [0|127] "" XXX + SG_ TYPE : 24|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 39|8@0+ (1,0) [0|255] "" XXX + +BO_ 956 GEAR_PACKET: 8 XXX + SG_ GEAR : 13|6@0+ (1,0) [0|63] "" XXX + +BO_ 1009 PCM_CRUISE_ISH: 8 XXX + SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX + SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" XXX + SG_ SET_SPEED : 23|8@0+ (1,0) [0|255] "mph" XXX + +BO_ 1599 LIGHT_STALK_ISH: 8 SCM + SG_ AUTO_HIGH_BEAM : 19|1@0+ (1,0) [0|1] "" XXX + +CM_ SG_ 550 BRAKE_PRESSURE "seems prop to pedal force"; +CM_ SG_ 550 BRAKE_POSITION "seems proportional to pedal displacement, unclear the max value of 0x1c8"; +CM_ SG_ 610 TYPE "seems 1 on Corolla, 0 on all others"; +CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to"; +VAL_ 956 GEAR 0 "D" 1 "S" 8 "N" 16 "R" 32 "P"; +VAL_ 610 IPAS_STATE 5 "override" 3 "enabled" 1 "disabled"; +VAL_ 610 LKA_STATE 25 "temporary_fault" 9 "temporary_fault2" 5 "active" 1 "standby"; diff --git a/lexus_rx_hybrid_2017_pt_generated.dbc b/lexus_rx_hybrid_2017_pt_generated.dbc index de73a6130..acbd9bb19 100644 --- a/lexus_rx_hybrid_2017_pt_generated.dbc +++ b/lexus_rx_hybrid_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/mazda_cx5_gt_2017.dbc b/mazda_cx5_gt_2017.dbc new file mode 100644 index 000000000..d0b84c22a --- /dev/null +++ b/mazda_cx5_gt_2017.dbc @@ -0,0 +1,694 @@ +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: XXX + + +BO_ 117 STEER_RELATED: 8 XXX + SG_ CTR : 7|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 48|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 49|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 55|1@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_4 : 54|4@0+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_5 : 50|1@0+ (1,0) [0|1] "" XXX + SG_ STEER_TORQUE : 19|12@0+ (1,0) [0|255] "" XXX + SG_ STEER_ANGLE_2 : 39|16@0+ (1,0) [0|131071] "" XXX + +BO_ 118 RPM_RELATED: 8 XXX + SG_ CTR : 7|8@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_2 : 19|12@0+ (1,0) [0|4095] "" XXX + +BO_ 514 ENGINE_DATA: 8 XXX + SG_ RPM : 7|16@0+ (1,0) [0|65535] "" XXX + SG_ CHKSUM : 56|8@1+ (1,0) [0|127] "" XXX + SG_ SPEED : 23|16@0+ (0.01,0) [0|32767] "KPH" XXX + SG_ PEDAL_GAS : 39|12@0+ (1,0) [0|255] "" XXX + +BO_ 357 PEDALS: 8 XXX + SG_ NEW_SIGNAL_6 : 31|4@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 8|3@1+ (1,0) [0|7] "" XXX + SG_ ACC_ACTIVE : 3|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_OFF : 2|1@1+ (1,0) [0|15] "" XXX + SG_ CHKSUM : 63|8@0+ (1,0) [0|15] "" XXX + SG_ STANDSTILL : 26|1@0+ (1,0) [0|16777215] "" XXX + SG_ NEW_SIGNAL_3 : 23|8@0+ (1,0) [0|3] "" XXX + SG_ GEAR : 48|5@1+ (1,0) [0|255] "" XXX + SG_ BRAKE_ON : 4|1@0+ (1,0) [0|1] "" XXX + SG_ NO_BRAKE : 6|1@0+ (1,0) [0|7] "" XXX + SG_ BRAKE_ON_2 : 7|1@1+ (1,0) [0|255] "" XXX + SG_ NO_BRAKE_2 : 15|1@0+ (1,0) [0|7] "" XXX + +BO_ 533 WHEEL_SPEEDS: 8 XXX + SG_ FL : 7|16@0+ (0.01,-100) [0|16383] "" XXX + SG_ RL : 39|16@0+ (0.01,-100) [0|15] "" XXX + SG_ RR : 55|16@0+ (0.01,-100) [0|65535] "" XXX + SG_ FR : 23|16@0+ (0.01,-100) [0|65535] "" XXX + +BO_ 134 STEER2: 8 XXX + SG_ NEW_SIGNAL_2 : 48|3@1+ (1,0) [0|7] "" XXX + SG_ CTR : 22|4@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_4 : 23|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 18|3@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 24|3@1+ (1,0) [0|7] "" XXX + SG_ CTR_2 : 28|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_1 : 63|2@0+ (1,0) [0|255] "" XXX + SG_ STEER_ANGLE : 7|16@0+ (0.1,-1600) [-500|500] "deg" XXX + SG_ STEER_ANGLE_ROUGH : 39|8@0- (1,0) [0|15] "" XXX + +BO_ 576 STEER_TORQUE: 8 XXX + SG_ NEW_SIGNAL_2 : 39|8@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_1 : 20|4@1+ (1,0) [0|255] "" XXX + SG_ STEER_TORQUE_SENSOR : 7|16@0+ (0.5,-15000) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 47|1@0+ (1,0) [0|1] "" XXX + SG_ STEER_TORQUE_MOTOR : 46|20@0- (0.01,0) [-3000|3000] "deg/s" XXX + +BO_ 577 STEER_RATE: 8 XXX + SG_ STEER_ANGLE_RATE : 23|16@0+ (0.25,-8192) [0|1] "deg/s" XXX + SG_ CTR : 7|4@0+ (1,0) [0|15] "" XXX + SG_ LKAS_REQUEST : 3|12@0+ (1,-2048) [0|15] "" XXX + SG_ LKAS_EFFECTIVE : 39|12@0+ (1,-2048) [0|255] "" XXX + SG_ HANDS_OFF_5_SECONDS : 51|1@0+ (1,0) [0|1] "" XXX + SG_ LKAS_BLOCK : 50|1@1+ (1,0) [0|3] "" XXX + SG_ LKAS_TRACK_STATE : 52|1@0+ (1,0) [0|3] "" XXX + SG_ CHKSUM : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 582 CAM_LANEMAYBE: 8 XXX + SG_ NEW_SIGNAL_4 : 40|8@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_1 : 31|16@0- (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_2 : 55|16@0+ (1,0) [0|65535] "" XXX + SG_ CTR : 7|2@0+ (1,0) [0|3] "" XXX + +BO_ 541 CAM_EMPTY: 8 XXX + +BO_ 605 CAM_PEDESTRIAN: 8 XXX + SG_ CTR : 17|4@0+ (1,0) [0|255] "" XXX + SG_ AEB_NOT_ENGAGED : 13|1@0+ (1,0) [0|1] "" XXX + SG_ PED_WARNING : 9|1@0+ (1,0) [0|255] "" XXX + SG_ PED_BRAKE : 3|3@0+ (1,0) [0|7] "" XXX + SG_ RST_CTR : 23|6@0+ (1,0) [0|63] "" XXX + SG_ S1 : 29|4@0+ (1,0) [0|31] "" XXX + +BO_ 578 CAM_LANETRACK: 8 XXX + SG_ CHKSUM : 63|8@0+ (1,0) [0|255] "" XXX + SG_ ZERO : 53|6@0+ (1,0) [0|63] "" XXX + SG_ CTR : 7|4@0+ (1,0) [0|15] "" XXX + SG_ LINE2 : 9|10@0+ (1,-686) [0|255] "" XXX + SG_ LANE_CURVE : 31|8@0+ (1,-127) [0|255] "" XXX + SG_ SIG1 : 39|8@0+ (1,-128) [0|255] "" XXX + SG_ SIG2 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ SIG3 : 55|2@0+ (1,0) [0|3] "" XXX + SG_ LINE1 : 3|10@0+ (1,-686) [0|1] "" XXX + +BO_ 579 CAM_LKAS: 8 XXX + SG_ LKAS_REQUEST : 3|12@0+ (1,-2048) [0|2048] "" XXX + SG_ CTR : 7|4@0+ (1,0) [0|15] "" XXX + SG_ ERR_BIT_1 : 16|1@0+ (1,0) [0|1] "" XXX + SG_ CHKSUM : 63|8@0+ (1,0) [0|15] "" XXX + SG_ LINE_NOT_VISIBLE : 19|1@0+ (1,0) [0|1] "" XXX + SG_ BIT_1 : 29|1@0+ (1,0) [0|1] "" XXX + SG_ BIT_2 : 33|1@0+ (1,0) [0|1] "" XXX + SG_ ERR_BIT_2 : 30|1@0+ (1,0) [0|1] "" XXX + +BO_ 580 CAM_DISTANCE: 8 XXX + SG_ S1 : 0|8@1+ (1,0) [0|127] "" XXX + SG_ S2 : 15|8@0+ (1,0) [0|1] "" XXX + SG_ S3 : 16|8@1+ (1,0) [0|3] "" XXX + SG_ S4 : 24|8@1+ (1,0) [0|31] "" XXX + SG_ S5 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ DISTANCE : 47|8@0+ (1,0) [0|65535] "" XXX + SG_ S6 : 55|16@0+ (1,0) [0|255] "" XXX + +BO_ 581 CAM_IDK3: 8 XXX + SG_ S1 : 0|8@1+ (1,0) [0|15] "" XXX + SG_ S2 : 8|6@1+ (1,0) [0|255] "" XXX + SG_ S3 : 15|2@0+ (1,0) [0|3] "" XXX + SG_ S4 : 16|8@1+ (1,0) [0|15] "" XXX + SG_ S5 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ S6 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ S7 : 40|8@1+ (1,0) [0|3] "" XXX + SG_ S8 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ S9 : 56|8@1+ (1,0) [0|255] "" XXX + +BO_ 863 CAM_STATUS: 8 XXX + SG_ NEW_SIGNAL_1 : 32|1@0+ (1,0) [0|32767] "" XXX + SG_ NEW_SIGNAL_5 : 4|2@0+ (1,0) [0|32767] "" XXX + SG_ NEW_SIGNAL_4 : 15|4@0+ (1,0) [0|15] "" XXX + SG_ STOP_SIGN : 31|4@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 55|1@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_6 : 0|3@1+ (1,0) [0|7] "" XXX + SG_ FORWARD_COLLISION : 40|8@1+ (1,0) [0|7] "" XXX + +BO_ 1157 CAM_Empty2: 8 XXX + +BO_ 1160 CAM_Empty3: 8 XXX + SG_ NEW_SIGNAL_1 : 47|24@0+ (1,0) [0|16777215] "" XXX + +BO_ 1088 CAM_LANEINFO: 8 XXX + SG_ BIT3 : 62|1@0+ (1,0) [0|3] "" XXX + SG_ HANDS_ON_STEER_WARN_2 : 59|1@0+ (1,0) [0|1] "" XXX + SG_ HANDS_ON_STEER_WARN : 56|1@0+ (1,0) [0|3] "" XXX + SG_ S1_NOT : 54|1@0+ (1,0) [0|31] "" XXX + SG_ S1 : 52|1@0+ (1,0) [0|1] "" XXX + SG_ HANDS_WARN_3_BITS : 51|3@0+ (1,0) [0|7] "" XXX + SG_ ERR_BIT : 40|1@0+ (1,0) [0|1] "" XXX + SG_ NO_ERR_BIT : 14|1@0+ (1,0) [0|1] "" XXX + SG_ BIT2 : 13|1@0+ (1,0) [0|15] "" XXX + SG_ LANE_LINES : 10|3@0+ (1,0) [0|3] "" XXX + SG_ BIT1 : 6|1@0+ (1,0) [0|65535] "" XXX + SG_ LINE_NOT_VISIBLE : 1|1@0+ (1,0) [0|1] "" XXX + SG_ LINE_VISIBLE : 0|1@0+ (1,0) [0|3] "" XXX + +BO_ 1479 NEW_MSG_470: 8 XXX + +BO_ 1456 NEW_MSG_300: 8 XXX + +BO_ 1446 NEW_MSG_a600: 8 XXX + +BO_ 1416 MSG_18: 8 XXX + +BO_ 1086 DOORS: 8 XXX + SG_ DOOR_OPEN : 30|1@0+ (1,0) [0|255] "" XXX + SG_ LEFTGATE : 32|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 53|1@0+ (1,0) [0|255] "" XXX + SG_ KEYFOB_HORN : 2|1@0+ (1,0) [0|1] "" XXX + SG_ KEYFOB_LOCK : 3|1@0+ (1,0) [0|1] "" XXX + SG_ KEYFOB_UNLOCK : 4|1@0+ (1,0) [0|1] "" XXX + SG_ CTR1 : 8|4@1+ (1,0) [0|3] "" XXX + SG_ CTR2 : 16|4@1+ (1,0) [0|15] "" XXX + SG_ BR : 34|1@0+ (1,0) [0|1] "" XXX + SG_ BL : 35|1@0+ (1,0) [0|1] "" XXX + SG_ FR : 36|1@0+ (1,0) [0|1] "" XXX + SG_ FL : 37|1@0+ (1,0) [0|255] "" XXX + +BO_ 977 TWO_STATES: 8 XXX + SG_ NEW_SIGNAL_1 : 50|1@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_2 : 56|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_3 : 28|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 24|4@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 39|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 36|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 47|8@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 51|1@0+ (1,0) [0|1] "" XXX + +BO_ 1085 MSG_12: 8 XXX + SG_ NEW_SIGNAL_3 : 36|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 16|8@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 48|8@1+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_4 : 31|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 24|1@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_6 : 40|3@1+ (1,0) [0|7] "" XXX + +BO_ 159 MSG_11: 8 XXX + SG_ NEW_SIGNAL_1 : 50|4@1+ (1,0) [0|15] "" XXX + +BO_ 1278 NEW_MSG_3: 8 XXX + SG_ NEW_SIGNAL_2 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 63|8@0+ (1,0) [0|255] "" XXX + SG_ MILAGE_MAYBE : 7|16@0+ (1,0) [0|255] "" XXX + +BO_ 1277 NEW_MSG_10: 8 XXX + SG_ NEW_SIGNAL_3 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ counter : 7|8@0+ (1,0) [0|255] "" XXX + +BO_ 1275 2017_5: 8 XXX + SG_ counter : 4|5@0+ (1,0) [0|255] "" XXX + +BO_ 1274 NEW_MSG_12: 8 XXX + SG_ NEW_SIGNAL_1 : 24|4@1+ (1,0) [0|15] "" XXX + SG_ CTR : 55|4@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_2 : 35|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 32|3@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_4 : 48|4@1+ (1,0) [0|7] "" XXX + +BO_ 1180 last_byte_roughRPM: 8 XXX + SG_ NEW_SIGNAL_1 : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 1078 HVAC: 8 XXX + SG_ NEW_SIGNAL_1 : 2|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 8|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 23|1@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_4 : 56|5@0+ (1,0) [0|255] "" XXX + +BO_ 1056 NEW_MSG_13: 8 XXX + SG_ BIG_COUNTER_MAYBE : 55|16@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 29|6@0+ (1,0) [0|255] "" XXX + SG_ counter_or_GEAR : 15|8@0+ (1,0) [0|255] "" XXX + SG_ INCREASING : 7|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 23|8@0+ (1,0) [0|255] "" XXX + SG_ STANDSTILL : 32|1@0+ (1,0) [0|255] "" XXX + +BO_ 1045 MOVING: 8 XXX + SG_ NEW_SIGNAL_2 : 20|1@0+ (1,0) [0|3] "" XXX + SG_ CTR2 : 19|4@0+ (1,0) [0|31] "" XXX + SG_ CTR3 : 8|4@1+ (1,0) [0|15] "" XXX + SG_ IS_MOVING : 12|1@0+ (1,0) [0|3] "" XXX + SG_ CTR1 : 53|6@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 54|1@0+ (1,0) [0|1] "" XXX + SG_ BRAKE : 55|1@0+ (1,0) [0|1] "" XXX + +BO_ 1034 MSG_07: 8 XXX + SG_ NEW_SIGNAL_1 : 6|3@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 0|4@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_3 : 15|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_4 : 63|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_9 : 31|8@0+ (1,0) [0|255] "" XXX + +BO_ 870 NEW_MSG_16: 8 XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 55|8@0+ (1,0) [0|255] "" XXX + +BO_ 867 NEW_MSG_17: 8 XXX + SG_ NEW_SIGNAL_1 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 130 STEER: 8 XXX + SG_ NEW_SIGNAL_5 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 63|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 47|8@0+ (1,0) [0|255] "" XXX + SG_ CTR_2 : 35|4@0+ (1,0) [0|255] "" XXX + SG_ STEER_ANGLE : 23|16@0+ (0.05,-1600) [500|-500] "deg" XXX + +BO_ 120 NEW_MSG_18: 8 XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 55|8@0+ (1,0) [0|255] "" XXX + +BO_ 304 GEAR_RELATED: 8 XXX + SG_ NEW_SIGNAL_1 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 47|8@0+ (1,0) [0|255] "" XXX + +BO_ 865 NEW_MSG_5: 8 XXX + SG_ SPEED_INVERSE : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 47|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 40|1@0+ (1,0) [0|1] "" XXX + SG_ IS_MOVING : 43|3@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_2 : 46|1@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_4 : 44|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_10 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 15|3@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 56|4@1+ (1,0) [0|15] "" XXX + +BO_ 836 NEW_MSG_19: 8 XXX + SG_ CTR : 48|4@1+ (1,0) [0|15] "" XXX + SG_ CTR2 : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 832 SEATBELT: 8 XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ PASSENGER_SEATBELT : 26|1@1+ (1,0) [0|7] "" XXX + SG_ CTR1 : 15|4@0+ (1,0) [0|15] "" XXX + SG_ CTR2 : 23|4@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 8|4@1+ (1,0) [0|3] "" XXX + SG_ DRIVER_SEATBELT : 27|1@0+ (1,0) [0|1] "" XXX + +BO_ 866 NEW_MSG_21: 8 XXX + SG_ NEW_SIGNAL_2 : 7|8@0+ (1,0) [0|131071] "" XXX + SG_ NEW_SIGNAL_1 : 15|8@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 27|4@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 59|4@0+ (1,0) [0|15] "" XXX + +BO_ 158 MSG_05: 8 XXX + SG_ NEW_SIGNAL_1 : 23|8@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 55|8@0+ (1,0) [0|255] "" XXX + +BO_ 157 CRZ_BTNS: 8 XXX + SG_ SET_P_INV : 21|1@0+ (1,0) [0|3] "" XXX + SG_ CAN_OFF_INV : 17|1@1+ (1,0) [0|3] "" XXX + SG_ CAN_OFF : 0|1@1+ (1,0) [0|3] "" XXX + SG_ SET_M_INV : 22|1@0+ (1,0) [0|255] "" XXX + SG_ SET_M : 5|1@0+ (1,0) [0|3] "" XXX + SG_ SET_P : 4|1@0+ (1,0) [0|3] "" XXX + SG_ RES_INV : 19|1@1+ (1,0) [0|3] "" XXX + SG_ RES : 2|1@1+ (1,0) [0|3] "" XXX + SG_ DISTANCE_LESS : 7|1@0+ (1,0) [0|1] "" XXX + SG_ DISTANCE_LESS_INV : 8|1@0+ (1,0) [0|31] "" XXX + SG_ DISTANCE_MORE : 6|1@0+ (1,0) [0|3] "" XXX + SG_ DISTANCE_MORE_INV : 23|1@0+ (1,0) [0|1] "" XXX + SG_ MODE_Y : 13|1@1+ (1,0) [0|3] "" XXX + SG_ MODE_X : 14|1@0+ (1,0) [0|255] "" XXX + SG_ MODE_Y_INV : 30|1@0+ (1,0) [0|3] "" XXX + SG_ MODE_X_INV : 31|1@0+ (1,0) [0|3] "" XXX + SG_ CTR : 29|4@0+ (1,0) [0|255] "" XXX + +BO_ 154 BLINK_INFO: 8 XXX + SG_ LEFT_BLINK : 18|1@1+ (1,0) [0|3] "" XXX + SG_ RIGHT_BLINK : 19|1@0+ (1,0) [0|255] "" XXX + SG_ REAR_WIPER_ON : 0|1@0+ (1,0) [0|1] "" XXX + SG_ WIPER_LO : 33|1@1+ (1,0) [0|31] "" XXX + SG_ WIPER_HI : 34|1@0+ (1,0) [0|1] "" XXX + +BO_ 145 TURN_SWITCH: 8 XXX + SG_ NEW_SIGNAL_1 : 37|1@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 36|1@0+ (1,0) [0|3] "" XXX + SG_ TURN : 38|1@0+ (1,0) [0|3] "" XXX + SG_ TURN_LEFT_SWITCH : 13|1@0+ (1,0) [0|255] "" XXX + SG_ TURN_RIGHT_SWITCH : 12|1@1+ (1,0) [0|3] "" XXX + SG_ HAZARD : 10|1@0+ (1,0) [0|1] "" XXX + SG_ CTR : 27|4@0+ (1,0) [0|255] "" XXX + +BO_ 80 MSG_04: 8 XXX + SG_ NEW_SIGNAL_1 : 25|1@0+ (1,0) [0|1] "" XXX + SG_ SIGNAL : 24|1@0+ (1,0) [0|1] "" XXX + +BO_ 978 MSG_03: 8 XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 23|8@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 47|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 607 NEW_MSG_25: 8 XXX + +BO_ 1115 MSG_02: 8 XXX + SG_ NEW_SIGNAL_2 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 47|16@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_3 : 63|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 2|3@0+ (1,0) [0|255] "" XXX + +BO_ 1067 NEW_MSG_27: 8 XXX + SG_ NEW_SIGNAL_2 : 3|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 0|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 2|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 1|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 11|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_7 : 10|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 9|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 8|1@0+ (1,0) [0|1] "" XXX + +BO_ 358 NEW_MSG_28: 8 XXX + +BO_ 608 NEW_MSG_29: 8 XXX + SG_ NEW_SIGNAL_1 : 8|5@1+ (1,0) [0|7] "" XXX + +BO_ 606 SPEED_TBD: 8 XXX + SG_ SPEED_TBD : 7|12@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 23|12@0- (1,0) [0|65535] "" XXX + +BO_ 552 GEAR: 8 XXX + SG_ NEW_SIGNAL_2 : 8|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 11|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 18|3@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 26|3@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 31|5@0+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_7 : 39|1@0+ (1,0) [0|255] "" XXX + SG_ GEAR : 35|4@0+ (1,0) [0|15] "" XXX + SG_ MORE_GEAR : 7|4@0+ (1,0) [0|255] "" XXX + +BO_ 543 CRZ_EVENTS: 8 XXX + SG_ NEW_SIGNAL_3 : 34|1@0+ (1,0) [0|1] "" XXX + SG_ CHKSUM : 63|8@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 55|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_5 : 47|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_6 : 6|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 0|1@0+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_9 : 1|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_10 : 2|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 10|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_13 : 9|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_18 : 12|1@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_19 : 14|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_20 : 15|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_21 : 23|1@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_24 : 31|1@0+ (1,0) [0|1] "" XXX + SG_ GAS_PEDAL_PRESSED : 32|1@0+ (1,0) [0|255] "" XXX + SG_ CRZ_STARTED : 18|1@0+ (1,0) [0|1] "" XXX + SG_ PLUS_ONE_CRZ : 17|1@0+ (1,0) [0|255] "" XXX + SG_ PLUS_ONE_CRZ_2 : 19|1@0+ (1,0) [0|1] "" XXX + SG_ GAS_MAYBE : 22|1@0+ (1,0) [0|1] "" XXX + SG_ NONACC_ACTIVE : 5|1@0+ (1,0) [0|1] "" XXX + SG_ CRUISE_ACTIVE_CAR_MOVING : 16|1@0+ (1,0) [0|1] "" XXX + SG_ NONACC_RELATED : 11|1@0+ (1,0) [0|255] "" XXX + SG_ CTR : 51|4@0+ (1,0) [0|15] "" XXX + SG_ CAS_CMD_MAYBE : 30|7@0- (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 43|4@0+ (1,0) [0|255] "" XXX + +BO_ 542 NEW_MSG_33: 8 XXX + SG_ CTR : 48|4@1+ (1,0) [0|15] "" XXX + SG_ CTR2 : 56|4@1+ (1,0) [0|15] "" XXX + +BO_ 868 NEW_MSG_34: 8 XXX + SG_ CTR : 59|4@0+ (1,0) [0|255] "" XXX + +BO_ 869 NEW_MSG_35: 8 XXX + SG_ NEW_SIGNAL_1 : 7|4@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 23|16@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 39|16@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 55|2@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 50|4@1+ (1,0) [0|15] "" XXX + SG_ CTR : 59|4@0+ (1,0) [0|255] "" XXX + +BO_ 1114 NEW_MSG_4: 8 XXX + +BO_ 535 CURVE_CTRS: 8 XXX + SG_ CTR_A_1 : 4|3@0+ (1,0) [0|31] "" XXX + SG_ CTR_A_2 : 7|3@0+ (1,0) [0|255] "" XXX + SG_ CTR_B_1 : 12|3@0+ (1,0) [0|7] "" XXX + SG_ CTR_B_2 : 15|3@0+ (1,0) [0|7] "" XXX + SG_ CTR_C_1 : 20|3@0+ (1,0) [0|7] "" XXX + SG_ CTR_C_2 : 23|3@0+ (1,0) [0|255] "" XXX + SG_ CTR_D_2 : 31|3@0+ (1,0) [0|7] "" XXX + SG_ CTR_D_1 : 28|3@0+ (1,0) [0|7] "" XXX + SG_ CURVE : 39|16@0+ (1,0) [0|7] "" XXX + SG_ CTR : 55|8@0+ (1,0) [0|255] "" XXX + SG_ CHK_MAYBE : 63|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 0|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 1|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 17|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 24|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 25|1@0+ (1,0) [0|1] "" XXX + SG_ SEATBELT_MAYBE : 8|1@0+ (1,0) [0|1] "" XXX + SG_ NO_SEATBELT_MAYBE : 16|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 9|1@0+ (1,0) [0|1] "" XXX + +BO_ 540 CRZ_CTRL: 8 XXX + SG_ NEW_SIGNAL_3 : 1|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 8|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 9|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 10|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 18|3@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_9 : 31|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_10 : 30|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_GAS_MAYBE : 23|1@0+ (1,0) [0|31] "" XXX + SG_ ACC_GAS_MAYBE2 : 29|1@0+ (1,0) [0|1] "" XXX + SG_ CRZ_ACTIVE : 3|1@0+ (1,0) [0|1] "" XXX + +BO_ 539 CRZ_INFO: 8 XXX + SG_ NEW_SIGNAL_1 : 17|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 16|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 34|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 47|1@0+ (1,0) [0|255] "" XXX + SG_ CTR1 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ CTR2 : 63|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 37|1@0+ (1,0) [0|255] "" XXX + SG_ ACC_ACTIVE : 33|1@0+ (1,0) [0|1] "" XXX + SG_ ACCEL_CMD : 31|10@0- (1,0) [0|1] "" XXX + +BO_ 121 EPB: 8 XXX + SG_ NEW_SIGNAL_1 : 4|4@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 0|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 25|2@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 39|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 63|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 41|2@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_9 : 47|1@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_10 : 46|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_11 : 45|1@0+ (1,0) [0|1] "" XXX + SG_ EPB_ACTIVE : 29|1@0+ (1,0) [0|15] "" XXX + +BO_ 1070 2017_1: 8 XXX + +BO_ 1183 2017_2: 8 XXX + +BO_ 1243 2017_3: 8 XXX + SG_ NEW_SIGNAL_1 : 7|64@0+ (1,0) [0|18446744073709552000] "" XXX + +BO_ 1269 MSG_2017_4: 8 XXX + SG_ NEW_SIGNAL_1 : 55|16@0+ (1,0) [0|18446744073709552000] "" XXX + +BO_ 1178 2017_6: 8 XXX + SG_ NEW_SIGNAL_1 : 7|64@0+ (1,0) [0|18446744073709552000] "" XXX + +BO_ 1179 2017_7: 8 XXX + SG_ NEW_SIGNAL_1 : 7|64@0+ (1,0) [0|18446744073709552000] "" XXX + +BO_ 1435 2017_8: 8 XXX + +BO_ 253 NEW_MSG_7: 8 XXX + SG_ NEW_SIGNAL_1 : 16|1@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_2 : 41|1@0+ (1,0) [0|255] "" XXX + SG_ CTR : 23|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 55|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 61|1@0+ (1,0) [0|255] "" XXX + +BO_ 359 NEW_MSG_11: 8 XXX + SG_ NEW_SIGNAL_1 : 15|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ CTR : 31|4@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 36|5@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 38|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 37|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 47|4@0+ (1,0) [0|255] "" XXX + +BO_ 512 NEW_MSG_30: 8 XXX + SG_ NEW_SIGNAL_1 : 6|7@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 7|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 15|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 23|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 22|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_6 : 31|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 39|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 38|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_9 : 40|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_10 : 47|4@0+ (1,0) [0|15] "" XXX + SG_ CTR : 51|3@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_11 : 63|8@0+ (1,0) [0|255] "" XXX + +BO_ 515 MSG_01: 8 XXX + SG_ CTR : 39|8@0+ (1,0) [0|65535] "" XXX + SG_ CTR_2 : 47|8@0+ (1,0) [0|255] "" XXX + +BO_ 529 NEW_MSG_36: 8 XXX + SG_ NEW_SIGNAL_1 : 22|5@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_2 : 31|8@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 32|4@1+ (1,0) [0|3] "" XXX + SG_ CTR : 39|4@0+ (1,0) [0|255] "" XXX + SG_ CTR_2 : 47|4@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 40|4@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 53|1@0+ (1,0) [0|255] "" XXX + +BO_ 1242 NEW_MSG_37: 8 XXX + +BO_ 1266 MSG_09: 8 XXX + SG_ NEW_SIGNAL_1 : 20|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 19|4@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 31|1@0+ (1,0) [0|255] "" XXX + +BO_ 976 MSG_15: 8 XXX + SG_ NEW_SIGNAL_1 : 55|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 61|6@0+ (1,0) [0|1] "" XXX + +BO_ 155 MSG_14: 8 XXX + +BO_ 1267 MSG_10: 8 XXX + SG_ NEW_SIGNAL_1 : 40|1@0+ (1,0) [0|16777215] "" XXX + SG_ NEW_SIGNAL_2 : 42|1@0+ (1,0) [0|1] "" XXX + +BO_ 305 NEW_MSG_6: 8 XXX + SG_ NEW_SIGNAL_1 : 8|1@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 9|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 10|1@0+ (1,0) [0|1] "" XXX + +BO_ 1238 TEMPERATURE: 8 XXX + SG_ TEMPERATURE_MAYBE : 47|8@0+ (1,0) [0|4294967295] "" XXX + +BO_ 1087 NEW_MSG_1: 8 XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX + +BO_ 1143 BSM: 8 XXX + SG_ BSM_OFF : 0|1@0+ (1,0) [0|1] "" XXX + SG_ RIGHT_BS_3 : 37|1@0+ (1,0) [0|1] "" XXX + SG_ STANDSTILL : 8|1@0+ (1,0) [0|1] "" XXX + SG_ LEFT_BS1 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ LEFT_BS3 : 38|1@0+ (1,0) [0|1] "" XXX + SG_ RIGHT_BS4 : 39|1@0+ (1,0) [0|1] "" XXX + SG_ LEFT_BS_SIDE : 36|1@0+ (1,0) [0|1] "" XXX + SG_ IS_MOVING : 9|1@0+ (1,0) [0|1] "" XXX + SG_ LEFT_BS_BEHIND : 46|2@1+ (1,0) [0|16777215] "" XXX + SG_ RIGHT_BS1 : 14|1@0+ (1,0) [0|63] "" XXX + SG_ RIGHT_BS_DISTANCE : 35|3@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 32|1@0+ (1,0) [0|1] "" XXX + +BO_ 1361 KEY_POSITION: 8 XXX + +BO_ 1283 KEY_POSITION2: 8 XXX + +BO_ 628 MSG_06: 8 XXX + +BO_ 1154 MSG_08: 8 XXX + +BO_ 1139 MSG_13: 8 XXX + +BO_ 1270 MSG_16: 8 XXX + +BO_ 1272 MSG_17: 8 XXX + +BO_ 1425 MSG_19: 8 XXX + + + + +CM_ SG_ 605 PED_BRAKE "3: no brake, 4: brake"; +CM_ SG_ 1088 LANE_LINES "0 LKAS disabled, 1 no lines, 2 two lines, 3 left line, 4 right line"; +CM_ SG_ 157 CAN_OFF "Disengage Cruise if enabled, if already disabled TURN it OFF "; +CM_ SG_ 552 GEAR "0 P/N, 12 R, 2 D M1, 4 M2, 14 Shift"; +CM_ SG_ 552 MORE_GEAR ""; diff --git a/subaru_global_2017.dbc b/subaru_global_2017.dbc new file mode 100644 index 000000000..1c8b796ab --- /dev/null +++ b/subaru_global_2017.dbc @@ -0,0 +1,363 @@ +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: XXX X + + +BO_ 2 Steering: 8 XXX + SG_ Counter : 25|3@1+ (1,0) [0|7] "" XXX + SG_ Checksum : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Steering_Angle : 7|16@0- (0.1,0) [0|65535] "" XXX + +BO_ 64 Throttle: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|255] "" XXX + SG_ Off_Accel : 60|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_3 : 56|4@1+ (1,0) [0|255] "" XXX + SG_ Engine_RPM : 16|12@1+ (1,0) [0|255] "" XXX + SG_ Throttle_Cruise : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Throttle_Combo : 55|8@1+ (0.392157,0) [0|255] "" XXX + SG_ Throttle_Pedal : 32|8@1+ (1,0) [0|255] "" XXX + + +BO_ 65 NEW_MSG_1: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_4 : 32|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 16|12@1+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 31|1@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_6 : 48|8@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_7 : 59|2@0+ (1,0) [0|255] "" XXX + +BO_ 72 NEW_MSG_2: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 40|16@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 38|3@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 16|8@1+ (1,0) [0|255] "" XXX + +BO_ 316 NEW_MSG_3: 8 XXX + +BO_ 326 NEW_MSG_4: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 16|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 40|2@1+ (1,0) [0|255] "" XXX + +BO_ 315 G_Sensor: 8 XXX + SG_ longitudinal : 63|8@0- (1,0) [0|255] "" XXX + SG_ Latitudinal : 48|8@1- (1,0) [0|255] "" XXX + +BO_ 314 Wheel_Speeds: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ FR : 12|13@1+ (0.057,0) [0|255] "kph" XXX + SG_ RR : 25|13@1+ (0.057,0) [0|255] "kph" XXX + SG_ FL : 51|13@1+ (0.057,0) [0|255] "kph" XXX + SG_ RL : 38|13@1+ (0.057,0) [0|255] "kph" XXX + +BO_ 73 NEW_MSG_5: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_1 : 32|8@1+ (1,0) [0|4095] "" XXX + SG_ NEW_SIGNAL_2 : 24|8@1+ (1,0) [0|127] "" XXX + +BO_ 280 NEW_MSG_6: 8 XXX + SG_ NEW_SIGNAL_1 : 12|12@1- (1,0) [0|4095] "" XXX + SG_ NEW_SIGNAL_2 : 48|8@1- (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 61|1@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_4 : 40|4@1+ (1,0) [0|255] "" XXX + +BO_ 281 Steering_Torque: 8 XXX + SG_ checksum : 0|8@1+ (1,0) [0|3] "" XXX + SG_ counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Steer_Torque_Sensor : 16|11@1- (-1,0) [0|3] "" XXX + SG_ Steering_Angle : 32|16@1- (-0.0217,0) [0|255] "" X + SG_ Steer_Torque_Output : 48|11@1- (-1,0) [0|31] "" XXX + +BO_ 312 Brake_Pressure_L_R: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|31] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|3] "" XXX + SG_ Brake_2 : 56|8@1+ (1,0) [0|255] "" XXX + SG_ Brake_1 : 48|8@1+ (1,0) [0|255] "" XXX + +BO_ 313 Brake_Pedal: 8 XXX + SG_ Brake_Pedal_On : 34|1@1+ (1,0) [0|7] "" XXX + SG_ Brake_Pedal : 36|12@1+ (1,0) [0|65535] "" XXX + +BO_ 290 ES_LKAS: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ LKAS_Output : 16|13@1- (-1,0) [0|3] "" XXX + SG_ LKAS_Request : 29|1@0+ (1,0) [0|3] "" XXX + SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX + +BO_ 722 NEW_MSG_10: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 27|3@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 56|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 45|2@0+ (1,0) [0|3] "" XXX + +BO_ 544 ES_Brake: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Brake_Pressure : 16|16@1+ (1,0) [0|255] "" XXX + SG_ __Status : 36|4@1+ (1,0) [0|63] "" XXX + +BO_ 545 ES_Distance: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Close_Distance : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Distance_Swap : 37|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 39|1@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_9 : 38|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_4 : 34|1@1+ (1,0) [0|3] "" XXX + SG_ Brake_Pedal : 33|1@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_10 : 35|1@1+ (1,0) [0|3] "" XXX + SG_ Throttle : 16|12@1+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_1 : 31|4@0+ (1,0) [0|15] "" XXX + SG_ SET_1 : 12|1@0+ (1,0) [0|3] "" XXX + SG_ ACC_ENABLE_BTN : 56|1@0+ (1,0) [0|1] "" XXX + SG_ Car_Follow : 32|1@1+ (1,0) [0|3] "" XXX + SG_ Brake : 36|1@0+ (1,0) [0|3] "" XXX + +BO_ 546 ES_Status: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ RPM : 16|12@1+ (1,0) [0|255] "" XXX + SG_ Cruise_Activated : 29|1@0+ (1,0) [0|3] "" XXX + SG_ Cruise_Brake : 30|1@1+ (1,0) [0|3] "" XXX + +BO_ 554 ES_Blank: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ SET_65535 : 39|16@1+ (1,0) [0|16777215] "" XXX + SG_ SET_1 : 13|1@1+ (1,0) [0|7] "" XXX + +BO_ 557 NEW_MSG_14: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 576 CruiseControl: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_5 : 42|1@1+ (1,0) [0|3] "" XXX + SG_ Cruise_On : 40|1@1+ (1,0) [0|3] "" XXX + SG_ Cruise_Activated : 41|1@1+ (1,0) [0|3] "" XXX + +BO_ 577 NEW_MSG_16: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 16|12@1+ (1,0) [0|255] "" XXX + +BO_ 552 NEW_MSG_17: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 48|1@1+ (1,0) [0|3] "" XXX + +BO_ 912 Dashlights: 8 XXX + SG_ NEW_SIGNAL_1 : 32|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ RIGHT_BLINKER : 51|1@1+ (1,0) [0|1] "" XXX + SG_ LEFT_BLINKER : 50|1@1+ (1,0) [0|3] "" XXX + SG_ SEATBELT_FL : 48|1@1+ (1,0) [0|1] "" XXX + +BO_ 940 BodyInfo: 8 XXX + SG_ DASH_BTN_LIGHTS : 56|1@0+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_FL : 32|1@1+ (1,0) [0|255] "" XXX + SG_ DOOR_OPEN_FR : 33|1@1+ (1,0) [0|3] "" XXX + SG_ DOOR_OPEN_RL : 34|1@1+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_RR : 35|1@1+ (1,0) [0|1] "" XXX + SG_ DOOR_OPEN_TRUNK : 36|1@0+ (1,0) [0|1] "" XXX + SG_ FOG_LIGHTS2 : 60|1@1+ (1,0) [0|1] "" XXX + SG_ Highbeam : 58|1@1+ (1,0) [0|1] "" XXX + SG_ Lowbeam : 57|1@1+ (1,0) [0|3] "" XXX + +BO_ 801 ES_DashStatus: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_9 : 60|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_10 : 49|2@1+ (1,0) [0|3] "" XXX + SG_ Brake_Pedal : 51|1@1+ (1,0) [0|3] "" XXX + SG_ Cruise_Set_Speed : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Cruise_Activated : 36|1@1+ (1,0) [0|3] "" XXX + SG_ Cruise_Disengaged : 35|1@1+ (1,0) [0|3] "" XXX + SG_ Far_Distance : 56|4@1+ (1,0) [0|15] "" XXX + SG_ Car_Follow : 52|1@1+ (1,0) [0|3] "" XXX + SG_ ACC_Distance : 28|3@1+ (1,0) [0|3] "" XXX + +BO_ 802 ES_LKAS_State: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Keep_Hands_On_Wheel : 12|1@1+ (1,0) [0|1] "" XXX + SG_ Empty_Box : 13|1@1+ (1,0) [0|1] "" XXX + SG_ LKAS_ACTIVE : 17|1@1+ (1,0) [0|3] "" XXX + SG_ Backward_Speed_Limit_Menu : 23|1@1+ (1,0) [0|1] "" XXX + SG_ LKAS_ENABLE_3 : 24|1@1+ (1,0) [0|1] "" XXX + SG_ LKAS_ENABLE_2 : 26|1@1+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 28|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 30|1@1+ (1,0) [0|3] "" XXX + SG_ FCW_Cont_Beep : 32|1@1+ (1,0) [0|1] "" XXX + SG_ FCW_Repeated_Beep : 33|1@1+ (1,0) [0|1] "" XXX + SG_ Throttle_Management_Activated : 34|1@1+ (1,0) [0|1] "" XXX + SG_ Traffic_light_Ahead : 35|1@1+ (1,0) [0|1] "" XXX + SG_ Right_Depart : 36|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_4 : 44|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 56|2@1+ (1,0) [0|3] "" XXX + +BO_ 805 ES_NEW_MSG_22: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 22|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_1 : 14|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_4 : 15|1@1+ (1,0) [0|3] "" XXX + +BO_ 808 NEW_MSG_23: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 837 NEW_MSG_24: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 32|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_5 : 24|8@1+ (1,0) [0|255] "" XXX + +BO_ 838 NEW_MSG_25: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 40|1@1+ (1,0) [0|3] "" XXX + +BO_ 842 NEW_MSG_26: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 32|8@1+ (1,0) [0|255] "" XXX + +BO_ 915 NEW_MSG_27: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 32|9@1+ (1,0) [0|255] "" XXX + +BO_ 1788 NEW_MSG_28: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 40|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_4 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 16|8@1+ (1,0) [0|255] "" XXX + +BO_ 816 NEW_MSG_29: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 826 NEW_MSG_30: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 839 NEW_MSG_31: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 2015 NEW_MSG_32: 8 XXX + SG_ NEW_SIGNAL_2 : 16|8@1+ (1,0) [0|255] "" XXX + +BO_ 2024 NEW_MSG_33: 8 XXX + SG_ NEW_SIGNAL_1 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 0|3@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 32|8@1+ (1,0) [0|255] "" XXX + +BO_ 1614 NEW_MSG_34: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 1617 NEW_MSG_35: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 1632 NEW_MSG_36: 8 XXX + SG_ NEW_SIGNAL_1 : 55|16@0+ (1,0) [0|255] "" XXX + +BO_ 1650 NEW_MSG_37: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 1657 NEW_MSG_38: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 1658 NEW_MSG_39: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 33|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_4 : 31|1@0+ (1,0) [0|3] "" XXX + +BO_ 1677 NEW_MSG_40: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 16|4@1+ (1,0) [0|15] "" XXX + +BO_ 1743 NEW_MSG_41: 8 XXX + SG_ Checksum : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX + +BO_ 1785 NEW_MSG_42: 8 XXX + SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 21|1@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_3 : 17|1@1+ (1,0) [0|7] "" XXX + +BO_ 1759 NEW_MSG_43: 8 XXX + SG_ NEW_SIGNAL_1 : 17|1@1+ (1,0) [0|3] "" XXX + +BO_ 1786 NEW_MSG_44: 8 XXX + SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 8|8@1+ (1,0) [0|15] "" XXX + +BO_ 1787 NEW_MSG_45: 8 XXX + SG_ NEW_SIGNAL_1 : 0|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 8|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX + + + + +CM_ SG_ 940 FOG_LIGHTS2 "yellow fog light in the dash"; +CM_ SG_ 940 Highbeam "01 = low beam, 11 = high beam"; +CM_ SG_ 805 NEW_SIGNAL_3 "always 3"; +CM_ SG_ 805 NEW_SIGNAL_4 "always 1"; diff --git a/subaru_outback_2015_eyesight.dbc b/subaru_outback_2015_eyesight.dbc index 9f592b828..aad63e310 100644 --- a/subaru_outback_2015_eyesight.dbc +++ b/subaru_outback_2015_eyesight.dbc @@ -191,10 +191,10 @@ BO_ 354 ES_RPM: 8 XXX SG_ Brake : 8|1@1+ (1,0) [0|7] "" XXX BO_ 356 ES_LKAS: 8 XXX - SG_ Checksum : 56|8@1+ (1,0) [0|15] "" XXX - SG_ Counter : 0|3@1+ (1,0) [0|15] "" XXX - SG_ LKAS_Active : 24|1@1+ (1,0) [0|7] "" XXX - SG_ LKAS_Output : 8|13@1- (-1,0) [0|127] "" XXX + SG_ Checksum : 56|8@1+ (1,0) [0|255] "" XXX + SG_ Counter : 0|3@1+ (1,0) [0|8] "" XXX + SG_ LKAS_Active : 24|1@1+ (1,0) [0|1] "" XXX + SG_ LKAS_Command : 8|13@1- (-1,0) [-4096|4095] "" XXX BO_ 358 ES_Status: 8 XXX SG_ Counter : 39|3@0+ (1,0) [0|7] "" XXX diff --git a/toyota_avalon_2017_pt_generated.dbc b/toyota_avalon_2017_pt_generated.dbc index cef7138b2..64c39ff82 100644 --- a/toyota_avalon_2017_pt_generated.dbc +++ b/toyota_avalon_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_camry_hybrid_2018_pt_generated.dbc b/toyota_camry_hybrid_2018_pt_generated.dbc index 6361a100a..5d4fd39a6 100644 --- a/toyota_camry_hybrid_2018_pt_generated.dbc +++ b/toyota_camry_hybrid_2018_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; @@ -316,6 +318,7 @@ BO_ 608 STEER_TORQUE_SENSOR: 8 XXX SG_ STEER_TORQUE_DRIVER : 15|16@0- (1,0) [-32768|32767] "" XXX SG_ STEER_OVERRIDE : 0|1@0+ (1,0) [0|1] "" XXX SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX + SG_ STEER_ANGLE : 31|16@0- (0.05527,0) [-500|500] "" XXX BO_ 610 EPS_STATUS: 8 EPS SG_ IPAS_STATE : 3|4@0+ (1,0) [0|15] "" XXX diff --git a/toyota_chr_2018_pt_generated.dbc b/toyota_chr_2018_pt_generated.dbc index 7ef8f3f94..a2e169f94 100644 --- a/toyota_chr_2018_pt_generated.dbc +++ b/toyota_chr_2018_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_chr_hybrid_2018_pt_generated.dbc b/toyota_chr_hybrid_2018_pt_generated.dbc index 5fb07ee64..574d3c200 100644 --- a/toyota_chr_hybrid_2018_pt_generated.dbc +++ b/toyota_chr_hybrid_2018_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_corolla_2017_pt_generated.dbc b/toyota_corolla_2017_pt_generated.dbc index 2bc435c23..14aff972e 100644 --- a/toyota_corolla_2017_pt_generated.dbc +++ b/toyota_corolla_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_highlander_2017_pt_generated.dbc b/toyota_highlander_2017_pt_generated.dbc index d263b1526..cd78b63de 100644 --- a/toyota_highlander_2017_pt_generated.dbc +++ b/toyota_highlander_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_highlander_hybrid_2018_pt_generated.dbc b/toyota_highlander_hybrid_2018_pt_generated.dbc index f923c5c51..08831635d 100644 --- a/toyota_highlander_hybrid_2018_pt_generated.dbc +++ b/toyota_highlander_hybrid_2018_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_prius_2017_pt_generated.dbc b/toyota_prius_2017_pt_generated.dbc index a78a149d8..abc4f0817 100644 --- a/toyota_prius_2017_pt_generated.dbc +++ b/toyota_prius_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_rav4_2017_pt_generated.dbc b/toyota_rav4_2017_pt_generated.dbc index 0448e9de2..872715625 100644 --- a/toyota_rav4_2017_pt_generated.dbc +++ b/toyota_rav4_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_rav4_hybrid_2017_pt_generated.dbc b/toyota_rav4_hybrid_2017_pt_generated.dbc index eb332a27c..a75dcb3af 100644 --- a/toyota_rav4_hybrid_2017_pt_generated.dbc +++ b/toyota_rav4_hybrid_2017_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; diff --git a/toyota_sienna_xle_2018_pt_generated.dbc b/toyota_sienna_xle_2018_pt_generated.dbc index 67291ab31..32ef3f518 100644 --- a/toyota_sienna_xle_2018_pt_generated.dbc +++ b/toyota_sienna_xle_2018_pt_generated.dbc @@ -18,13 +18,15 @@ CM BO_ STEERING_IPAS_COMMA "Copy of msg 614 so we can do angle control while the SG_ GAS_COMMAND : 7|16@0+ (0.159375,-75.555) [0|1] "" INTERCEPTOR SG_ GAS_COMMAND2 : 23|16@0+ (0.159375,-151.111) [0|1] "" INTERCEPTOR SG_ ENABLE : 39|1@0+ (1,0) [0|1] "" INTERCEPTOR - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" INTERCEPTOR + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" INTERCEPTOR + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" INTERCEPTOR BO_ 513 GAS_SENSOR: 6 INTERCEPTOR SG_ INTERCEPTOR_GAS : 7|16@0+ (0.159375,-75.555) [0|1] "" EON SG_ INTERCEPTOR_GAS2 : 23|16@0+ (0.159375,-151.111) [0|1] "" EON - SG_ STATE : 39|8@0+ (1,0) [0|255] "" EON - SG_ CHECKSUM : 47|8@0+ (1,0) [0|3] "" EON + SG_ STATE : 39|4@0+ (1,0) [0|15] "" EON + SG_ COUNTER_PEDAL : 35|4@0+ (1,0) [0|15] "" EON + SG_ CHECKSUM_PEDAL : 47|8@0+ (1,0) [0|255] "" EON VAL_ 513 STATE 5 "FAULT_TIMEOUT" 4 "FAULT_STARTUP" 3 "FAULT_SCE" 2 "FAULT_SEND" 1 "FAULT_BAD_CHECKSUM" 0 "NO_FAULT" ; From 342bb13bff293134b02bed56f2021fde5b90b723 Mon Sep 17 00:00:00 2001 From: Vehicle Researcher Date: Tue, 26 Mar 2019 01:03:51 -0700 Subject: [PATCH 3/4] Squashed 'pyextra/' changes from 0d19c13e..42428013 42428013 websocket patch from commaai/websocket-client.git 0fda5bb7 add jsonrpc 8139b06b add websocket_client git-subtree-dir: pyextra git-subtree-split: 4242801316e12c55e5b7c626331fbefad2e15e0c --- .../PKG-INFO | 89 +++ .../SOURCES.txt | 8 + .../dependency_links.txt | 1 + .../installed-files.txt | 8 + .../top_level.txt | 1 + backports/__init__.py | 3 + backports/ssl_match_hostname/__init__.py | 204 +++++ bin/wsdump.py | 201 +++++ json_rpc-1.12.1-py2.7.egg-info/PKG-INFO | 187 +++++ json_rpc-1.12.1-py2.7.egg-info/SOURCES.txt | 42 + .../dependency_links.txt | 1 + .../installed-files.txt | 68 ++ json_rpc-1.12.1-py2.7.egg-info/top_level.txt | 1 + jsonrpc/__init__.py | 11 + jsonrpc/backend/__init__.py | 0 jsonrpc/backend/django.py | 89 +++ jsonrpc/backend/flask.py | 85 ++ jsonrpc/base.py | 87 +++ jsonrpc/dispatcher.py | 132 ++++ jsonrpc/exceptions.py | 185 +++++ jsonrpc/jsonrpc.py | 28 + jsonrpc/jsonrpc1.py | 151 ++++ jsonrpc/jsonrpc2.py | 267 +++++++ jsonrpc/manager.py | 136 ++++ jsonrpc/six.py | 584 ++++++++++++++ jsonrpc/tests/__init__.py | 0 jsonrpc/tests/py35_utils.py | 7 + jsonrpc/tests/test_backend_django/__init__.py | 0 jsonrpc/tests/test_backend_django/settings.py | 11 + jsonrpc/tests/test_backend_django/tests.py | 89 +++ jsonrpc/tests/test_backend_django/urls.py | 7 + jsonrpc/tests/test_backend_flask/__init__.py | 0 jsonrpc/tests/test_backend_flask/tests.py | 182 +++++ jsonrpc/tests/test_base.py | 39 + jsonrpc/tests/test_bug29.py | 34 + jsonrpc/tests/test_dispatcher.py | 142 ++++ jsonrpc/tests/test_examples20.py | 206 +++++ jsonrpc/tests/test_jsonrpc.py | 1 + jsonrpc/tests/test_jsonrpc1.py | 429 +++++++++++ jsonrpc/tests/test_jsonrpc2.py | 728 ++++++++++++++++++ jsonrpc/tests/test_jsonrpc_errors.py | 150 ++++ jsonrpc/tests/test_manager.py | 175 +++++ jsonrpc/tests/test_pep3107.py | 28 + jsonrpc/tests/test_utils.py | 130 ++++ jsonrpc/utils.py | 135 ++++ websocket/__init__.py | 29 + websocket/_abnf.py | 447 +++++++++++ websocket/_app.py | 351 +++++++++ websocket/_cookiejar.py | 52 ++ websocket/_core.py | 515 +++++++++++++ websocket/_exceptions.py | 87 +++ websocket/_handshake.py | 205 +++++ websocket/_http.py | 328 ++++++++ websocket/_logging.py | 82 ++ websocket/_socket.py | 160 ++++ websocket/_ssl_compat.py | 52 ++ websocket/_url.py | 163 ++++ websocket/_utils.py | 110 +++ websocket/tests/__init__.py | 0 websocket/tests/data/header01.txt | 6 + websocket/tests/data/header02.txt | 6 + websocket/tests/test_cookiejar.py | 98 +++ websocket/tests/test_websocket.py | 662 ++++++++++++++++ .../PKG-INFO | 305 ++++++++ .../SOURCES.txt | 32 + .../dependency_links.txt | 1 + .../installed-files.txt | 40 + .../requires.txt | 2 + .../top_level.txt | 1 + 69 files changed, 8796 insertions(+) create mode 100644 backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/PKG-INFO create mode 100644 backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/SOURCES.txt create mode 100644 backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/dependency_links.txt create mode 100644 backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/installed-files.txt create mode 100644 backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/top_level.txt create mode 100644 backports/__init__.py create mode 100644 backports/ssl_match_hostname/__init__.py create mode 100755 bin/wsdump.py create mode 100644 json_rpc-1.12.1-py2.7.egg-info/PKG-INFO create mode 100644 json_rpc-1.12.1-py2.7.egg-info/SOURCES.txt create mode 100644 json_rpc-1.12.1-py2.7.egg-info/dependency_links.txt create mode 100644 json_rpc-1.12.1-py2.7.egg-info/installed-files.txt create mode 100644 json_rpc-1.12.1-py2.7.egg-info/top_level.txt create mode 100644 jsonrpc/__init__.py create mode 100644 jsonrpc/backend/__init__.py create mode 100644 jsonrpc/backend/django.py create mode 100644 jsonrpc/backend/flask.py create mode 100644 jsonrpc/base.py create mode 100644 jsonrpc/dispatcher.py create mode 100644 jsonrpc/exceptions.py create mode 100644 jsonrpc/jsonrpc.py create mode 100644 jsonrpc/jsonrpc1.py create mode 100644 jsonrpc/jsonrpc2.py create mode 100644 jsonrpc/manager.py create mode 100644 jsonrpc/six.py create mode 100644 jsonrpc/tests/__init__.py create mode 100644 jsonrpc/tests/py35_utils.py create mode 100644 jsonrpc/tests/test_backend_django/__init__.py create mode 100644 jsonrpc/tests/test_backend_django/settings.py create mode 100644 jsonrpc/tests/test_backend_django/tests.py create mode 100644 jsonrpc/tests/test_backend_django/urls.py create mode 100644 jsonrpc/tests/test_backend_flask/__init__.py create mode 100644 jsonrpc/tests/test_backend_flask/tests.py create mode 100644 jsonrpc/tests/test_base.py create mode 100644 jsonrpc/tests/test_bug29.py create mode 100644 jsonrpc/tests/test_dispatcher.py create mode 100644 jsonrpc/tests/test_examples20.py create mode 100644 jsonrpc/tests/test_jsonrpc.py create mode 100644 jsonrpc/tests/test_jsonrpc1.py create mode 100644 jsonrpc/tests/test_jsonrpc2.py create mode 100644 jsonrpc/tests/test_jsonrpc_errors.py create mode 100644 jsonrpc/tests/test_manager.py create mode 100644 jsonrpc/tests/test_pep3107.py create mode 100644 jsonrpc/tests/test_utils.py create mode 100644 jsonrpc/utils.py create mode 100644 websocket/__init__.py create mode 100644 websocket/_abnf.py create mode 100644 websocket/_app.py create mode 100644 websocket/_cookiejar.py create mode 100644 websocket/_core.py create mode 100644 websocket/_exceptions.py create mode 100644 websocket/_handshake.py create mode 100644 websocket/_http.py create mode 100644 websocket/_logging.py create mode 100644 websocket/_socket.py create mode 100644 websocket/_ssl_compat.py create mode 100644 websocket/_url.py create mode 100644 websocket/_utils.py create mode 100644 websocket/tests/__init__.py create mode 100644 websocket/tests/data/header01.txt create mode 100644 websocket/tests/data/header02.txt create mode 100644 websocket/tests/test_cookiejar.py create mode 100644 websocket/tests/test_websocket.py create mode 100644 websocket_client-0.55.0-py2.7.egg-info/PKG-INFO create mode 100644 websocket_client-0.55.0-py2.7.egg-info/SOURCES.txt create mode 100644 websocket_client-0.55.0-py2.7.egg-info/dependency_links.txt create mode 100644 websocket_client-0.55.0-py2.7.egg-info/installed-files.txt create mode 100644 websocket_client-0.55.0-py2.7.egg-info/requires.txt create mode 100644 websocket_client-0.55.0-py2.7.egg-info/top_level.txt diff --git a/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/PKG-INFO b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/PKG-INFO new file mode 100644 index 000000000..035a98f8c --- /dev/null +++ b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/PKG-INFO @@ -0,0 +1,89 @@ +Metadata-Version: 1.1 +Name: backports.ssl-match-hostname +Version: 3.7.0.1 +Summary: The ssl.match_hostname() function from Python 3.5 +Home-page: http://bitbucket.org/brandon/backports.ssl_match_hostname +Author: Toshio Kuratomi +Author-email: toshio@fedoraproject.org +License: Python Software Foundation License +Description: + The ssl.match_hostname() function from Python 3.7 + ================================================= + + The Secure Sockets Layer is only actually *secure* + if you check the hostname in the certificate returned + by the server to which you are connecting, + and verify that it matches to hostname + that you are trying to reach. + + But the matching logic, defined in `RFC2818`_, + can be a bit tricky to implement on your own. + So the ``ssl`` package in the Standard Library of Python 3.2 + and greater now includes a ``match_hostname()`` function + for performing this check instead of requiring every application + to implement the check separately. + + This backport brings ``match_hostname()`` to users + of earlier versions of Python. + Simply make this distribution a dependency of your package, + and then use it like this:: + + from backports.ssl_match_hostname import match_hostname, CertificateError + [...] + sslsock = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_SSLv23, + cert_reqs=ssl.CERT_REQUIRED, ca_certs=...) + try: + match_hostname(sslsock.getpeercert(), hostname) + except CertificateError, ce: + ... + + Brandon Craig Rhodes is merely the packager of this distribution; + the actual code inside comes from Python 3.7 with small changes for + portability. + + + Requirements + ------------ + + * If you need to use this on Python versions earlier than 2.6 you will need to + install the `ssl module`_. From Python 2.6 upwards ``ssl`` is included in + the Python Standard Library so you do not need to install it separately. + + .. _`ssl module`:: https://pypi.python.org/pypi/ssl + + History + ------- + + * This function was introduced in python-3.2 + * It was updated for python-3.4a1 for a CVE + (backports-ssl_match_hostname-3.4.0.1) + * It was updated from RFC2818 to RFC 6125 compliance in order to fix another + security flaw for python-3.3.3 and python-3.4a5 + (backports-ssl_match_hostname-3.4.0.2) + * It was updated in python-3.5 to handle IPAddresses in ServerAltName fields + (something that backports.ssl_match_hostname will do if you also install the + ipaddress library from pypi). + * It was updated in python-3.7 to handle IPAddresses without the ipaddress library and dropped + support for partial wildcards + + .. _`ipaddress module`:: https://pypi.python.org/pypi/ipaddress + + .. _RFC2818: http://tools.ietf.org/html/rfc2818.html + +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: Programming Language :: Python :: 2.4 +Classifier: Programming Language :: Python :: 2.5 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.0 +Classifier: Programming Language :: Python :: 3.1 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Topic :: Security :: Cryptography diff --git a/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/SOURCES.txt b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/SOURCES.txt new file mode 100644 index 000000000..95b961609 --- /dev/null +++ b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/SOURCES.txt @@ -0,0 +1,8 @@ +README.txt +setup.cfg +backports/__init__.py +backports.ssl_match_hostname.egg-info/PKG-INFO +backports.ssl_match_hostname.egg-info/SOURCES.txt +backports.ssl_match_hostname.egg-info/dependency_links.txt +backports.ssl_match_hostname.egg-info/top_level.txt +backports/ssl_match_hostname/__init__.py \ No newline at end of file diff --git a/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/dependency_links.txt b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/dependency_links.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/installed-files.txt b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/installed-files.txt new file mode 100644 index 000000000..fd1aae367 --- /dev/null +++ b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/installed-files.txt @@ -0,0 +1,8 @@ +../backports/__init__.py +../backports/__init__.pyc +../backports/ssl_match_hostname/__init__.py +../backports/ssl_match_hostname/__init__.pyc +PKG-INFO +SOURCES.txt +dependency_links.txt +top_level.txt diff --git a/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/top_level.txt b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/top_level.txt new file mode 100644 index 000000000..99d2be5b6 --- /dev/null +++ b/backports.ssl_match_hostname-3.7.0.1-py2.7.egg-info/top_level.txt @@ -0,0 +1 @@ +backports diff --git a/backports/__init__.py b/backports/__init__.py new file mode 100644 index 000000000..612d32836 --- /dev/null +++ b/backports/__init__.py @@ -0,0 +1,3 @@ +# This is a Python "namespace package" http://www.python.org/dev/peps/pep-0382/ +from pkgutil import extend_path +__path__ = extend_path(__path__, __name__) diff --git a/backports/ssl_match_hostname/__init__.py b/backports/ssl_match_hostname/__init__.py new file mode 100644 index 000000000..cdfef013d --- /dev/null +++ b/backports/ssl_match_hostname/__init__.py @@ -0,0 +1,204 @@ +"""The match_hostname() function from Python 3.7.0, essential when using SSL.""" + +import sys +import socket as _socket + +try: + # Divergence: Python-3.7+'s _ssl has this exception type but older Pythons do not + from _ssl import SSLCertVerificationError + CertificateError = SSLCertVerificationError +except: + class CertificateError(ValueError): + pass + + +__version__ = '3.7.0.1' + + +# Divergence: Added to deal with ipaddess as bytes on python2 +def _to_text(obj): + if isinstance(obj, str) and sys.version_info < (3,): + obj = unicode(obj, encoding='ascii', errors='strict') + elif sys.version_info >= (3,) and isinstance(obj, bytes): + obj = str(obj, encoding='ascii', errors='strict') + return obj + + +def _to_bytes(obj): + if isinstance(obj, str) and sys.version_info >= (3,): + obj = bytes(obj, encoding='ascii', errors='strict') + elif sys.version_info < (3,) and isinstance(obj, unicode): + obj = obj.encode('ascii', 'strict') + return obj + + +def _dnsname_match(dn, hostname): + """Matching according to RFC 6125, section 6.4.3 + + - Hostnames are compared lower case. + - For IDNA, both dn and hostname must be encoded as IDN A-label (ACE). + - Partial wildcards like 'www*.example.org', multiple wildcards, sole + wildcard or wildcards in labels other then the left-most label are not + supported and a CertificateError is raised. + - A wildcard must match at least one character. + """ + if not dn: + return False + + wildcards = dn.count('*') + # speed up common case w/o wildcards + if not wildcards: + return dn.lower() == hostname.lower() + + if wildcards > 1: + # Divergence .format() to percent formatting for Python < 2.6 + raise CertificateError( + "too many wildcards in certificate DNS name: %s" % repr(dn)) + + dn_leftmost, sep, dn_remainder = dn.partition('.') + + if '*' in dn_remainder: + # Only match wildcard in leftmost segment. + # Divergence .format() to percent formatting for Python < 2.6 + raise CertificateError( + "wildcard can only be present in the leftmost label: " + "%s." % repr(dn)) + + if not sep: + # no right side + # Divergence .format() to percent formatting for Python < 2.6 + raise CertificateError( + "sole wildcard without additional labels are not support: " + "%s." % repr(dn)) + + if dn_leftmost != '*': + # no partial wildcard matching + # Divergence .format() to percent formatting for Python < 2.6 + raise CertificateError( + "partial wildcards in leftmost label are not supported: " + "%s." % repr(dn)) + + hostname_leftmost, sep, hostname_remainder = hostname.partition('.') + if not hostname_leftmost or not sep: + # wildcard must match at least one char + return False + return dn_remainder.lower() == hostname_remainder.lower() + + +def _inet_paton(ipname): + """Try to convert an IP address to packed binary form + + Supports IPv4 addresses on all platforms and IPv6 on platforms with IPv6 + support. + """ + # inet_aton() also accepts strings like '1' + # Divergence: We make sure we have native string type for all python versions + try: + b_ipname = _to_bytes(ipname) + except UnicodeError: + raise ValueError("%s must be an all-ascii string." % repr(ipname)) + + # Set ipname in native string format + if sys.version_info < (3,): + n_ipname = b_ipname + else: + n_ipname = ipname + + if n_ipname.count('.') == 3: + try: + return _socket.inet_aton(n_ipname) + # Divergence: OSError on late python3. socket.error earlier. + # Null bytes generate ValueError on python3(we want to raise + # ValueError anyway), TypeError # earlier + except (OSError, _socket.error, TypeError): + pass + + try: + return _socket.inet_pton(_socket.AF_INET6, n_ipname) + # Divergence: OSError on late python3. socket.error earlier. + # Null bytes generate ValueError on python3(we want to raise + # ValueError anyway), TypeError # earlier + except (OSError, _socket.error, TypeError): + # Divergence .format() to percent formatting for Python < 2.6 + raise ValueError("%s is neither an IPv4 nor an IP6 " + "address." % repr(ipname)) + except AttributeError: + # AF_INET6 not available + pass + + # Divergence .format() to percent formatting for Python < 2.6 + raise ValueError("%s is not an IPv4 address." % repr(ipname)) + + +def _ipaddress_match(ipname, host_ip): + """Exact matching of IP addresses. + + RFC 6125 explicitly doesn't define an algorithm for this + (section 1.7.2 - "Out of Scope"). + """ + # OpenSSL may add a trailing newline to a subjectAltName's IP address + ip = _inet_paton(ipname.rstrip()) + return ip == host_ip + + +def match_hostname(cert, hostname): + """Verify that *cert* (in decoded format as returned by + SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 + rules are followed. + + The function matches IP addresses rather than dNSNames if hostname is a + valid ipaddress string. IPv4 addresses are supported on all platforms. + IPv6 addresses are supported on platforms with IPv6 support (AF_INET6 + and inet_pton). + + CertificateError is raised on failure. On success, the function + returns nothing. + """ + if not cert: + raise ValueError("empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED") + try: + # Divergence: Deal with hostname as bytes + host_ip = _inet_paton(_to_text(hostname)) + except ValueError: + # Not an IP address (common case) + host_ip = None + except UnicodeError: + # Divergence: Deal with hostname as byte strings. + # IP addresses should be all ascii, so we consider it not + # an IP address if this fails + host_ip = None + dnsnames = [] + san = cert.get('subjectAltName', ()) + for key, value in san: + if key == 'DNS': + if host_ip is None and _dnsname_match(value, hostname): + return + dnsnames.append(value) + elif key == 'IP Address': + if host_ip is not None and _ipaddress_match(value, host_ip): + return + dnsnames.append(value) + if not dnsnames: + # The subject is only checked when there is no dNSName entry + # in subjectAltName + for sub in cert.get('subject', ()): + for key, value in sub: + # XXX according to RFC 2818, the most specific Common Name + # must be used. + if key == 'commonName': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if len(dnsnames) > 1: + raise CertificateError("hostname %r " + "doesn't match either of %s" + % (hostname, ', '.join(map(repr, dnsnames)))) + elif len(dnsnames) == 1: + raise CertificateError("hostname %r " + "doesn't match %r" + % (hostname, dnsnames[0])) + else: + raise CertificateError("no appropriate commonName or " + "subjectAltName fields were found") diff --git a/bin/wsdump.py b/bin/wsdump.py new file mode 100755 index 000000000..246d15050 --- /dev/null +++ b/bin/wsdump.py @@ -0,0 +1,201 @@ +#!/usr/local/bin/python + +import argparse +import code +import sys +import threading +import time +import ssl + +import six +from six.moves.urllib.parse import urlparse + +import websocket + +try: + import readline +except ImportError: + pass + + +def get_encoding(): + encoding = getattr(sys.stdin, "encoding", "") + if not encoding: + return "utf-8" + else: + return encoding.lower() + + +OPCODE_DATA = (websocket.ABNF.OPCODE_TEXT, websocket.ABNF.OPCODE_BINARY) +ENCODING = get_encoding() + + +class VAction(argparse.Action): + + def __call__(self, parser, args, values, option_string=None): + if values is None: + values = "1" + try: + values = int(values) + except ValueError: + values = values.count("v") + 1 + setattr(args, self.dest, values) + + +def parse_args(): + parser = argparse.ArgumentParser(description="WebSocket Simple Dump Tool") + parser.add_argument("url", metavar="ws_url", + help="websocket url. ex. ws://echo.websocket.org/") + parser.add_argument("-p", "--proxy", + help="proxy url. ex. http://127.0.0.1:8080") + parser.add_argument("-v", "--verbose", default=0, nargs='?', action=VAction, + dest="verbose", + help="set verbose mode. If set to 1, show opcode. " + "If set to 2, enable to trace websocket module") + parser.add_argument("-n", "--nocert", action='store_true', + help="Ignore invalid SSL cert") + parser.add_argument("-r", "--raw", action="store_true", + help="raw output") + parser.add_argument("-s", "--subprotocols", nargs='*', + help="Set subprotocols") + parser.add_argument("-o", "--origin", + help="Set origin") + parser.add_argument("--eof-wait", default=0, type=int, + help="wait time(second) after 'EOF' received.") + parser.add_argument("-t", "--text", + help="Send initial text") + parser.add_argument("--timings", action="store_true", + help="Print timings in seconds") + parser.add_argument("--headers", + help="Set custom headers. Use ',' as separator") + + return parser.parse_args() + + +class RawInput: + + def raw_input(self, prompt): + if six.PY3: + line = input(prompt) + else: + line = raw_input(prompt) + + if ENCODING and ENCODING != "utf-8" and not isinstance(line, six.text_type): + line = line.decode(ENCODING).encode("utf-8") + elif isinstance(line, six.text_type): + line = line.encode("utf-8") + + return line + + +class InteractiveConsole(RawInput, code.InteractiveConsole): + + def write(self, data): + sys.stdout.write("\033[2K\033[E") + # sys.stdout.write("\n") + sys.stdout.write("\033[34m< " + data + "\033[39m") + sys.stdout.write("\n> ") + sys.stdout.flush() + + def read(self): + return self.raw_input("> ") + + +class NonInteractive(RawInput): + + def write(self, data): + sys.stdout.write(data) + sys.stdout.write("\n") + sys.stdout.flush() + + def read(self): + return self.raw_input("") + + +def main(): + start_time = time.time() + args = parse_args() + if args.verbose > 1: + websocket.enableTrace(True) + options = {} + if args.proxy: + p = urlparse(args.proxy) + options["http_proxy_host"] = p.hostname + options["http_proxy_port"] = p.port + if args.origin: + options["origin"] = args.origin + if args.subprotocols: + options["subprotocols"] = args.subprotocols + opts = {} + if args.nocert: + opts = {"cert_reqs": ssl.CERT_NONE, "check_hostname": False} + if args.headers: + options['header'] = map(str.strip, args.headers.split(',')) + ws = websocket.create_connection(args.url, sslopt=opts, **options) + if args.raw: + console = NonInteractive() + else: + console = InteractiveConsole() + print("Press Ctrl+C to quit") + + def recv(): + try: + frame = ws.recv_frame() + except websocket.WebSocketException: + return websocket.ABNF.OPCODE_CLOSE, None + if not frame: + raise websocket.WebSocketException("Not a valid frame %s" % frame) + elif frame.opcode in OPCODE_DATA: + return frame.opcode, frame.data + elif frame.opcode == websocket.ABNF.OPCODE_CLOSE: + ws.send_close() + return frame.opcode, None + elif frame.opcode == websocket.ABNF.OPCODE_PING: + ws.pong(frame.data) + return frame.opcode, frame.data + + return frame.opcode, frame.data + + def recv_ws(): + while True: + opcode, data = recv() + msg = None + if six.PY3 and opcode == websocket.ABNF.OPCODE_TEXT and isinstance(data, bytes): + data = str(data, "utf-8") + if not args.verbose and opcode in OPCODE_DATA: + msg = data + elif args.verbose: + msg = "%s: %s" % (websocket.ABNF.OPCODE_MAP.get(opcode), data) + + if msg is not None: + if args.timings: + console.write(str(time.time() - start_time) + ": " + msg) + else: + console.write(msg) + + if opcode == websocket.ABNF.OPCODE_CLOSE: + break + + thread = threading.Thread(target=recv_ws) + thread.daemon = True + thread.start() + + if args.text: + ws.send(args.text) + + while True: + try: + message = console.read() + ws.send(message) + except KeyboardInterrupt: + return + except EOFError: + time.sleep(args.eof_wait) + return + + +if __name__ == "__main__": + try: + main() + except Exception as e: + print(e) diff --git a/json_rpc-1.12.1-py2.7.egg-info/PKG-INFO b/json_rpc-1.12.1-py2.7.egg-info/PKG-INFO new file mode 100644 index 000000000..c185d0b73 --- /dev/null +++ b/json_rpc-1.12.1-py2.7.egg-info/PKG-INFO @@ -0,0 +1,187 @@ +Metadata-Version: 1.1 +Name: json-rpc +Version: 1.12.1 +Summary: JSON-RPC transport implementation +Home-page: https://github.com/pavlov99/json-rpc +Author: Kirill Pavlov +Author-email: k@p99.io +License: MIT +Description: json-rpc + ======== + + .. image:: https://circleci.com/gh/pavlov99/json-rpc/tree/master.svg?style=svg + :target: https://circleci.com/gh/pavlov99/json-rpc/tree/master + :alt: Build Status + + .. image:: https://codecov.io/gh/pavlov99/json-rpc/branch/master/graph/badge.svg + :target: https://codecov.io/gh/pavlov99/json-rpc + :alt: Coverage Status + + .. image:: https://readthedocs.org/projects/json-rpc/badge/?version=latest + :target: http://json-rpc.readthedocs.io/en/latest/?badge=latest + + .. image:: https://img.shields.io/pypi/v/json-rpc.svg + :target: https://pypi.org/project/json-rpc/ + :alt: Latest PyPI version + + .. image:: https://img.shields.io/pypi/pyversions/json-rpc.svg + :target: https://pypi.org/project/json-rpc/ + :alt: Supported Python versions + + .. image:: https://badges.gitter.im/pavlov99/json-rpc.svg + :target: https://gitter.im/pavlov99/json-rpc + :alt: Gitter + + + .. image:: https://opencollective.com/json-rpc/tiers/backer/badge.svg?label=backer&color=brightgreen + :target: https://opencollective.com/json-rpc + :alt: Bakers + + .. image:: https://opencollective.com/json-rpc/tiers/backer/badge.svg?label=sponsor&color=brightgreen + :target: https://opencollective.com/json-rpc + :alt: Sponsors + + `JSON-RPC2.0 `_ and `JSON-RPC1.0 `_ transport specification implementation. + Supports Python 2.6+, Python 3.3+, PyPy. Has optional Django and Flask support. 200+ tests. + + Features + -------- + + This implementation does not have any transport functionality realization, only protocol. + Any client or server implementation is easy based on current code, but requires transport libraries, such as requests, gevent or zmq, see `examples `_. + + - Vanilla Python, no dependencies. + - 200+ tests for multiple edge cases. + - Optional backend support for Django, Flask. + - json-rpc 1.1 and 2.0 support. + + Install + ------- + + .. code-block:: python + + pip install json-rpc + + Tests + ----- + + Quickstart + ^^^^^^^^^^ + This is an essential part of the library as there are a lot of edge cases in JSON-RPC standard. To manage a variety of supported python versions as well as optional backends json-rpc uses `tox`: + + .. code-block:: bash + + tox + + .. TIP:: + During local development use your python version with tox runner. For example, if your are using Python 3.6 run `tox -e py36`. It is easier to develop functionality for specific version first and then expands it to all of the supported versions. + + Continuous integration + ^^^^^^^^^^^^^^^^^^^^^^ + This project uses `CircleCI `_ for continuous integration. All of the python supported versions are managed via `tox.ini` and `.circleci/config.yml` files. Master branch test status is displayed on the badge in the beginning of this document. + + Test matrix + ^^^^^^^^^^^ + json-rpc supports multiple python versions: 2.6+, 3.3+, pypy. This introduces difficulties with testing libraries and optional dependencies management. For example, python before version 3.3 does not support `mock` and there is a limited support for `unittest2`. Every dependency translates into *if-then* blocks in the source code and adds complexity to it. Hence, while cross-python support is a core feature of this library, cross-Django or cross-Flask support is limited. In general, json-rpc uses latest stable release which supports current python version. For example, python 2.6 is compatible with Django 1.6 and not compatible with any future versions. + + Below is a testing matrix: + + +--------+-------+-----------+--------+--------+ + | Python | mock | unittest | Django | Flask | + +========+=======+===========+========+========+ + | 2.6 | 2.0.0 | unittest2 | 1.6 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | 2.7 | 2.0.0 | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | 3.3 | | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | 3.4 | | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | 3.5 | | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | 3.6 | | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | pypy | 2.0.0 | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + | pypy3 | | | 1.11 | 0.12.2 | + +--------+-------+-----------+--------+--------+ + + Quickstart + ---------- + Server (uses `Werkzeug `_) + + .. code-block:: python + + from werkzeug.wrappers import Request, Response + from werkzeug.serving import run_simple + + from jsonrpc import JSONRPCResponseManager, dispatcher + + + @dispatcher.add_method + def foobar(**kwargs): + return kwargs["foo"] + kwargs["bar"] + + + @Request.application + def application(request): + # Dispatcher is dictionary {: callable} + dispatcher["echo"] = lambda s: s + dispatcher["add"] = lambda a, b: a + b + + response = JSONRPCResponseManager.handle( + request.data, dispatcher) + return Response(response.json, mimetype='application/json') + + + if __name__ == '__main__': + run_simple('localhost', 4000, application) + + Client (uses `requests `_) + + .. code-block:: python + + import requests + import json + + + def main(): + url = "http://localhost:4000/jsonrpc" + headers = {'content-type': 'application/json'} + + # Example echo method + payload = { + "method": "echo", + "params": ["echome!"], + "jsonrpc": "2.0", + "id": 0, + } + response = requests.post( + url, data=json.dumps(payload), headers=headers).json() + + assert response["result"] == "echome!" + assert response["jsonrpc"] + assert response["id"] == 0 + + if __name__ == "__main__": + main() + + Competitors + ----------- + There are `several libraries `_ implementing JSON-RPC protocol. List below represents python libraries, none of the supports python3. tinyrpc looks better than others. + +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Console +Classifier: License :: OSI Approved :: MIT License +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules diff --git a/json_rpc-1.12.1-py2.7.egg-info/SOURCES.txt b/json_rpc-1.12.1-py2.7.egg-info/SOURCES.txt new file mode 100644 index 000000000..87d35af62 --- /dev/null +++ b/json_rpc-1.12.1-py2.7.egg-info/SOURCES.txt @@ -0,0 +1,42 @@ +LICENSE.txt +MANIFEST.in +README.rst +get-pip.py +setup.cfg +setup.py +json_rpc.egg-info/PKG-INFO +json_rpc.egg-info/SOURCES.txt +json_rpc.egg-info/dependency_links.txt +json_rpc.egg-info/top_level.txt +jsonrpc/__init__.py +jsonrpc/base.py +jsonrpc/dispatcher.py +jsonrpc/exceptions.py +jsonrpc/jsonrpc.py +jsonrpc/jsonrpc1.py +jsonrpc/jsonrpc2.py +jsonrpc/manager.py +jsonrpc/six.py +jsonrpc/utils.py +jsonrpc/backend/__init__.py +jsonrpc/backend/django.py +jsonrpc/backend/flask.py +jsonrpc/tests/__init__.py +jsonrpc/tests/py35_utils.py +jsonrpc/tests/test_base.py +jsonrpc/tests/test_bug29.py +jsonrpc/tests/test_dispatcher.py +jsonrpc/tests/test_examples20.py +jsonrpc/tests/test_jsonrpc.py +jsonrpc/tests/test_jsonrpc1.py +jsonrpc/tests/test_jsonrpc2.py +jsonrpc/tests/test_jsonrpc_errors.py +jsonrpc/tests/test_manager.py +jsonrpc/tests/test_pep3107.py +jsonrpc/tests/test_utils.py +jsonrpc/tests/test_backend_django/__init__.py +jsonrpc/tests/test_backend_django/settings.py +jsonrpc/tests/test_backend_django/tests.py +jsonrpc/tests/test_backend_django/urls.py +jsonrpc/tests/test_backend_flask/__init__.py +jsonrpc/tests/test_backend_flask/tests.py \ No newline at end of file diff --git a/json_rpc-1.12.1-py2.7.egg-info/dependency_links.txt b/json_rpc-1.12.1-py2.7.egg-info/dependency_links.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/json_rpc-1.12.1-py2.7.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/json_rpc-1.12.1-py2.7.egg-info/installed-files.txt b/json_rpc-1.12.1-py2.7.egg-info/installed-files.txt new file mode 100644 index 000000000..e0a921633 --- /dev/null +++ b/json_rpc-1.12.1-py2.7.egg-info/installed-files.txt @@ -0,0 +1,68 @@ +../jsonrpc/__init__.py +../jsonrpc/__init__.pyc +../jsonrpc/backend/__init__.py +../jsonrpc/backend/__init__.pyc +../jsonrpc/backend/django.py +../jsonrpc/backend/django.pyc +../jsonrpc/backend/flask.py +../jsonrpc/backend/flask.pyc +../jsonrpc/base.py +../jsonrpc/base.pyc +../jsonrpc/dispatcher.py +../jsonrpc/dispatcher.pyc +../jsonrpc/exceptions.py +../jsonrpc/exceptions.pyc +../jsonrpc/jsonrpc.py +../jsonrpc/jsonrpc.pyc +../jsonrpc/jsonrpc1.py +../jsonrpc/jsonrpc1.pyc +../jsonrpc/jsonrpc2.py +../jsonrpc/jsonrpc2.pyc +../jsonrpc/manager.py +../jsonrpc/manager.pyc +../jsonrpc/six.py +../jsonrpc/six.pyc +../jsonrpc/tests/__init__.py +../jsonrpc/tests/__init__.pyc +../jsonrpc/tests/py35_utils.py +../jsonrpc/tests/py35_utils.pyc +../jsonrpc/tests/test_backend_django/__init__.py +../jsonrpc/tests/test_backend_django/__init__.pyc +../jsonrpc/tests/test_backend_django/settings.py +../jsonrpc/tests/test_backend_django/settings.pyc +../jsonrpc/tests/test_backend_django/tests.py +../jsonrpc/tests/test_backend_django/tests.pyc +../jsonrpc/tests/test_backend_django/urls.py +../jsonrpc/tests/test_backend_django/urls.pyc +../jsonrpc/tests/test_backend_flask/__init__.py +../jsonrpc/tests/test_backend_flask/__init__.pyc +../jsonrpc/tests/test_backend_flask/tests.py +../jsonrpc/tests/test_backend_flask/tests.pyc +../jsonrpc/tests/test_base.py +../jsonrpc/tests/test_base.pyc +../jsonrpc/tests/test_bug29.py +../jsonrpc/tests/test_bug29.pyc +../jsonrpc/tests/test_dispatcher.py +../jsonrpc/tests/test_dispatcher.pyc +../jsonrpc/tests/test_examples20.py +../jsonrpc/tests/test_examples20.pyc +../jsonrpc/tests/test_jsonrpc.py +../jsonrpc/tests/test_jsonrpc.pyc +../jsonrpc/tests/test_jsonrpc1.py +../jsonrpc/tests/test_jsonrpc1.pyc +../jsonrpc/tests/test_jsonrpc2.py +../jsonrpc/tests/test_jsonrpc2.pyc +../jsonrpc/tests/test_jsonrpc_errors.py +../jsonrpc/tests/test_jsonrpc_errors.pyc +../jsonrpc/tests/test_manager.py +../jsonrpc/tests/test_manager.pyc +../jsonrpc/tests/test_pep3107.py +../jsonrpc/tests/test_pep3107.pyc +../jsonrpc/tests/test_utils.py +../jsonrpc/tests/test_utils.pyc +../jsonrpc/utils.py +../jsonrpc/utils.pyc +PKG-INFO +SOURCES.txt +dependency_links.txt +top_level.txt diff --git a/json_rpc-1.12.1-py2.7.egg-info/top_level.txt b/json_rpc-1.12.1-py2.7.egg-info/top_level.txt new file mode 100644 index 000000000..1d0ccdd1d --- /dev/null +++ b/json_rpc-1.12.1-py2.7.egg-info/top_level.txt @@ -0,0 +1 @@ +jsonrpc diff --git a/jsonrpc/__init__.py b/jsonrpc/__init__.py new file mode 100644 index 000000000..a4095b933 --- /dev/null +++ b/jsonrpc/__init__.py @@ -0,0 +1,11 @@ +from .manager import JSONRPCResponseManager +from .dispatcher import Dispatcher + +__version = (1, 12, 1) + +__version__ = version = '.'.join(map(str, __version)) +__project__ = PROJECT = __name__ + +dispatcher = Dispatcher() + +# lint_ignore=W0611,W0401 diff --git a/jsonrpc/backend/__init__.py b/jsonrpc/backend/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/jsonrpc/backend/django.py b/jsonrpc/backend/django.py new file mode 100644 index 000000000..5357fb003 --- /dev/null +++ b/jsonrpc/backend/django.py @@ -0,0 +1,89 @@ +from __future__ import absolute_import + +from django.views.decorators.csrf import csrf_exempt +from django.conf.urls import url +from django.conf import settings +from django.http import HttpResponse, HttpResponseNotAllowed +import copy +import json +import logging +import time + +from ..exceptions import JSONRPCInvalidRequestException +from ..jsonrpc import JSONRPCRequest +from ..manager import JSONRPCResponseManager +from ..utils import DatetimeDecimalEncoder +from ..dispatcher import Dispatcher + + +logger = logging.getLogger(__name__) + + +def response_serialize(obj): + """ Serializes response's data object to JSON. """ + return json.dumps(obj, cls=DatetimeDecimalEncoder) + + +class JSONRPCAPI(object): + def __init__(self, dispatcher=None): + self.dispatcher = dispatcher if dispatcher is not None \ + else Dispatcher() + + @property + def urls(self): + urls = [ + url(r'^$', self.jsonrpc, name='endpoint'), + ] + + if getattr(settings, 'JSONRPC_MAP_VIEW_ENABLED', settings.DEBUG): + urls.append( + url(r'^map$', self.jsonrpc_map, name='map') + ) + + return urls + + @csrf_exempt + def jsonrpc(self, request): + """ JSON-RPC 2.0 handler.""" + if request.method != "POST": + return HttpResponseNotAllowed(["POST"]) + + request_str = request.body.decode('utf8') + try: + jsonrpc_request = JSONRPCRequest.from_json(request_str) + except (TypeError, ValueError, JSONRPCInvalidRequestException): + response = JSONRPCResponseManager.handle( + request_str, self.dispatcher) + else: + jsonrpc_request.params = jsonrpc_request.params or {} + jsonrpc_request_params = copy.copy(jsonrpc_request.params) + if isinstance(jsonrpc_request.params, dict): + jsonrpc_request.params.update(request=request) + + t1 = time.time() + response = JSONRPCResponseManager.handle_request( + jsonrpc_request, self.dispatcher) + t2 = time.time() + logger.info('{0}({1}) {2:.2f} sec'.format( + jsonrpc_request.method, jsonrpc_request_params, t2 - t1)) + + if response: + response.serialize = response_serialize + response = response.json + + return HttpResponse(response, content_type="application/json") + + def jsonrpc_map(self, request): + """ Map of json-rpc available calls. + + :return str: + + """ + result = "

JSON-RPC map

{0}
".format("\n\n".join([ + "{0}: {1}".format(fname, f.__doc__) + for fname, f in self.dispatcher.items() + ])) + return HttpResponse(result) + + +api = JSONRPCAPI() diff --git a/jsonrpc/backend/flask.py b/jsonrpc/backend/flask.py new file mode 100644 index 000000000..133752ceb --- /dev/null +++ b/jsonrpc/backend/flask.py @@ -0,0 +1,85 @@ +from __future__ import absolute_import + +import copy +import json +import logging +import time +from uuid import uuid4 + +from flask import Blueprint, request, Response + +from ..exceptions import JSONRPCInvalidRequestException +from ..jsonrpc import JSONRPCRequest +from ..manager import JSONRPCResponseManager +from ..utils import DatetimeDecimalEncoder +from ..dispatcher import Dispatcher + + +logger = logging.getLogger(__name__) + + +class JSONRPCAPI(object): + def __init__(self, dispatcher=None, check_content_type=True): + """ + + :param dispatcher: methods dispatcher + :param check_content_type: if True - content-type must be + "application/json" + :return: + + """ + self.dispatcher = dispatcher if dispatcher is not None \ + else Dispatcher() + self.check_content_type = check_content_type + + def as_blueprint(self, name=None): + blueprint = Blueprint(name if name else str(uuid4()), __name__) + blueprint.add_url_rule( + '/', view_func=self.jsonrpc, methods=['POST']) + blueprint.add_url_rule( + '/map', view_func=self.jsonrpc_map, methods=['GET']) + return blueprint + + def as_view(self): + return self.jsonrpc + + def jsonrpc(self): + request_str = self._get_request_str() + try: + jsonrpc_request = JSONRPCRequest.from_json(request_str) + except (TypeError, ValueError, JSONRPCInvalidRequestException): + response = JSONRPCResponseManager.handle( + request_str, self.dispatcher) + else: + response = JSONRPCResponseManager.handle_request( + jsonrpc_request, self.dispatcher) + + if response: + response.serialize = self._serialize + response = response.json + + return Response(response, content_type="application/json") + + def jsonrpc_map(self): + """ Map of json-rpc available calls. + + :return str: + + """ + result = "

JSON-RPC map

{0}
".format("\n\n".join([ + "{0}: {1}".format(fname, f.__doc__) + for fname, f in self.dispatcher.items() + ])) + return Response(result) + + def _get_request_str(self): + if self.check_content_type or request.data: + return request.data + return list(request.form.keys())[0] + + @staticmethod + def _serialize(s): + return json.dumps(s, cls=DatetimeDecimalEncoder) + + +api = JSONRPCAPI() diff --git a/jsonrpc/base.py b/jsonrpc/base.py new file mode 100644 index 000000000..f9d419673 --- /dev/null +++ b/jsonrpc/base.py @@ -0,0 +1,87 @@ +from .utils import JSONSerializable + + +class JSONRPCBaseRequest(JSONSerializable): + + """ Base class for JSON-RPC 1.0 and JSON-RPC 2.0 requests.""" + + def __init__(self, method=None, params=None, _id=None, + is_notification=None): + self.data = dict() + self.method = method + self.params = params + self._id = _id + self.is_notification = is_notification + + @property + def data(self): + return self._data + + @data.setter + def data(self, value): + if not isinstance(value, dict): + raise ValueError("data should be dict") + + self._data = value + + @property + def args(self): + """ Method position arguments. + + :return tuple args: method position arguments. + + """ + return tuple(self.params) if isinstance(self.params, list) else () + + @property + def kwargs(self): + """ Method named arguments. + + :return dict kwargs: method named arguments. + + """ + return self.params if isinstance(self.params, dict) else {} + + @property + def json(self): + return self.serialize(self.data) + + +class JSONRPCBaseResponse(JSONSerializable): + + """ Base class for JSON-RPC 1.0 and JSON-RPC 2.0 responses.""" + + def __init__(self, **kwargs): + self.data = dict() + + try: + self.result = kwargs['result'] + except KeyError: + pass + + try: + self.error = kwargs['error'] + except KeyError: + pass + + self._id = kwargs.get('_id') + + if 'result' not in kwargs and 'error' not in kwargs: + raise ValueError("Either result or error should be used") + + self.request = None # type: JSONRPCBaseRequest + + @property + def data(self): + return self._data + + @data.setter + def data(self, value): + if not isinstance(value, dict): + raise ValueError("data should be dict") + + self._data = value + + @property + def json(self): + return self.serialize(self.data) diff --git a/jsonrpc/dispatcher.py b/jsonrpc/dispatcher.py new file mode 100644 index 000000000..94e7635e9 --- /dev/null +++ b/jsonrpc/dispatcher.py @@ -0,0 +1,132 @@ +""" Dispatcher is used to add methods (functions) to the server. + +For usage examples see :meth:`Dispatcher.add_method` + +""" +import functools +import collections + + +class Dispatcher(collections.MutableMapping): + + """ Dictionary like object which maps method_name to method.""" + + def __init__(self, prototype=None): + """ Build method dispatcher. + + Parameters + ---------- + prototype : object or dict, optional + Initial method mapping. + + Examples + -------- + + Init object with method dictionary. + + >>> Dispatcher({"sum": lambda a, b: a + b}) + None + + """ + self.method_map = dict() + + if prototype is not None: + self.build_method_map(prototype) + + def __getitem__(self, key): + return self.method_map[key] + + def __setitem__(self, key, value): + self.method_map[key] = value + + def __delitem__(self, key): + del self.method_map[key] + + def __len__(self): + return len(self.method_map) + + def __iter__(self): + return iter(self.method_map) + + def __repr__(self): + return repr(self.method_map) + + def add_class(self, cls): + prefix = cls.__name__.lower() + '.' + self.build_method_map(cls(), prefix) + + def add_object(self, obj): + prefix = obj.__class__.__name__.lower() + '.' + self.build_method_map(obj, prefix) + + def add_dict(self, dict, prefix=''): + if prefix: + prefix += '.' + self.build_method_map(dict, prefix) + + def add_method(self, f=None, name=None): + """ Add a method to the dispatcher. + + Parameters + ---------- + f : callable + Callable to be added. + name : str, optional + Name to register (the default is function **f** name) + + Notes + ----- + When used as a decorator keeps callable object unmodified. + + Examples + -------- + + Use as method + + >>> d = Dispatcher() + >>> d.add_method(lambda a, b: a + b, name="sum") + > + + Or use as decorator + + >>> d = Dispatcher() + >>> @d.add_method + def mymethod(*args, **kwargs): + print(args, kwargs) + + Or use as a decorator with a different function name + >>> d = Dispatcher() + >>> @d.add_method(name="my.method") + def mymethod(*args, **kwargs): + print(args, kwargs) + + """ + if name and not f: + return functools.partial(self.add_method, name=name) + + self.method_map[name or f.__name__] = f + return f + + def build_method_map(self, prototype, prefix=''): + """ Add prototype methods to the dispatcher. + + Parameters + ---------- + prototype : object or dict + Initial method mapping. + If given prototype is a dictionary then all callable objects will + be added to dispatcher. + If given prototype is an object then all public methods will + be used. + prefix: string, optional + Prefix of methods + + """ + if not isinstance(prototype, dict): + prototype = dict((method, getattr(prototype, method)) + for method in dir(prototype) + if not method.startswith('_')) + + for attr, method in prototype.items(): + if callable(method): + self[prefix + attr] = method diff --git a/jsonrpc/exceptions.py b/jsonrpc/exceptions.py new file mode 100644 index 000000000..175ba9248 --- /dev/null +++ b/jsonrpc/exceptions.py @@ -0,0 +1,185 @@ +""" JSON-RPC Exceptions.""" +from . import six +import json + + +class JSONRPCError(object): + + """ Error for JSON-RPC communication. + + When a rpc call encounters an error, the Response Object MUST contain the + error member with a value that is a Object with the following members: + + Parameters + ---------- + code: int + A Number that indicates the error type that occurred. + This MUST be an integer. + The error codes from and including -32768 to -32000 are reserved for + pre-defined errors. Any code within this range, but not defined + explicitly below is reserved for future use. The error codes are nearly + the same as those suggested for XML-RPC at the following + url: http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php + + message: str + A String providing a short description of the error. + The message SHOULD be limited to a concise single sentence. + + data: int or str or dict or list, optional + A Primitive or Structured value that contains additional + information about the error. + This may be omitted. + The value of this member is defined by the Server (e.g. detailed error + information, nested errors etc.). + + """ + + serialize = staticmethod(json.dumps) + deserialize = staticmethod(json.loads) + + def __init__(self, code=None, message=None, data=None): + self._data = dict() + self.code = getattr(self.__class__, "CODE", code) + self.message = getattr(self.__class__, "MESSAGE", message) + self.data = data + + def __get_code(self): + return self._data["code"] + + def __set_code(self, value): + if not isinstance(value, six.integer_types): + raise ValueError("Error code should be integer") + + self._data["code"] = value + + code = property(__get_code, __set_code) + + def __get_message(self): + return self._data["message"] + + def __set_message(self, value): + if not isinstance(value, six.string_types): + raise ValueError("Error message should be string") + + self._data["message"] = value + + message = property(__get_message, __set_message) + + def __get_data(self): + return self._data.get("data") + + def __set_data(self, value): + if value is not None: + self._data["data"] = value + + data = property(__get_data, __set_data) + + @classmethod + def from_json(cls, json_str): + data = cls.deserialize(json_str) + return cls( + code=data["code"], message=data["message"], data=data.get("data")) + + @property + def json(self): + return self.serialize(self._data) + + +class JSONRPCParseError(JSONRPCError): + + """ Parse Error. + + Invalid JSON was received by the server. + An error occurred on the server while parsing the JSON text. + + """ + + CODE = -32700 + MESSAGE = "Parse error" + + +class JSONRPCInvalidRequest(JSONRPCError): + + """ Invalid Request. + + The JSON sent is not a valid Request object. + + """ + + CODE = -32600 + MESSAGE = "Invalid Request" + + +class JSONRPCMethodNotFound(JSONRPCError): + + """ Method not found. + + The method does not exist / is not available. + + """ + + CODE = -32601 + MESSAGE = "Method not found" + + +class JSONRPCInvalidParams(JSONRPCError): + + """ Invalid params. + + Invalid method parameter(s). + + """ + + CODE = -32602 + MESSAGE = "Invalid params" + + +class JSONRPCInternalError(JSONRPCError): + + """ Internal error. + + Internal JSON-RPC error. + + """ + + CODE = -32603 + MESSAGE = "Internal error" + + +class JSONRPCServerError(JSONRPCError): + + """ Server error. + + Reserved for implementation-defined server-errors. + + """ + + CODE = -32000 + MESSAGE = "Server error" + + +class JSONRPCException(Exception): + + """ JSON-RPC Exception.""" + + pass + + +class JSONRPCInvalidRequestException(JSONRPCException): + + """ Request is not valid.""" + + pass + + +class JSONRPCDispatchException(JSONRPCException): + + """ JSON-RPC Dispatch Exception. + + Should be thrown in dispatch methods. + + """ + + def __init__(self, code=None, message=None, data=None, *args, **kwargs): + super(JSONRPCDispatchException, self).__init__(args, kwargs) + self.error = JSONRPCError(code=code, data=data, message=message) diff --git a/jsonrpc/jsonrpc.py b/jsonrpc/jsonrpc.py new file mode 100644 index 000000000..f02126e2f --- /dev/null +++ b/jsonrpc/jsonrpc.py @@ -0,0 +1,28 @@ +""" JSON-RPC wrappers for version 1.0 and 2.0. + +Objects diring init operation try to choose JSON-RPC 2.0 and in case of error +JSON-RPC 1.0. +from_json methods could decide what format is it by presence of 'jsonrpc' +attribute. + +""" +from .utils import JSONSerializable +from .jsonrpc1 import JSONRPC10Request +from .jsonrpc2 import JSONRPC20Request + + +class JSONRPCRequest(JSONSerializable): + + """ JSONRPC Request.""" + + @classmethod + def from_json(cls, json_str): + data = cls.deserialize(json_str) + return cls.from_data(data) + + @classmethod + def from_data(cls, data): + if isinstance(data, dict) and "jsonrpc" not in data: + return JSONRPC10Request.from_data(data) + else: + return JSONRPC20Request.from_data(data) diff --git a/jsonrpc/jsonrpc1.py b/jsonrpc/jsonrpc1.py new file mode 100644 index 000000000..3fcbe9bf6 --- /dev/null +++ b/jsonrpc/jsonrpc1.py @@ -0,0 +1,151 @@ +from . import six + +from .base import JSONRPCBaseRequest, JSONRPCBaseResponse +from .exceptions import JSONRPCInvalidRequestException, JSONRPCError + + +class JSONRPC10Request(JSONRPCBaseRequest): + + """ JSON-RPC 1.0 Request. + + A remote method is invoked by sending a request to a remote service. + The request is a single object serialized using json. + + :param str method: The name of the method to be invoked. + :param list params: An Array of objects to pass as arguments to the method. + :param _id: This can be of any type. It is used to match the response with + the request that it is replying to. + :param bool is_notification: whether request notification or not. + + """ + + JSONRPC_VERSION = "1.0" + REQUIRED_FIELDS = set(["method", "params", "id"]) + POSSIBLE_FIELDS = set(["method", "params", "id"]) + + @property + def data(self): + data = dict((k, v) for k, v in self._data.items()) + data["id"] = None if self.is_notification else data["id"] + return data + + @data.setter + def data(self, value): + if not isinstance(value, dict): + raise ValueError("data should be dict") + + self._data = value + + @property + def method(self): + return self._data.get("method") + + @method.setter + def method(self, value): + if not isinstance(value, six.string_types): + raise ValueError("Method should be string") + + self._data["method"] = str(value) + + @property + def params(self): + return self._data.get("params") + + @params.setter + def params(self, value): + if not isinstance(value, (list, tuple)): + raise ValueError("Incorrect params {0}".format(value)) + + self._data["params"] = list(value) + + @property + def _id(self): + return self._data.get("id") + + @_id.setter + def _id(self, value): + self._data["id"] = value + + @property + def is_notification(self): + return self._data["id"] is None or self._is_notification + + @is_notification.setter + def is_notification(self, value): + if value is None: + value = self._id is None + + if self._id is None and not value: + raise ValueError("Can not set attribute is_notification. " + + "Request id should not be None") + + self._is_notification = value + + @classmethod + def from_json(cls, json_str): + data = cls.deserialize(json_str) + return cls.from_data(data) + + @classmethod + def from_data(cls, data): + if not isinstance(data, dict): + raise ValueError("data should be dict") + + if cls.REQUIRED_FIELDS <= set(data.keys()) <= cls.POSSIBLE_FIELDS: + return cls( + method=data["method"], params=data["params"], _id=data["id"] + ) + else: + extra = set(data.keys()) - cls.POSSIBLE_FIELDS + missed = cls.REQUIRED_FIELDS - set(data.keys()) + msg = "Invalid request. Extra fields: {0}, Missed fields: {1}" + raise JSONRPCInvalidRequestException(msg.format(extra, missed)) + + +class JSONRPC10Response(JSONRPCBaseResponse): + + JSONRPC_VERSION = "1.0" + + @property + def data(self): + data = dict((k, v) for k, v in self._data.items()) + return data + + @data.setter + def data(self, value): + if not isinstance(value, dict): + raise ValueError("data should be dict") + + self._data = value + + @property + def result(self): + return self._data.get("result") + + @result.setter + def result(self, value): + if self.error: + raise ValueError("Either result or error should be used") + self._data["result"] = value + + @property + def error(self): + return self._data.get("error") + + @error.setter + def error(self, value): + self._data.pop('value', None) + if value: + self._data["error"] = value + # Test error + JSONRPCError(**value) + + @property + def _id(self): + return self._data.get("id") + + @_id.setter + def _id(self, value): + if value is None: + raise ValueError("id could not be null for JSON-RPC1.0 Response") + self._data["id"] = value diff --git a/jsonrpc/jsonrpc2.py b/jsonrpc/jsonrpc2.py new file mode 100644 index 000000000..66ca45125 --- /dev/null +++ b/jsonrpc/jsonrpc2.py @@ -0,0 +1,267 @@ +from . import six +import json + +from .exceptions import JSONRPCError, JSONRPCInvalidRequestException +from .base import JSONRPCBaseRequest, JSONRPCBaseResponse + + +class JSONRPC20Request(JSONRPCBaseRequest): + + """ A rpc call is represented by sending a Request object to a Server. + + :param str method: A String containing the name of the method to be + invoked. Method names that begin with the word rpc followed by a + period character (U+002E or ASCII 46) are reserved for rpc-internal + methods and extensions and MUST NOT be used for anything else. + + :param params: A Structured value that holds the parameter values to be + used during the invocation of the method. This member MAY be omitted. + :type params: iterable or dict + + :param _id: An identifier established by the Client that MUST contain a + String, Number, or NULL value if included. If it is not included it is + assumed to be a notification. The value SHOULD normally not be Null + [1] and Numbers SHOULD NOT contain fractional parts [2]. + :type _id: str or int or None + + :param bool is_notification: Whether request is notification or not. If + value is True, _id is not included to request. It allows to create + requests with id = null. + + The Server MUST reply with the same value in the Response object if + included. This member is used to correlate the context between the two + objects. + + [1] The use of Null as a value for the id member in a Request object is + discouraged, because this specification uses a value of Null for Responses + with an unknown id. Also, because JSON-RPC 1.0 uses an id value of Null + for Notifications this could cause confusion in handling. + + [2] Fractional parts may be problematic, since many decimal fractions + cannot be represented exactly as binary fractions. + + """ + + JSONRPC_VERSION = "2.0" + REQUIRED_FIELDS = set(["jsonrpc", "method"]) + POSSIBLE_FIELDS = set(["jsonrpc", "method", "params", "id"]) + + @property + def data(self): + data = dict( + (k, v) for k, v in self._data.items() + if not (k == "id" and self.is_notification) + ) + data["jsonrpc"] = self.JSONRPC_VERSION + return data + + @data.setter + def data(self, value): + if not isinstance(value, dict): + raise ValueError("data should be dict") + + self._data = value + + @property + def method(self): + return self._data.get("method") + + @method.setter + def method(self, value): + if not isinstance(value, six.string_types): + raise ValueError("Method should be string") + + if value.startswith("rpc."): + raise ValueError( + "Method names that begin with the word rpc followed by a " + + "period character (U+002E or ASCII 46) are reserved for " + + "rpc-internal methods and extensions and MUST NOT be used " + + "for anything else.") + + self._data["method"] = str(value) + + @property + def params(self): + return self._data.get("params") + + @params.setter + def params(self, value): + if value is not None and not isinstance(value, (list, tuple, dict)): + raise ValueError("Incorrect params {0}".format(value)) + + value = list(value) if isinstance(value, tuple) else value + + if value is not None: + self._data["params"] = value + + @property + def _id(self): + return self._data.get("id") + + @_id.setter + def _id(self, value): + if value is not None and \ + not isinstance(value, six.string_types + six.integer_types): + raise ValueError("id should be string or integer") + + self._data["id"] = value + + @classmethod + def from_json(cls, json_str): + data = cls.deserialize(json_str) + return cls.from_data(data) + + @classmethod + def from_data(cls, data): + is_batch = isinstance(data, list) + data = data if is_batch else [data] + + if not data: + raise JSONRPCInvalidRequestException("[] value is not accepted") + + if not all(isinstance(d, dict) for d in data): + raise JSONRPCInvalidRequestException( + "Each request should be an object (dict)") + + result = [] + for d in data: + if not cls.REQUIRED_FIELDS <= set(d.keys()) <= cls.POSSIBLE_FIELDS: + extra = set(d.keys()) - cls.POSSIBLE_FIELDS + missed = cls.REQUIRED_FIELDS - set(d.keys()) + msg = "Invalid request. Extra fields: {0}, Missed fields: {1}" + raise JSONRPCInvalidRequestException(msg.format(extra, missed)) + + try: + result.append(JSONRPC20Request( + method=d["method"], params=d.get("params"), + _id=d.get("id"), is_notification="id" not in d, + )) + except ValueError as e: + raise JSONRPCInvalidRequestException(str(e)) + + return JSONRPC20BatchRequest(*result) if is_batch else result[0] + + +class JSONRPC20BatchRequest(object): + + """ Batch JSON-RPC 2.0 Request. + + :param JSONRPC20Request *requests: requests + + """ + + JSONRPC_VERSION = "2.0" + + def __init__(self, *requests): + self.requests = requests + + @classmethod + def from_json(cls, json_str): + return JSONRPC20Request.from_json(json_str) + + @property + def json(self): + return json.dumps([r.data for r in self.requests]) + + def __iter__(self): + return iter(self.requests) + + +class JSONRPC20Response(JSONRPCBaseResponse): + + """ JSON-RPC response object to JSONRPC20Request. + + When a rpc call is made, the Server MUST reply with a Response, except for + in the case of Notifications. The Response is expressed as a single JSON + Object, with the following members: + + :param str jsonrpc: A String specifying the version of the JSON-RPC + protocol. MUST be exactly "2.0". + + :param result: This member is REQUIRED on success. + This member MUST NOT exist if there was an error invoking the method. + The value of this member is determined by the method invoked on the + Server. + + :param dict error: This member is REQUIRED on error. + This member MUST NOT exist if there was no error triggered during + invocation. The value for this member MUST be an Object. + + :param id: This member is REQUIRED. + It MUST be the same as the value of the id member in the Request + Object. If there was an error in detecting the id in the Request + object (e.g. Parse error/Invalid Request), it MUST be Null. + :type id: str or int or None + + Either the result member or error member MUST be included, but both + members MUST NOT be included. + + """ + + JSONRPC_VERSION = "2.0" + + @property + def data(self): + data = dict((k, v) for k, v in self._data.items()) + data["jsonrpc"] = self.JSONRPC_VERSION + return data + + @data.setter + def data(self, value): + if not isinstance(value, dict): + raise ValueError("data should be dict") + self._data = value + + @property + def result(self): + return self._data.get("result") + + @result.setter + def result(self, value): + if self.error: + raise ValueError("Either result or error should be used") + self._data["result"] = value + + @property + def error(self): + return self._data.get("error") + + @error.setter + def error(self, value): + self._data.pop('value', None) + if value: + self._data["error"] = value + # Test error + JSONRPCError(**value) + + @property + def _id(self): + return self._data.get("id") + + @_id.setter + def _id(self, value): + if value is not None and \ + not isinstance(value, six.string_types + six.integer_types): + raise ValueError("id should be string or integer") + + self._data["id"] = value + + +class JSONRPC20BatchResponse(object): + + JSONRPC_VERSION = "2.0" + + def __init__(self, *responses): + self.responses = responses + self.request = None # type: JSONRPC20BatchRequest + + @property + def data(self): + return [r.data for r in self.responses] + + @property + def json(self): + return json.dumps(self.data) + + def __iter__(self): + return iter(self.responses) diff --git a/jsonrpc/manager.py b/jsonrpc/manager.py new file mode 100644 index 000000000..cdb8689af --- /dev/null +++ b/jsonrpc/manager.py @@ -0,0 +1,136 @@ +import json +import logging +from .utils import is_invalid_params +from .exceptions import ( + JSONRPCInvalidParams, + JSONRPCInvalidRequest, + JSONRPCInvalidRequestException, + JSONRPCMethodNotFound, + JSONRPCParseError, + JSONRPCServerError, + JSONRPCDispatchException, +) +from .jsonrpc1 import JSONRPC10Response +from .jsonrpc2 import ( + JSONRPC20BatchRequest, + JSONRPC20BatchResponse, + JSONRPC20Response, +) +from .jsonrpc import JSONRPCRequest + +logger = logging.getLogger(__name__) + + +class JSONRPCResponseManager(object): + + """ JSON-RPC response manager. + + Method brings syntactic sugar into library. Given dispatcher it handles + request (both single and batch) and handles errors. + Request could be handled in parallel, it is server responsibility. + + :param str request_str: json string. Will be converted into + JSONRPC20Request, JSONRPC20BatchRequest or JSONRPC10Request + + :param dict dispather: dict. + + """ + + RESPONSE_CLASS_MAP = { + "1.0": JSONRPC10Response, + "2.0": JSONRPC20Response, + } + + @classmethod + def handle(cls, request_str, dispatcher): + if isinstance(request_str, bytes): + request_str = request_str.decode("utf-8") + + try: + data = json.loads(request_str) + except (TypeError, ValueError): + return JSONRPC20Response(error=JSONRPCParseError()._data) + + try: + request = JSONRPCRequest.from_data(data) + except JSONRPCInvalidRequestException: + return JSONRPC20Response(error=JSONRPCInvalidRequest()._data) + + return cls.handle_request(request, dispatcher) + + @classmethod + def handle_request(cls, request, dispatcher): + """ Handle request data. + + At this moment request has correct jsonrpc format. + + :param dict request: data parsed from request_str. + :param jsonrpc.dispatcher.Dispatcher dispatcher: + + .. versionadded: 1.8.0 + + """ + rs = request if isinstance(request, JSONRPC20BatchRequest) \ + else [request] + responses = [r for r in cls._get_responses(rs, dispatcher) + if r is not None] + + # notifications + if not responses: + return + + if isinstance(request, JSONRPC20BatchRequest): + response = JSONRPC20BatchResponse(*responses) + response.request = request + return response + else: + return responses[0] + + @classmethod + def _get_responses(cls, requests, dispatcher): + """ Response to each single JSON-RPC Request. + + :return iterator(JSONRPC20Response): + + .. versionadded: 1.9.0 + TypeError inside the function is distinguished from Invalid Params. + + """ + for request in requests: + def make_response(**kwargs): + response = cls.RESPONSE_CLASS_MAP[request.JSONRPC_VERSION]( + _id=request._id, **kwargs) + response.request = request + return response + + output = None + try: + method = dispatcher[request.method] + except KeyError: + output = make_response(error=JSONRPCMethodNotFound()._data) + else: + try: + result = method(*request.args, **request.kwargs) + except JSONRPCDispatchException as e: + output = make_response(error=e.error._data) + except Exception as e: + data = { + "type": e.__class__.__name__, + "args": e.args, + "message": str(e), + } + + logger.exception("API Exception: {0}".format(data)) + + if isinstance(e, TypeError) and is_invalid_params( + method, *request.args, **request.kwargs): + output = make_response( + error=JSONRPCInvalidParams(data=data)._data) + else: + output = make_response( + error=JSONRPCServerError(data=data)._data) + else: + output = make_response(result=result) + finally: + if not request.is_notification: + yield output diff --git a/jsonrpc/six.py b/jsonrpc/six.py new file mode 100644 index 000000000..59145fed2 --- /dev/null +++ b/jsonrpc/six.py @@ -0,0 +1,584 @@ +"""Utilities for writing code that runs on Python 2 and 3""" + +# Copyright (c) 2010-2013 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import operator +import sys +import types + +__author__ = "Benjamin Peterson " +__version__ = "1.4.1" + + +# Useful for very coarse version differentiation. +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 + +if PY3: + string_types = str, + integer_types = int, + class_types = type, + text_type = str + binary_type = bytes + + MAXSIZE = sys.maxsize +else: + string_types = basestring, + integer_types = (int, long) + class_types = (type, types.ClassType) + text_type = unicode + binary_type = str + + if sys.platform.startswith("java"): + # Jython always uses 32 bits. + MAXSIZE = int((1 << 31) - 1) + else: + # It's possible to have sizeof(long) != sizeof(Py_ssize_t). + class X(object): + def __len__(self): + return 1 << 31 + try: + len(X()) + except OverflowError: + # 32-bit + MAXSIZE = int((1 << 31) - 1) + else: + # 64-bit + MAXSIZE = int((1 << 63) - 1) + del X + + +def _add_doc(func, doc): + """Add documentation to a function.""" + func.__doc__ = doc + + +def _import_module(name): + """Import module, returning the module after the last dot.""" + __import__(name) + return sys.modules[name] + + +class _LazyDescr(object): + + def __init__(self, name): + self.name = name + + def __get__(self, obj, tp): + result = self._resolve() + setattr(obj, self.name, result) + # This is a bit ugly, but it avoids running this again. + delattr(tp, self.name) + return result + + +class MovedModule(_LazyDescr): + + def __init__(self, name, old, new=None): + super(MovedModule, self).__init__(name) + if PY3: + if new is None: + new = name + self.mod = new + else: + self.mod = old + + def _resolve(self): + return _import_module(self.mod) + + +class MovedAttribute(_LazyDescr): + + def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): + super(MovedAttribute, self).__init__(name) + if PY3: + if new_mod is None: + new_mod = name + self.mod = new_mod + if new_attr is None: + if old_attr is None: + new_attr = name + else: + new_attr = old_attr + self.attr = new_attr + else: + self.mod = old_mod + if old_attr is None: + old_attr = name + self.attr = old_attr + + def _resolve(self): + module = _import_module(self.mod) + return getattr(module, self.attr) + + + +class _MovedItems(types.ModuleType): + """Lazy loading of moved objects""" + + +_moved_attributes = [ + MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), + MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), + MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), + MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), + MovedAttribute("map", "itertools", "builtins", "imap", "map"), + MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("reload_module", "__builtin__", "imp", "reload"), + MovedAttribute("reduce", "__builtin__", "functools"), + MovedAttribute("StringIO", "StringIO", "io"), + MovedAttribute("UserString", "UserString", "collections"), + MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), + MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), + + MovedModule("builtins", "__builtin__"), + MovedModule("configparser", "ConfigParser"), + MovedModule("copyreg", "copy_reg"), + MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), + MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), + MovedModule("http_cookies", "Cookie", "http.cookies"), + MovedModule("html_entities", "htmlentitydefs", "html.entities"), + MovedModule("html_parser", "HTMLParser", "html.parser"), + MovedModule("http_client", "httplib", "http.client"), + MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), + MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), + MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), + MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), + MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), + MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), + MovedModule("cPickle", "cPickle", "pickle"), + MovedModule("queue", "Queue"), + MovedModule("reprlib", "repr"), + MovedModule("socketserver", "SocketServer"), + MovedModule("_thread", "thread", "_thread"), + MovedModule("tkinter", "Tkinter"), + MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), + MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), + MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), + MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), + MovedModule("tkinter_tix", "Tix", "tkinter.tix"), + MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), + MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), + MovedModule("tkinter_colorchooser", "tkColorChooser", + "tkinter.colorchooser"), + MovedModule("tkinter_commondialog", "tkCommonDialog", + "tkinter.commondialog"), + MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), + MovedModule("tkinter_font", "tkFont", "tkinter.font"), + MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), + MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", + "tkinter.simpledialog"), + MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), + MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), + MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), + MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), + MovedModule("winreg", "_winreg"), +] +for attr in _moved_attributes: + setattr(_MovedItems, attr.name, attr) +del attr + +moves = sys.modules[__name__ + ".moves"] = _MovedItems(__name__ + ".moves") + + + +class Module_six_moves_urllib_parse(types.ModuleType): + """Lazy loading of moved objects in six.moves.urllib_parse""" + + +_urllib_parse_moved_attributes = [ + MovedAttribute("ParseResult", "urlparse", "urllib.parse"), + MovedAttribute("parse_qs", "urlparse", "urllib.parse"), + MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), + MovedAttribute("urldefrag", "urlparse", "urllib.parse"), + MovedAttribute("urljoin", "urlparse", "urllib.parse"), + MovedAttribute("urlparse", "urlparse", "urllib.parse"), + MovedAttribute("urlsplit", "urlparse", "urllib.parse"), + MovedAttribute("urlunparse", "urlparse", "urllib.parse"), + MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), + MovedAttribute("quote", "urllib", "urllib.parse"), + MovedAttribute("quote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote", "urllib", "urllib.parse"), + MovedAttribute("unquote_plus", "urllib", "urllib.parse"), + MovedAttribute("urlencode", "urllib", "urllib.parse"), +] +for attr in _urllib_parse_moved_attributes: + setattr(Module_six_moves_urllib_parse, attr.name, attr) +del attr + +sys.modules[__name__ + ".moves.urllib_parse"] = Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse") +sys.modules[__name__ + ".moves.urllib.parse"] = Module_six_moves_urllib_parse(__name__ + ".moves.urllib.parse") + + +class Module_six_moves_urllib_error(types.ModuleType): + """Lazy loading of moved objects in six.moves.urllib_error""" + + +_urllib_error_moved_attributes = [ + MovedAttribute("URLError", "urllib2", "urllib.error"), + MovedAttribute("HTTPError", "urllib2", "urllib.error"), + MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), +] +for attr in _urllib_error_moved_attributes: + setattr(Module_six_moves_urllib_error, attr.name, attr) +del attr + +sys.modules[__name__ + ".moves.urllib_error"] = Module_six_moves_urllib_error(__name__ + ".moves.urllib_error") +sys.modules[__name__ + ".moves.urllib.error"] = Module_six_moves_urllib_error(__name__ + ".moves.urllib.error") + + +class Module_six_moves_urllib_request(types.ModuleType): + """Lazy loading of moved objects in six.moves.urllib_request""" + + +_urllib_request_moved_attributes = [ + MovedAttribute("urlopen", "urllib2", "urllib.request"), + MovedAttribute("install_opener", "urllib2", "urllib.request"), + MovedAttribute("build_opener", "urllib2", "urllib.request"), + MovedAttribute("pathname2url", "urllib", "urllib.request"), + MovedAttribute("url2pathname", "urllib", "urllib.request"), + MovedAttribute("getproxies", "urllib", "urllib.request"), + MovedAttribute("Request", "urllib2", "urllib.request"), + MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), + MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), + MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), + MovedAttribute("BaseHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), + MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), + MovedAttribute("FileHandler", "urllib2", "urllib.request"), + MovedAttribute("FTPHandler", "urllib2", "urllib.request"), + MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), + MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), + MovedAttribute("urlretrieve", "urllib", "urllib.request"), + MovedAttribute("urlcleanup", "urllib", "urllib.request"), + MovedAttribute("URLopener", "urllib", "urllib.request"), + MovedAttribute("FancyURLopener", "urllib", "urllib.request"), +] +for attr in _urllib_request_moved_attributes: + setattr(Module_six_moves_urllib_request, attr.name, attr) +del attr + +sys.modules[__name__ + ".moves.urllib_request"] = Module_six_moves_urllib_request(__name__ + ".moves.urllib_request") +sys.modules[__name__ + ".moves.urllib.request"] = Module_six_moves_urllib_request(__name__ + ".moves.urllib.request") + + +class Module_six_moves_urllib_response(types.ModuleType): + """Lazy loading of moved objects in six.moves.urllib_response""" + + +_urllib_response_moved_attributes = [ + MovedAttribute("addbase", "urllib", "urllib.response"), + MovedAttribute("addclosehook", "urllib", "urllib.response"), + MovedAttribute("addinfo", "urllib", "urllib.response"), + MovedAttribute("addinfourl", "urllib", "urllib.response"), +] +for attr in _urllib_response_moved_attributes: + setattr(Module_six_moves_urllib_response, attr.name, attr) +del attr + +sys.modules[__name__ + ".moves.urllib_response"] = Module_six_moves_urllib_response(__name__ + ".moves.urllib_response") +sys.modules[__name__ + ".moves.urllib.response"] = Module_six_moves_urllib_response(__name__ + ".moves.urllib.response") + + +class Module_six_moves_urllib_robotparser(types.ModuleType): + """Lazy loading of moved objects in six.moves.urllib_robotparser""" + + +_urllib_robotparser_moved_attributes = [ + MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), +] +for attr in _urllib_robotparser_moved_attributes: + setattr(Module_six_moves_urllib_robotparser, attr.name, attr) +del attr + +sys.modules[__name__ + ".moves.urllib_robotparser"] = Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib_robotparser") +sys.modules[__name__ + ".moves.urllib.robotparser"] = Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser") + + +class Module_six_moves_urllib(types.ModuleType): + """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" + parse = sys.modules[__name__ + ".moves.urllib_parse"] + error = sys.modules[__name__ + ".moves.urllib_error"] + request = sys.modules[__name__ + ".moves.urllib_request"] + response = sys.modules[__name__ + ".moves.urllib_response"] + robotparser = sys.modules[__name__ + ".moves.urllib_robotparser"] + + +sys.modules[__name__ + ".moves.urllib"] = Module_six_moves_urllib(__name__ + ".moves.urllib") + + +def add_move(move): + """Add an item to six.moves.""" + setattr(_MovedItems, move.name, move) + + +def remove_move(name): + """Remove item from six.moves.""" + try: + delattr(_MovedItems, name) + except AttributeError: + try: + del moves.__dict__[name] + except KeyError: + raise AttributeError("no such move, %r" % (name,)) + + +if PY3: + _meth_func = "__func__" + _meth_self = "__self__" + + _func_closure = "__closure__" + _func_code = "__code__" + _func_defaults = "__defaults__" + _func_globals = "__globals__" + + _iterkeys = "keys" + _itervalues = "values" + _iteritems = "items" + _iterlists = "lists" +else: + _meth_func = "im_func" + _meth_self = "im_self" + + _func_closure = "func_closure" + _func_code = "func_code" + _func_defaults = "func_defaults" + _func_globals = "func_globals" + + _iterkeys = "iterkeys" + _itervalues = "itervalues" + _iteritems = "iteritems" + _iterlists = "iterlists" + + +try: + advance_iterator = next +except NameError: + def advance_iterator(it): + return it.next() +next = advance_iterator + + +try: + callable = callable +except NameError: + def callable(obj): + return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + + +if PY3: + def get_unbound_function(unbound): + return unbound + + create_bound_method = types.MethodType + + Iterator = object +else: + def get_unbound_function(unbound): + return unbound.im_func + + def create_bound_method(func, obj): + return types.MethodType(func, obj, obj.__class__) + + class Iterator(object): + + def next(self): + return type(self).__next__(self) + + callable = callable +_add_doc(get_unbound_function, + """Get the function out of a possibly unbound function""") + + +get_method_function = operator.attrgetter(_meth_func) +get_method_self = operator.attrgetter(_meth_self) +get_function_closure = operator.attrgetter(_func_closure) +get_function_code = operator.attrgetter(_func_code) +get_function_defaults = operator.attrgetter(_func_defaults) +get_function_globals = operator.attrgetter(_func_globals) + + +def iterkeys(d, **kw): + """Return an iterator over the keys of a dictionary.""" + return iter(getattr(d, _iterkeys)(**kw)) + +def itervalues(d, **kw): + """Return an iterator over the values of a dictionary.""" + return iter(getattr(d, _itervalues)(**kw)) + +def iteritems(d, **kw): + """Return an iterator over the (key, value) pairs of a dictionary.""" + return iter(getattr(d, _iteritems)(**kw)) + +def iterlists(d, **kw): + """Return an iterator over the (key, [values]) pairs of a dictionary.""" + return iter(getattr(d, _iterlists)(**kw)) + + +if PY3: + def b(s): + return s.encode("latin-1") + def u(s): + return s + unichr = chr + if sys.version_info[1] <= 1: + def int2byte(i): + return bytes((i,)) + else: + # This is about 2x faster than the implementation above on 3.2+ + int2byte = operator.methodcaller("to_bytes", 1, "big") + byte2int = operator.itemgetter(0) + indexbytes = operator.getitem + iterbytes = iter + import io + StringIO = io.StringIO + BytesIO = io.BytesIO +else: + def b(s): + return s + def u(s): + return unicode(s, "unicode_escape") + unichr = unichr + int2byte = chr + def byte2int(bs): + return ord(bs[0]) + def indexbytes(buf, i): + return ord(buf[i]) + def iterbytes(buf): + return (ord(byte) for byte in buf) + import StringIO + StringIO = BytesIO = StringIO.StringIO +_add_doc(b, """Byte literal""") +_add_doc(u, """Text literal""") + + +if PY3: + exec_ = getattr(moves.builtins, "exec") + + + def reraise(tp, value, tb=None): + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + +else: + def exec_(_code_, _globs_=None, _locs_=None): + """Execute code in a namespace.""" + if _globs_ is None: + frame = sys._getframe(1) + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals + del frame + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") + + + exec_("""def reraise(tp, value, tb=None): + raise tp, value, tb +""") + + +print_ = getattr(moves.builtins, "print", None) +if print_ is None: + def print_(*args, **kwargs): + """The new-style print function for Python 2.4 and 2.5.""" + fp = kwargs.pop("file", sys.stdout) + if fp is None: + return + def write(data): + if not isinstance(data, basestring): + data = str(data) + # If the file has an encoding, encode unicode with it. + if (isinstance(fp, file) and + isinstance(data, unicode) and + fp.encoding is not None): + errors = getattr(fp, "errors", None) + if errors is None: + errors = "strict" + data = data.encode(fp.encoding, errors) + fp.write(data) + want_unicode = False + sep = kwargs.pop("sep", None) + if sep is not None: + if isinstance(sep, unicode): + want_unicode = True + elif not isinstance(sep, str): + raise TypeError("sep must be None or a string") + end = kwargs.pop("end", None) + if end is not None: + if isinstance(end, unicode): + want_unicode = True + elif not isinstance(end, str): + raise TypeError("end must be None or a string") + if kwargs: + raise TypeError("invalid keyword arguments to print()") + if not want_unicode: + for arg in args: + if isinstance(arg, unicode): + want_unicode = True + break + if want_unicode: + newline = unicode("\n") + space = unicode(" ") + else: + newline = "\n" + space = " " + if sep is None: + sep = space + if end is None: + end = newline + for i, arg in enumerate(args): + if i: + write(sep) + write(arg) + write(end) + +_add_doc(reraise, """Reraise an exception.""") + + +def with_metaclass(meta, *bases): + """Create a base class with a metaclass.""" + return meta("NewBase", bases, {}) + +def add_metaclass(metaclass): + """Class decorator for creating a class with a metaclass.""" + def wrapper(cls): + orig_vars = cls.__dict__.copy() + orig_vars.pop('__dict__', None) + orig_vars.pop('__weakref__', None) + for slots_var in orig_vars.get('__slots__', ()): + orig_vars.pop(slots_var) + return metaclass(cls.__name__, cls.__bases__, orig_vars) + return wrapper \ No newline at end of file diff --git a/jsonrpc/tests/__init__.py b/jsonrpc/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/jsonrpc/tests/py35_utils.py b/jsonrpc/tests/py35_utils.py new file mode 100644 index 000000000..e880150be --- /dev/null +++ b/jsonrpc/tests/py35_utils.py @@ -0,0 +1,7 @@ +# Python3.5+ code. +# This won't even parse in earlier versions, so it's kept in a separate file +# and imported when needed. + + +def distance(a: float, b: float) -> float: + return (a ** 2 + b ** 2) ** 0.5 diff --git a/jsonrpc/tests/test_backend_django/__init__.py b/jsonrpc/tests/test_backend_django/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/jsonrpc/tests/test_backend_django/settings.py b/jsonrpc/tests/test_backend_django/settings.py new file mode 100644 index 000000000..987139e1b --- /dev/null +++ b/jsonrpc/tests/test_backend_django/settings.py @@ -0,0 +1,11 @@ +SECRET_KEY = 'secret' +ROOT_URLCONF = 'jsonrpc.tests.test_backend_django.urls' +ALLOWED_HOSTS = ['testserver'] +DATABASE_ENGINE = 'django.db.backends.sqlite3' +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': ':memory:', + } +} +JSONRPC_MAP_VIEW_ENABLED = True diff --git a/jsonrpc/tests/test_backend_django/tests.py b/jsonrpc/tests/test_backend_django/tests.py new file mode 100644 index 000000000..9a30fa0b6 --- /dev/null +++ b/jsonrpc/tests/test_backend_django/tests.py @@ -0,0 +1,89 @@ +""" Test Django Backend.""" +from __future__ import absolute_import +import os + +try: + from django.core.urlresolvers import RegexURLPattern + from django.test import TestCase +except ImportError: + import unittest + raise unittest.SkipTest('Django not found for testing') + +from ...backend.django import JSONRPCAPI, api +import json + + +class TestDjangoBackend(TestCase): + @classmethod + def setUpClass(cls): + os.environ['DJANGO_SETTINGS_MODULE'] = \ + 'jsonrpc.tests.test_backend_django.settings' + super(TestDjangoBackend, cls).setUpClass() + + def test_urls(self): + self.assertTrue(isinstance(api.urls, list)) + for api_url in api.urls: + self.assertTrue(isinstance(api_url, RegexURLPattern)) + + def test_client(self): + @api.dispatcher.add_method + def dummy(request): + return "" + + json_data = { + "id": "0", + "jsonrpc": "2.0", + "method": "dummy", + } + response = self.client.post( + '', + json.dumps(json_data), + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.content.decode('utf8')) + self.assertEqual(data['result'], '') + + def test_method_not_allowed(self): + response = self.client.get( + '', + content_type='application/json', + ) + self.assertEqual(response.status_code, 405, "Should allow only POST") + + def test_invalid_request(self): + response = self.client.post( + '', + '{', + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.content.decode('utf8')) + self.assertEqual(data['error']['code'], -32700) + self.assertEqual(data['error']['message'], 'Parse error') + + def test_resource_map(self): + response = self.client.get('/map') + self.assertEqual(response.status_code, 200) + data = response.content.decode('utf8') + self.assertIn("JSON-RPC map", data) + + def test_method_not_allowed_prefix(self): + response = self.client.get( + '/prefix/', + content_type='application/json', + ) + self.assertEqual(response.status_code, 405) + + def test_resource_map_prefix(self): + response = self.client.get('/prefix/map') + self.assertEqual(response.status_code, 200) + + def test_empty_initial_dispatcher(self): + class SubDispatcher(type(api.dispatcher)): + pass + + custom_dispatcher = SubDispatcher() + custom_api = JSONRPCAPI(custom_dispatcher) + self.assertEqual(type(custom_api.dispatcher), SubDispatcher) + self.assertEqual(id(custom_api.dispatcher), id(custom_dispatcher)) diff --git a/jsonrpc/tests/test_backend_django/urls.py b/jsonrpc/tests/test_backend_django/urls.py new file mode 100644 index 000000000..c0a22465e --- /dev/null +++ b/jsonrpc/tests/test_backend_django/urls.py @@ -0,0 +1,7 @@ +from django.conf.urls import url, include +from jsonrpc.backend.django import api + +urlpatterns = [ + url(r'', include(api.urls)), + url(r'^prefix/', include(api.urls)), +] diff --git a/jsonrpc/tests/test_backend_flask/__init__.py b/jsonrpc/tests/test_backend_flask/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/jsonrpc/tests/test_backend_flask/tests.py b/jsonrpc/tests/test_backend_flask/tests.py new file mode 100644 index 000000000..fdb862348 --- /dev/null +++ b/jsonrpc/tests/test_backend_flask/tests.py @@ -0,0 +1,182 @@ +import json +import sys + +if sys.version_info < (3, 3): + from mock import patch +else: + from unittest.mock import patch + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + +# Flask is supported only for python2 and python3.3+ +if sys.version_info < (3, 0) or sys.version_info >= (3, 3): + try: + from flask import Flask + except ImportError: + raise unittest.SkipTest('Flask not found for testing') + + from ...backend.flask import JSONRPCAPI, api + + @api.dispatcher.add_method + def dummy(): + return "" + + +@unittest.skipIf((3, 0) <= sys.version_info < (3, 3), + 'Flask does not support python 3.0 - 3.2') +class TestFlaskBackend(unittest.TestCase): + REQUEST = json.dumps({ + "id": "0", + "jsonrpc": "2.0", + "method": "dummy", + }) + + def setUp(self): + self.client = self._get_test_client(JSONRPCAPI()) + + def _get_test_client(self, api): + @api.dispatcher.add_method + def dummy(): + return "" + + app = Flask(__name__) + app.config["TESTING"] = True + app.register_blueprint(api.as_blueprint()) + return app.test_client() + + def test_client(self): + response = self.client.post( + '/', + data=self.REQUEST, + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['result'], '') + + def test_method_not_allowed(self): + response = self.client.get( + '/', + content_type='application/json', + ) + self.assertEqual(response.status_code, 405, "Should allow only POST") + + def test_parse_error(self): + response = self.client.post( + '/', + data='{', + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['error']['code'], -32700) + self.assertEqual(data['error']['message'], 'Parse error') + + def test_wrong_content_type(self): + response = self.client.post( + '/', + data=self.REQUEST, + content_type='application/x-www-form-urlencoded', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['error']['code'], -32700) + self.assertEqual(data['error']['message'], 'Parse error') + + def test_invalid_request(self): + response = self.client.post( + '/', + data='{"method": "dummy", "id": 1}', + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['error']['code'], -32600) + self.assertEqual(data['error']['message'], 'Invalid Request') + + def test_method_not_found(self): + data = { + "jsonrpc": "2.0", + "method": "dummy2", + "id": 1 + } + response = self.client.post( + '/', + data=json.dumps(data), + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['error']['code'], -32601) + self.assertEqual(data['error']['message'], 'Method not found') + + def test_invalid_parameters(self): + data = { + "jsonrpc": "2.0", + "method": "dummy", + "params": [42], + "id": 1 + } + response = self.client.post( + '/', + data=json.dumps(data), + content_type='application/json', + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['error']['code'], -32602) + self.assertEqual(data['error']['message'], 'Invalid params') + + def test_resource_map(self): + response = self.client.get('/map') + self.assertEqual(response.status_code, 200) + self.assertTrue("JSON-RPC map" in response.data.decode('utf8')) + + def test_method_not_allowed_prefix(self): + response = self.client.get( + '/', + content_type='application/json', + ) + self.assertEqual(response.status_code, 405) + + def test_resource_map_prefix(self): + response = self.client.get('/map') + self.assertEqual(response.status_code, 200) + + def test_as_view(self): + api = JSONRPCAPI() + with patch.object(api, 'jsonrpc') as mock_jsonrpc: + self.assertIs(api.as_view(), mock_jsonrpc) + + def test_not_check_content_type(self): + client = self._get_test_client(JSONRPCAPI(check_content_type=False)) + response = client.post( + '/', + data=self.REQUEST, + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['result'], '') + + def test_check_content_type(self): + client = self._get_test_client(JSONRPCAPI(check_content_type=False)) + response = client.post( + '/', + data=self.REQUEST, + content_type="application/x-www-form-urlencoded" + ) + self.assertEqual(response.status_code, 200) + data = json.loads(response.data.decode('utf8')) + self.assertEqual(data['result'], '') + + def test_empty_initial_dispatcher(self): + class SubDispatcher(type(api.dispatcher)): + pass + + custom_dispatcher = SubDispatcher() + custom_api = JSONRPCAPI(custom_dispatcher) + self.assertEqual(type(custom_api.dispatcher), SubDispatcher) + self.assertEqual(id(custom_api.dispatcher), id(custom_dispatcher)) diff --git a/jsonrpc/tests/test_base.py b/jsonrpc/tests/test_base.py new file mode 100644 index 000000000..6a0ff85b0 --- /dev/null +++ b/jsonrpc/tests/test_base.py @@ -0,0 +1,39 @@ +""" Test base JSON-RPC classes.""" +import sys + +from ..base import JSONRPCBaseRequest, JSONRPCBaseResponse + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONRPCBaseRequest(unittest.TestCase): + + """ Test JSONRPCBaseRequest functionality.""" + + def test_data(self): + request = JSONRPCBaseRequest() + self.assertEqual(request.data, {}) + + with self.assertRaises(ValueError): + request.data = [] + + with self.assertRaises(ValueError): + request.data = None + + +class TestJSONRPCBaseResponse(unittest.TestCase): + + """ Test JSONRPCBaseResponse functionality.""" + + def test_data(self): + response = JSONRPCBaseResponse(result="") + self.assertEqual(response.data, {}) + + with self.assertRaises(ValueError): + response.data = [] + + with self.assertRaises(ValueError): + response.data = None diff --git a/jsonrpc/tests/test_bug29.py b/jsonrpc/tests/test_bug29.py new file mode 100644 index 000000000..7019bce3b --- /dev/null +++ b/jsonrpc/tests/test_bug29.py @@ -0,0 +1,34 @@ +""" Exmples of usage with tests. + +Tests in this file represent examples taken from JSON-RPC specification. +http://www.jsonrpc.org/specification#examples + +""" +import sys +import json + +from ..manager import JSONRPCResponseManager + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +def isjsonequal(json1, json2): + return json.loads(json1) == json.loads(json2) + + +class TestJSONRPCExamples(unittest.TestCase): + def setUp(self): + self.dispatcher = { + "return_none": lambda: None, + } + + def test_none_as_result(self): + req = '{"jsonrpc": "2.0", "method": "return_none", "id": 0}' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "result": null, "id": 0}' + )) diff --git a/jsonrpc/tests/test_dispatcher.py b/jsonrpc/tests/test_dispatcher.py new file mode 100644 index 000000000..888526ff6 --- /dev/null +++ b/jsonrpc/tests/test_dispatcher.py @@ -0,0 +1,142 @@ +from ..dispatcher import Dispatcher +import sys +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class Math: + + def sum(self, a, b): + return a + b + + def diff(self, a, b): + return a - b + + +class TestDispatcher(unittest.TestCase): + + """ Test Dispatcher functionality.""" + + def test_getter(self): + d = Dispatcher() + + with self.assertRaises(KeyError): + d["method"] + + d["add"] = lambda *args: sum(args) + self.assertEqual(d["add"](1, 1), 2) + + def test_in(self): + d = Dispatcher() + d["method"] = lambda: "" + self.assertIn("method", d) + + def test_add_method(self): + d = Dispatcher() + + @d.add_method + def add(x, y): + return x + y + + self.assertIn("add", d) + self.assertEqual(d["add"](1, 1), 2) + + def test_add_method_with_name(self): + d = Dispatcher() + + @d.add_method(name="this.add") + def add(x, y): + return x + y + + self.assertNotIn("add", d) + self.assertIn("this.add", d) + self.assertEqual(d["this.add"](1, 1), 2) + + def test_add_class(self): + d = Dispatcher() + d.add_class(Math) + + self.assertIn("math.sum", d) + self.assertIn("math.diff", d) + self.assertEqual(d["math.sum"](3, 8), 11) + self.assertEqual(d["math.diff"](6, 9), -3) + + def test_add_object(self): + d = Dispatcher() + d.add_object(Math()) + + self.assertIn("math.sum", d) + self.assertIn("math.diff", d) + self.assertEqual(d["math.sum"](5, 2), 7) + self.assertEqual(d["math.diff"](15, 9), 6) + + def test_add_dict(self): + d = Dispatcher() + d.add_dict({"sum": lambda *args: sum(args)}, "util") + + self.assertIn("util.sum", d) + self.assertEqual(d["util.sum"](13, -2), 11) + + def test_add_method_keep_function_definitions(self): + + d = Dispatcher() + + @d.add_method + def one(x): + return x + + self.assertIsNotNone(one) + + def test_del_method(self): + d = Dispatcher() + d["method"] = lambda: "" + self.assertIn("method", d) + + del d["method"] + self.assertNotIn("method", d) + + def test_to_dict(self): + d = Dispatcher() + + def func(): + return "" + + d["method"] = func + self.assertEqual(dict(d), {"method": func}) + + def test_init_from_object_instance(self): + + class Dummy(): + + def one(self): + pass + + def two(self): + pass + + dummy = Dummy() + + d = Dispatcher(dummy) + + self.assertIn("one", d) + self.assertIn("two", d) + self.assertNotIn("__class__", d) + + def test_init_from_dictionary(self): + + dummy = { + 'one': lambda x: x, + 'two': lambda x: x, + } + + d = Dispatcher(dummy) + + self.assertIn("one", d) + self.assertIn("two", d) + + def test_dispatcher_representation(self): + + d = Dispatcher() + self.assertEqual('{}', repr(d)) diff --git a/jsonrpc/tests/test_examples20.py b/jsonrpc/tests/test_examples20.py new file mode 100644 index 000000000..42d10fd91 --- /dev/null +++ b/jsonrpc/tests/test_examples20.py @@ -0,0 +1,206 @@ +""" Exmples of usage with tests. + +Tests in this file represent examples taken from JSON-RPC specification. +http://www.jsonrpc.org/specification#examples + +""" +import sys +import json + +from ..manager import JSONRPCResponseManager +from ..jsonrpc2 import JSONRPC20Request, JSONRPC20BatchRequest + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +def isjsonequal(json1, json2): + return json.loads(json1) == json.loads(json2) + + +class TestJSONRPCExamples(unittest.TestCase): + def setUp(self): + self.dispatcher = { + "subtract": lambda a, b: a - b, + } + + def test_rpc_call_with_positional_parameters(self): + req = '{"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}' # noqa + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "result": 19, "id": 1}' + )) + + req = '{"jsonrpc": "2.0", "method": "subtract", "params": [23, 42], "id": 2}' # noqa + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "result": -19, "id": 2}' + )) + + def test_rpc_call_with_named_parameters(self): + def subtract(minuend=None, subtrahend=None): + return minuend - subtrahend + + dispatcher = { + "subtract": subtract, + "sum": lambda *args: sum(args), + "get_data": lambda: ["hello", 5], + } + + req = '{"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3}' # noqa + response = JSONRPCResponseManager.handle(req, dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "result": 19, "id": 3}' + )) + + req = '{"jsonrpc": "2.0", "method": "subtract", "params": {"minuend": 42, "subtrahend": 23}, "id": 4}' # noqa + response = JSONRPCResponseManager.handle(req, dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "result": 19, "id": 4}', + )) + + def test_notification(self): + req = '{"jsonrpc": "2.0", "method": "update", "params": [1,2,3,4,5]}' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertEqual(response, None) + + req = '{"jsonrpc": "2.0", "method": "foobar"}' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertEqual(response, None) + + def test_rpc_call_of_non_existent_method(self): + req = '{"jsonrpc": "2.0", "method": "foobar", "id": "1"}' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "1"}' # noqa + )) + + def test_rpc_call_with_invalid_json(self): + req = '{"jsonrpc": "2.0", "method": "foobar, "params": "bar", "baz]' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}' # noqa + )) + + def test_rpc_call_with_invalid_request_object(self): + req = '{"jsonrpc": "2.0", "method": 1, "params": "bar"}' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}' # noqa + )) + + def test_rpc_call_batch_invalid_json(self): + req = """[ + {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"}, + {"jsonrpc": "2.0", "method" + ]""" + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}' # noqa + )) + + def test_rpc_call_with_an_empty_array(self): + req = '[]' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}' # noqa + )) + + def test_rpc_call_with_rpc_call_with_an_invalid_batch_but_not_empty(self): + req = '[1]' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isjsonequal( + response.json, + '{"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null}' # noqa + )) + + def test_rpc_call_with_invalid_batch(self): + req = '[1,2,3]' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue( + response, + json.loads("""[ + {"jsonrpc": "2.0", "error": {"code": -32600, + "message": "Invalid Request"}, "id": null}, + {"jsonrpc": "2.0", "error": {"code": -32600, + "message": "Invalid Request"}, "id": null}, + {"jsonrpc": "2.0", "error": {"code": -32600, + "message": "Invalid Request"}, "id": null} + ]""") + ) + + def test_rpc_call_batch(self): + req = """[ + {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"}, + {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]}, + {"jsonrpc": "2.0", "method": "subtract", + "params": [42,23], "id": "2"}, + {"foo": "boo"}, + {"jsonrpc": "2.0", "method": "foo.get", + "params": {"name": "myself"}, "id": "5"}, + {"jsonrpc": "2.0", "method": "get_data", "id": "9"} + ]""" + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue( + response, + json.loads("""[ + {"jsonrpc": "2.0", "result": 7, "id": "1"}, + {"jsonrpc": "2.0", "result": 19, "id": "2"}, + {"jsonrpc": "2.0", "error": {"code": -32600, + "message": "Invalid Request"}, "id": null}, + {"jsonrpc": "2.0", "error": {"code": -32601, + "message": "Method not found"}, "id": "5"}, + {"jsonrpc": "2.0", "result": ["hello", 5], "id": "9"} + ]""") + ) + + def test_rpc_call_batch_all_notifications(self): + req = """[ + {"jsonrpc": "2.0", "method": "notify_sum", "params": [1,2,4]}, + {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]} + ]""" + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertEqual(response, None) + + def test_rpc_call_response_request(self): + req = '{"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}' # noqa + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isinstance( + response.request, + JSONRPC20Request + )) + self.assertTrue(isjsonequal( + response.request.json, + req + )) + + def test_rpc_call_response_request_batch(self): + req = """[ + {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"}, + {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]}, + {"jsonrpc": "2.0", "method": "subtract", + "params": [42,23], "id": "2"}, + {"jsonrpc": "2.0", "method": "foo.get", + "params": {"name": "myself"}, "id": "5"}, + {"jsonrpc": "2.0", "method": "get_data", "id": "9"} + ]""" + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isinstance( + response.request, + JSONRPC20BatchRequest + )) + self.assertTrue(isjsonequal( + response.request.json, + req + )) diff --git a/jsonrpc/tests/test_jsonrpc.py b/jsonrpc/tests/test_jsonrpc.py new file mode 100644 index 000000000..820ee3111 --- /dev/null +++ b/jsonrpc/tests/test_jsonrpc.py @@ -0,0 +1 @@ +""" Tets base JSON-RPC structures.""" diff --git a/jsonrpc/tests/test_jsonrpc1.py b/jsonrpc/tests/test_jsonrpc1.py new file mode 100644 index 000000000..c66f04545 --- /dev/null +++ b/jsonrpc/tests/test_jsonrpc1.py @@ -0,0 +1,429 @@ +import json +import sys + +from ..exceptions import JSONRPCInvalidRequestException +from ..jsonrpc1 import ( + JSONRPC10Request, + JSONRPC10Response, +) + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONRPC10Request(unittest.TestCase): + + """ Test JSONRPC10Request functionality.""" + + def setUp(self): + self.request_params = { + "method": "add", + "params": [1, 2], + "_id": 1, + } + + def test_correct_init(self): + """ Test object is created.""" + JSONRPC10Request(**self.request_params) + + def test_validation_incorrect_no_parameters(self): + with self.assertRaises(ValueError): + JSONRPC10Request() + + def test_method_validation_str(self): + self.request_params.update({"method": "add"}) + JSONRPC10Request(**self.request_params) + + def test_method_validation_not_str(self): + self.request_params.update({"method": []}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + self.request_params.update({"method": {}}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + self.request_params.update({"method": None}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + def test_params_validation_list(self): + self.request_params.update({"params": []}) + JSONRPC10Request(**self.request_params) + + self.request_params.update({"params": [0]}) + JSONRPC10Request(**self.request_params) + + def test_params_validation_tuple(self): + self.request_params.update({"params": ()}) + JSONRPC10Request(**self.request_params) + + self.request_params.update({"params": tuple([0])}) + JSONRPC10Request(**self.request_params) + + def test_params_validation_dict(self): + self.request_params.update({"params": {}}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + self.request_params.update({"params": {"a": 0}}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + def test_params_validation_none(self): + self.request_params.update({"params": None}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + def test_params_validation_incorrect(self): + self.request_params.update({"params": "str"}) + with self.assertRaises(ValueError): + JSONRPC10Request(**self.request_params) + + def test_request_args(self): + self.assertEqual(JSONRPC10Request("add", []).args, ()) + self.assertEqual(JSONRPC10Request("add", [1, 2]).args, (1, 2)) + + def test_id_validation_string(self): + self.request_params.update({"_id": "id"}) + JSONRPC10Request(**self.request_params) + + def test_id_validation_int(self): + self.request_params.update({"_id": 0}) + JSONRPC10Request(**self.request_params) + + def test_id_validation_null(self): + self.request_params.update({"_id": "null"}) + JSONRPC10Request(**self.request_params) + + def test_id_validation_none(self): + self.request_params.update({"_id": None}) + JSONRPC10Request(**self.request_params) + + def test_id_validation_float(self): + self.request_params.update({"_id": 0.1}) + JSONRPC10Request(**self.request_params) + + def test_id_validation_list_tuple(self): + self.request_params.update({"_id": []}) + JSONRPC10Request(**self.request_params) + + self.request_params.update({"_id": ()}) + JSONRPC10Request(**self.request_params) + + def test_id_validation_default_id_none(self): + del self.request_params["_id"] + JSONRPC10Request(**self.request_params) + + def test_data_method_1(self): + r = JSONRPC10Request("add", []) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_method_2(self): + r = JSONRPC10Request(method="add", params=[]) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_params_1(self): + r = JSONRPC10Request("add", params=[], _id=None) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_params_2(self): + r = JSONRPC10Request("add", ()) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_params_3(self): + r = JSONRPC10Request("add", (1, 2)) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [1, 2], + "id": None, + }) + + def test_data_id_1(self): + r = JSONRPC10Request("add", [], _id="null") + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": "null", + }) + + def test_data_id_1_notification(self): + r = JSONRPC10Request("add", [], _id="null", is_notification=True) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_id_2(self): + r = JSONRPC10Request("add", [], _id=None) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_id_2_notification(self): + r = JSONRPC10Request("add", [], _id=None, is_notification=True) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_id_3(self): + r = JSONRPC10Request("add", [], _id="id") + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": "id", + }) + + def test_data_id_3_notification(self): + r = JSONRPC10Request("add", [], _id="id", is_notification=True) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_data_id_4(self): + r = JSONRPC10Request("add", [], _id=0) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": 0, + }) + + def test_data_id_4_notification(self): + r = JSONRPC10Request("add", [], _id=0, is_notification=True) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "method": "add", + "params": [], + "id": None, + }) + + def test_is_notification(self): + r = JSONRPC10Request("add", []) + self.assertTrue(r.is_notification) + + r = JSONRPC10Request("add", [], _id=None) + self.assertTrue(r.is_notification) + + r = JSONRPC10Request("add", [], _id="null") + self.assertFalse(r.is_notification) + + r = JSONRPC10Request("add", [], _id=0) + self.assertFalse(r.is_notification) + + r = JSONRPC10Request("add", [], is_notification=True) + self.assertTrue(r.is_notification) + + r = JSONRPC10Request("add", [], is_notification=True, _id=None) + self.assertTrue(r.is_notification) + + r = JSONRPC10Request("add", [], is_notification=True, _id=0) + self.assertTrue(r.is_notification) + + def test_set_unset_notification_keep_id(self): + r = JSONRPC10Request("add", [], is_notification=True, _id=0) + self.assertTrue(r.is_notification) + self.assertEqual(r.data["id"], None) + + r.is_notification = False + self.assertFalse(r.is_notification) + self.assertEqual(r.data["id"], 0) + + def test_error_if_notification_true_but_id_none(self): + r = JSONRPC10Request("add", [], is_notification=True, _id=None) + with self.assertRaises(ValueError): + r.is_notification = False + + def test_from_json_invalid_request_method(self): + str_json = json.dumps({ + "params": [1, 2], + "id": 0, + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC10Request.from_json(str_json) + + def test_from_json_invalid_request_params(self): + str_json = json.dumps({ + "method": "add", + "id": 0, + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC10Request.from_json(str_json) + + def test_from_json_invalid_request_id(self): + str_json = json.dumps({ + "method": "add", + "params": [1, 2], + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC10Request.from_json(str_json) + + def test_from_json_invalid_request_extra_data(self): + str_json = json.dumps({ + "method": "add", + "params": [1, 2], + "id": 0, + "is_notification": True, + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC10Request.from_json(str_json) + + def test_from_json_request(self): + str_json = json.dumps({ + "method": "add", + "params": [1, 2], + "id": 0, + }) + + request = JSONRPC10Request.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPC10Request)) + self.assertEqual(request.method, "add") + self.assertEqual(request.params, [1, 2]) + self.assertEqual(request._id, 0) + self.assertFalse(request.is_notification) + + def test_from_json_request_notification(self): + str_json = json.dumps({ + "method": "add", + "params": [1, 2], + "id": None, + }) + + request = JSONRPC10Request.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPC10Request)) + self.assertEqual(request.method, "add") + self.assertEqual(request.params, [1, 2]) + self.assertEqual(request._id, None) + self.assertTrue(request.is_notification) + + def test_from_json_string_not_dict(self): + with self.assertRaises(ValueError): + JSONRPC10Request.from_json("[]") + + with self.assertRaises(ValueError): + JSONRPC10Request.from_json("0") + + def test_data_setter(self): + request = JSONRPC10Request(**self.request_params) + with self.assertRaises(ValueError): + request.data = [] + + with self.assertRaises(ValueError): + request.data = "" + + with self.assertRaises(ValueError): + request.data = None + + +class TestJSONRPC10Response(unittest.TestCase): + + """ Test JSONRPC10Response functionality.""" + + def setUp(self): + self.response_success_params = { + "result": "", + "error": None, + "_id": 1, + } + self.response_error_params = { + "result": None, + "error": { + "code": 1, + "message": "error", + }, + "_id": 1, + } + + def test_correct_init(self): + """ Test object is created.""" + JSONRPC10Response(**self.response_success_params) + JSONRPC10Response(**self.response_error_params) + + def test_validation_incorrect_no_parameters(self): + with self.assertRaises(ValueError): + JSONRPC10Response() + + def test_validation_success_incorrect(self): + wrong_params = self.response_success_params + del wrong_params["_id"] + with self.assertRaises(ValueError): + JSONRPC10Response(**wrong_params) + + def test_validation_error_incorrect(self): + wrong_params = self.response_error_params + del wrong_params["_id"] + with self.assertRaises(ValueError): + JSONRPC10Response(**wrong_params) + + def _test_validation_incorrect_result_and_error(self): + # @todo: remove + # It is OK because result is an mepty string, it is still result + with self.assertRaises(ValueError): + JSONRPC10Response(result="", error="", _id=0) + + response = JSONRPC10Response(error="", _id=0) + with self.assertRaises(ValueError): + response.result = "" + + def test_data(self): + r = JSONRPC10Response(result="", _id=0) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "result": "", + "id": 0, + }) + + def test_data_setter(self): + response = JSONRPC10Response(**self.response_success_params) + with self.assertRaises(ValueError): + response.data = [] + + with self.assertRaises(ValueError): + response.data = "" + + with self.assertRaises(ValueError): + response.data = None + + def test_validation_id(self): + response = JSONRPC10Response(**self.response_success_params) + self.assertEqual(response._id, self.response_success_params["_id"]) diff --git a/jsonrpc/tests/test_jsonrpc2.py b/jsonrpc/tests/test_jsonrpc2.py new file mode 100644 index 000000000..32c1639ab --- /dev/null +++ b/jsonrpc/tests/test_jsonrpc2.py @@ -0,0 +1,728 @@ +import json +import sys + +from ..exceptions import JSONRPCInvalidRequestException +from ..jsonrpc2 import ( + JSONRPC20Request, + JSONRPC20BatchRequest, + JSONRPC20Response, + JSONRPC20BatchResponse, +) + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONRPC20Request(unittest.TestCase): + + """ Test JSONRPC20Request functionality.""" + + def setUp(self): + self.request_params = { + "method": "add", + "params": [1, 2], + "_id": 1, + } + + def test_correct_init(self): + """ Test object is created.""" + JSONRPC20Request(**self.request_params) + + def test_validation_incorrect_no_parameters(self): + with self.assertRaises(ValueError): + JSONRPC20Request() + + def test_method_validation_str(self): + self.request_params.update({"method": "add"}) + JSONRPC20Request(**self.request_params) + + def test_method_validation_not_str(self): + self.request_params.update({"method": []}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + self.request_params.update({"method": {}}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + def test_method_validation_str_rpc_prefix(self): + """ Test method SHOULD NOT starts with rpc. """ + self.request_params.update({"method": "rpc."}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + self.request_params.update({"method": "rpc.test"}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + self.request_params.update({"method": "rpccorrect"}) + JSONRPC20Request(**self.request_params) + + self.request_params.update({"method": "rpc"}) + JSONRPC20Request(**self.request_params) + + def test_params_validation_list(self): + self.request_params.update({"params": []}) + JSONRPC20Request(**self.request_params) + + self.request_params.update({"params": [0]}) + JSONRPC20Request(**self.request_params) + + def test_params_validation_tuple(self): + self.request_params.update({"params": ()}) + JSONRPC20Request(**self.request_params) + + self.request_params.update({"params": tuple([0])}) + JSONRPC20Request(**self.request_params) + + def test_params_validation_dict(self): + self.request_params.update({"params": {}}) + JSONRPC20Request(**self.request_params) + + self.request_params.update({"params": {"a": 0}}) + JSONRPC20Request(**self.request_params) + + def test_params_validation_none(self): + self.request_params.update({"params": None}) + JSONRPC20Request(**self.request_params) + + def test_params_validation_incorrect(self): + self.request_params.update({"params": "str"}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + def test_request_args(self): + self.assertEqual(JSONRPC20Request("add").args, ()) + self.assertEqual(JSONRPC20Request("add", []).args, ()) + self.assertEqual(JSONRPC20Request("add", {"a": 1}).args, ()) + self.assertEqual(JSONRPC20Request("add", [1, 2]).args, (1, 2)) + + def test_request_kwargs(self): + self.assertEqual(JSONRPC20Request("add").kwargs, {}) + self.assertEqual(JSONRPC20Request("add", [1, 2]).kwargs, {}) + self.assertEqual(JSONRPC20Request("add", {}).kwargs, {}) + self.assertEqual(JSONRPC20Request("add", {"a": 1}).kwargs, {"a": 1}) + + def test_id_validation_string(self): + self.request_params.update({"_id": "id"}) + JSONRPC20Request(**self.request_params) + + def test_id_validation_int(self): + self.request_params.update({"_id": 0}) + JSONRPC20Request(**self.request_params) + + def test_id_validation_null(self): + self.request_params.update({"_id": "null"}) + JSONRPC20Request(**self.request_params) + + def test_id_validation_none(self): + self.request_params.update({"_id": None}) + JSONRPC20Request(**self.request_params) + + def test_id_validation_float(self): + self.request_params.update({"_id": 0.1}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + def test_id_validation_incorrect(self): + self.request_params.update({"_id": []}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + self.request_params.update({"_id": ()}) + with self.assertRaises(ValueError): + JSONRPC20Request(**self.request_params) + + def test_data_method_1(self): + r = JSONRPC20Request("add") + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": None, + }) + + def test_data_method_2(self): + r = JSONRPC20Request(method="add") + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": None, + }) + + def test_data_method_3(self): + r = JSONRPC20Request("add", None) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": None, + }) + + def test_data_params_1(self): + r = JSONRPC20Request("add", params=None, _id=None) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": None, + }) + + def test_data_params_2(self): + r = JSONRPC20Request("add", []) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "params": [], + "id": None, + }) + + def test_data_params_3(self): + r = JSONRPC20Request("add", ()) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "params": [], + "id": None, + }) + + def test_data_params_4(self): + r = JSONRPC20Request("add", (1, 2)) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "params": [1, 2], + "id": None, + }) + + def test_data_params_5(self): + r = JSONRPC20Request("add", {"a": 0}) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "params": {"a": 0}, + "id": None, + }) + + def test_data_id_1(self): + r = JSONRPC20Request("add", _id="null") + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": "null", + }) + + def test_data_id_1_notification(self): + r = JSONRPC20Request("add", _id="null", is_notification=True) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + }) + + def test_data_id_2(self): + r = JSONRPC20Request("add", _id=None) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": None, + }) + + def test_data_id_2_notification(self): + r = JSONRPC20Request("add", _id=None, is_notification=True) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + }) + + def test_data_id_3(self): + r = JSONRPC20Request("add", _id="id") + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": "id", + }) + + def test_data_id_3_notification(self): + r = JSONRPC20Request("add", _id="id", is_notification=True) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + }) + + def test_data_id_4(self): + r = JSONRPC20Request("add", _id=0) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + "id": 0, + }) + + def test_data_id_4_notification(self): + r = JSONRPC20Request("add", _id=0, is_notification=True) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "method": "add", + }) + + def test_is_notification(self): + r = JSONRPC20Request("add") + self.assertFalse(r.is_notification) + + r = JSONRPC20Request("add", _id=None) + self.assertFalse(r.is_notification) + + r = JSONRPC20Request("add", _id="null") + self.assertFalse(r.is_notification) + + r = JSONRPC20Request("add", _id=0) + self.assertFalse(r.is_notification) + + r = JSONRPC20Request("add", is_notification=True) + self.assertTrue(r.is_notification) + + r = JSONRPC20Request("add", is_notification=True, _id=None) + self.assertTrue(r.is_notification) + self.assertNotIn("id", r.data) + + r = JSONRPC20Request("add", is_notification=True, _id=0) + self.assertTrue(r.is_notification) + self.assertNotIn("id", r.data) + + def test_set_unset_notification_keep_id(self): + r = JSONRPC20Request("add", is_notification=True, _id=0) + self.assertTrue(r.is_notification) + self.assertFalse("id" in r.data) + + r.is_notification = False + self.assertFalse(r.is_notification) + self.assertTrue("id" in r.data) + self.assertEqual(r.data["id"], 0) + + def test_serialize_method_1(self): + r = JSONRPC20Request("add") + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": None, + }, json.loads(r.json)) + + def test_serialize_method_2(self): + r = JSONRPC20Request(method="add") + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": None, + }, json.loads(r.json)) + + def test_serialize_method_3(self): + r = JSONRPC20Request("add", None) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": None, + }, json.loads(r.json)) + + def test_serialize_params_1(self): + r = JSONRPC20Request("add", params=None, _id=None) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": None, + }, json.loads(r.json)) + + def test_serialize_params_2(self): + r = JSONRPC20Request("add", []) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "params": [], + "id": None, + }, json.loads(r.json)) + + def test_serialize_params_3(self): + r = JSONRPC20Request("add", ()) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "params": [], + "id": None, + }, json.loads(r.json)) + + def test_serialize_params_4(self): + r = JSONRPC20Request("add", (1, 2)) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "params": [1, 2], + "id": None, + }, json.loads(r.json)) + + def test_serialize_params_5(self): + r = JSONRPC20Request("add", {"a": 0}) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "params": {"a": 0}, + "id": None, + }, json.loads(r.json)) + + def test_serialize_id_1(self): + r = JSONRPC20Request("add", _id="null") + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": "null", + }, json.loads(r.json)) + + def test_serialize_id_2(self): + r = JSONRPC20Request("add", _id=None) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": None, + }, json.loads(r.json)) + + def test_serialize_id_3(self): + r = JSONRPC20Request("add", _id="id") + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": "id", + }, json.loads(r.json)) + + def test_serialize_id_4(self): + r = JSONRPC20Request("add", _id=0) + self.assertTrue({ + "jsonrpc": "2.0", + "method": "add", + "id": 0, + }, json.loads(r.json)) + + def test_from_json_request_no_id(self): + str_json = json.dumps({ + "method": "add", + "params": [1, 2], + "jsonrpc": "2.0", + }) + + request = JSONRPC20Request.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPC20Request)) + self.assertEqual(request.method, "add") + self.assertEqual(request.params, [1, 2]) + self.assertEqual(request._id, None) + self.assertTrue(request.is_notification) + + def test_from_json_request_no_params(self): + str_json = json.dumps({ + "method": "add", + "jsonrpc": "2.0", + }) + + request = JSONRPC20Request.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPC20Request)) + self.assertEqual(request.method, "add") + self.assertEqual(request.params, None) + self.assertEqual(request._id, None) + self.assertTrue(request.is_notification) + + def test_from_json_request_null_id(self): + str_json = json.dumps({ + "method": "add", + "jsonrpc": "2.0", + "id": None, + }) + + request = JSONRPC20Request.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPC20Request)) + self.assertEqual(request.method, "add") + self.assertEqual(request.params, None) + self.assertEqual(request._id, None) + self.assertFalse(request.is_notification) + + def test_from_json_request(self): + str_json = json.dumps({ + "method": "add", + "params": [0, 1], + "jsonrpc": "2.0", + "id": "id", + }) + + request = JSONRPC20Request.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPC20Request)) + self.assertEqual(request.method, "add") + self.assertEqual(request.params, [0, 1]) + self.assertEqual(request._id, "id") + self.assertFalse(request.is_notification) + + def test_from_json_invalid_request_jsonrpc(self): + str_json = json.dumps({ + "method": "add", + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC20Request.from_json(str_json) + + def test_from_json_invalid_request_method(self): + str_json = json.dumps({ + "jsonrpc": "2.0", + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC20Request.from_json(str_json) + + def test_from_json_invalid_request_extra_data(self): + str_json = json.dumps({ + "jsonrpc": "2.0", + "method": "add", + "is_notification": True, + }) + + with self.assertRaises(JSONRPCInvalidRequestException): + JSONRPC20Request.from_json(str_json) + + def test_data_setter(self): + request = JSONRPC20Request(**self.request_params) + with self.assertRaises(ValueError): + request.data = [] + + with self.assertRaises(ValueError): + request.data = "" + + with self.assertRaises(ValueError): + request.data = None + + +class TestJSONRPC20BatchRequest(unittest.TestCase): + + """ Test JSONRPC20BatchRequest functionality.""" + + def test_batch_request(self): + request = JSONRPC20BatchRequest( + JSONRPC20Request("devide", {"num": 1, "denom": 2}, _id=1), + JSONRPC20Request("devide", {"num": 3, "denom": 2}, _id=2), + ) + self.assertEqual(json.loads(request.json), [ + {"method": "devide", "params": {"num": 1, "denom": 2}, "id": 1, + "jsonrpc": "2.0"}, + {"method": "devide", "params": {"num": 3, "denom": 2}, "id": 2, + "jsonrpc": "2.0"}, + ]) + + def test_from_json_batch(self): + str_json = json.dumps([ + {"method": "add", "params": [1, 2], "jsonrpc": "2.0"}, + {"method": "mul", "params": [1, 2], "jsonrpc": "2.0"}, + ]) + + requests = JSONRPC20BatchRequest.from_json(str_json) + self.assertTrue(isinstance(requests, JSONRPC20BatchRequest)) + for r in requests: + self.assertTrue(isinstance(r, JSONRPC20Request)) + self.assertTrue(r.method in ["add", "mul"]) + self.assertEqual(r.params, [1, 2]) + self.assertEqual(r._id, None) + self.assertTrue(r.is_notification) + + def test_from_json_batch_one(self): + str_json = json.dumps([ + {"method": "add", "params": [1, 2], "jsonrpc": "2.0", "id": None}, + ]) + + requests = JSONRPC20Request.from_json(str_json) + self.assertTrue(isinstance(requests, JSONRPC20BatchRequest)) + requests = list(requests) + self.assertEqual(len(requests), 1) + r = requests[0] + self.assertTrue(isinstance(r, JSONRPC20Request)) + self.assertEqual(r.method, "add") + self.assertEqual(r.params, [1, 2]) + self.assertEqual(r._id, None) + self.assertFalse(r.is_notification) + + def test_response_iterator(self): + requests = JSONRPC20BatchRequest( + JSONRPC20Request("devide", {"num": 1, "denom": 2}, _id=1), + JSONRPC20Request("devide", {"num": 3, "denom": 2}, _id=2), + ) + for request in requests: + self.assertTrue(isinstance(request, JSONRPC20Request)) + self.assertEqual(request.method, "devide") + + +class TestJSONRPC20Response(unittest.TestCase): + + """ Test JSONRPC20Response functionality.""" + + def setUp(self): + self.response_success_params = { + "result": "", + "_id": 1, + } + self.response_error_params = { + "error": { + "code": 1, + "message": "error", + }, + "_id": 1, + } + + def test_correct_init(self): + """ Test object is created.""" + JSONRPC20Response(**self.response_success_params) + + def test_validation_incorrect_no_parameters(self): + with self.assertRaises(ValueError): + JSONRPC20Response() + + def test_validation_incorrect_result_and_error(self): + response = JSONRPC20Response(error={"code": 1, "message": ""}) + with self.assertRaises(ValueError): + response.result = "" + + def test_validation_error_correct(self): + JSONRPC20Response(**self.response_error_params) + + def test_validation_error_incorrect(self): + self.response_error_params["error"].update({"code": "str"}) + with self.assertRaises(ValueError): + JSONRPC20Response(**self.response_error_params) + + def test_validation_error_incorrect_no_code(self): + del self.response_error_params["error"]["code"] + with self.assertRaises(ValueError): + JSONRPC20Response(**self.response_error_params) + + def test_validation_error_incorrect_no_message(self): + del self.response_error_params["error"]["message"] + with self.assertRaises(ValueError): + JSONRPC20Response(**self.response_error_params) + + def test_validation_error_incorrect_message_not_str(self): + self.response_error_params["error"].update({"message": 0}) + with self.assertRaises(ValueError): + JSONRPC20Response(**self.response_error_params) + + def test_validation_id(self): + response = JSONRPC20Response(**self.response_success_params) + self.assertEqual(response._id, self.response_success_params["_id"]) + + def test_validation_id_incorrect_type(self): + response = JSONRPC20Response(**self.response_success_params) + + with self.assertRaises(ValueError): + response._id = [] + + with self.assertRaises(ValueError): + response._id = {} + + with self.assertRaises(ValueError): + response._id = 0.1 + + def test_data_result(self): + r = JSONRPC20Response(result="") + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "result": "", + "id": None, + }) + + def test_data_result_id_none(self): + r = JSONRPC20Response(result="", _id=None) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "result": "", + "id": None, + }) + + def test_data_result_id(self): + r = JSONRPC20Response(result="", _id=0) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "result": "", + "id": 0, + }) + + def test_data_error(self): + r = JSONRPC20Response(error={"code": 0, "message": ""}) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "error": { + "code": 0, + "message": "", + }, + "id": None, + }) + + def test_data_error_id_none(self): + r = JSONRPC20Response(error={"code": 0, "message": ""}, _id=None) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "error": { + "code": 0, + "message": "", + }, + "id": None, + }) + + def test_data_error_id(self): + r = JSONRPC20Response(error={"code": 0, "message": ""}, _id=0) + self.assertEqual(json.loads(r.json), r.data) + self.assertEqual(r.data, { + "jsonrpc": "2.0", + "error": { + "code": 0, + "message": "", + }, + "id": 0, + }) + + def test_data_setter(self): + response = JSONRPC20Response(**self.response_success_params) + with self.assertRaises(ValueError): + response.data = [] + + with self.assertRaises(ValueError): + response.data = "" + + with self.assertRaises(ValueError): + response.data = None + + +class TestJSONRPC20BatchResponse(unittest.TestCase): + + """ Test JSONRPC20BatchResponse functionality.""" + + def test_batch_response(self): + response = JSONRPC20BatchResponse( + JSONRPC20Response(result="result", _id=1), + JSONRPC20Response(error={"code": 0, "message": ""}, _id=2), + ) + self.assertEqual(json.loads(response.json), [ + {"result": "result", "id": 1, "jsonrpc": "2.0"}, + {"error": {"code": 0, "message": ""}, "id": 2, "jsonrpc": "2.0"}, + ]) + + def test_response_iterator(self): + responses = JSONRPC20BatchResponse( + JSONRPC20Response(result="result", _id=1), + JSONRPC20Response(result="result", _id=2), + ) + for response in responses: + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.result, "result") + + def test_batch_response_data(self): + response = JSONRPC20BatchResponse( + JSONRPC20Response(result="result", _id=1), + JSONRPC20Response(result="result", _id=2), + JSONRPC20Response(result="result"), + ) + self.assertEqual(response.data, [ + {"id": 1, "jsonrpc": "2.0", "result": "result"}, + {"id": 2, "jsonrpc": "2.0", "result": "result"}, + {"id": None, "jsonrpc": "2.0", "result": "result"}, + ]) diff --git a/jsonrpc/tests/test_jsonrpc_errors.py b/jsonrpc/tests/test_jsonrpc_errors.py new file mode 100644 index 000000000..abc559fe0 --- /dev/null +++ b/jsonrpc/tests/test_jsonrpc_errors.py @@ -0,0 +1,150 @@ +import json +import sys + +from ..exceptions import ( + JSONRPCError, + JSONRPCInternalError, + JSONRPCInvalidParams, + JSONRPCInvalidRequest, + JSONRPCMethodNotFound, + JSONRPCParseError, + JSONRPCServerError, + JSONRPCDispatchException, +) + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONRPCError(unittest.TestCase): + def setUp(self): + self.error_params = { + "code": 0, + "message": "", + } + + def test_correct_init(self): + """ Test object is created.""" + JSONRPCError(**self.error_params) + + def test_validation_incorrect_no_parameters(self): + with self.assertRaises(ValueError): + JSONRPCError() + + def test_code_validation_int(self): + self.error_params.update({"code": 32000}) + JSONRPCError(**self.error_params) + + def test_code_validation_no_code(self): + del self.error_params["code"] + with self.assertRaises(ValueError): + JSONRPCError(**self.error_params) + + def test_code_validation_str(self): + self.error_params.update({"code": "0"}) + with self.assertRaises(ValueError): + JSONRPCError(**self.error_params) + + def test_message_validation_str(self): + self.error_params.update({"message": ""}) + JSONRPCError(**self.error_params) + + def test_message_validation_none(self): + del self.error_params["message"] + with self.assertRaises(ValueError): + JSONRPCError(**self.error_params) + + def test_message_validation_int(self): + self.error_params.update({"message": 0}) + with self.assertRaises(ValueError): + JSONRPCError(**self.error_params) + + def test_data_validation_none(self): + self.error_params.update({"data": None}) + JSONRPCError(**self.error_params) + + def test_data_validation(self): + self.error_params.update({"data": {}}) + JSONRPCError(**self.error_params) + + self.error_params.update({"data": ""}) + JSONRPCError(**self.error_params) + + def test_json(self): + error = JSONRPCError(**self.error_params) + self.assertEqual( + json.loads(error.json), + self.error_params, + ) + + def test_from_json(self): + str_json = json.dumps({ + "code": 0, + "message": "", + "data": {}, + }) + + request = JSONRPCError.from_json(str_json) + self.assertTrue(isinstance(request, JSONRPCError)) + self.assertEqual(request.code, 0) + self.assertEqual(request.message, "") + self.assertEqual(request.data, {}) + + +class TestJSONRPCParseError(unittest.TestCase): + def test_code_message(self): + error = JSONRPCParseError() + self.assertEqual(error.code, -32700) + self.assertEqual(error.message, "Parse error") + self.assertEqual(error.data, None) + + +class TestJSONRPCServerError(unittest.TestCase): + def test_code_message(self): + error = JSONRPCServerError() + self.assertEqual(error.code, -32000) + self.assertEqual(error.message, "Server error") + self.assertEqual(error.data, None) + + +class TestJSONRPCInternalError(unittest.TestCase): + def test_code_message(self): + error = JSONRPCInternalError() + self.assertEqual(error.code, -32603) + self.assertEqual(error.message, "Internal error") + self.assertEqual(error.data, None) + + +class TestJSONRPCInvalidParams(unittest.TestCase): + def test_code_message(self): + error = JSONRPCInvalidParams() + self.assertEqual(error.code, -32602) + self.assertEqual(error.message, "Invalid params") + self.assertEqual(error.data, None) + + +class TestJSONRPCInvalidRequest(unittest.TestCase): + def test_code_message(self): + error = JSONRPCInvalidRequest() + self.assertEqual(error.code, -32600) + self.assertEqual(error.message, "Invalid Request") + self.assertEqual(error.data, None) + + +class TestJSONRPCMethodNotFound(unittest.TestCase): + def test_code_message(self): + error = JSONRPCMethodNotFound() + self.assertEqual(error.code, -32601) + self.assertEqual(error.message, "Method not found") + self.assertEqual(error.data, None) + + +class TestJSONRPCDispatchException(unittest.TestCase): + def test_code_message(self): + error = JSONRPCDispatchException(message="message", + code=400, data={"param": 1}) + self.assertEqual(error.error.code, 400) + self.assertEqual(error.error.message, "message") + self.assertEqual(error.error.data, {"param": 1}) diff --git a/jsonrpc/tests/test_manager.py b/jsonrpc/tests/test_manager.py new file mode 100644 index 000000000..bda108e1c --- /dev/null +++ b/jsonrpc/tests/test_manager.py @@ -0,0 +1,175 @@ +import sys + +from ..manager import JSONRPCResponseManager +from ..jsonrpc2 import ( + JSONRPC20BatchRequest, + JSONRPC20BatchResponse, + JSONRPC20Request, + JSONRPC20Response, +) +from ..jsonrpc1 import JSONRPC10Request, JSONRPC10Response +from ..exceptions import JSONRPCDispatchException + +if sys.version_info < (3, 3): + from mock import MagicMock +else: + from unittest.mock import MagicMock + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONRPCResponseManager(unittest.TestCase): + def setUp(self): + def raise_(e): + raise e + + self.long_time_method = MagicMock() + self.dispatcher = { + "add": sum, + "multiply": lambda a, b: a * b, + "list_len": len, + "101_base": lambda **kwargs: int("101", **kwargs), + "error": lambda: raise_(KeyError("error_explanation")), + "type_error": lambda: raise_(TypeError("TypeError inside method")), + "long_time_method": self.long_time_method, + "dispatch_error": lambda x: raise_( + JSONRPCDispatchException(code=4000, message="error", + data={"param": 1})), + } + + def test_dispatch_error(self): + request = JSONRPC20Request("dispatch_error", ["test"], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "error") + self.assertEqual(response.error["code"], 4000) + self.assertEqual(response.error["data"], {"param": 1}) + + def test_returned_type_response(self): + request = JSONRPC20Request("add", [[]], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + + def test_returned_type_butch_response(self): + request = JSONRPC20BatchRequest( + JSONRPC20Request("add", [[]], _id=0)) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20BatchResponse)) + + def test_returned_type_response_rpc10(self): + request = JSONRPC10Request("add", [[]], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC10Response)) + + def test_parse_error(self): + req = '{"jsonrpc": "2.0", "method": "foobar, "params": "bar", "baz]' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Parse error") + self.assertEqual(response.error["code"], -32700) + + def test_invalid_request(self): + req = '{"jsonrpc": "2.0", "method": 1, "params": "bar"}' + response = JSONRPCResponseManager.handle(req, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid Request") + self.assertEqual(response.error["code"], -32600) + + def test_method_not_found(self): + request = JSONRPC20Request("does_not_exist", [[]], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Method not found") + self.assertEqual(response.error["code"], -32601) + + def test_invalid_params(self): + request = JSONRPC20Request("add", {"a": 0}, _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid params") + self.assertEqual(response.error["code"], -32602) + self.assertIn(response.error["data"]["message"], [ + 'sum() takes no keyword arguments', + "sum() got an unexpected keyword argument 'a'", + ]) + + def test_invalid_params_custom_function(self): + request = JSONRPC20Request("multiply", [0], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid params") + self.assertEqual(response.error["code"], -32602) + + request = JSONRPC20Request("multiply", [0, 1, 2], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid params") + self.assertEqual(response.error["code"], -32602) + + request = JSONRPC20Request("multiply", {"a": 1}, _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid params") + self.assertEqual(response.error["code"], -32602) + + request = JSONRPC20Request("multiply", {"a": 1, "b": 2, "c": 3}, _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid params") + self.assertEqual(response.error["code"], -32602) + + def test_server_error(self): + request = JSONRPC20Request("error", _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Server error") + self.assertEqual(response.error["code"], -32000) + self.assertEqual(response.error["data"]['type'], "KeyError") + self.assertEqual( + response.error["data"]['args'], ('error_explanation',)) + self.assertEqual( + response.error["data"]['message'], "'error_explanation'") + + def test_notification_calls_method(self): + request = JSONRPC20Request("long_time_method", is_notification=True) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertEqual(response, None) + self.long_time_method.assert_called_once_with() + + def test_notification_does_not_return_error_does_not_exist(self): + request = JSONRPC20Request("does_not_exist", is_notification=True) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertEqual(response, None) + + def test_notification_does_not_return_error_invalid_params(self): + request = JSONRPC20Request("add", {"a": 0}, is_notification=True) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertEqual(response, None) + + def test_notification_does_not_return_error(self): + request = JSONRPC20Request("error", is_notification=True) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertEqual(response, None) + + def test_type_error_inside_method(self): + request = JSONRPC20Request("type_error", _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Server error") + self.assertEqual(response.error["code"], -32000) + self.assertEqual(response.error["data"]['type'], "TypeError") + self.assertEqual( + response.error["data"]['args'], ('TypeError inside method',)) + self.assertEqual( + response.error["data"]['message'], 'TypeError inside method') + + def test_invalid_params_before_dispatcher_error(self): + request = JSONRPC20Request( + "dispatch_error", ["invalid", "params"], _id=0) + response = JSONRPCResponseManager.handle(request.json, self.dispatcher) + self.assertTrue(isinstance(response, JSONRPC20Response)) + self.assertEqual(response.error["message"], "Invalid params") + self.assertEqual(response.error["code"], -32602) diff --git a/jsonrpc/tests/test_pep3107.py b/jsonrpc/tests/test_pep3107.py new file mode 100644 index 000000000..6af14b729 --- /dev/null +++ b/jsonrpc/tests/test_pep3107.py @@ -0,0 +1,28 @@ +from ..manager import JSONRPCResponseManager + +import sys + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONRPCResponseManager(unittest.TestCase): + @unittest.skipIf(sys.version_info < (3, 5), "Test Py3.5+ functionality") + def test_typeerror_with_annotations(self): + """If a function has Python3 annotations and is called with improper + arguments, make sure the framework doesn't fail with inspect.getargspec + """ + from .py35_utils import distance + + dispatcher = { + "distance": distance, + } + + req = '{"jsonrpc": "2.0", "method": "distance", "params": [], "id": 1}' + result = JSONRPCResponseManager.handle(req, dispatcher) + + # Make sure this returns JSONRPCInvalidParams rather than raising + # UnboundLocalError + self.assertEqual(result.error['code'], -32602) diff --git a/jsonrpc/tests/test_utils.py b/jsonrpc/tests/test_utils.py new file mode 100644 index 000000000..9d0c76d81 --- /dev/null +++ b/jsonrpc/tests/test_utils.py @@ -0,0 +1,130 @@ +""" Test utility functionality.""" +from ..utils import JSONSerializable, DatetimeDecimalEncoder, is_invalid_params + +import datetime +import decimal +import json +import sys + +if sys.version_info < (3, 3): + from mock import patch +else: + from unittest.mock import patch + +if sys.version_info < (2, 7): + import unittest2 as unittest +else: + import unittest + + +class TestJSONSerializable(unittest.TestCase): + + """ Test JSONSerializable functionality.""" + + def setUp(self): + class A(JSONSerializable): + @property + def json(self): + pass + + self._class = A + + def test_abstract_class(self): + with self.assertRaises(TypeError): + JSONSerializable() + + self._class() + + def test_definse_serialize_deserialize(self): + """ Test classmethods of inherited class.""" + self.assertEqual(self._class.serialize({}), "{}") + self.assertEqual(self._class.deserialize("{}"), {}) + + def test_from_json(self): + self.assertTrue(isinstance(self._class.from_json('{}'), self._class)) + + def test_from_json_incorrect(self): + with self.assertRaises(ValueError): + self._class.from_json('[]') + + +class TestDatetimeDecimalEncoder(unittest.TestCase): + + """ Test DatetimeDecimalEncoder functionality.""" + + def test_date_encoder(self): + obj = datetime.date.today() + + with self.assertRaises(TypeError): + json.dumps(obj) + + self.assertEqual( + json.dumps(obj, cls=DatetimeDecimalEncoder), + '"{0}"'.format(obj.isoformat()), + ) + + def test_datetime_encoder(self): + obj = datetime.datetime.now() + + with self.assertRaises(TypeError): + json.dumps(obj) + + self.assertEqual( + json.dumps(obj, cls=DatetimeDecimalEncoder), + '"{0}"'.format(obj.isoformat()), + ) + + def test_decimal_encoder(self): + obj = decimal.Decimal('0.1') + + with self.assertRaises(TypeError): + json.dumps(obj) + + result = json.dumps(obj, cls=DatetimeDecimalEncoder) + self.assertTrue(isinstance(result, str)) + self.assertEqual(float(result), float(0.1)) + + def test_default(self): + encoder = DatetimeDecimalEncoder() + with patch.object(json.JSONEncoder, 'default') as json_default: + encoder.default("") + + self.assertEqual(json_default.call_count, 1) + + +class TestUtils(unittest.TestCase): + + """ Test utils functions.""" + + def test_is_invalid_params_builtin(self): + self.assertTrue(is_invalid_params(sum, 0, 0)) + # NOTE: builtin functions could not be recognized by inspect.isfunction + # It would raise TypeError if parameters are incorrect already. + # self.assertFalse(is_invalid_params(sum, [0, 0])) # <- fails + + def test_is_invalid_params_args(self): + self.assertTrue(is_invalid_params(lambda a, b: None, 0)) + self.assertTrue(is_invalid_params(lambda a, b: None, 0, 1, 2)) + + def test_is_invalid_params_kwargs(self): + self.assertTrue(is_invalid_params(lambda a: None, **{})) + self.assertTrue(is_invalid_params(lambda a: None, **{"a": 0, "b": 1})) + + def test_invalid_params_correct(self): + self.assertFalse(is_invalid_params(lambda: None)) + self.assertFalse(is_invalid_params(lambda a: None, 0)) + self.assertFalse(is_invalid_params(lambda a, b=0: None, 0)) + self.assertFalse(is_invalid_params(lambda a, b=0: None, 0, 0)) + + def test_is_invalid_params_mixed(self): + self.assertFalse(is_invalid_params(lambda a, b: None, 0, **{"b": 1})) + self.assertFalse(is_invalid_params( + lambda a, b, c=0: None, 0, **{"b": 1})) + + def test_is_invalid_params_py2(self): + with patch('jsonrpc.utils.sys') as mock_sys: + mock_sys.version_info = (2, 7) + with patch('jsonrpc.utils.is_invalid_params_py2') as mock_func: + is_invalid_params(lambda a: None, 0) + + assert mock_func.call_count == 1 diff --git a/jsonrpc/utils.py b/jsonrpc/utils.py new file mode 100644 index 000000000..cdac317b2 --- /dev/null +++ b/jsonrpc/utils.py @@ -0,0 +1,135 @@ +""" Utility functions for package.""" +from abc import ABCMeta, abstractmethod +import datetime +import decimal +import inspect +import json +import sys + +from . import six + + +class JSONSerializable(six.with_metaclass(ABCMeta, object)): + + """ Common functionality for json serializable objects.""" + + serialize = staticmethod(json.dumps) + deserialize = staticmethod(json.loads) + + @abstractmethod + def json(self): + raise NotImplementedError() + + @classmethod + def from_json(cls, json_str): + data = cls.deserialize(json_str) + + if not isinstance(data, dict): + raise ValueError("data should be dict") + + return cls(**data) + + +class DatetimeDecimalEncoder(json.JSONEncoder): + + """ Encoder for datetime and decimal serialization. + + Usage: json.dumps(object, cls=DatetimeDecimalEncoder) + NOTE: _iterencode does not work + + """ + + def default(self, o): + """ Encode JSON. + + :return str: A JSON encoded string + + """ + if isinstance(o, decimal.Decimal): + return float(o) + + if isinstance(o, (datetime.datetime, datetime.date)): + return o.isoformat() + + return json.JSONEncoder.default(self, o) + + +def is_invalid_params_py2(func, *args, **kwargs): + """ Check, whether function 'func' accepts parameters 'args', 'kwargs'. + + NOTE: Method is called after funct(*args, **kwargs) generated TypeError, + it is aimed to destinguish TypeError because of invalid parameters from + TypeError from inside the function. + + .. versionadded: 1.9.0 + + """ + funcargs, varargs, varkwargs, defaults = inspect.getargspec(func) + + unexpected = set(kwargs.keys()) - set(funcargs) + if len(unexpected) > 0: + return True + + params = [funcarg for funcarg in funcargs if funcarg not in kwargs] + funcargs_required = funcargs[:-len(defaults)] \ + if defaults is not None \ + else funcargs + params_required = [ + funcarg for funcarg in funcargs_required + if funcarg not in kwargs + ] + + return not (len(params_required) <= len(args) <= len(params)) + + +def is_invalid_params_py3(func, *args, **kwargs): + """ + Use inspect.signature instead of inspect.getargspec or + inspect.getfullargspec (based on inspect.signature itself) as it provides + more information about function parameters. + + .. versionadded: 1.11.2 + + """ + signature = inspect.signature(func) + parameters = signature.parameters + + unexpected = set(kwargs.keys()) - set(parameters.keys()) + if len(unexpected) > 0: + return True + + params = [ + parameter for name, parameter in parameters.items() + if name not in kwargs + ] + params_required = [ + param for param in params + if param.default is param.empty + ] + + return not (len(params_required) <= len(args) <= len(params)) + + +def is_invalid_params(func, *args, **kwargs): + """ + Method: + Validate pre-defined criteria, if any is True - function is invalid + 0. func should be callable + 1. kwargs should not have unexpected keywords + 2. remove kwargs.keys from func.parameters + 3. number of args should be <= remaining func.parameters + 4. number of args should be >= remaining func.parameters less default + """ + # For builtin functions inspect.getargspec(funct) return error. If builtin + # function generates TypeError, it is because of wrong parameters. + if not inspect.isfunction(func): + return True + + if sys.version_info >= (3, 3): + return is_invalid_params_py3(func, *args, **kwargs) + else: + # NOTE: use Python2 method for Python 3.2 as well. Starting from Python + # 3.3 it is recommended to use inspect.signature instead. + # In Python 3.0 - 3.2 inspect.getfullargspec is preferred but these + # versions are almost not supported. Users should consider upgrading. + return is_invalid_params_py2(func, *args, **kwargs) diff --git a/websocket/__init__.py b/websocket/__init__.py new file mode 100644 index 000000000..7c3154da2 --- /dev/null +++ b/websocket/__init__.py @@ -0,0 +1,29 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +from ._abnf import * +from ._app import WebSocketApp +from ._core import * +from ._exceptions import * +from ._logging import * +from ._socket import * + +__version__ = "0.55.0" diff --git a/websocket/_abnf.py b/websocket/_abnf.py new file mode 100644 index 000000000..a0000fa1c --- /dev/null +++ b/websocket/_abnf.py @@ -0,0 +1,447 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +import array +import os +import struct + +import six + +from ._exceptions import * +from ._utils import validate_utf8 +from threading import Lock + +try: + if six.PY3: + import numpy + else: + numpy = None +except ImportError: + numpy = None + +try: + # If wsaccel is available we use compiled routines to mask data. + if not numpy: + from wsaccel.xormask import XorMaskerSimple + + def _mask(_m, _d): + return XorMaskerSimple(_m).process(_d) +except ImportError: + # wsaccel is not available, we rely on python implementations. + def _mask(_m, _d): + for i in range(len(_d)): + _d[i] ^= _m[i % 4] + + if six.PY3: + return _d.tobytes() + else: + return _d.tostring() + + +__all__ = [ + 'ABNF', 'continuous_frame', 'frame_buffer', + 'STATUS_NORMAL', + 'STATUS_GOING_AWAY', + 'STATUS_PROTOCOL_ERROR', + 'STATUS_UNSUPPORTED_DATA_TYPE', + 'STATUS_STATUS_NOT_AVAILABLE', + 'STATUS_ABNORMAL_CLOSED', + 'STATUS_INVALID_PAYLOAD', + 'STATUS_POLICY_VIOLATION', + 'STATUS_MESSAGE_TOO_BIG', + 'STATUS_INVALID_EXTENSION', + 'STATUS_UNEXPECTED_CONDITION', + 'STATUS_BAD_GATEWAY', + 'STATUS_TLS_HANDSHAKE_ERROR', +] + +# closing frame status codes. +STATUS_NORMAL = 1000 +STATUS_GOING_AWAY = 1001 +STATUS_PROTOCOL_ERROR = 1002 +STATUS_UNSUPPORTED_DATA_TYPE = 1003 +STATUS_STATUS_NOT_AVAILABLE = 1005 +STATUS_ABNORMAL_CLOSED = 1006 +STATUS_INVALID_PAYLOAD = 1007 +STATUS_POLICY_VIOLATION = 1008 +STATUS_MESSAGE_TOO_BIG = 1009 +STATUS_INVALID_EXTENSION = 1010 +STATUS_UNEXPECTED_CONDITION = 1011 +STATUS_BAD_GATEWAY = 1014 +STATUS_TLS_HANDSHAKE_ERROR = 1015 + +VALID_CLOSE_STATUS = ( + STATUS_NORMAL, + STATUS_GOING_AWAY, + STATUS_PROTOCOL_ERROR, + STATUS_UNSUPPORTED_DATA_TYPE, + STATUS_INVALID_PAYLOAD, + STATUS_POLICY_VIOLATION, + STATUS_MESSAGE_TOO_BIG, + STATUS_INVALID_EXTENSION, + STATUS_UNEXPECTED_CONDITION, + STATUS_BAD_GATEWAY, +) + + +class ABNF(object): + """ + ABNF frame class. + see http://tools.ietf.org/html/rfc5234 + and http://tools.ietf.org/html/rfc6455#section-5.2 + """ + + # operation code values. + OPCODE_CONT = 0x0 + OPCODE_TEXT = 0x1 + OPCODE_BINARY = 0x2 + OPCODE_CLOSE = 0x8 + OPCODE_PING = 0x9 + OPCODE_PONG = 0xa + + # available operation code value tuple + OPCODES = (OPCODE_CONT, OPCODE_TEXT, OPCODE_BINARY, OPCODE_CLOSE, + OPCODE_PING, OPCODE_PONG) + + # opcode human readable string + OPCODE_MAP = { + OPCODE_CONT: "cont", + OPCODE_TEXT: "text", + OPCODE_BINARY: "binary", + OPCODE_CLOSE: "close", + OPCODE_PING: "ping", + OPCODE_PONG: "pong" + } + + # data length threshold. + LENGTH_7 = 0x7e + LENGTH_16 = 1 << 16 + LENGTH_63 = 1 << 63 + + def __init__(self, fin=0, rsv1=0, rsv2=0, rsv3=0, + opcode=OPCODE_TEXT, mask=1, data=""): + """ + Constructor for ABNF. + please check RFC for arguments. + """ + self.fin = fin + self.rsv1 = rsv1 + self.rsv2 = rsv2 + self.rsv3 = rsv3 + self.opcode = opcode + self.mask = mask + if data is None: + data = "" + self.data = data + self.get_mask_key = os.urandom + + def validate(self, skip_utf8_validation=False): + """ + validate the ABNF frame. + skip_utf8_validation: skip utf8 validation. + """ + if self.rsv1 or self.rsv2 or self.rsv3: + raise WebSocketProtocolException("rsv is not implemented, yet") + + if self.opcode not in ABNF.OPCODES: + raise WebSocketProtocolException("Invalid opcode %r", self.opcode) + + if self.opcode == ABNF.OPCODE_PING and not self.fin: + raise WebSocketProtocolException("Invalid ping frame.") + + if self.opcode == ABNF.OPCODE_CLOSE: + l = len(self.data) + if not l: + return + if l == 1 or l >= 126: + raise WebSocketProtocolException("Invalid close frame.") + if l > 2 and not skip_utf8_validation and not validate_utf8(self.data[2:]): + raise WebSocketProtocolException("Invalid close frame.") + + code = 256 * \ + six.byte2int(self.data[0:1]) + six.byte2int(self.data[1:2]) + if not self._is_valid_close_status(code): + raise WebSocketProtocolException("Invalid close opcode.") + + @staticmethod + def _is_valid_close_status(code): + return code in VALID_CLOSE_STATUS or (3000 <= code < 5000) + + def __str__(self): + return "fin=" + str(self.fin) \ + + " opcode=" + str(self.opcode) \ + + " data=" + str(self.data) + + @staticmethod + def create_frame(data, opcode, fin=1): + """ + create frame to send text, binary and other data. + + data: data to send. This is string value(byte array). + if opcode is OPCODE_TEXT and this value is unicode, + data value is converted into unicode string, automatically. + + opcode: operation code. please see OPCODE_XXX. + + fin: fin flag. if set to 0, create continue fragmentation. + """ + if opcode == ABNF.OPCODE_TEXT and isinstance(data, six.text_type): + data = data.encode("utf-8") + # mask must be set if send data from client + return ABNF(fin, 0, 0, 0, opcode, 1, data) + + def format(self): + """ + format this object to string(byte array) to send data to server. + """ + if any(x not in (0, 1) for x in [self.fin, self.rsv1, self.rsv2, self.rsv3]): + raise ValueError("not 0 or 1") + if self.opcode not in ABNF.OPCODES: + raise ValueError("Invalid OPCODE") + length = len(self.data) + if length >= ABNF.LENGTH_63: + raise ValueError("data is too long") + + frame_header = chr(self.fin << 7 + | self.rsv1 << 6 | self.rsv2 << 5 | self.rsv3 << 4 + | self.opcode) + if length < ABNF.LENGTH_7: + frame_header += chr(self.mask << 7 | length) + frame_header = six.b(frame_header) + elif length < ABNF.LENGTH_16: + frame_header += chr(self.mask << 7 | 0x7e) + frame_header = six.b(frame_header) + frame_header += struct.pack("!H", length) + else: + frame_header += chr(self.mask << 7 | 0x7f) + frame_header = six.b(frame_header) + frame_header += struct.pack("!Q", length) + + if not self.mask: + return frame_header + self.data + else: + mask_key = self.get_mask_key(4) + return frame_header + self._get_masked(mask_key) + + def _get_masked(self, mask_key): + s = ABNF.mask(mask_key, self.data) + + if isinstance(mask_key, six.text_type): + mask_key = mask_key.encode('utf-8') + + return mask_key + s + + @staticmethod + def mask(mask_key, data): + """ + mask or unmask data. Just do xor for each byte + + mask_key: 4 byte string(byte). + + data: data to mask/unmask. + """ + if data is None: + data = "" + + if isinstance(mask_key, six.text_type): + mask_key = six.b(mask_key) + + if isinstance(data, six.text_type): + data = six.b(data) + + if numpy: + origlen = len(data) + _mask_key = mask_key[3] << 24 | mask_key[2] << 16 | mask_key[1] << 8 | mask_key[0] + + # We need data to be a multiple of four... + data += bytes(" " * (4 - (len(data) % 4)), "us-ascii") + a = numpy.frombuffer(data, dtype="uint32") + masked = numpy.bitwise_xor(a, [_mask_key]).astype("uint32") + if len(data) > origlen: + return masked.tobytes()[:origlen] + return masked.tobytes() + else: + _m = array.array("B", mask_key) + _d = array.array("B", data) + return _mask(_m, _d) + + +class frame_buffer(object): + _HEADER_MASK_INDEX = 5 + _HEADER_LENGTH_INDEX = 6 + + def __init__(self, recv_fn, skip_utf8_validation): + self.recv = recv_fn + self.skip_utf8_validation = skip_utf8_validation + # Buffers over the packets from the layer beneath until desired amount + # bytes of bytes are received. + self.recv_buffer = [] + self.clear() + self.lock = Lock() + + def clear(self): + self.header = None + self.length = None + self.mask = None + + def has_received_header(self): + return self.header is None + + def recv_header(self): + header = self.recv_strict(2) + b1 = header[0] + + if six.PY2: + b1 = ord(b1) + + fin = b1 >> 7 & 1 + rsv1 = b1 >> 6 & 1 + rsv2 = b1 >> 5 & 1 + rsv3 = b1 >> 4 & 1 + opcode = b1 & 0xf + b2 = header[1] + + if six.PY2: + b2 = ord(b2) + + has_mask = b2 >> 7 & 1 + length_bits = b2 & 0x7f + + self.header = (fin, rsv1, rsv2, rsv3, opcode, has_mask, length_bits) + + def has_mask(self): + if not self.header: + return False + return self.header[frame_buffer._HEADER_MASK_INDEX] + + def has_received_length(self): + return self.length is None + + def recv_length(self): + bits = self.header[frame_buffer._HEADER_LENGTH_INDEX] + length_bits = bits & 0x7f + if length_bits == 0x7e: + v = self.recv_strict(2) + self.length = struct.unpack("!H", v)[0] + elif length_bits == 0x7f: + v = self.recv_strict(8) + self.length = struct.unpack("!Q", v)[0] + else: + self.length = length_bits + + def has_received_mask(self): + return self.mask is None + + def recv_mask(self): + self.mask = self.recv_strict(4) if self.has_mask() else "" + + def recv_frame(self): + + with self.lock: + # Header + if self.has_received_header(): + self.recv_header() + (fin, rsv1, rsv2, rsv3, opcode, has_mask, _) = self.header + + # Frame length + if self.has_received_length(): + self.recv_length() + length = self.length + + # Mask + if self.has_received_mask(): + self.recv_mask() + mask = self.mask + + # Payload + payload = self.recv_strict(length) + if has_mask: + payload = ABNF.mask(mask, payload) + + # Reset for next frame + self.clear() + + frame = ABNF(fin, rsv1, rsv2, rsv3, opcode, has_mask, payload) + frame.validate(self.skip_utf8_validation) + + return frame + + def recv_strict(self, bufsize): + shortage = bufsize - sum(len(x) for x in self.recv_buffer) + while shortage > 0: + # Limit buffer size that we pass to socket.recv() to avoid + # fragmenting the heap -- the number of bytes recv() actually + # reads is limited by socket buffer and is relatively small, + # yet passing large numbers repeatedly causes lots of large + # buffers allocated and then shrunk, which results in + # fragmentation. + bytes_ = self.recv(min(16384, shortage)) + self.recv_buffer.append(bytes_) + shortage -= len(bytes_) + + unified = six.b("").join(self.recv_buffer) + + if shortage == 0: + self.recv_buffer = [] + return unified + else: + self.recv_buffer = [unified[bufsize:]] + return unified[:bufsize] + + +class continuous_frame(object): + + def __init__(self, fire_cont_frame, skip_utf8_validation): + self.fire_cont_frame = fire_cont_frame + self.skip_utf8_validation = skip_utf8_validation + self.cont_data = None + self.recving_frames = None + + def validate(self, frame): + if not self.recving_frames and frame.opcode == ABNF.OPCODE_CONT: + raise WebSocketProtocolException("Illegal frame") + if self.recving_frames and \ + frame.opcode in (ABNF.OPCODE_TEXT, ABNF.OPCODE_BINARY): + raise WebSocketProtocolException("Illegal frame") + + def add(self, frame): + if self.cont_data: + self.cont_data[1] += frame.data + else: + if frame.opcode in (ABNF.OPCODE_TEXT, ABNF.OPCODE_BINARY): + self.recving_frames = frame.opcode + self.cont_data = [frame.opcode, frame.data] + + if frame.fin: + self.recving_frames = None + + def is_fire(self, frame): + return frame.fin or self.fire_cont_frame + + def extract(self, frame): + data = self.cont_data + self.cont_data = None + frame.data = data[1] + if not self.fire_cont_frame and data[0] == ABNF.OPCODE_TEXT and not self.skip_utf8_validation and not validate_utf8(frame.data): + raise WebSocketPayloadException( + "cannot decode: " + repr(frame.data)) + + return [data[0], frame] diff --git a/websocket/_app.py b/websocket/_app.py new file mode 100644 index 000000000..81aa1fcd9 --- /dev/null +++ b/websocket/_app.py @@ -0,0 +1,351 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" + +""" +WebSocketApp provides higher level APIs. +""" +import inspect +import select +import sys +import threading +import time +import traceback + +import six + +from ._abnf import ABNF +from ._core import WebSocket, getdefaulttimeout +from ._exceptions import * +from . import _logging + + +__all__ = ["WebSocketApp"] + +class Dispatcher: + def __init__(self, app, ping_timeout): + self.app = app + self.ping_timeout = ping_timeout + + def read(self, sock, read_callback, check_callback): + while self.app.sock.connected: + r, w, e = select.select( + (self.app.sock.sock, ), (), (), self.ping_timeout) + if r: + if not read_callback(): + break + check_callback() + +class SSLDispacther: + def __init__(self, app, ping_timeout): + self.app = app + self.ping_timeout = ping_timeout + + def read(self, sock, read_callback, check_callback): + while self.app.sock.connected: + r = self.select() + if r: + if not read_callback(): + break + check_callback() + + def select(self): + sock = self.app.sock.sock + if sock.pending(): + return [sock,] + + r, w, e = select.select((sock, ), (), (), self.ping_timeout) + return r + +class WebSocketApp(object): + """ + Higher level of APIs are provided. + The interface is like JavaScript WebSocket object. + """ + + def __init__(self, url, header=None, + on_open=None, on_message=None, on_error=None, + on_close=None, on_ping=None, on_pong=None, + on_cont_message=None, + keep_running=True, get_mask_key=None, cookie=None, + subprotocols=None, + on_data=None): + """ + url: websocket url. + header: custom header for websocket handshake. + on_open: callable object which is called at opening websocket. + this function has one argument. The argument is this class object. + on_message: callable object which is called when received data. + on_message has 2 arguments. + The 1st argument is this class object. + The 2nd argument is utf-8 string which we get from the server. + on_error: callable object which is called when we get error. + on_error has 2 arguments. + The 1st argument is this class object. + The 2nd argument is exception object. + on_close: callable object which is called when closed the connection. + this function has one argument. The argument is this class object. + on_cont_message: callback object which is called when receive continued + frame data. + on_cont_message has 3 arguments. + The 1st argument is this class object. + The 2nd argument is utf-8 string which we get from the server. + The 3rd argument is continue flag. if 0, the data continue + to next frame data + on_data: callback object which is called when a message received. + This is called before on_message or on_cont_message, + and then on_message or on_cont_message is called. + on_data has 4 argument. + The 1st argument is this class object. + The 2nd argument is utf-8 string which we get from the server. + The 3rd argument is data type. ABNF.OPCODE_TEXT or ABNF.OPCODE_BINARY will be came. + The 4th argument is continue flag. if 0, the data continue + keep_running: this parameter is obsolete and ignored. + get_mask_key: a callable to produce new mask keys, + see the WebSocket.set_mask_key's docstring for more information + subprotocols: array of available sub protocols. default is None. + """ + self.url = url + self.header = header if header is not None else [] + self.cookie = cookie + + self.on_open = on_open + self.on_message = on_message + self.on_data = on_data + self.on_error = on_error + self.on_close = on_close + self.on_ping = on_ping + self.on_pong = on_pong + self.on_cont_message = on_cont_message + self.keep_running = False + self.get_mask_key = get_mask_key + self.sock = None + self.last_ping_tm = 0 + self.last_pong_tm = 0 + self.subprotocols = subprotocols + + def send(self, data, opcode=ABNF.OPCODE_TEXT): + """ + send message. + data: message to send. If you set opcode to OPCODE_TEXT, + data must be utf-8 string or unicode. + opcode: operation code of data. default is OPCODE_TEXT. + """ + + if not self.sock or self.sock.send(data, opcode) == 0: + raise WebSocketConnectionClosedException( + "Connection is already closed.") + + def close(self, **kwargs): + """ + close websocket connection. + """ + self.keep_running = False + if self.sock: + self.sock.close(**kwargs) + self.sock = None + + def _send_ping(self, interval, event): + while not event.wait(interval): + self.last_ping_tm = time.time() + if self.sock: + try: + self.sock.ping() + except Exception as ex: + _logging.warning("send_ping routine terminated: {}".format(ex)) + break + + def run_forever(self, sockopt=None, sslopt=None, + ping_interval=0, ping_timeout=None, + http_proxy_host=None, http_proxy_port=None, + http_no_proxy=None, http_proxy_auth=None, + skip_utf8_validation=False, + host=None, origin=None, dispatcher=None, + suppress_origin = False, proxy_type=None): + """ + run event loop for WebSocket framework. + This loop is infinite loop and is alive during websocket is available. + sockopt: values for socket.setsockopt. + sockopt must be tuple + and each element is argument of sock.setsockopt. + sslopt: ssl socket optional dict. + ping_interval: automatically send "ping" command + every specified period(second) + if set to 0, not send automatically. + ping_timeout: timeout(second) if the pong message is not received. + http_proxy_host: http proxy host name. + http_proxy_port: http proxy port. If not set, set to 80. + http_no_proxy: host names, which doesn't use proxy. + skip_utf8_validation: skip utf8 validation. + host: update host header. + origin: update origin header. + dispatcher: customize reading data from socket. + suppress_origin: suppress outputting origin header. + + Returns + ------- + False if caught KeyboardInterrupt + True if other exception was raised during a loop + """ + + if ping_timeout is not None and ping_timeout <= 0: + ping_timeout = None + if ping_timeout and ping_interval and ping_interval <= ping_timeout: + raise WebSocketException("Ensure ping_interval > ping_timeout") + if not sockopt: + sockopt = [] + if not sslopt: + sslopt = {} + if self.sock: + raise WebSocketException("socket is already opened") + thread = None + self.keep_running = True + self.last_ping_tm = 0 + self.last_pong_tm = 0 + + def teardown(close_frame=None): + """ + Tears down the connection. + If close_frame is set, we will invoke the on_close handler with the + statusCode and reason from there. + """ + if thread and thread.isAlive(): + event.set() + thread.join() + self.keep_running = False + if self.sock: + self.sock.close() + close_args = self._get_close_args( + close_frame.data if close_frame else None) + self._callback(self.on_close, *close_args) + self.sock = None + + try: + self.sock = WebSocket( + self.get_mask_key, sockopt=sockopt, sslopt=sslopt, + fire_cont_frame=self.on_cont_message is not None, + skip_utf8_validation=skip_utf8_validation, + enable_multithread=True if ping_interval else False) + self.sock.settimeout(getdefaulttimeout()) + self.sock.connect( + self.url, header=self.header, cookie=self.cookie, + http_proxy_host=http_proxy_host, + http_proxy_port=http_proxy_port, http_no_proxy=http_no_proxy, + http_proxy_auth=http_proxy_auth, subprotocols=self.subprotocols, + host=host, origin=origin, suppress_origin=suppress_origin, + proxy_type=proxy_type) + if not dispatcher: + dispatcher = self.create_dispatcher(ping_timeout) + + self._callback(self.on_open) + + if ping_interval: + event = threading.Event() + thread = threading.Thread( + target=self._send_ping, args=(ping_interval, event)) + thread.setDaemon(True) + thread.start() + + def read(): + if not self.keep_running: + return teardown() + + op_code, frame = self.sock.recv_data_frame(True) + if op_code == ABNF.OPCODE_CLOSE: + return teardown(frame) + elif op_code == ABNF.OPCODE_PING: + self._callback(self.on_ping, frame.data) + elif op_code == ABNF.OPCODE_PONG: + self.last_pong_tm = time.time() + self._callback(self.on_pong, frame.data) + elif op_code == ABNF.OPCODE_CONT and self.on_cont_message: + self._callback(self.on_data, frame.data, + frame.opcode, frame.fin) + self._callback(self.on_cont_message, + frame.data, frame.fin) + else: + data = frame.data + if six.PY3 and op_code == ABNF.OPCODE_TEXT: + data = data.decode("utf-8") + self._callback(self.on_data, data, frame.opcode, True) + self._callback(self.on_message, data) + + return True + + def check(): + if (ping_timeout): + has_timeout_expired = time.time() - self.last_ping_tm > ping_timeout + has_pong_not_arrived_after_last_ping = self.last_pong_tm - self.last_ping_tm < 0 + has_pong_arrived_too_late = self.last_pong_tm - self.last_ping_tm > ping_timeout + + if (self.last_ping_tm + and has_timeout_expired + and (has_pong_not_arrived_after_last_ping or has_pong_arrived_too_late)): + raise WebSocketTimeoutException("ping/pong timed out") + return True + + dispatcher.read(self.sock.sock, read, check) + except (Exception, KeyboardInterrupt, SystemExit) as e: + self._callback(self.on_error, e) + if isinstance(e, SystemExit): + # propagate SystemExit further + raise + teardown() + return not isinstance(e, KeyboardInterrupt) + + def create_dispatcher(self, ping_timeout): + timeout = ping_timeout or 10 + if self.sock.is_ssl(): + return SSLDispacther(self, timeout) + + return Dispatcher(self, timeout) + + def _get_close_args(self, data): + """ this functions extracts the code, reason from the close body + if they exists, and if the self.on_close except three arguments """ + # if the on_close callback is "old", just return empty list + if sys.version_info < (3, 0): + if not self.on_close or len(inspect.getargspec(self.on_close).args) != 3: + return [] + else: + if not self.on_close or len(inspect.getfullargspec(self.on_close).args) != 3: + return [] + + if data and len(data) >= 2: + code = 256 * six.byte2int(data[0:1]) + six.byte2int(data[1:2]) + reason = data[2:].decode('utf-8') + return [code, reason] + + return [None, None] + + def _callback(self, callback, *args): + if callback: + try: + if inspect.ismethod(callback): + callback(*args) + else: + callback(self, *args) + + except Exception as e: + _logging.error("error from callback {}: {}".format(callback, e)) + if _logging.isEnabledForDebug(): + _, _, tb = sys.exc_info() + traceback.print_tb(tb) diff --git a/websocket/_cookiejar.py b/websocket/_cookiejar.py new file mode 100644 index 000000000..3efeb0fd2 --- /dev/null +++ b/websocket/_cookiejar.py @@ -0,0 +1,52 @@ +try: + import Cookie +except: + import http.cookies as Cookie + + +class SimpleCookieJar(object): + def __init__(self): + self.jar = dict() + + def add(self, set_cookie): + if set_cookie: + try: + simpleCookie = Cookie.SimpleCookie(set_cookie) + except: + simpleCookie = Cookie.SimpleCookie(set_cookie.encode('ascii', 'ignore')) + + for k, v in simpleCookie.items(): + domain = v.get("domain") + if domain: + if not domain.startswith("."): + domain = "." + domain + cookie = self.jar.get(domain) if self.jar.get(domain) else Cookie.SimpleCookie() + cookie.update(simpleCookie) + self.jar[domain.lower()] = cookie + + def set(self, set_cookie): + if set_cookie: + try: + simpleCookie = Cookie.SimpleCookie(set_cookie) + except: + simpleCookie = Cookie.SimpleCookie(set_cookie.encode('ascii', 'ignore')) + + for k, v in simpleCookie.items(): + domain = v.get("domain") + if domain: + if not domain.startswith("."): + domain = "." + domain + self.jar[domain.lower()] = simpleCookie + + def get(self, host): + if not host: + return "" + + cookies = [] + for domain, simpleCookie in self.jar.items(): + host = host.lower() + if host.endswith(domain) or host == domain[1:]: + cookies.append(self.jar.get(domain)) + + return "; ".join(filter(None, ["%s=%s" % (k, v.value) for cookie in filter(None, sorted(cookies)) for k, v in + sorted(cookie.items())])) diff --git a/websocket/_core.py b/websocket/_core.py new file mode 100644 index 000000000..0f914c21e --- /dev/null +++ b/websocket/_core.py @@ -0,0 +1,515 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +from __future__ import print_function + +import socket +import struct +import threading +import time + +import six + +# websocket modules +from ._abnf import * +from ._exceptions import * +from ._handshake import * +from ._http import * +from ._logging import * +from ._socket import * +from ._ssl_compat import * +from ._utils import * + +__all__ = ['WebSocket', 'create_connection'] + +""" +websocket python client. +========================= + +This version support only hybi-13. +Please see http://tools.ietf.org/html/rfc6455 for protocol. +""" + + +class WebSocket(object): + """ + Low level WebSocket interface. + This class is based on + The WebSocket protocol draft-hixie-thewebsocketprotocol-76 + http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76 + + We can connect to the websocket server and send/receive data. + The following example is an echo client. + + >>> import websocket + >>> ws = websocket.WebSocket() + >>> ws.connect("ws://echo.websocket.org") + >>> ws.send("Hello, Server") + >>> ws.recv() + 'Hello, Server' + >>> ws.close() + + get_mask_key: a callable to produce new mask keys, see the set_mask_key + function's docstring for more details + sockopt: values for socket.setsockopt. + sockopt must be tuple and each element is argument of sock.setsockopt. + sslopt: dict object for ssl socket option. + fire_cont_frame: fire recv event for each cont frame. default is False + enable_multithread: if set to True, lock send method. + skip_utf8_validation: skip utf8 validation. + """ + + def __init__(self, get_mask_key=None, sockopt=None, sslopt=None, + fire_cont_frame=False, enable_multithread=False, + skip_utf8_validation=False, **_): + """ + Initialize WebSocket object. + """ + self.sock_opt = sock_opt(sockopt, sslopt) + self.handshake_response = None + self.sock = None + + self.connected = False + self.get_mask_key = get_mask_key + # These buffer over the build-up of a single frame. + self.frame_buffer = frame_buffer(self._recv, skip_utf8_validation) + self.cont_frame = continuous_frame( + fire_cont_frame, skip_utf8_validation) + + if enable_multithread: + self.lock = threading.Lock() + self.readlock = threading.Lock() + else: + self.lock = NoLock() + self.readlock = NoLock() + + def __iter__(self): + """ + Allow iteration over websocket, implying sequential `recv` executions. + """ + while True: + yield self.recv() + + def __next__(self): + return self.recv() + + def next(self): + return self.__next__() + + def fileno(self): + return self.sock.fileno() + + def set_mask_key(self, func): + """ + set function to create musk key. You can customize mask key generator. + Mainly, this is for testing purpose. + + func: callable object. the func takes 1 argument as integer. + The argument means length of mask key. + This func must return string(byte array), + which length is argument specified. + """ + self.get_mask_key = func + + def gettimeout(self): + """ + Get the websocket timeout(second). + """ + return self.sock_opt.timeout + + def settimeout(self, timeout): + """ + Set the timeout to the websocket. + + timeout: timeout time(second). + """ + self.sock_opt.timeout = timeout + if self.sock: + self.sock.settimeout(timeout) + + timeout = property(gettimeout, settimeout) + + def getsubprotocol(self): + """ + get subprotocol + """ + if self.handshake_response: + return self.handshake_response.subprotocol + else: + return None + + subprotocol = property(getsubprotocol) + + def getstatus(self): + """ + get handshake status + """ + if self.handshake_response: + return self.handshake_response.status + else: + return None + + status = property(getstatus) + + def getheaders(self): + """ + get handshake response header + """ + if self.handshake_response: + return self.handshake_response.headers + else: + return None + + def is_ssl(self): + return isinstance(self.sock, ssl.SSLSocket) + + headers = property(getheaders) + + def connect(self, url, **options): + """ + Connect to url. url is websocket url scheme. + ie. ws://host:port/resource + You can customize using 'options'. + If you set "header" list object, you can set your own custom header. + + >>> ws = WebSocket() + >>> ws.connect("ws://echo.websocket.org/", + ... header=["User-Agent: MyProgram", + ... "x-custom: header"]) + + timeout: socket timeout time. This value is integer. + if you set None for this value, + it means "use default_timeout value" + + options: "header" -> custom http header list or dict. + "cookie" -> cookie value. + "origin" -> custom origin url. + "suppress_origin" -> suppress outputting origin header. + "host" -> custom host header string. + "http_proxy_host" - http proxy host name. + "http_proxy_port" - http proxy port. If not set, set to 80. + "http_no_proxy" - host names, which doesn't use proxy. + "http_proxy_auth" - http proxy auth information. + tuple of username and password. + default is None + "redirect_limit" -> number of redirects to follow. + "subprotocols" - array of available sub protocols. + default is None. + "socket" - pre-initialized stream socket. + + """ + # FIXME: "subprotocols" are getting lost, not passed down + # FIXME: "header", "cookie", "origin" and "host" too + self.sock_opt.timeout = options.get('timeout', self.sock_opt.timeout) + self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options), + options.pop('socket', None)) + + try: + self.handshake_response = handshake(self.sock, *addrs, **options) + for attempt in range(options.pop('redirect_limit', 3)): + if self.handshake_response.status in SUPPORTED_REDIRECT_STATUSES: + url = self.handshake_response.headers['location'] + self.sock.close() + self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options), + options.pop('socket', None)) + self.handshake_response = handshake(self.sock, *addrs, **options) + self.connected = True + except: + if self.sock: + self.sock.close() + self.sock = None + raise + + def send(self, payload, opcode=ABNF.OPCODE_TEXT): + """ + Send the data as string. + + payload: Payload must be utf-8 string or unicode, + if the opcode is OPCODE_TEXT. + Otherwise, it must be string(byte array) + + opcode: operation code to send. Please see OPCODE_XXX. + """ + + frame = ABNF.create_frame(payload, opcode) + return self.send_frame(frame) + + def send_frame(self, frame): + """ + Send the data frame. + + frame: frame data created by ABNF.create_frame + + >>> ws = create_connection("ws://echo.websocket.org/") + >>> frame = ABNF.create_frame("Hello", ABNF.OPCODE_TEXT) + >>> ws.send_frame(frame) + >>> cont_frame = ABNF.create_frame("My name is ", ABNF.OPCODE_CONT, 0) + >>> ws.send_frame(frame) + >>> cont_frame = ABNF.create_frame("Foo Bar", ABNF.OPCODE_CONT, 1) + >>> ws.send_frame(frame) + + """ + if self.get_mask_key: + frame.get_mask_key = self.get_mask_key + data = frame.format() + length = len(data) + trace("send: " + repr(data)) + + with self.lock: + while data: + l = self._send(data) + data = data[l:] + + return length + + def send_binary(self, payload): + return self.send(payload, ABNF.OPCODE_BINARY) + + def ping(self, payload=""): + """ + send ping data. + + payload: data payload to send server. + """ + if isinstance(payload, six.text_type): + payload = payload.encode("utf-8") + self.send(payload, ABNF.OPCODE_PING) + + def pong(self, payload): + """ + send pong data. + + payload: data payload to send server. + """ + if isinstance(payload, six.text_type): + payload = payload.encode("utf-8") + self.send(payload, ABNF.OPCODE_PONG) + + def recv(self): + """ + Receive string data(byte array) from the server. + + return value: string(byte array) value. + """ + with self.readlock: + opcode, data = self.recv_data() + if six.PY3 and opcode == ABNF.OPCODE_TEXT: + return data.decode("utf-8") + elif opcode == ABNF.OPCODE_TEXT or opcode == ABNF.OPCODE_BINARY: + return data + else: + return '' + + def recv_data(self, control_frame=False): + """ + Receive data with operation code. + + control_frame: a boolean flag indicating whether to return control frame + data, defaults to False + + return value: tuple of operation code and string(byte array) value. + """ + opcode, frame = self.recv_data_frame(control_frame) + return opcode, frame.data + + def recv_data_frame(self, control_frame=False): + """ + Receive data with operation code. + + control_frame: a boolean flag indicating whether to return control frame + data, defaults to False + + return value: tuple of operation code and string(byte array) value. + """ + while True: + frame = self.recv_frame() + if not frame: + # handle error: + # 'NoneType' object has no attribute 'opcode' + raise WebSocketProtocolException( + "Not a valid frame %s" % frame) + elif frame.opcode in (ABNF.OPCODE_TEXT, ABNF.OPCODE_BINARY, ABNF.OPCODE_CONT): + self.cont_frame.validate(frame) + self.cont_frame.add(frame) + + if self.cont_frame.is_fire(frame): + return self.cont_frame.extract(frame) + + elif frame.opcode == ABNF.OPCODE_CLOSE: + self.send_close() + return frame.opcode, frame + elif frame.opcode == ABNF.OPCODE_PING: + if len(frame.data) < 126: + self.pong(frame.data) + else: + raise WebSocketProtocolException( + "Ping message is too long") + if control_frame: + return frame.opcode, frame + elif frame.opcode == ABNF.OPCODE_PONG: + if control_frame: + return frame.opcode, frame + + def recv_frame(self): + """ + receive data as frame from server. + + return value: ABNF frame object. + """ + return self.frame_buffer.recv_frame() + + def send_close(self, status=STATUS_NORMAL, reason=six.b("")): + """ + send close data to the server. + + status: status code to send. see STATUS_XXX. + + reason: the reason to close. This must be string or bytes. + """ + if status < 0 or status >= ABNF.LENGTH_16: + raise ValueError("code is invalid range") + self.connected = False + self.send(struct.pack('!H', status) + reason, ABNF.OPCODE_CLOSE) + + def close(self, status=STATUS_NORMAL, reason=six.b(""), timeout=3): + """ + Close Websocket object + + status: status code to send. see STATUS_XXX. + + reason: the reason to close. This must be string. + + timeout: timeout until receive a close frame. + If None, it will wait forever until receive a close frame. + """ + if self.connected: + if status < 0 or status >= ABNF.LENGTH_16: + raise ValueError("code is invalid range") + + try: + self.connected = False + self.send(struct.pack('!H', status) + + reason, ABNF.OPCODE_CLOSE) + sock_timeout = self.sock.gettimeout() + self.sock.settimeout(timeout) + start_time = time.time() + while timeout is None or time.time() - start_time < timeout: + try: + frame = self.recv_frame() + if frame.opcode != ABNF.OPCODE_CLOSE: + continue + if isEnabledForError(): + recv_status = struct.unpack("!H", frame.data[0:2])[0] + if recv_status != STATUS_NORMAL: + error("close status: " + repr(recv_status)) + break + except: + break + self.sock.settimeout(sock_timeout) + self.sock.shutdown(socket.SHUT_RDWR) + except: + pass + + self.shutdown() + + def abort(self): + """ + Low-level asynchronous abort, wakes up other threads that are waiting in recv_* + """ + if self.connected: + self.sock.shutdown(socket.SHUT_RDWR) + + def shutdown(self): + """close socket, immediately.""" + if self.sock: + self.sock.close() + self.sock = None + self.connected = False + + def _send(self, data): + return send(self.sock, data) + + def _recv(self, bufsize): + try: + return recv(self.sock, bufsize) + except WebSocketConnectionClosedException: + if self.sock: + self.sock.close() + self.sock = None + self.connected = False + raise + + +def create_connection(url, timeout=None, class_=WebSocket, **options): + """ + connect to url and return websocket object. + + Connect to url and return the WebSocket object. + Passing optional timeout parameter will set the timeout on the socket. + If no timeout is supplied, + the global default timeout setting returned by getdefauttimeout() is used. + You can customize using 'options'. + If you set "header" list object, you can set your own custom header. + + >>> conn = create_connection("ws://echo.websocket.org/", + ... header=["User-Agent: MyProgram", + ... "x-custom: header"]) + + + timeout: socket timeout time. This value is integer. + if you set None for this value, + it means "use default_timeout value" + + class_: class to instantiate when creating the connection. It has to implement + settimeout and connect. It's __init__ should be compatible with + WebSocket.__init__, i.e. accept all of it's kwargs. + options: "header" -> custom http header list or dict. + "cookie" -> cookie value. + "origin" -> custom origin url. + "suppress_origin" -> suppress outputting origin header. + "host" -> custom host header string. + "http_proxy_host" - http proxy host name. + "http_proxy_port" - http proxy port. If not set, set to 80. + "http_no_proxy" - host names, which doesn't use proxy. + "http_proxy_auth" - http proxy auth information. + tuple of username and password. + default is None + "enable_multithread" -> enable lock for multithread. + "redirect_limit" -> number of redirects to follow. + "sockopt" -> socket options + "sslopt" -> ssl option + "subprotocols" - array of available sub protocols. + default is None. + "skip_utf8_validation" - skip utf8 validation. + "socket" - pre-initialized stream socket. + """ + sockopt = options.pop("sockopt", []) + sslopt = options.pop("sslopt", {}) + fire_cont_frame = options.pop("fire_cont_frame", False) + enable_multithread = options.pop("enable_multithread", False) + skip_utf8_validation = options.pop("skip_utf8_validation", False) + websock = class_(sockopt=sockopt, sslopt=sslopt, + fire_cont_frame=fire_cont_frame, + enable_multithread=enable_multithread, + skip_utf8_validation=skip_utf8_validation, **options) + websock.settimeout(timeout if timeout is not None else getdefaulttimeout()) + websock.connect(url, **options) + return websock diff --git a/websocket/_exceptions.py b/websocket/_exceptions.py new file mode 100644 index 000000000..b7a61d3f6 --- /dev/null +++ b/websocket/_exceptions.py @@ -0,0 +1,87 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" + + +""" +define websocket exceptions +""" + + +class WebSocketException(Exception): + """ + websocket exception class. + """ + pass + + +class WebSocketProtocolException(WebSocketException): + """ + If the websocket protocol is invalid, this exception will be raised. + """ + pass + + +class WebSocketPayloadException(WebSocketException): + """ + If the websocket payload is invalid, this exception will be raised. + """ + pass + + +class WebSocketConnectionClosedException(WebSocketException): + """ + If remote host closed the connection or some network error happened, + this exception will be raised. + """ + pass + + +class WebSocketTimeoutException(WebSocketException): + """ + WebSocketTimeoutException will be raised at socket timeout during read/write data. + """ + pass + + +class WebSocketProxyException(WebSocketException): + """ + WebSocketProxyException will be raised when proxy error occurred. + """ + pass + + +class WebSocketBadStatusException(WebSocketException): + """ + WebSocketBadStatusException will be raised when we get bad handshake status code. + """ + + def __init__(self, message, status_code, status_message=None, resp_headers=None): + msg = message % (status_code, status_message) + super(WebSocketBadStatusException, self).__init__(msg) + self.status_code = status_code + self.resp_headers = resp_headers + +class WebSocketAddressException(WebSocketException): + """ + If the websocket address info cannot be found, this exception will be raised. + """ + pass diff --git a/websocket/_handshake.py b/websocket/_handshake.py new file mode 100644 index 000000000..809a8c989 --- /dev/null +++ b/websocket/_handshake.py @@ -0,0 +1,205 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +import hashlib +import hmac +import os + +import six + +from ._cookiejar import SimpleCookieJar +from ._exceptions import * +from ._http import * +from ._logging import * +from ._socket import * + +if six.PY3: + from base64 import encodebytes as base64encode +else: + from base64 import encodestring as base64encode + +if six.PY3: + if six.PY34: + from http import client as HTTPStatus + else: + from http import HTTPStatus +else: + import httplib as HTTPStatus + +__all__ = ["handshake_response", "handshake", "SUPPORTED_REDIRECT_STATUSES"] + +if hasattr(hmac, "compare_digest"): + compare_digest = hmac.compare_digest +else: + def compare_digest(s1, s2): + return s1 == s2 + +# websocket supported version. +VERSION = 13 + +SUPPORTED_REDIRECT_STATUSES = [HTTPStatus.MOVED_PERMANENTLY, HTTPStatus.FOUND, HTTPStatus.SEE_OTHER] + +CookieJar = SimpleCookieJar() + + +class handshake_response(object): + + def __init__(self, status, headers, subprotocol): + self.status = status + self.headers = headers + self.subprotocol = subprotocol + CookieJar.add(headers.get("set-cookie")) + + +def handshake(sock, hostname, port, resource, **options): + headers, key = _get_handshake_headers(resource, hostname, port, options) + + header_str = "\r\n".join(headers) + send(sock, header_str) + dump("request header", header_str) + + status, resp = _get_resp_headers(sock) + if status in SUPPORTED_REDIRECT_STATUSES: + return handshake_response(status, resp, None) + success, subproto = _validate(resp, key, options.get("subprotocols")) + if not success: + raise WebSocketException("Invalid WebSocket Header") + + return handshake_response(status, resp, subproto) + +def _pack_hostname(hostname): + # IPv6 address + if ':' in hostname: + return '[' + hostname + ']' + + return hostname + +def _get_handshake_headers(resource, host, port, options): + headers = [ + "GET %s HTTP/1.1" % resource, + "Upgrade: websocket", + "Connection: Upgrade" + ] + if port == 80 or port == 443: + hostport = _pack_hostname(host) + else: + hostport = "%s:%d" % (_pack_hostname(host), port) + + if "host" in options and options["host"] is not None: + headers.append("Host: %s" % options["host"]) + else: + headers.append("Host: %s" % hostport) + + if "suppress_origin" not in options or not options["suppress_origin"]: + if "origin" in options and options["origin"] is not None: + headers.append("Origin: %s" % options["origin"]) + else: + headers.append("Origin: http://%s" % hostport) + + key = _create_sec_websocket_key() + + # Append Sec-WebSocket-Key & Sec-WebSocket-Version if not manually specified + if not 'header' in options or 'Sec-WebSocket-Key' not in options['header']: + key = _create_sec_websocket_key() + headers.append("Sec-WebSocket-Key: %s" % key) + else: + key = options['header']['Sec-WebSocket-Key'] + + if not 'header' in options or 'Sec-WebSocket-Version' not in options['header']: + headers.append("Sec-WebSocket-Version: %s" % VERSION) + + subprotocols = options.get("subprotocols") + if subprotocols: + headers.append("Sec-WebSocket-Protocol: %s" % ",".join(subprotocols)) + + if "header" in options: + header = options["header"] + if isinstance(header, dict): + header = [ + ": ".join([k, v]) + for k, v in header.items() + if v is not None + ] + headers.extend(header) + + server_cookie = CookieJar.get(host) + client_cookie = options.get("cookie", None) + + cookie = "; ".join(filter(None, [server_cookie, client_cookie])) + + if cookie: + headers.append("Cookie: %s" % cookie) + + headers.append("") + headers.append("") + + return headers, key + + +def _get_resp_headers(sock, success_statuses=(101, 301, 302, 303)): + status, resp_headers, status_message = read_headers(sock) + if status not in success_statuses: + raise WebSocketBadStatusException("Handshake status %d %s", status, status_message, resp_headers) + return status, resp_headers + +_HEADERS_TO_CHECK = { + "upgrade": "websocket", + "connection": "upgrade", +} + + +def _validate(headers, key, subprotocols): + subproto = None + for k, v in _HEADERS_TO_CHECK.items(): + r = headers.get(k, None) + if not r: + return False, None + r = r.lower() + if v != r: + return False, None + + if subprotocols: + subproto = headers.get("sec-websocket-protocol", None).lower() + if not subproto or subproto not in [s.lower() for s in subprotocols]: + error("Invalid subprotocol: " + str(subprotocols)) + return False, None + + result = headers.get("sec-websocket-accept", None) + if not result: + return False, None + result = result.lower() + + if isinstance(result, six.text_type): + result = result.encode('utf-8') + + value = (key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11").encode('utf-8') + hashed = base64encode(hashlib.sha1(value).digest()).strip().lower() + success = compare_digest(hashed, result) + + if success: + return True, subproto + else: + return False, None + + +def _create_sec_websocket_key(): + randomness = os.urandom(16) + return base64encode(randomness).decode('utf-8').strip() diff --git a/websocket/_http.py b/websocket/_http.py new file mode 100644 index 000000000..818068746 --- /dev/null +++ b/websocket/_http.py @@ -0,0 +1,328 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +import errno +import os +import socket +import sys + +import six + +from ._exceptions import * +from ._logging import * +from ._socket import* +from ._ssl_compat import * +from ._url import * + +if six.PY3: + from base64 import encodebytes as base64encode +else: + from base64 import encodestring as base64encode + +__all__ = ["proxy_info", "connect", "read_headers"] + +try: + import socks + ProxyConnectionError = socks.ProxyConnectionError + HAS_PYSOCKS = True +except: + class ProxyConnectionError(BaseException): + pass + HAS_PYSOCKS = False + +class proxy_info(object): + + def __init__(self, **options): + self.type = options.get("proxy_type") or "http" + if not(self.type in ['http', 'socks4', 'socks5', 'socks5h']): + raise ValueError("proxy_type must be 'http', 'socks4', 'socks5' or 'socks5h'") + self.host = options.get("http_proxy_host", None) + if self.host: + self.port = options.get("http_proxy_port", 0) + self.auth = options.get("http_proxy_auth", None) + self.no_proxy = options.get("http_no_proxy", None) + else: + self.port = 0 + self.auth = None + self.no_proxy = None + +def _open_proxied_socket(url, options, proxy): + hostname, port, resource, is_secure = parse_url(url) + + if not HAS_PYSOCKS: + raise WebSocketException("PySocks module not found.") + + ptype = socks.SOCKS5 + rdns = False + if proxy.type == "socks4": + ptype = socks.SOCKS4 + if proxy.type == "http": + ptype = socks.HTTP + if proxy.type[-1] == "h": + rdns = True + + sock = socks.create_connection( + (hostname, port), + proxy_type = ptype, + proxy_addr = proxy.host, + proxy_port = proxy.port, + proxy_rdns = rdns, + proxy_username = proxy.auth[0] if proxy.auth else None, + proxy_password = proxy.auth[1] if proxy.auth else None, + timeout = options.timeout, + socket_options = DEFAULT_SOCKET_OPTION + options.sockopt + ) + + if is_secure: + if HAVE_SSL: + sock = _ssl_socket(sock, options.sslopt, hostname) + else: + raise WebSocketException("SSL not available.") + + return sock, (hostname, port, resource) + + +def connect(url, options, proxy, socket): + if proxy.host and not socket and not (proxy.type == 'http'): + return _open_proxied_socket(url, options, proxy) + + hostname, port, resource, is_secure = parse_url(url) + + if socket: + return socket, (hostname, port, resource) + + addrinfo_list, need_tunnel, auth = _get_addrinfo_list( + hostname, port, is_secure, proxy) + if not addrinfo_list: + raise WebSocketException( + "Host not found.: " + hostname + ":" + str(port)) + + sock = None + try: + sock = _open_socket(addrinfo_list, options.sockopt, options.timeout) + if need_tunnel: + sock = _tunnel(sock, hostname, port, auth) + + if is_secure: + if HAVE_SSL: + sock = _ssl_socket(sock, options.sslopt, hostname) + else: + raise WebSocketException("SSL not available.") + + return sock, (hostname, port, resource) + except: + if sock: + sock.close() + raise + + +def _get_addrinfo_list(hostname, port, is_secure, proxy): + phost, pport, pauth = get_proxy_info( + hostname, is_secure, proxy.host, proxy.port, proxy.auth, proxy.no_proxy) + try: + if not phost: + addrinfo_list = [ai for ai in socket.getaddrinfo( + hostname, port, 0, 0, socket.SOL_TCP) + if (ai[0] == socket.AF_INET6 and socket.has_ipv6) or ai[0] != socket.AF_INET6 + ] + return addrinfo_list, False, None + else: + pport = pport and pport or 80 + # when running on windows 10, the getaddrinfo used above + # returns a socktype 0. This generates an error exception: + #_on_error: exception Socket type must be stream or datagram, not 0 + # Force the socket type to SOCK_STREAM + addrinfo_list = socket.getaddrinfo(phost, pport, 0, socket.SOCK_STREAM, socket.SOL_TCP) + return addrinfo_list, True, pauth + except socket.gaierror as e: + raise WebSocketAddressException(e) + + +def _open_socket(addrinfo_list, sockopt, timeout): + err = None + for addrinfo in addrinfo_list: + family, socktype, proto = addrinfo[:3] + sock = socket.socket(family, socktype, proto) + sock.settimeout(timeout) + for opts in DEFAULT_SOCKET_OPTION: + sock.setsockopt(*opts) + for opts in sockopt: + sock.setsockopt(*opts) + + address = addrinfo[4] + err = None + while not err: + try: + sock.connect(address) + except ProxyConnectionError as error: + err = WebSocketProxyException(str(error)) + err.remote_ip = str(address[0]) + continue + except socket.error as error: + error.remote_ip = str(address[0]) + try: + eConnRefused = (errno.ECONNREFUSED, errno.WSAECONNREFUSED) + except: + eConnRefused = (errno.ECONNREFUSED, ) + if error.errno == errno.EINTR: + continue + elif error.errno in eConnRefused: + err = error + continue + else: + raise error + else: + break + else: + continue + break + else: + if err: + raise err + + return sock + + +def _can_use_sni(): + return six.PY2 and sys.version_info >= (2, 7, 9) or sys.version_info >= (3, 2) + + +def _wrap_sni_socket(sock, sslopt, hostname, check_hostname): + context = ssl.SSLContext(sslopt.get('ssl_version', ssl.PROTOCOL_SSLv23)) + + if sslopt.get('cert_reqs', ssl.CERT_NONE) != ssl.CERT_NONE: + cafile = sslopt.get('ca_certs', None) + capath = sslopt.get('ca_cert_path', None) + if cafile or capath: + context.load_verify_locations(cafile=cafile, capath=capath) + elif hasattr(context, 'load_default_certs'): + context.load_default_certs(ssl.Purpose.SERVER_AUTH) + if sslopt.get('certfile', None): + context.load_cert_chain( + sslopt['certfile'], + sslopt.get('keyfile', None), + sslopt.get('password', None), + ) + # see + # https://github.com/liris/websocket-client/commit/b96a2e8fa765753e82eea531adb19716b52ca3ca#commitcomment-10803153 + context.verify_mode = sslopt['cert_reqs'] + if HAVE_CONTEXT_CHECK_HOSTNAME: + context.check_hostname = check_hostname + if 'ciphers' in sslopt: + context.set_ciphers(sslopt['ciphers']) + if 'cert_chain' in sslopt: + certfile, keyfile, password = sslopt['cert_chain'] + context.load_cert_chain(certfile, keyfile, password) + if 'ecdh_curve' in sslopt: + context.set_ecdh_curve(sslopt['ecdh_curve']) + + return context.wrap_socket( + sock, + do_handshake_on_connect=sslopt.get('do_handshake_on_connect', True), + suppress_ragged_eofs=sslopt.get('suppress_ragged_eofs', True), + server_hostname=hostname, + ) + + +def _ssl_socket(sock, user_sslopt, hostname): + sslopt = dict(cert_reqs=ssl.CERT_REQUIRED) + sslopt.update(user_sslopt) + + certPath = os.environ.get('WEBSOCKET_CLIENT_CA_BUNDLE') + if certPath and os.path.isfile(certPath) \ + and user_sslopt.get('ca_certs', None) is None \ + and user_sslopt.get('ca_cert', None) is None: + sslopt['ca_certs'] = certPath + elif certPath and os.path.isdir(certPath) \ + and user_sslopt.get('ca_cert_path', None) is None: + sslopt['ca_cert_path'] = certPath + + check_hostname = sslopt["cert_reqs"] != ssl.CERT_NONE and sslopt.pop( + 'check_hostname', True) + + if _can_use_sni(): + sock = _wrap_sni_socket(sock, sslopt, hostname, check_hostname) + else: + sslopt.pop('check_hostname', True) + sock = ssl.wrap_socket(sock, **sslopt) + + if not HAVE_CONTEXT_CHECK_HOSTNAME and check_hostname: + match_hostname(sock.getpeercert(), hostname) + + return sock + + +def _tunnel(sock, host, port, auth): + debug("Connecting proxy...") + connect_header = "CONNECT %s:%d HTTP/1.0\r\n" % (host, port) + # TODO: support digest auth. + if auth and auth[0]: + auth_str = auth[0] + if auth[1]: + auth_str += ":" + auth[1] + encoded_str = base64encode(auth_str.encode()).strip().decode() + connect_header += "Proxy-Authorization: Basic %s\r\n" % encoded_str + connect_header += "\r\n" + dump("request header", connect_header) + + send(sock, connect_header) + + try: + status, resp_headers, status_message = read_headers(sock) + except Exception as e: + raise WebSocketProxyException(str(e)) + + if status != 200: + raise WebSocketProxyException( + "failed CONNECT via proxy status: %r" % status) + + return sock + + +def read_headers(sock): + status = None + status_message = None + headers = {} + trace("--- response header ---") + + while True: + line = recv_line(sock) + line = line.decode('utf-8').strip() + if not line: + break + trace(line) + if not status: + + status_info = line.split(" ", 2) + status = int(status_info[1]) + if len(status_info) > 2: + status_message = status_info[2] + else: + kv = line.split(":", 1) + if len(kv) == 2: + key, value = kv + headers[key.lower()] = value.strip() + else: + raise WebSocketException("Invalid header") + + trace("-----------------------") + + return status, headers, status_message diff --git a/websocket/_logging.py b/websocket/_logging.py new file mode 100644 index 000000000..70a6271d9 --- /dev/null +++ b/websocket/_logging.py @@ -0,0 +1,82 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +import logging + +_logger = logging.getLogger('websocket') +try: + from logging import NullHandler +except ImportError: + class NullHandler(logging.Handler): + def emit(self, record): + pass + +_logger.addHandler(NullHandler()) + +_traceEnabled = False + +__all__ = ["enableTrace", "dump", "error", "warning", "debug", "trace", + "isEnabledForError", "isEnabledForDebug"] + + +def enableTrace(traceable, handler = logging.StreamHandler()): + """ + turn on/off the traceability. + + traceable: boolean value. if set True, traceability is enabled. + """ + global _traceEnabled + _traceEnabled = traceable + if traceable: + _logger.addHandler(handler) + _logger.setLevel(logging.DEBUG) + + +def dump(title, message): + if _traceEnabled: + _logger.debug("--- " + title + " ---") + _logger.debug(message) + _logger.debug("-----------------------") + + +def error(msg): + _logger.error(msg) + + +def warning(msg): + _logger.warning(msg) + + +def debug(msg): + _logger.debug(msg) + + +def trace(msg): + if _traceEnabled: + _logger.debug(msg) + + +def isEnabledForError(): + return _logger.isEnabledFor(logging.ERROR) + + +def isEnabledForDebug(): + return _logger.isEnabledFor(logging.DEBUG) diff --git a/websocket/_socket.py b/websocket/_socket.py new file mode 100644 index 000000000..d811c21d9 --- /dev/null +++ b/websocket/_socket.py @@ -0,0 +1,160 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +import errno +import select +import socket + +import six +import sys + +from ._exceptions import * +from ._ssl_compat import * +from ._utils import * + +DEFAULT_SOCKET_OPTION = [(socket.SOL_TCP, socket.TCP_NODELAY, 1)] +if hasattr(socket, "SO_KEEPALIVE"): + DEFAULT_SOCKET_OPTION.append((socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)) +if hasattr(socket, "TCP_KEEPIDLE"): + DEFAULT_SOCKET_OPTION.append((socket.SOL_TCP, socket.TCP_KEEPIDLE, 30)) +if hasattr(socket, "TCP_KEEPINTVL"): + DEFAULT_SOCKET_OPTION.append((socket.SOL_TCP, socket.TCP_KEEPINTVL, 10)) +if hasattr(socket, "TCP_KEEPCNT"): + DEFAULT_SOCKET_OPTION.append((socket.SOL_TCP, socket.TCP_KEEPCNT, 3)) + +_default_timeout = None + +__all__ = ["DEFAULT_SOCKET_OPTION", "sock_opt", "setdefaulttimeout", "getdefaulttimeout", + "recv", "recv_line", "send"] + + +class sock_opt(object): + + def __init__(self, sockopt, sslopt): + if sockopt is None: + sockopt = [] + if sslopt is None: + sslopt = {} + self.sockopt = sockopt + self.sslopt = sslopt + self.timeout = None + + +def setdefaulttimeout(timeout): + """ + Set the global timeout setting to connect. + + timeout: default socket timeout time. This value is second. + """ + global _default_timeout + _default_timeout = timeout + + +def getdefaulttimeout(): + """ + Return the global timeout setting(second) to connect. + """ + return _default_timeout + + +def recv(sock, bufsize): + if not sock: + raise WebSocketConnectionClosedException("socket is already closed.") + + def _recv(): + try: + return sock.recv(bufsize) + except SSLWantReadError: + pass + except socket.error as exc: + error_code = extract_error_code(exc) + if error_code is None: + raise + if error_code != errno.EAGAIN or error_code != errno.EWOULDBLOCK: + raise + + r, w, e = select.select((sock, ), (), (), sock.gettimeout()) + if r: + return sock.recv(bufsize) + + try: + bytes_ = _recv() + except socket.timeout as e: + message = extract_err_message(e) + raise WebSocketTimeoutException(message) + except SSLError as e: + message = extract_err_message(e) + if isinstance(message, str) and 'timed out' in message: + raise WebSocketTimeoutException(message) + else: + raise + + if not bytes_: + raise WebSocketConnectionClosedException( + "Connection is already closed.") + + return bytes_ + + +def recv_line(sock): + line = [] + while True: + c = recv(sock, 1) + line.append(c) + if c == six.b("\n"): + break + return six.b("").join(line) + + +def send(sock, data): + if isinstance(data, six.text_type): + data = data.encode('utf-8') + + if not sock: + raise WebSocketConnectionClosedException("socket is already closed.") + + def _send(): + try: + return sock.send(data) + except SSLWantWriteError: + pass + except socket.error as exc: + error_code = extract_error_code(exc) + if error_code is None: + raise + if error_code != errno.EAGAIN or error_code != errno.EWOULDBLOCK: + raise + + r, w, e = select.select((), (sock, ), (), sock.gettimeout()) + if w: + return sock.send(data) + + try: + return _send() + except socket.timeout as e: + message = extract_err_message(e) + raise WebSocketTimeoutException(message) + except Exception as e: + message = extract_err_message(e) + if isinstance(message, str) and "timed out" in message: + raise WebSocketTimeoutException(message) + else: + raise diff --git a/websocket/_ssl_compat.py b/websocket/_ssl_compat.py new file mode 100644 index 000000000..5b3c413c8 --- /dev/null +++ b/websocket/_ssl_compat.py @@ -0,0 +1,52 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +__all__ = ["HAVE_SSL", "ssl", "SSLError", "SSLWantReadError", "SSLWantWriteError"] + +try: + import ssl + from ssl import SSLError + from ssl import SSLWantReadError + from ssl import SSLWantWriteError + if hasattr(ssl, 'SSLContext') and hasattr(ssl.SSLContext, 'check_hostname'): + HAVE_CONTEXT_CHECK_HOSTNAME = True + else: + HAVE_CONTEXT_CHECK_HOSTNAME = False + if hasattr(ssl, "match_hostname"): + from ssl import match_hostname + else: + from backports.ssl_match_hostname import match_hostname + __all__.append("match_hostname") + __all__.append("HAVE_CONTEXT_CHECK_HOSTNAME") + + HAVE_SSL = True +except ImportError: + # dummy class of SSLError for ssl none-support environment. + class SSLError(Exception): + pass + + class SSLWantReadError(Exception): + pass + + class SSLWantWriteError(Exception): + pass + + HAVE_SSL = False diff --git a/websocket/_url.py b/websocket/_url.py new file mode 100644 index 000000000..ae46d6c40 --- /dev/null +++ b/websocket/_url.py @@ -0,0 +1,163 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" + +import os +import socket +import struct + +from six.moves.urllib.parse import urlparse + + +__all__ = ["parse_url", "get_proxy_info"] + + +def parse_url(url): + """ + parse url and the result is tuple of + (hostname, port, resource path and the flag of secure mode) + + url: url string. + """ + if ":" not in url: + raise ValueError("url is invalid") + + scheme, url = url.split(":", 1) + + parsed = urlparse(url, scheme="ws") + if parsed.hostname: + hostname = parsed.hostname + else: + raise ValueError("hostname is invalid") + port = 0 + if parsed.port: + port = parsed.port + + is_secure = False + if scheme == "ws": + if not port: + port = 80 + elif scheme == "wss": + is_secure = True + if not port: + port = 443 + else: + raise ValueError("scheme %s is invalid" % scheme) + + if parsed.path: + resource = parsed.path + else: + resource = "/" + + if parsed.query: + resource += "?" + parsed.query + + return hostname, port, resource, is_secure + + +DEFAULT_NO_PROXY_HOST = ["localhost", "127.0.0.1"] + + +def _is_ip_address(addr): + try: + socket.inet_aton(addr) + except socket.error: + return False + else: + return True + + +def _is_subnet_address(hostname): + try: + addr, netmask = hostname.split("/") + return _is_ip_address(addr) and 0 <= int(netmask) < 32 + except ValueError: + return False + + +def _is_address_in_network(ip, net): + ipaddr = struct.unpack('I', socket.inet_aton(ip))[0] + netaddr, bits = net.split('/') + netmask = struct.unpack('I', socket.inet_aton(netaddr))[0] & ((2 << int(bits) - 1) - 1) + return ipaddr & netmask == netmask + + +def _is_no_proxy_host(hostname, no_proxy): + if not no_proxy: + v = os.environ.get("no_proxy", "").replace(" ", "") + no_proxy = v.split(",") + if not no_proxy: + no_proxy = DEFAULT_NO_PROXY_HOST + + if hostname in no_proxy: + return True + elif _is_ip_address(hostname): + return any([_is_address_in_network(hostname, subnet) for subnet in no_proxy if _is_subnet_address(subnet)]) + + return False + + +def get_proxy_info( + hostname, is_secure, proxy_host=None, proxy_port=0, proxy_auth=None, + no_proxy=None, proxy_type='http'): + """ + try to retrieve proxy host and port from environment + if not provided in options. + result is (proxy_host, proxy_port, proxy_auth). + proxy_auth is tuple of username and password + of proxy authentication information. + + hostname: websocket server name. + + is_secure: is the connection secure? (wss) + looks for "https_proxy" in env + before falling back to "http_proxy" + + options: "http_proxy_host" - http proxy host name. + "http_proxy_port" - http proxy port. + "http_no_proxy" - host names, which doesn't use proxy. + "http_proxy_auth" - http proxy auth information. + tuple of username and password. + default is None + "proxy_type" - if set to "socks5" PySocks wrapper + will be used in place of a http proxy. + default is "http" + """ + if _is_no_proxy_host(hostname, no_proxy): + return None, 0, None + + if proxy_host: + port = proxy_port + auth = proxy_auth + return proxy_host, port, auth + + env_keys = ["http_proxy"] + if is_secure: + env_keys.insert(0, "https_proxy") + + for key in env_keys: + value = os.environ.get(key, None) + if value: + proxy = urlparse(value) + auth = (proxy.username, proxy.password) if proxy.username else None + return proxy.hostname, proxy.port, auth + + return None, 0, None diff --git a/websocket/_utils.py b/websocket/_utils.py new file mode 100644 index 000000000..8eddabf9c --- /dev/null +++ b/websocket/_utils.py @@ -0,0 +1,110 @@ +""" +websocket - WebSocket client library for Python + +Copyright (C) 2010 Hiroki Ohtani(liris) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA + +""" +import six + +__all__ = ["NoLock", "validate_utf8", "extract_err_message", "extract_error_code"] + + +class NoLock(object): + + def __enter__(self): + pass + + def __exit__(self, exc_type, exc_value, traceback): + pass + +try: + # If wsaccel is available we use compiled routines to validate UTF-8 + # strings. + from wsaccel.utf8validator import Utf8Validator + + def _validate_utf8(utfbytes): + return Utf8Validator().validate(utfbytes)[0] + +except ImportError: + # UTF-8 validator + # python implementation of http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + + _UTF8_ACCEPT = 0 + _UTF8_REJECT = 12 + + _UTF8D = [ + # The first part of the table maps bytes to character classes that + # to reduce the size of the transition table and create bitmasks. + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8, + + # The second part is a transition table that maps a combination + # of a state of the automaton and a character class to a state. + 0,12,24,36,60,96,84,12,12,12,48,72, 12,12,12,12,12,12,12,12,12,12,12,12, + 12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12, + 12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12, + 12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12, + 12,36,12,12,12,12,12,12,12,12,12,12, ] + + def _decode(state, codep, ch): + tp = _UTF8D[ch] + + codep = (ch & 0x3f) | (codep << 6) if ( + state != _UTF8_ACCEPT) else (0xff >> tp) & ch + state = _UTF8D[256 + state + tp] + + return state, codep + + def _validate_utf8(utfbytes): + state = _UTF8_ACCEPT + codep = 0 + for i in utfbytes: + if six.PY2: + i = ord(i) + state, codep = _decode(state, codep, i) + if state == _UTF8_REJECT: + return False + + return True + + +def validate_utf8(utfbytes): + """ + validate utf8 byte string. + utfbytes: utf byte string to check. + return value: if valid utf8 string, return true. Otherwise, return false. + """ + return _validate_utf8(utfbytes) + + +def extract_err_message(exception): + if exception.args: + return exception.args[0] + else: + return None + + +def extract_error_code(exception): + if exception.args and len(exception.args) > 1: + return exception.args[0] if isinstance(exception.args[0], int) else None diff --git a/websocket/tests/__init__.py b/websocket/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/websocket/tests/data/header01.txt b/websocket/tests/data/header01.txt new file mode 100644 index 000000000..3142b43b3 --- /dev/null +++ b/websocket/tests/data/header01.txt @@ -0,0 +1,6 @@ +HTTP/1.1 101 WebSocket Protocol Handshake +Connection: Upgrade +Upgrade: WebSocket +Sec-WebSocket-Accept: Kxep+hNu9n51529fGidYu7a3wO0= +some_header: something + diff --git a/websocket/tests/data/header02.txt b/websocket/tests/data/header02.txt new file mode 100644 index 000000000..a9dd2ce3e --- /dev/null +++ b/websocket/tests/data/header02.txt @@ -0,0 +1,6 @@ +HTTP/1.1 101 WebSocket Protocol Handshake +Connection: Upgrade +Upgrade WebSocket +Sec-WebSocket-Accept: Kxep+hNu9n51529fGidYu7a3wO0= +some_header: something + diff --git a/websocket/tests/test_cookiejar.py b/websocket/tests/test_cookiejar.py new file mode 100644 index 000000000..c40a00bd2 --- /dev/null +++ b/websocket/tests/test_cookiejar.py @@ -0,0 +1,98 @@ +import unittest + +from websocket._cookiejar import SimpleCookieJar + +try: + import Cookie +except: + import http.cookies as Cookie + + +class CookieJarTest(unittest.TestCase): + def testAdd(self): + cookie_jar = SimpleCookieJar() + cookie_jar.add("") + self.assertFalse(cookie_jar.jar, "Cookie with no domain should not be added to the jar") + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b") + self.assertFalse(cookie_jar.jar, "Cookie with no domain should not be added to the jar") + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b; domain=.abc") + self.assertTrue(".abc" in cookie_jar.jar) + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b; domain=abc") + self.assertTrue(".abc" in cookie_jar.jar) + self.assertTrue("abc" not in cookie_jar.jar) + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b; c=d; domain=abc") + self.assertEquals(cookie_jar.get("abc"), "a=b; c=d") + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b; c=d; domain=abc") + cookie_jar.add("e=f; domain=abc") + self.assertEquals(cookie_jar.get("abc"), "a=b; c=d; e=f") + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b; c=d; domain=abc") + cookie_jar.add("e=f; domain=.abc") + self.assertEquals(cookie_jar.get("abc"), "a=b; c=d; e=f") + + cookie_jar = SimpleCookieJar() + cookie_jar.add("a=b; c=d; domain=abc") + cookie_jar.add("e=f; domain=xyz") + self.assertEquals(cookie_jar.get("abc"), "a=b; c=d") + self.assertEquals(cookie_jar.get("xyz"), "e=f") + self.assertEquals(cookie_jar.get("something"), "") + + def testSet(self): + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b") + self.assertFalse(cookie_jar.jar, "Cookie with no domain should not be added to the jar") + + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; domain=.abc") + self.assertTrue(".abc" in cookie_jar.jar) + + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; domain=abc") + self.assertTrue(".abc" in cookie_jar.jar) + self.assertTrue("abc" not in cookie_jar.jar) + + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; c=d; domain=abc") + self.assertEquals(cookie_jar.get("abc"), "a=b; c=d") + + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; c=d; domain=abc") + cookie_jar.set("e=f; domain=abc") + self.assertEquals(cookie_jar.get("abc"), "e=f") + + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; c=d; domain=abc") + cookie_jar.set("e=f; domain=.abc") + self.assertEquals(cookie_jar.get("abc"), "e=f") + + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; c=d; domain=abc") + cookie_jar.set("e=f; domain=xyz") + self.assertEquals(cookie_jar.get("abc"), "a=b; c=d") + self.assertEquals(cookie_jar.get("xyz"), "e=f") + self.assertEquals(cookie_jar.get("something"), "") + + def testGet(self): + cookie_jar = SimpleCookieJar() + cookie_jar.set("a=b; c=d; domain=abc.com") + self.assertEquals(cookie_jar.get("abc.com"), "a=b; c=d") + self.assertEquals(cookie_jar.get("x.abc.com"), "a=b; c=d") + self.assertEquals(cookie_jar.get("abc.com.es"), "") + self.assertEquals(cookie_jar.get("xabc.com"), "") + + cookie_jar.set("a=b; c=d; domain=.abc.com") + self.assertEquals(cookie_jar.get("abc.com"), "a=b; c=d") + self.assertEquals(cookie_jar.get("x.abc.com"), "a=b; c=d") + self.assertEquals(cookie_jar.get("abc.com.es"), "") + self.assertEquals(cookie_jar.get("xabc.com"), "") diff --git a/websocket/tests/test_websocket.py b/websocket/tests/test_websocket.py new file mode 100644 index 000000000..f49a89398 --- /dev/null +++ b/websocket/tests/test_websocket.py @@ -0,0 +1,662 @@ +# -*- coding: utf-8 -*- +# + +import sys +sys.path[0:0] = [""] + +import os +import os.path +import socket + +import six + +# websocket-client +import websocket as ws +from websocket._handshake import _create_sec_websocket_key, \ + _validate as _validate_header +from websocket._http import read_headers +from websocket._url import get_proxy_info, parse_url +from websocket._utils import validate_utf8 + +if six.PY3: + from base64 import decodebytes as base64decode +else: + from base64 import decodestring as base64decode + +if sys.version_info[0] == 2 and sys.version_info[1] < 7: + import unittest2 as unittest +else: + import unittest + +try: + from ssl import SSLError +except ImportError: + # dummy class of SSLError for ssl none-support environment. + class SSLError(Exception): + pass + +# Skip test to access the internet. +TEST_WITH_INTERNET = os.environ.get('TEST_WITH_INTERNET', '0') == '1' + +# Skip Secure WebSocket test. +TEST_SECURE_WS = True +TRACEABLE = True + + +def create_mask_key(_): + return "abcd" + + +class SockMock(object): + def __init__(self): + self.data = [] + self.sent = [] + + def add_packet(self, data): + self.data.append(data) + + def recv(self, bufsize): + if self.data: + e = self.data.pop(0) + if isinstance(e, Exception): + raise e + if len(e) > bufsize: + self.data.insert(0, e[bufsize:]) + return e[:bufsize] + + def send(self, data): + self.sent.append(data) + return len(data) + + def close(self): + pass + + +class HeaderSockMock(SockMock): + + def __init__(self, fname): + SockMock.__init__(self) + path = os.path.join(os.path.dirname(__file__), fname) + with open(path, "rb") as f: + self.add_packet(f.read()) + + +class WebSocketTest(unittest.TestCase): + def setUp(self): + ws.enableTrace(TRACEABLE) + + def tearDown(self): + pass + + def testDefaultTimeout(self): + self.assertEqual(ws.getdefaulttimeout(), None) + ws.setdefaulttimeout(10) + self.assertEqual(ws.getdefaulttimeout(), 10) + ws.setdefaulttimeout(None) + + def testParseUrl(self): + p = parse_url("ws://www.example.com/r") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 80) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], False) + + p = parse_url("ws://www.example.com/r/") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 80) + self.assertEqual(p[2], "/r/") + self.assertEqual(p[3], False) + + p = parse_url("ws://www.example.com/") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 80) + self.assertEqual(p[2], "/") + self.assertEqual(p[3], False) + + p = parse_url("ws://www.example.com") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 80) + self.assertEqual(p[2], "/") + self.assertEqual(p[3], False) + + p = parse_url("ws://www.example.com:8080/r") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], False) + + p = parse_url("ws://www.example.com:8080/") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/") + self.assertEqual(p[3], False) + + p = parse_url("ws://www.example.com:8080") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/") + self.assertEqual(p[3], False) + + p = parse_url("wss://www.example.com:8080/r") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], True) + + p = parse_url("wss://www.example.com:8080/r?key=value") + self.assertEqual(p[0], "www.example.com") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/r?key=value") + self.assertEqual(p[3], True) + + self.assertRaises(ValueError, parse_url, "http://www.example.com/r") + + if sys.version_info[0] == 2 and sys.version_info[1] < 7: + return + + p = parse_url("ws://[2a03:4000:123:83::3]/r") + self.assertEqual(p[0], "2a03:4000:123:83::3") + self.assertEqual(p[1], 80) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], False) + + p = parse_url("ws://[2a03:4000:123:83::3]:8080/r") + self.assertEqual(p[0], "2a03:4000:123:83::3") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], False) + + p = parse_url("wss://[2a03:4000:123:83::3]/r") + self.assertEqual(p[0], "2a03:4000:123:83::3") + self.assertEqual(p[1], 443) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], True) + + p = parse_url("wss://[2a03:4000:123:83::3]:8080/r") + self.assertEqual(p[0], "2a03:4000:123:83::3") + self.assertEqual(p[1], 8080) + self.assertEqual(p[2], "/r") + self.assertEqual(p[3], True) + + def testWSKey(self): + key = _create_sec_websocket_key() + self.assertTrue(key != 24) + self.assertTrue(six.u("¥n") not in key) + + def testWsUtils(self): + key = "c6b8hTg4EeGb2gQMztV1/g==" + required_header = { + "upgrade": "websocket", + "connection": "upgrade", + "sec-websocket-accept": "Kxep+hNu9n51529fGidYu7a3wO0=", + } + self.assertEqual(_validate_header(required_header, key, None), (True, None)) + + header = required_header.copy() + header["upgrade"] = "http" + self.assertEqual(_validate_header(header, key, None), (False, None)) + del header["upgrade"] + self.assertEqual(_validate_header(header, key, None), (False, None)) + + header = required_header.copy() + header["connection"] = "something" + self.assertEqual(_validate_header(header, key, None), (False, None)) + del header["connection"] + self.assertEqual(_validate_header(header, key, None), (False, None)) + + header = required_header.copy() + header["sec-websocket-accept"] = "something" + self.assertEqual(_validate_header(header, key, None), (False, None)) + del header["sec-websocket-accept"] + self.assertEqual(_validate_header(header, key, None), (False, None)) + + header = required_header.copy() + header["sec-websocket-protocol"] = "sub1" + self.assertEqual(_validate_header(header, key, ["sub1", "sub2"]), (True, "sub1")) + self.assertEqual(_validate_header(header, key, ["sub2", "sub3"]), (False, None)) + + header = required_header.copy() + header["sec-websocket-protocol"] = "sUb1" + self.assertEqual(_validate_header(header, key, ["Sub1", "suB2"]), (True, "sub1")) + + + def testReadHeader(self): + status, header, status_message = read_headers(HeaderSockMock("data/header01.txt")) + self.assertEqual(status, 101) + self.assertEqual(header["connection"], "Upgrade") + + HeaderSockMock("data/header02.txt") + self.assertRaises(ws.WebSocketException, read_headers, HeaderSockMock("data/header02.txt")) + + def testSend(self): + # TODO: add longer frame data + sock = ws.WebSocket() + sock.set_mask_key(create_mask_key) + s = sock.sock = HeaderSockMock("data/header01.txt") + sock.send("Hello") + self.assertEqual(s.sent[0], six.b("\x81\x85abcd)\x07\x0f\x08\x0e")) + + sock.send("こんにちは") + self.assertEqual(s.sent[1], six.b("\x81\x8fabcd\x82\xe3\xf0\x87\xe3\xf1\x80\xe5\xca\x81\xe2\xc5\x82\xe3\xcc")) + + sock.send(u"こんにちは") + self.assertEqual(s.sent[1], six.b("\x81\x8fabcd\x82\xe3\xf0\x87\xe3\xf1\x80\xe5\xca\x81\xe2\xc5\x82\xe3\xcc")) + + sock.send("x" * 127) + + def testRecv(self): + # TODO: add longer frame data + sock = ws.WebSocket() + s = sock.sock = SockMock() + something = six.b("\x81\x8fabcd\x82\xe3\xf0\x87\xe3\xf1\x80\xe5\xca\x81\xe2\xc5\x82\xe3\xcc") + s.add_packet(something) + data = sock.recv() + self.assertEqual(data, "こんにちは") + + s.add_packet(six.b("\x81\x85abcd)\x07\x0f\x08\x0e")) + data = sock.recv() + self.assertEqual(data, "Hello") + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testIter(self): + count = 2 + for _ in ws.create_connection('ws://stream.meetup.com/2/rsvps'): + count -= 1 + if count == 0: + break + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testNext(self): + sock = ws.create_connection('ws://stream.meetup.com/2/rsvps') + self.assertEqual(str, type(next(sock))) + + def testInternalRecvStrict(self): + sock = ws.WebSocket() + s = sock.sock = SockMock() + s.add_packet(six.b("foo")) + s.add_packet(socket.timeout()) + s.add_packet(six.b("bar")) + # s.add_packet(SSLError("The read operation timed out")) + s.add_packet(six.b("baz")) + with self.assertRaises(ws.WebSocketTimeoutException): + sock.frame_buffer.recv_strict(9) + # if six.PY2: + # with self.assertRaises(ws.WebSocketTimeoutException): + # data = sock._recv_strict(9) + # else: + # with self.assertRaises(SSLError): + # data = sock._recv_strict(9) + data = sock.frame_buffer.recv_strict(9) + self.assertEqual(data, six.b("foobarbaz")) + with self.assertRaises(ws.WebSocketConnectionClosedException): + sock.frame_buffer.recv_strict(1) + + def testRecvTimeout(self): + sock = ws.WebSocket() + s = sock.sock = SockMock() + s.add_packet(six.b("\x81")) + s.add_packet(socket.timeout()) + s.add_packet(six.b("\x8dabcd\x29\x07\x0f\x08\x0e")) + s.add_packet(socket.timeout()) + s.add_packet(six.b("\x4e\x43\x33\x0e\x10\x0f\x00\x40")) + with self.assertRaises(ws.WebSocketTimeoutException): + sock.recv() + with self.assertRaises(ws.WebSocketTimeoutException): + sock.recv() + data = sock.recv() + self.assertEqual(data, "Hello, World!") + with self.assertRaises(ws.WebSocketConnectionClosedException): + sock.recv() + + def testRecvWithSimpleFragmentation(self): + sock = ws.WebSocket() + s = sock.sock = SockMock() + # OPCODE=TEXT, FIN=0, MSG="Brevity is " + s.add_packet(six.b("\x01\x8babcd#\x10\x06\x12\x08\x16\x1aD\x08\x11C")) + # OPCODE=CONT, FIN=1, MSG="the soul of wit" + s.add_packet(six.b("\x80\x8fabcd\x15\n\x06D\x12\r\x16\x08A\r\x05D\x16\x0b\x17")) + data = sock.recv() + self.assertEqual(data, "Brevity is the soul of wit") + with self.assertRaises(ws.WebSocketConnectionClosedException): + sock.recv() + + def testRecvWithFireEventOfFragmentation(self): + sock = ws.WebSocket(fire_cont_frame=True) + s = sock.sock = SockMock() + # OPCODE=TEXT, FIN=0, MSG="Brevity is " + s.add_packet(six.b("\x01\x8babcd#\x10\x06\x12\x08\x16\x1aD\x08\x11C")) + # OPCODE=CONT, FIN=0, MSG="Brevity is " + s.add_packet(six.b("\x00\x8babcd#\x10\x06\x12\x08\x16\x1aD\x08\x11C")) + # OPCODE=CONT, FIN=1, MSG="the soul of wit" + s.add_packet(six.b("\x80\x8fabcd\x15\n\x06D\x12\r\x16\x08A\r\x05D\x16\x0b\x17")) + + _, data = sock.recv_data() + self.assertEqual(data, six.b("Brevity is ")) + _, data = sock.recv_data() + self.assertEqual(data, six.b("Brevity is ")) + _, data = sock.recv_data() + self.assertEqual(data, six.b("the soul of wit")) + + # OPCODE=CONT, FIN=0, MSG="Brevity is " + s.add_packet(six.b("\x80\x8babcd#\x10\x06\x12\x08\x16\x1aD\x08\x11C")) + + with self.assertRaises(ws.WebSocketException): + sock.recv_data() + + with self.assertRaises(ws.WebSocketConnectionClosedException): + sock.recv() + + def testClose(self): + sock = ws.WebSocket() + sock.sock = SockMock() + sock.connected = True + sock.close() + self.assertEqual(sock.connected, False) + + sock = ws.WebSocket() + s = sock.sock = SockMock() + sock.connected = True + s.add_packet(six.b('\x88\x80\x17\x98p\x84')) + sock.recv() + self.assertEqual(sock.connected, False) + + def testRecvContFragmentation(self): + sock = ws.WebSocket() + s = sock.sock = SockMock() + # OPCODE=CONT, FIN=1, MSG="the soul of wit" + s.add_packet(six.b("\x80\x8fabcd\x15\n\x06D\x12\r\x16\x08A\r\x05D\x16\x0b\x17")) + self.assertRaises(ws.WebSocketException, sock.recv) + + def testRecvWithProlongedFragmentation(self): + sock = ws.WebSocket() + s = sock.sock = SockMock() + # OPCODE=TEXT, FIN=0, MSG="Once more unto the breach, " + s.add_packet(six.b("\x01\x9babcd.\x0c\x00\x01A\x0f\x0c\x16\x04B\x16\n\x15" + "\rC\x10\t\x07C\x06\x13\x07\x02\x07\tNC")) + # OPCODE=CONT, FIN=0, MSG="dear friends, " + s.add_packet(six.b("\x00\x8eabcd\x05\x07\x02\x16A\x04\x11\r\x04\x0c\x07" + "\x17MB")) + # OPCODE=CONT, FIN=1, MSG="once more" + s.add_packet(six.b("\x80\x89abcd\x0e\x0c\x00\x01A\x0f\x0c\x16\x04")) + data = sock.recv() + self.assertEqual( + data, + "Once more unto the breach, dear friends, once more") + with self.assertRaises(ws.WebSocketConnectionClosedException): + sock.recv() + + def testRecvWithFragmentationAndControlFrame(self): + sock = ws.WebSocket() + sock.set_mask_key(create_mask_key) + s = sock.sock = SockMock() + # OPCODE=TEXT, FIN=0, MSG="Too much " + s.add_packet(six.b("\x01\x89abcd5\r\x0cD\x0c\x17\x00\x0cA")) + # OPCODE=PING, FIN=1, MSG="Please PONG this" + s.add_packet(six.b("\x89\x90abcd1\x0e\x06\x05\x12\x07C4.,$D\x15\n\n\x17")) + # OPCODE=CONT, FIN=1, MSG="of a good thing" + s.add_packet(six.b("\x80\x8fabcd\x0e\x04C\x05A\x05\x0c\x0b\x05B\x17\x0c" + "\x08\x0c\x04")) + data = sock.recv() + self.assertEqual(data, "Too much of a good thing") + with self.assertRaises(ws.WebSocketConnectionClosedException): + sock.recv() + self.assertEqual( + s.sent[0], + six.b("\x8a\x90abcd1\x0e\x06\x05\x12\x07C4.,$D\x15\n\n\x17")) + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testWebSocket(self): + s = ws.create_connection("ws://echo.websocket.org/") + self.assertNotEqual(s, None) + s.send("Hello, World") + result = s.recv() + self.assertEqual(result, "Hello, World") + + s.send(u"こにゃにゃちは、世界") + result = s.recv() + self.assertEqual(result, "こにゃにゃちは、世界") + s.close() + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testPingPong(self): + s = ws.create_connection("ws://echo.websocket.org/") + self.assertNotEqual(s, None) + s.ping("Hello") + s.pong("Hi") + s.close() + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + @unittest.skipUnless(TEST_SECURE_WS, "wss://echo.websocket.org doesn't work well.") + def testSecureWebSocket(self): + if 1: + import ssl + s = ws.create_connection("wss://echo.websocket.org/") + self.assertNotEqual(s, None) + self.assertTrue(isinstance(s.sock, ssl.SSLSocket)) + s.send("Hello, World") + result = s.recv() + self.assertEqual(result, "Hello, World") + s.send(u"こにゃにゃちは、世界") + result = s.recv() + self.assertEqual(result, "こにゃにゃちは、世界") + s.close() + #except: + # pass + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testWebSocketWihtCustomHeader(self): + s = ws.create_connection("ws://echo.websocket.org/", + headers={"User-Agent": "PythonWebsocketClient"}) + self.assertNotEqual(s, None) + s.send("Hello, World") + result = s.recv() + self.assertEqual(result, "Hello, World") + s.close() + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testAfterClose(self): + s = ws.create_connection("ws://echo.websocket.org/") + self.assertNotEqual(s, None) + s.close() + self.assertRaises(ws.WebSocketConnectionClosedException, s.send, "Hello") + self.assertRaises(ws.WebSocketConnectionClosedException, s.recv) + + def testNonce(self): + """ WebSocket key should be a random 16-byte nonce. + """ + key = _create_sec_websocket_key() + nonce = base64decode(key.encode("utf-8")) + self.assertEqual(16, len(nonce)) + + +class WebSocketAppTest(unittest.TestCase): + + class NotSetYet(object): + """ A marker class for signalling that a value hasn't been set yet. + """ + + def setUp(self): + ws.enableTrace(TRACEABLE) + + WebSocketAppTest.keep_running_open = WebSocketAppTest.NotSetYet() + WebSocketAppTest.keep_running_close = WebSocketAppTest.NotSetYet() + WebSocketAppTest.get_mask_key_id = WebSocketAppTest.NotSetYet() + + def tearDown(self): + WebSocketAppTest.keep_running_open = WebSocketAppTest.NotSetYet() + WebSocketAppTest.keep_running_close = WebSocketAppTest.NotSetYet() + WebSocketAppTest.get_mask_key_id = WebSocketAppTest.NotSetYet() + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testKeepRunning(self): + """ A WebSocketApp should keep running as long as its self.keep_running + is not False (in the boolean context). + """ + + def on_open(self, *args, **kwargs): + """ Set the keep_running flag for later inspection and immediately + close the connection. + """ + WebSocketAppTest.keep_running_open = self.keep_running + + self.close() + + def on_close(self, *args, **kwargs): + """ Set the keep_running flag for the test to use. + """ + WebSocketAppTest.keep_running_close = self.keep_running + + app = ws.WebSocketApp('ws://echo.websocket.org/', on_open=on_open, on_close=on_close) + app.run_forever() + + # if numpy is installed, this assertion fail + # self.assertFalse(isinstance(WebSocketAppTest.keep_running_open, + # WebSocketAppTest.NotSetYet)) + + # self.assertFalse(isinstance(WebSocketAppTest.keep_running_close, + # WebSocketAppTest.NotSetYet)) + + # self.assertEqual(True, WebSocketAppTest.keep_running_open) + # self.assertEqual(False, WebSocketAppTest.keep_running_close) + + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testSockMaskKey(self): + """ A WebSocketApp should forward the received mask_key function down + to the actual socket. + """ + + def my_mask_key_func(): + pass + + def on_open(self, *args, **kwargs): + """ Set the value so the test can use it later on and immediately + close the connection. + """ + WebSocketAppTest.get_mask_key_id = id(self.get_mask_key) + self.close() + + app = ws.WebSocketApp('ws://echo.websocket.org/', on_open=on_open, get_mask_key=my_mask_key_func) + app.run_forever() + + # if numpu is installed, this assertion fail + # Note: We can't use 'is' for comparing the functions directly, need to use 'id'. + # self.assertEqual(WebSocketAppTest.get_mask_key_id, id(my_mask_key_func)) + + +class SockOptTest(unittest.TestCase): + @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") + def testSockOpt(self): + sockopt = ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) + s = ws.create_connection("ws://echo.websocket.org", sockopt=sockopt) + self.assertNotEqual(s.sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY), 0) + s.close() + + +class UtilsTest(unittest.TestCase): + def testUtf8Validator(self): + state = validate_utf8(six.b('\xf0\x90\x80\x80')) + self.assertEqual(state, True) + state = validate_utf8(six.b('\xce\xba\xe1\xbd\xb9\xcf\x83\xce\xbc\xce\xb5\xed\xa0\x80edited')) + self.assertEqual(state, False) + state = validate_utf8(six.b('')) + self.assertEqual(state, True) + + +class ProxyInfoTest(unittest.TestCase): + def setUp(self): + self.http_proxy = os.environ.get("http_proxy", None) + self.https_proxy = os.environ.get("https_proxy", None) + if "http_proxy" in os.environ: + del os.environ["http_proxy"] + if "https_proxy" in os.environ: + del os.environ["https_proxy"] + + def tearDown(self): + if self.http_proxy: + os.environ["http_proxy"] = self.http_proxy + elif "http_proxy" in os.environ: + del os.environ["http_proxy"] + + if self.https_proxy: + os.environ["https_proxy"] = self.https_proxy + elif "https_proxy" in os.environ: + del os.environ["https_proxy"] + + def testProxyFromArgs(self): + self.assertEqual(get_proxy_info("echo.websocket.org", False, proxy_host="localhost"), ("localhost", 0, None)) + self.assertEqual(get_proxy_info("echo.websocket.org", False, proxy_host="localhost", proxy_port=3128), ("localhost", 3128, None)) + self.assertEqual(get_proxy_info("echo.websocket.org", True, proxy_host="localhost"), ("localhost", 0, None)) + self.assertEqual(get_proxy_info("echo.websocket.org", True, proxy_host="localhost", proxy_port=3128), ("localhost", 3128, None)) + + self.assertEqual(get_proxy_info("echo.websocket.org", False, proxy_host="localhost", proxy_auth=("a", "b")), + ("localhost", 0, ("a", "b"))) + self.assertEqual(get_proxy_info("echo.websocket.org", False, proxy_host="localhost", proxy_port=3128, proxy_auth=("a", "b")), + ("localhost", 3128, ("a", "b"))) + self.assertEqual(get_proxy_info("echo.websocket.org", True, proxy_host="localhost", proxy_auth=("a", "b")), + ("localhost", 0, ("a", "b"))) + self.assertEqual(get_proxy_info("echo.websocket.org", True, proxy_host="localhost", proxy_port=3128, proxy_auth=("a", "b")), + ("localhost", 3128, ("a", "b"))) + + self.assertEqual(get_proxy_info("echo.websocket.org", True, proxy_host="localhost", proxy_port=3128, no_proxy=["example.com"], proxy_auth=("a", "b")), + ("localhost", 3128, ("a", "b"))) + self.assertEqual(get_proxy_info("echo.websocket.org", True, proxy_host="localhost", proxy_port=3128, no_proxy=["echo.websocket.org"], proxy_auth=("a", "b")), + (None, 0, None)) + + def testProxyFromEnv(self): + os.environ["http_proxy"] = "http://localhost/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", None, None)) + os.environ["http_proxy"] = "http://localhost:3128/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", 3128, None)) + + os.environ["http_proxy"] = "http://localhost/" + os.environ["https_proxy"] = "http://localhost2/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", None, None)) + os.environ["http_proxy"] = "http://localhost:3128/" + os.environ["https_proxy"] = "http://localhost2:3128/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", 3128, None)) + + os.environ["http_proxy"] = "http://localhost/" + os.environ["https_proxy"] = "http://localhost2/" + self.assertEqual(get_proxy_info("echo.websocket.org", True), ("localhost2", None, None)) + os.environ["http_proxy"] = "http://localhost:3128/" + os.environ["https_proxy"] = "http://localhost2:3128/" + self.assertEqual(get_proxy_info("echo.websocket.org", True), ("localhost2", 3128, None)) + + + os.environ["http_proxy"] = "http://a:b@localhost/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", None, ("a", "b"))) + os.environ["http_proxy"] = "http://a:b@localhost:3128/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", 3128, ("a", "b"))) + + os.environ["http_proxy"] = "http://a:b@localhost/" + os.environ["https_proxy"] = "http://a:b@localhost2/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", None, ("a", "b"))) + os.environ["http_proxy"] = "http://a:b@localhost:3128/" + os.environ["https_proxy"] = "http://a:b@localhost2:3128/" + self.assertEqual(get_proxy_info("echo.websocket.org", False), ("localhost", 3128, ("a", "b"))) + + os.environ["http_proxy"] = "http://a:b@localhost/" + os.environ["https_proxy"] = "http://a:b@localhost2/" + self.assertEqual(get_proxy_info("echo.websocket.org", True), ("localhost2", None, ("a", "b"))) + os.environ["http_proxy"] = "http://a:b@localhost:3128/" + os.environ["https_proxy"] = "http://a:b@localhost2:3128/" + self.assertEqual(get_proxy_info("echo.websocket.org", True), ("localhost2", 3128, ("a", "b"))) + + os.environ["http_proxy"] = "http://a:b@localhost/" + os.environ["https_proxy"] = "http://a:b@localhost2/" + os.environ["no_proxy"] = "example1.com,example2.com" + self.assertEqual(get_proxy_info("example.1.com", True), ("localhost2", None, ("a", "b"))) + os.environ["http_proxy"] = "http://a:b@localhost:3128/" + os.environ["https_proxy"] = "http://a:b@localhost2:3128/" + os.environ["no_proxy"] = "example1.com,example2.com, echo.websocket.org" + self.assertEqual(get_proxy_info("echo.websocket.org", True), (None, 0, None)) + + os.environ["http_proxy"] = "http://a:b@localhost:3128/" + os.environ["https_proxy"] = "http://a:b@localhost2:3128/" + os.environ["no_proxy"] = "127.0.0.0/8, 192.168.0.0/16" + self.assertEqual(get_proxy_info("127.0.0.1", False), (None, 0, None)) + self.assertEqual(get_proxy_info("192.168.1.1", False), (None, 0, None)) + + +if __name__ == "__main__": + unittest.main() diff --git a/websocket_client-0.55.0-py2.7.egg-info/PKG-INFO b/websocket_client-0.55.0-py2.7.egg-info/PKG-INFO new file mode 100644 index 000000000..d9ae55980 --- /dev/null +++ b/websocket_client-0.55.0-py2.7.egg-info/PKG-INFO @@ -0,0 +1,305 @@ +Metadata-Version: 1.2 +Name: websocket-client +Version: 0.55.0 +Summary: WebSocket client for Python. hybi13 is supported. +Home-page: https://github.com/websocket-client/websocket-client.git +Author: liris +Author-email: liris.pp@gmail.com +License: BSD +Description: ================= + websocket-client + ================= + + websocket-client module is WebSocket client for python. This provide the low level APIs for WebSocket. All APIs are the synchronous functions. + + websocket-client supports only hybi-13. + + + License + ======= + + - BSD + + Installation + ============ + + This module is tested on Python 2.7 and Python 3.4+. + + Type "python setup.py install" or "pip install websocket-client" to install. + + .. CAUTION:: + + from v0.16.0, we can install by "pip install websocket-client" for Python 3. + + This module depends on + + - six + - backports.ssl_match_hostname for Python 2.x + + Performance + ----------- + + The "send" and "validate_utf8" methods are too slow on pure python. If you want to get better performace, please install both numpy and wsaccel. + + + How about Python 3 + ================== + + Now, we support Python 3 on single source code from version 0.14.0. Thanks, @battlemidget and @ralphbean. + + HTTP Proxy + ========== + + Support websocket access via http proxy. + The proxy server must allow "CONNECT" method to websocket port. + Default squid setting is "ALLOWED TO CONNECT ONLY HTTPS PORT". + + Current implementation of websocket-client is using "CONNECT" method via proxy. + + + example + + .. code:: python + + import websocket + ws = websocket.WebSocket() + ws.connect("ws://example.com/websocket", http_proxy_host="proxy_host_name", http_proxy_port=3128) + + + + Examples + ======== + + Long-lived connection + --------------------- + This example is similar to how WebSocket code looks in browsers using JavaScript. + + .. code:: python + + import websocket + try: + import thread + except ImportError: + import _thread as thread + import time + + def on_message(ws, message): + print(message) + + def on_error(ws, error): + print(error) + + def on_close(ws): + print("### closed ###") + + def on_open(ws): + def run(*args): + for i in range(3): + time.sleep(1) + ws.send("Hello %d" % i) + time.sleep(1) + ws.close() + print("thread terminating...") + thread.start_new_thread(run, ()) + + + if __name__ == "__main__": + websocket.enableTrace(True) + ws = websocket.WebSocketApp("ws://echo.websocket.org/", + on_message = on_message, + on_error = on_error, + on_close = on_close) + ws.on_open = on_open + ws.run_forever() + + + + Short-lived one-off send-receive + -------------------------------- + This is if you want to communicate a short message and disconnect immediately when done. + + .. code:: python + + from websocket import create_connection + ws = create_connection("ws://echo.websocket.org/") + print("Sending 'Hello, World'...") + ws.send("Hello, World") + print("Sent") + print("Receiving...") + result = ws.recv() + print("Received '%s'" % result) + ws.close() + + + If you want to customize socket options, set sockopt. + + sockopt example + + .. code:: python + + from websocket import create_connection + ws = create_connection("ws://echo.websocket.org/", + sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY),)) + + + More advanced: Custom class + --------------------------- + You can also write your own class for the connection, if you want to handle the nitty-gritty details yourself. + + .. code:: python + + import socket + from websocket import create_connection, WebSocket + class MyWebSocket(WebSocket): + def recv_frame(self): + frame = super().recv_frame() + print('yay! I got this frame: ', frame) + return frame + + ws = create_connection("ws://echo.websocket.org/", + sockopt=((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),), class_=MyWebSocket) + + + FAQ + === + + How to disable ssl cert verification? + ------------------------------------- + + Please set sslopt to {"cert_reqs": ssl.CERT_NONE}. + + WebSocketApp sample + + .. code:: python + + ws = websocket.WebSocketApp("wss://echo.websocket.org") + ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE}) + + + create_connection sample + + .. code:: python + + ws = websocket.create_connection("wss://echo.websocket.org", + sslopt={"cert_reqs": ssl.CERT_NONE}) + + + WebSocket sample + + .. code:: python + + ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE}) + ws.connect("wss://echo.websocket.org") + + + How to disable hostname verification? + ------------------------------------- + + Please set sslopt to {"check_hostname": False}. + (since v0.18.0) + + WebSocketApp sample + + .. code:: python + + ws = websocket.WebSocketApp("wss://echo.websocket.org") + ws.run_forever(sslopt={"check_hostname": False}) + + + create_connection sample + + .. code:: python + + ws = websocket.create_connection("wss://echo.websocket.org", + sslopt={"check_hostname": False}) + + + WebSocket sample + + .. code:: python + + ws = websocket.WebSocket(sslopt={"check_hostname": False}) + ws.connect("wss://echo.websocket.org") + + + How to enable `SNI `_? + --------------------------------------------------------------------------- + + SNI support is available for Python 2.7.9+ and 3.2+. It will be enabled automatically whenever possible. + + + Sub Protocols. + -------------- + + The server needs to support sub protocols, please set the subprotocol like this. + + + Subprotocol sample + + .. code:: python + + ws = websocket.create_connection("ws://example.com/websocket", subprotocols=["binary", "base64"]) + + + + wsdump.py + ========= + + wsdump.py is simple WebSocket test(debug) tool. + + sample for echo.websocket.org:: + + $ wsdump.py ws://echo.websocket.org/ + Press Ctrl+C to quit + > Hello, WebSocket + < Hello, WebSocket + > How are you? + < How are you? + + + Usage + ----- + + usage:: + + wsdump.py [-h] [-v [VERBOSE]] ws_url + + + WebSocket Simple Dump Tool + + positional arguments: + ws_url websocket url. ex. ws://echo.websocket.org/ + + + optional arguments: + -h, --help show this help message and exit + WebSocketApp + -v VERBOSE, --verbose VERBOSE set verbose mode. If set to 1, show opcode. If set to 2, enable to trace websocket module + + + example:: + + $ wsdump.py ws://echo.websocket.org/ + $ wsdump.py ws://echo.websocket.org/ -v + $ wsdump.py ws://echo.websocket.org/ -vv + +Keywords: websockets +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: License :: OSI Approved :: BSD License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: POSIX +Classifier: Operating System :: Microsoft :: Windows +Classifier: Topic :: Internet +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Intended Audience :: Developers +Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* diff --git a/websocket_client-0.55.0-py2.7.egg-info/SOURCES.txt b/websocket_client-0.55.0-py2.7.egg-info/SOURCES.txt new file mode 100644 index 000000000..d003db826 --- /dev/null +++ b/websocket_client-0.55.0-py2.7.egg-info/SOURCES.txt @@ -0,0 +1,32 @@ +ChangeLog +LICENSE +MANIFEST.in +README.rst +setup.cfg +setup.py +bin/wsdump.py +examples/echo_client.py +examples/echoapp_client.py +websocket/__init__.py +websocket/_abnf.py +websocket/_app.py +websocket/_cookiejar.py +websocket/_core.py +websocket/_exceptions.py +websocket/_handshake.py +websocket/_http.py +websocket/_logging.py +websocket/_socket.py +websocket/_ssl_compat.py +websocket/_url.py +websocket/_utils.py +websocket/tests/__init__.py +websocket/tests/test_cookiejar.py +websocket/tests/test_websocket.py +websocket/tests/data/header01.txt +websocket/tests/data/header02.txt +websocket_client.egg-info/PKG-INFO +websocket_client.egg-info/SOURCES.txt +websocket_client.egg-info/dependency_links.txt +websocket_client.egg-info/requires.txt +websocket_client.egg-info/top_level.txt \ No newline at end of file diff --git a/websocket_client-0.55.0-py2.7.egg-info/dependency_links.txt b/websocket_client-0.55.0-py2.7.egg-info/dependency_links.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/websocket_client-0.55.0-py2.7.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/websocket_client-0.55.0-py2.7.egg-info/installed-files.txt b/websocket_client-0.55.0-py2.7.egg-info/installed-files.txt new file mode 100644 index 000000000..2069b5c8f --- /dev/null +++ b/websocket_client-0.55.0-py2.7.egg-info/installed-files.txt @@ -0,0 +1,40 @@ +../../../../bin/wsdump.py +../websocket/__init__.py +../websocket/__init__.pyc +../websocket/_abnf.py +../websocket/_abnf.pyc +../websocket/_app.py +../websocket/_app.pyc +../websocket/_cookiejar.py +../websocket/_cookiejar.pyc +../websocket/_core.py +../websocket/_core.pyc +../websocket/_exceptions.py +../websocket/_exceptions.pyc +../websocket/_handshake.py +../websocket/_handshake.pyc +../websocket/_http.py +../websocket/_http.pyc +../websocket/_logging.py +../websocket/_logging.pyc +../websocket/_socket.py +../websocket/_socket.pyc +../websocket/_ssl_compat.py +../websocket/_ssl_compat.pyc +../websocket/_url.py +../websocket/_url.pyc +../websocket/_utils.py +../websocket/_utils.pyc +../websocket/tests/__init__.py +../websocket/tests/__init__.pyc +../websocket/tests/data/header01.txt +../websocket/tests/data/header02.txt +../websocket/tests/test_cookiejar.py +../websocket/tests/test_cookiejar.pyc +../websocket/tests/test_websocket.py +../websocket/tests/test_websocket.pyc +PKG-INFO +SOURCES.txt +dependency_links.txt +requires.txt +top_level.txt diff --git a/websocket_client-0.55.0-py2.7.egg-info/requires.txt b/websocket_client-0.55.0-py2.7.egg-info/requires.txt new file mode 100644 index 000000000..e87d97531 --- /dev/null +++ b/websocket_client-0.55.0-py2.7.egg-info/requires.txt @@ -0,0 +1,2 @@ +six +backports.ssl_match_hostname diff --git a/websocket_client-0.55.0-py2.7.egg-info/top_level.txt b/websocket_client-0.55.0-py2.7.egg-info/top_level.txt new file mode 100644 index 000000000..ca4cb0cf8 --- /dev/null +++ b/websocket_client-0.55.0-py2.7.egg-info/top_level.txt @@ -0,0 +1 @@ +websocket From 1fca65977d90cdbe1054183bd70c4fe01d733cba Mon Sep 17 00:00:00 2001 From: Vehicle Researcher Date: Tue, 26 Mar 2019 01:09:18 -0700 Subject: [PATCH 4/4] openpilot v0.5.10 release --- .gitignore | 3 +- .travis.yml | 4 +- README.md | 5 +- RELEASES.md | 14 +- SAFETY.md | 33 +- cereal/car.capnp | 2 + cereal/log.capnp | 14 +- common/ffi_wrapper.py | 13 +- common/params.py | 52 +- common/sympy_helpers.py | 81 + common/transformations/camera.py | 34 + common/transformations/model.py | 29 + models/monitoring_model.dlc | Bin 428100 -> 427951 bytes requirements_openpilot.txt | 6 +- selfdrive/athena/__init__.py | 0 selfdrive/athena/athenad.py | 128 + selfdrive/boardd/boardd.cc | 9 + selfdrive/can/common.h | 3 + selfdrive/can/dbc_template.cc | 4 + selfdrive/can/libdbc_py.py | 2 + selfdrive/can/parser.cc | 41 +- selfdrive/can/parser.py | 6 +- selfdrive/can/process_dbc.py | 6 +- selfdrive/car/__init__.py | 36 + selfdrive/car/chrysler/carstate.py | 12 +- selfdrive/car/chrysler/chryslercan_test.py | 1 - selfdrive/car/chrysler/values.py | 2 +- selfdrive/car/ford/carstate.py | 12 +- selfdrive/car/gm/carstate.py | 9 +- selfdrive/car/honda/carcontroller.py | 5 +- selfdrive/car/honda/carstate.py | 8 +- selfdrive/car/honda/hondacan.py | 12 - selfdrive/car/hyundai/carstate.py | 14 +- selfdrive/car/hyundai/interface.py | 4 - selfdrive/car/subaru/__init__.py | 1 + selfdrive/car/subaru/carstate.py | 104 + selfdrive/car/subaru/interface.py | 205 + selfdrive/car/subaru/radar_interface.py | 24 + selfdrive/car/subaru/values.py | 18 + selfdrive/car/toyota/carcontroller.py | 7 +- selfdrive/car/toyota/carstate.py | 14 +- selfdrive/car/toyota/toyotacan.py | 12 - selfdrive/car/toyota/values.py | 19 +- selfdrive/common/version.h | 2 +- selfdrive/controls/controlsd.py | 33 +- selfdrive/controls/lib/alerts.py | 7 + selfdrive/controls/lib/drive_helpers.py | 8 +- selfdrive/controls/lib/fcw.py | 71 + selfdrive/controls/lib/latcontrol.py | 2 + .../controls/lib/lateral_mpc/lateral_mpc.c | 4 +- .../controls/lib/lateral_mpc/lateral_mpc.o | Bin 2328 -> 2456 bytes selfdrive/controls/lib/lateral_mpc/libmpc.so | Bin 532192 -> 532192 bytes .../controls/lib/lateral_mpc/libmpc_py.py | 1 + selfdrive/controls/lib/long_mpc.py | 120 + .../lib/longitudinal_mpc/generator.cpp | 15 +- .../acado_auxiliary_functions.o | Bin 5480 -> 5376 bytes .../lib_mpc_export/acado_common.h | 131 +- .../lib_mpc_export/acado_integrator.c | 385 +- .../lib_mpc_export/acado_integrator.o | Bin 8584 -> 3560 bytes .../acado_qpoases_interface.cpp | 2 +- .../acado_qpoases_interface.hpp | 2 +- .../lib_mpc_export/acado_qpoases_interface.o | Bin 2992 -> 2992 bytes .../lib_mpc_export/acado_solver.c | 7652 ++++++++--------- .../lib_mpc_export/acado_solver.o | Bin 307280 -> 274768 bytes .../lib/longitudinal_mpc/lib_qp/Bounds.o | Bin 8048 -> 8048 bytes .../lib/longitudinal_mpc/lib_qp/Constraints.o | Bin 8112 -> 8112 bytes .../longitudinal_mpc/lib_qp/CyclingManager.o | Bin 2944 -> 2944 bytes .../lib_qp/EXTRAS/SolutionAnalysis.o | Bin 4488 -> 4488 bytes .../lib/longitudinal_mpc/lib_qp/Indexlist.o | Bin 4496 -> 4496 bytes .../lib/longitudinal_mpc/lib_qp/QProblem.o | Bin 72928 -> 72200 bytes .../lib/longitudinal_mpc/lib_qp/QProblemB.o | Bin 37832 -> 37592 bytes .../lib/longitudinal_mpc/lib_qp/SubjectTo.o | Bin 3856 -> 3856 bytes .../controls/lib/longitudinal_mpc/libmpc1.so | Bin 446096 -> 405136 bytes .../lib/longitudinal_mpc/libmpc_py.py | 1 + .../lib/longitudinal_mpc/longitudinal_mpc.c | 72 +- .../lib/longitudinal_mpc/longitudinal_mpc.o | Bin 3976 -> 3136 bytes selfdrive/controls/lib/pathplanner.py | 21 +- selfdrive/controls/lib/planner.py | 256 +- selfdrive/controls/lib/vehicle_model.py | 13 +- selfdrive/controls/plannerd.py | 11 +- selfdrive/controls/radard.py | 26 +- selfdrive/crash.py | 23 + selfdrive/locationd/kalman/__init__.py | 0 selfdrive/locationd/kalman/ekf_c.c | 124 + selfdrive/locationd/kalman/ekf_sym.py | 564 ++ selfdrive/locationd/kalman/kalman_helpers.py | 165 + selfdrive/locationd/kalman/loc_local_kf.py | 128 + selfdrive/locationd/kalman/loc_local_model.py | 80 + selfdrive/locationd/locationd_local.py | 274 + selfdrive/locationd/ublox.py | 9 +- selfdrive/loggerd/loggerd | Bin 1630952 -> 1630952 bytes selfdrive/manager.py | 4 + selfdrive/mapd/default_speeds.json | 1 + selfdrive/mapd/default_speeds_by_region.json | 454 - selfdrive/mapd/default_speeds_generator.py | 18 +- selfdrive/mapd/mapd.py | 33 +- selfdrive/sensord/gpsd | Bin 1171544 -> 1171544 bytes selfdrive/sensord/sensord | Bin 1159016 -> 1159016 bytes selfdrive/test/plant/plant.py | 8 + selfdrive/test/test_fingerprints.py | 68 + .../test/tests/plant/test_longitudinal.py | 31 +- 101 files changed, 6394 insertions(+), 5433 deletions(-) create mode 100644 common/sympy_helpers.py create mode 100644 selfdrive/athena/__init__.py create mode 100755 selfdrive/athena/athenad.py create mode 100644 selfdrive/car/subaru/__init__.py create mode 100644 selfdrive/car/subaru/carstate.py create mode 100644 selfdrive/car/subaru/interface.py create mode 100644 selfdrive/car/subaru/radar_interface.py create mode 100644 selfdrive/car/subaru/values.py create mode 100644 selfdrive/controls/lib/fcw.py create mode 100644 selfdrive/controls/lib/long_mpc.py create mode 100644 selfdrive/locationd/kalman/__init__.py create mode 100644 selfdrive/locationd/kalman/ekf_c.c create mode 100644 selfdrive/locationd/kalman/ekf_sym.py create mode 100644 selfdrive/locationd/kalman/kalman_helpers.py create mode 100755 selfdrive/locationd/kalman/loc_local_kf.py create mode 100644 selfdrive/locationd/kalman/loc_local_model.py create mode 100755 selfdrive/locationd/locationd_local.py delete mode 100644 selfdrive/mapd/default_speeds_by_region.json create mode 100755 selfdrive/test/test_fingerprints.py diff --git a/.gitignore b/.gitignore index ca50a2365..623c45d79 100644 --- a/.gitignore +++ b/.gitignore @@ -25,11 +25,12 @@ clcache board/obj/ selfdrive/boardd/boardd -selfdrive/visiond/visiond selfdrive/logcatd/logcatd +selfdrive/mapd/default_speeds_by_region.json selfdrive/proclogd/proclogd selfdrive/ui/ui selfdrive/test/tests/plant/out +selfdrive/visiond/visiond /src/ one diff --git a/.travis.yml b/.travis.yml index 74411b5de..3dfe33823 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,8 @@ install: - docker build -t tmppilot -f Dockerfile.openpilot . script: - - docker run --rm + - docker run -v "$(pwd)"/selfdrive/test/tests/plant/out:/tmp/openpilot/selfdrive/test/tests/plant/out tmppilot /bin/sh -c 'cd /tmp/openpilot/selfdrive/test/tests/plant && OPTEST=1 ./test_longitudinal.py' + - docker run + tmppilot /bin/sh -c 'cd /tmp/openpilot/selfdrive/test/ && ./test_fingerprints.py' diff --git a/README.md b/README.md index b1ed6a1a6..f8052b285 100644 --- a/README.md +++ b/README.md @@ -114,12 +114,11 @@ Community Maintained Cars | Make | Model | Supported Package | Lateral | Longitudinal | No Accel Below | No Steer Below | Giraffe | | ---------------------| -------------------------| ---------------------| --------| ---------------| -----------------| ---------------|-------------------| | Honda | Fit 2018 | Honda Sensing | Yes | Yes | 25mph1| 12mph | Inverted Nidec | -| Tesla | Model S 2012 | All | Yes | Not yet | Not applicable | 0mph | Custom9| -| Tesla | Model S 2013 | All | Yes | Not yet | Not applicable | 0mph | Custom9| +| Tesla | Model S 2012-13 | All | Yes | Not yet | Not applicable | 0mph | Custom8| [[Honda Fit Pull Request]](https://github.com/commaai/openpilot/pull/266).
[[Tesla Model S Pull Request]](https://github.com/commaai/openpilot/pull/246)
-9Community built Giraffe, find more information here [Community Tesla Giraffe](https://github.com/jeankalud/neo/tree/tesla_giraffe/giraffe/tesla)
+8Community built Giraffe, find more information here [Community Tesla Giraffe](https://github.com/jeankalud/neo/tree/tesla_giraffe/giraffe/tesla)
Community Maintained Cars are not confirmed by comma.ai to meet our [safety model](https://github.com/commaai/openpilot/blob/devel/SAFETY.md). Be extra cautious using them. diff --git a/RELEASES.md b/RELEASES.md index ae4c8f14a..ef96e09e5 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,15 @@ +Version 0.5.10 (2019-03-19) +======================== + * Self-tuning vehicle parameters: steering offset, tires stiffness and steering ratio + * Improve longitudinal control at low speed when lead vehicle harshly decelerates + * Fix panda bug going unexpectedly in DCP mode when EON is connected + * Reduce white panda power consumption by 500mW when EON is disconnected by turning off WIFI + * New Driver Monitoring Model + * Support QR codes for login using comma connect + * Refactor comma pedal FW and use CRC-8 checksum algorithm for safety. Reflashing pedal is required. + Please see `#hw-pedal` on [discord](discord.comma.ai) for assistance updating comma pedal. + * Additional speed limit rules for Germany thanks to arne182 + Version 0.5.9 (2019-02-10) ======================== * Improve calibration using a dedicated neural network @@ -8,7 +20,7 @@ Version 0.5.9 (2019-02-10) * Kia Optima support thanks to emmertex! * Buick Regal 2018 support thanks to HOYS! * Comma pedal support for Toyota thanks to wocsor! Note: tuning needed and not maintained by comma - * Chrysler Pacifica and Jeep Grand Cherokee suppor thanks to adhintz! + * Chrysler Pacifica and Jeep Grand Cherokee support thanks to adhintz! Version 0.5.8 (2019-01-17) ======================== diff --git a/SAFETY.md b/SAFETY.md index a2f77a550..b5800a0d5 100644 --- a/SAFETY.md +++ b/SAFETY.md @@ -89,7 +89,7 @@ GM/Chevrolet and openpilot to 350. This is approximately 0.3g of braking. - Steering torque is controlled through the 0x180 CAN message and it's limited by the panda firmware and by - openpilot to a value between -255 and 255. In addition, the vehicle EPS unit will not fault when + openpilot to a value between -300 and 300. In addition, the vehicle EPS unit will fault for commands outside these limits. A steering torque rate limit is enforced by the panda firmware and by openpilot, so that the commanded steering torque must rise from 0 to max value no faster than 0.75s. Commanded steering torque is gradually limited by the panda firmware and by openpilot if the driver's @@ -105,5 +105,34 @@ GM/Chevrolet - GM CAN uses both a counter and a checksum to ensure integrity and prevent replay of the same message. -**Extra note"**: comma.ai strongly discourages the use of openpilot forks with safety code either missing or +Hyundai/Kia (Lateral only) +------ + + - While the system is engaged, steer commands are subject to the same limits used by + the stock system. + + - Steering torque is controlled through the 0x340 CAN message and it's limited by the panda firmware and by + openpilot to a value between -255 and 255. In addition, the vehicle EPS unit will fault for + commands outside the values of -409 and 409. A steering torque rate limit is enforced by the panda firmware and by + openpilot, so that the commanded steering torque must rise from 0 to max value no faster than + 0.85s. Commanded steering torque is gradually limited by the panda firmware and by openpilot if the driver's + torque exceeds 50 units in the opposite dicrection to ensure limited applied torque against the + driver's will. + +Chrysler/Jeep/Fiat (Lateral only) +------ + + - While the system is engaged, steer commands are subject to the same limits used by + the stock system. + + - Steering torque is controlled through the 0x292 CAN message and it's limited by the panda firmware and by + openpilot to a value between -261 and 261. In addition, the vehicle EPS unit will fault for + commands outside these limits. A steering torque rate limit is enforced by the panda firmware and by + openpilot, so that the commanded steering torque must rise from 0 to max value no faster than + 0.87s. Commanded steering torque is limited by the panda firmware and by openpilot to be no more than 80 + units above the actual EPS generated motor torque to ensure limited differences between + commanded and actual torques. + + +**Extra note**: comma.ai strongly discourages the use of openpilot forks with safety code either missing or not fully meeting the above requirements. diff --git a/cereal/car.capnp b/cereal/car.capnp index fbcbb1065..8fb312867 100644 --- a/cereal/car.capnp +++ b/cereal/car.capnp @@ -72,6 +72,7 @@ struct CarEvent @0x9b1657f34caf3ad3 { calibrationProgress @47; lowBattery @48; invalidGiraffeHonda @49; + vehicleModelInvalid @50; } } @@ -317,6 +318,7 @@ struct CarParams { hyundai @8; chrysler @9; tesla @10; + subaru @11; } # things about the car in the manual diff --git a/cereal/log.capnp b/cereal/log.capnp index eb6ea7632..3f79deefe 100644 --- a/cereal/log.capnp +++ b/cereal/log.capnp @@ -419,7 +419,7 @@ struct Live100Data { alertType @44 :Text; alertSound @45 :Text; awarenessStatus @26 :Float32; - angleOffset @27 :Float32; + angleModelBias @27 :Float32; gpsPlannerActive @40 :Bool; engageable @41 :Bool; # can OP be engaged? driverMonitoringOn @43 :Bool; @@ -582,6 +582,9 @@ struct Plan { vCurvature @21 :Float32; decelForTurn @22 :Bool; mapValid @25 :Bool; + radarValid @28 :Bool; + + processingDelay @29 :Float32; struct GpsTrajectory { @@ -608,8 +611,12 @@ struct PathPlan { rPoly @6 :List(Float32); rProb @7 :Float32; - angleSteers @8 :Float32; + angleSteers @8 :Float32; # deg + rateSteers @13 :Float32; # deg/s valid @9 :Bool; + paramsValid @10 :Bool; + modelValid @12 :Bool; + angleOffset @11 :Float32; } struct LiveLocationData { @@ -1602,6 +1609,9 @@ struct LiveParametersData { valid @0 :Bool; gyroBias @1 :Float32; angleOffset @2 :Float32; + angleOffsetAverage @3 :Float32; + stiffnessFactor @4 :Float32; + steerRatio @5 :Float32; } struct LiveMapData { diff --git a/common/ffi_wrapper.py b/common/ffi_wrapper.py index 65b790a80..fd6b2bf7b 100644 --- a/common/ffi_wrapper.py +++ b/common/ffi_wrapper.py @@ -6,7 +6,11 @@ from cffi import FFI TMPDIR = "/tmp/ccache" -def ffi_wrap(name, c_code, c_header, tmpdir=TMPDIR, cflags="", libraries=[]): + +def ffi_wrap(name, c_code, c_header, tmpdir=TMPDIR, cflags="", libraries=None): + if libraries is None: + libraries = [] + cache = name + "_" + hashlib.sha1(c_code).hexdigest() try: os.mkdir(tmpdir) @@ -28,7 +32,11 @@ def ffi_wrap(name, c_code, c_header, tmpdir=TMPDIR, cflags="", libraries=[]): return mod.ffi, mod.lib -def compile_code(name, c_code, c_header, directory, cflags="", libraries=[]): + +def compile_code(name, c_code, c_header, directory, cflags="", libraries=None): + if libraries is None: + libraries = [] + ffibuilder = FFI() ffibuilder.set_source(name, c_code, source_extension='.cpp', libraries=libraries) ffibuilder.cdef(c_header) @@ -36,6 +44,7 @@ def compile_code(name, c_code, c_header, directory, cflags="", libraries=[]): os.environ['CFLAGS'] = cflags ffibuilder.compile(verbose=True, debug=False, tmpdir=directory) + def wrap_compiled(name, directory): sys.path.append(directory) mod = __import__(name) diff --git a/common/params.py b/common/params.py index de0e7a141..30ebaa060 100755 --- a/common/params.py +++ b/common/params.py @@ -29,6 +29,7 @@ import fcntl import tempfile from enum import Enum + def mkdirs_exists_ok(path): try: os.makedirs(path) @@ -36,52 +37,47 @@ def mkdirs_exists_ok(path): if not os.path.isdir(path): raise + class TxType(Enum): PERSISTENT = 1 CLEAR_ON_MANAGER_START = 2 CLEAR_ON_CAR_START = 3 + class UnknownKeyName(Exception): pass + keys = { -# written: manager -# read: loggerd, uploaderd, offroad - "DongleId": TxType.PERSISTENT, "AccessToken": TxType.PERSISTENT, - "Version": TxType.PERSISTENT, - "TrainingVersion": TxType.PERSISTENT, - "GitCommit": TxType.PERSISTENT, - "GitBranch": TxType.PERSISTENT, - "GitRemote": TxType.PERSISTENT, -# written: baseui -# read: ui, controls - "IsMetric": TxType.PERSISTENT, - "IsFcwEnabled": TxType.PERSISTENT, - "HasAcceptedTerms": TxType.PERSISTENT, - "CompletedTrainingVersion": TxType.PERSISTENT, - "IsUploadVideoOverCellularEnabled": TxType.PERSISTENT, - "IsDriverMonitoringEnabled": TxType.PERSISTENT, - "IsGeofenceEnabled": TxType.PERSISTENT, - "SpeedLimitOffset": TxType.PERSISTENT, -# written: visiond -# read: visiond, controlsd "CalibrationParams": TxType.PERSISTENT, - "ControlsParams": TxType.PERSISTENT, -# written: controlsd -# read: radard "CarParams": TxType.CLEAR_ON_CAR_START, - - "Passive": TxType.PERSISTENT, + "CompletedTrainingVersion": TxType.PERSISTENT, + "ControlsParams": TxType.PERSISTENT, "DoUninstall": TxType.CLEAR_ON_MANAGER_START, - "ShouldDoUpdate": TxType.CLEAR_ON_MANAGER_START, + "DongleId": TxType.PERSISTENT, + "GitBranch": TxType.PERSISTENT, + "GitCommit": TxType.PERSISTENT, + "GitRemote": TxType.PERSISTENT, + "HasAcceptedTerms": TxType.PERSISTENT, + "IsDriverMonitoringEnabled": TxType.PERSISTENT, + "IsFcwEnabled": TxType.PERSISTENT, + "IsGeofenceEnabled": TxType.PERSISTENT, + "IsMetric": TxType.PERSISTENT, "IsUpdateAvailable": TxType.PERSISTENT, - "LongitudinalControl": TxType.PERSISTENT, + "IsUploadVideoOverCellularEnabled": TxType.PERSISTENT, "LimitSetSpeed": TxType.PERSISTENT, - + "LiveParameters": TxType.PERSISTENT, + "LongitudinalControl": TxType.PERSISTENT, + "Passive": TxType.PERSISTENT, "RecordFront": TxType.PERSISTENT, + "ShouldDoUpdate": TxType.CLEAR_ON_MANAGER_START, + "SpeedLimitOffset": TxType.PERSISTENT, + "TrainingVersion": TxType.PERSISTENT, + "Version": TxType.PERSISTENT, } + def fsync_dir(path): fd = os.open(path, os.O_RDONLY) try: diff --git a/common/sympy_helpers.py b/common/sympy_helpers.py new file mode 100644 index 000000000..879eb71bb --- /dev/null +++ b/common/sympy_helpers.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python +import sympy as sp +import numpy as np + +def cross(x): + ret = sp.Matrix(np.zeros((3,3))) + ret[0,1], ret[0,2] = -x[2], x[1] + ret[1,0], ret[1,2] = x[2], -x[0] + ret[2,0], ret[2,1] = -x[1], x[0] + return ret + +def euler_rotate(roll, pitch, yaw): + # make symbolic rotation matrix from eulers + matrix_roll = sp.Matrix([[1, 0, 0], + [0, sp.cos(roll), -sp.sin(roll)], + [0, sp.sin(roll), sp.cos(roll)]]) + matrix_pitch = sp.Matrix([[sp.cos(pitch), 0, sp.sin(pitch)], + [0, 1, 0], + [-sp.sin(pitch), 0, sp.cos(pitch)]]) + matrix_yaw = sp.Matrix([[sp.cos(yaw), -sp.sin(yaw), 0], + [sp.sin(yaw), sp.cos(yaw), 0], + [0, 0, 1]]) + return matrix_yaw*matrix_pitch*matrix_roll + +def quat_rotate(q0, q1, q2, q3): + # make symbolic rotation matrix from quat + return sp.Matrix([[q0**2 + q1**2 - q2**2 - q3**2, 2*(q1*q2 + q0*q3), 2*(q1*q3 - q0*q2)], + [2*(q1*q2 - q0*q3), q0**2 - q1**2 + q2**2 - q3**2, 2*(q2*q3 + q0*q1)], + [2*(q1*q3 + q0*q2), 2*(q2*q3 - q0*q1), q0**2 - q1**2 - q2**2 + q3**2]]).T + +def quat_matrix_l(p): + return sp.Matrix([[p[0], -p[1], -p[2], -p[3]], + [p[1], p[0], -p[3], p[2]], + [p[2], p[3], p[0], -p[1]], + [p[3], -p[2], p[1], p[0]]]) + +def quat_matrix_r(p): + return sp.Matrix([[p[0], -p[1], -p[2], -p[3]], + [p[1], p[0], p[3], -p[2]], + [p[2], -p[3], p[0], p[1]], + [p[3], p[2], -p[1], p[0]]]) + + +def sympy_into_c(sympy_functions): + from sympy.utilities import codegen + routines = [] + for name, expr, args in sympy_functions: + r = codegen.make_routine(name, expr, language="C99") + + # argument ordering input to sympy is broken with function with output arguments + nargs = [] + # reorder the input arguments + for aa in args: + if aa is None: + nargs.append(codegen.InputArgument(sp.Symbol('unused'), dimensions=[1,1])) + continue + found = False + for a in r.arguments: + if str(aa.name) == str(a.name): + nargs.append(a) + found = True + break + if not found: + # [1,1] is a hack for Matrices + nargs.append(codegen.InputArgument(aa, dimensions=[1,1])) + # add the output arguments + for a in r.arguments: + if type(a) == codegen.OutputArgument: + nargs.append(a) + + #assert len(r.arguments) == len(args)+1 + r.arguments = nargs + + # add routine to list + routines.append(r) + + [(c_name, c_code), (h_name, c_header)] = codegen.get_code_generator('C', 'ekf', 'C99').write(routines, "ekf") + c_code = '\n'.join(filter(lambda x: len(x) > 0 and x[0] != '#', c_code.split("\n"))) + c_header = '\n'.join(filter(lambda x: len(x) > 0 and x[0] != '#', c_header.split("\n"))) + + return c_header, c_code diff --git a/common/transformations/camera.py b/common/transformations/camera.py index 348152d79..42432a7bb 100644 --- a/common/transformations/camera.py +++ b/common/transformations/camera.py @@ -112,6 +112,7 @@ def img_from_device(pt_device): return pt_img.reshape(input_shape)[:,:2] +#TODO please use generic img transform below def rotate_img(img, eulers, crop=None, intrinsics=eon_intrinsics): size = img.shape[:2] rot = orient.rot_from_euler(eulers) @@ -138,3 +139,36 @@ def rotate_img(img, eulers, crop=None, intrinsics=eon_intrinsics): img_warped = cv2.warpPerspective(img, M, size[::-1]) return img_warped[H_border: size[0] - H_border, W_border: size[1] - W_border] + + +def transform_img(base_img, + augment_trans=np.array([0,0,0]), + augment_eulers=np.array([0,0,0]), + from_intr=eon_intrinsics, + to_intr=eon_intrinsics, + calib_rot_view=None, + output_size=None): + cy = from_intr[1,2] + size = base_img.shape[:2] + if not output_size: + output_size = size[::-1] + h = 1.22 + quadrangle = np.array([[0, cy + 20], + [size[1]-1, cy + 20], + [0, size[0]-1], + [size[1]-1, size[0]-1]], dtype=np.float32) + quadrangle_norm = np.hstack((normalize(quadrangle, intrinsics=from_intr), np.ones((4,1)))) + quadrangle_world = np.column_stack((h*quadrangle_norm[:,0]/quadrangle_norm[:,1], + h*np.ones(4), + h/quadrangle_norm[:,1])) + rot = orient.rot_from_euler(augment_eulers) + if calib_rot_view is not None: + rot = calib_rot_view.dot(rot) + to_extrinsics = np.hstack((rot.T, -augment_trans[:,None])) + to_KE = to_intr.dot(to_extrinsics) + warped_quadrangle_full = np.einsum('jk,ik->ij', to_KE, np.hstack((quadrangle_world, np.ones((4,1))))) + warped_quadrangle = np.column_stack((warped_quadrangle_full[:,0]/warped_quadrangle_full[:,2], + warped_quadrangle_full[:,1]/warped_quadrangle_full[:,2])).astype(np.float32) + M = cv2.getPerspectiveTransform(quadrangle, warped_quadrangle.astype(np.float32)) + augmented_rgb = cv2.warpPerspective(base_img, M, output_size, borderMode=cv2.BORDER_REPLICATE) + return augmented_rgb diff --git a/common/transformations/model.py b/common/transformations/model.py index 424bd6158..2d41d9ceb 100644 --- a/common/transformations/model.py +++ b/common/transformations/model.py @@ -31,6 +31,18 @@ model_intrinsics = np.array( [ 0. , 0. , 1.]]) +# MED model +MEDMODEL_INPUT_SIZE = (640, 240) +MEDMODEL_YUV_SIZE = (MEDMODEL_INPUT_SIZE[0], MEDMODEL_INPUT_SIZE[1] * 3 // 2) +MEDMODEL_CY = 47.6 + +medmodel_zoom = 1. +medmodel_intrinsics = np.array( + [[ eon_focal_length / medmodel_zoom, 0. , 0.5 * MEDMODEL_INPUT_SIZE[0]], + [ 0. , eon_focal_length / medmodel_zoom, MEDMODEL_CY], + [ 0. , 0. , 1.]]) + + # BIG model BIGMODEL_INPUT_SIZE = (864, 288) @@ -57,6 +69,9 @@ model_frame_from_road_frame = np.dot(model_intrinsics, bigmodel_frame_from_road_frame = np.dot(bigmodel_intrinsics, get_view_frame_from_road_frame(0, 0, 0, model_height)) +medmodel_frame_from_road_frame = np.dot(medmodel_intrinsics, + get_view_frame_from_road_frame(0, 0, 0, model_height)) + model_frame_from_bigmodel_frame = np.dot(model_intrinsics, np.linalg.inv(bigmodel_intrinsics)) # 'camera from model camera' @@ -110,3 +125,17 @@ def get_camera_frame_from_bigmodel_frame(camera_frame_from_road_frame): camera_frame_from_bigmodel_frame = np.dot(camera_frame_from_ground, ground_from_bigmodel_frame) return camera_frame_from_bigmodel_frame + + +def get_model_frame(snu_full, camera_frame_from_model_frame, size): + idxs = camera_frame_from_model_frame.dot(np.column_stack([np.tile(np.arange(size[0]), size[1]), + np.tile(np.arange(size[1]), (size[0],1)).T.flatten(), + np.ones(size[0] * size[1])]).T).T.astype(int) + calib_flat = snu_full[idxs[:,1], idxs[:,0]] + if len(snu_full.shape) == 3: + calib = calib_flat.reshape((size[1], size[0], 3)) + elif len(snu_full.shape) == 2: + calib = calib_flat.reshape((size[1], size[0])) + else: + raise ValueError("shape of input img is weird") + return calib diff --git a/models/monitoring_model.dlc b/models/monitoring_model.dlc index de5bdbb1fc97ee51cecd82fdc858340a8fcbcc16..0b9f8060d93d92366e3b1a1b9d3a9aac2e04baed 100644 GIT binary patch literal 427951 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 z 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 z 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 z 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 <((R?P}6&jrf&>}VCTj3int$thVx#9 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 P_&h$Zn7fynJTd(*<6_Me diff --git a/requirements_openpilot.txt b/requirements_openpilot.txt index 8cadf936e..48b2ddb31 100644 --- a/requirements_openpilot.txt +++ b/requirements_openpilot.txt @@ -15,7 +15,7 @@ cffi==1.11.5 contextlib2==0.5.4 crc16==0.1.1 crcmod==1.7 -cryptography==2.1.4 +cryptography==1.4 cycler==0.10.0 decorator==4.0.10 docopt==0.6.2 @@ -24,6 +24,7 @@ evdev==0.6.1 fastcluster==1.1.20 filterpy==1.2.4 ipaddress==1.0.16 +json-rpc==1.12.1 libusb1==1.5.0 lmdb==0.92 mpmath==1.0.0 @@ -31,7 +32,7 @@ nose==1.3.7 numpy==1.11.1 pause==0.1.2 py==1.4.31 -pyOpenSSL==17.5.0 +pyOpenSSL==16.0.0 pyasn1-modules==0.0.8 pyasn1==0.1.9 pycapnp==0.6.3 @@ -64,3 +65,4 @@ sympy==1.1.1 tqdm==4.23.1 ujson==1.35 v4l2==0.2 +websocket_client==0.55.0 diff --git a/selfdrive/athena/__init__.py b/selfdrive/athena/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/selfdrive/athena/athenad.py b/selfdrive/athena/athenad.py new file mode 100755 index 000000000..f6f9ef231 --- /dev/null +++ b/selfdrive/athena/athenad.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python2.7 +import json +import os +import random +import time +import threading +import traceback +import zmq +import Queue +from jsonrpc import JSONRPCResponseManager, dispatcher +from websocket import create_connection, WebSocketTimeoutException + +import selfdrive.crash as crash +import selfdrive.messaging as messaging +from common.params import Params +from selfdrive.services import service_list +from selfdrive.swaglog import cloudlog +from selfdrive.version import version, dirty + +ATHENA_HOST = os.getenv('ATHENA_HOST', 'wss://athena.comma.ai') +HANDLER_THREADS = os.getenv('HANDLER_THREADS', 4) + +dispatcher["echo"] = lambda s: s +payload_queue = Queue.Queue() +response_queue = Queue.Queue() + +def handle_long_poll(ws): + end_event = threading.Event() + + threads = [ + threading.Thread(target=ws_recv, args=(ws, end_event)), + threading.Thread(target=ws_send, args=(ws, end_event)) + ] + [ + threading.Thread(target=jsonrpc_handler, args=(end_event,)) + for x in xrange(HANDLER_THREADS) + ] + + map(lambda thread: thread.start(), threads) + try: + while not end_event.is_set(): + time.sleep(0.1) + except (KeyboardInterrupt, SystemExit): + end_event.set() + raise + finally: + for i, thread in enumerate(threads): + thread.join() + +def jsonrpc_handler(end_event): + while not end_event.is_set(): + try: + data = payload_queue.get(timeout=1) + response = JSONRPCResponseManager.handle(data, dispatcher) + response_queue.put_nowait(response) + except Queue.Empty: + pass + except Exception as e: + cloudlog.exception("athena jsonrpc handler failed") + traceback.print_exc() + response_queue.put_nowait(json.dumps({"error": str(e)})) + +# security: user should be able to request any message from their car +# TODO: add service to, for example, start visiond and take a picture +@dispatcher.add_method +def getMessage(service=None, timeout=1000): + context = zmq.Context() + if service is None or service not in service_list: + raise Exception("invalid service") + socket = messaging.sub_sock(context, service_list[service].port) + socket.setsockopt(zmq.RCVTIMEO, timeout) + ret = messaging.recv_one(socket) + return ret.to_dict() + +def ws_recv(ws, end_event): + while not end_event.is_set(): + try: + data = ws.recv() + payload_queue.put_nowait(data) + except WebSocketTimeoutException: + pass + except Exception: + traceback.print_exc() + end_event.set() + +def ws_send(ws, end_event): + while not end_event.is_set(): + try: + response = response_queue.get(timeout=1) + ws.send(response.json) + except Queue.Empty: + pass + except Exception: + traceback.print_exc() + end_event.set() + +def backoff(retries): + return random.randrange(0, min(128, int(2 ** retries))) + +def main(gctx=None): + params = Params() + dongle_id = params.get("DongleId") + access_token = params.get("AccessToken") + ws_uri = ATHENA_HOST + "/ws/" + dongle_id + + crash.bind_user(id=dongle_id) + crash.bind_extra(version=version, dirty=dirty, is_eon=True) + crash.install() + + conn_retries = 0 + while 1: + try: + print("connecting to %s" % ws_uri) + ws = create_connection(ws_uri, + cookie="jwt=" + access_token, + enable_multithread=True) + ws.settimeout(1) + conn_retries = 0 + handle_long_poll(ws) + except (KeyboardInterrupt, SystemExit): + break + except Exception: + conn_retries += 1 + traceback.print_exc() + + time.sleep(backoff(conn_retries)) + +if __name__ == "__main__": + main() diff --git a/selfdrive/boardd/boardd.cc b/selfdrive/boardd/boardd.cc index 74b1f4c5d..dd89d4d6d 100644 --- a/selfdrive/boardd/boardd.cc +++ b/selfdrive/boardd/boardd.cc @@ -42,6 +42,7 @@ #define SAFETY_HYUNDAI 7 #define SAFETY_TESLA 8 #define SAFETY_CHRYSLER 9 +#define SAFETY_SUBARU 10 #define SAFETY_TOYOTA_IPAS 0x1335 #define SAFETY_TOYOTA_NOLIMITS 0x1336 #define SAFETY_ALLOUTPUT 0x1337 @@ -124,6 +125,9 @@ void *safety_setter_thread(void *s) { case (int)cereal::CarParams::SafetyModels::CHRYSLER: safety_setting = SAFETY_CHRYSLER; break; + case (int)cereal::CarParams::SafetyModels::SUBARU: + safety_setting = SAFETY_SUBARU; + break; default: LOGE("unknown safety model: %d", safety_model); } @@ -331,6 +335,11 @@ void can_send(void *s) { capnp::FlatArrayMessageReader cmsg(amsg); cereal::Event::Reader event = cmsg.getRoot(); + if (nanos_since_boot() - event.getLogMonoTime() > 1e9) { + //Older than 1 second. Dont send. + zmq_msg_close(&msg); + return; + } int msg_count = event.getCan().size(); uint32_t *send = (uint32_t*)malloc(msg_count*0x10); diff --git a/selfdrive/can/common.h b/selfdrive/can/common.h index f8d07ae68..4f0972284 100644 --- a/selfdrive/can/common.h +++ b/selfdrive/can/common.h @@ -10,6 +10,7 @@ unsigned int honda_checksum(unsigned int address, uint64_t d, int l); unsigned int toyota_checksum(unsigned int address, uint64_t d, int l); +unsigned int pedal_checksum(unsigned int address, uint64_t d, int l); struct SignalPackValue { const char* name; @@ -41,6 +42,8 @@ enum SignalType { HONDA_CHECKSUM, HONDA_COUNTER, TOYOTA_CHECKSUM, + PEDAL_CHECKSUM, + PEDAL_COUNTER, }; struct Signal { diff --git a/selfdrive/can/dbc_template.cc b/selfdrive/can/dbc_template.cc index 2d4fb9570..776403b22 100644 --- a/selfdrive/can/dbc_template.cc +++ b/selfdrive/can/dbc_template.cc @@ -27,6 +27,10 @@ const Signal sigs_{{address}}[] = { .type = SignalType::HONDA_COUNTER, {% elif checksum_type == "toyota" and sig.name == "CHECKSUM" %} .type = SignalType::TOYOTA_CHECKSUM, + {% elif address in [512, 513] and sig.name == "CHECKSUM_PEDAL" %} + .type = SignalType::PEDAL_CHECKSUM, + {% elif address in [512, 513] and sig.name == "COUNTER_PEDAL" %} + .type = SignalType::PEDAL_COUNTER, {% else %} .type = SignalType::DEFAULT, {% endif %} diff --git a/selfdrive/can/libdbc_py.py b/selfdrive/can/libdbc_py.py index 09f5e5121..cf712cf63 100644 --- a/selfdrive/can/libdbc_py.py +++ b/selfdrive/can/libdbc_py.py @@ -39,6 +39,8 @@ typedef enum { HONDA_CHECKSUM, HONDA_COUNTER, TOYOTA_CHECKSUM, + PEDAL_CHECKSUM, + PEDAL_COUNTER, } SignalType; typedef struct { diff --git a/selfdrive/can/parser.cc b/selfdrive/can/parser.cc index 7bb4ef26f..b6845b47d 100644 --- a/selfdrive/can/parser.cc +++ b/selfdrive/can/parser.cc @@ -51,6 +51,30 @@ unsigned int toyota_checksum(unsigned int address, uint64_t d, int l) { return s & 0xFF; } +unsigned int pedal_checksum(unsigned int address, uint64_t d, int l) { + uint8_t crc = 0xFF; + uint8_t poly = 0xD5; // standard crc8 + + d >>= ((8-l)*8); // remove padding + d >>= 8; // remove checksum + + uint8_t *dat = (uint8_t *)&d; + + int i, j; + for (i = 0; i < l - 1; i++) { + crc ^= dat[i]; + for (j = 0; j < 8; j++) { + if ((crc & 0x80) != 0) { + crc = (uint8_t)((crc << 1) ^ poly); + } + else { + crc <<= 1; + } + } + } + return crc; +} + namespace { uint64_t read_u64_be(const uint8_t* v) { @@ -113,16 +137,23 @@ struct MessageState { return false; } } else if (sig.type == SignalType::HONDA_COUNTER) { - if (!honda_update_counter(tmp)) { + if (!update_counter_generic(tmp, sig.b2)) { return false; } } else if (sig.type == SignalType::TOYOTA_CHECKSUM) { - // INFO("CHECKSUM %d %d %018llX - %lld vs %d\n", address, size, dat, tmp, toyota_checksum(address, dat, size)); - if (toyota_checksum(address, dat, size) != tmp) { INFO("%X CHECKSUM FAIL\n", address); return false; } + } else if (sig.type == SignalType::PEDAL_CHECKSUM) { + if (pedal_checksum(address, dat, size) != tmp) { + INFO("%X PEDAL CHECKSUM FAIL\n", address); + return false; + } + } else if (sig.type == SignalType::PEDAL_COUNTER) { + if (!update_counter_generic(tmp, sig.b2)) { + return false; + } } vals[i] = tmp * sig.factor + sig.offset; @@ -134,10 +165,10 @@ struct MessageState { } - bool honda_update_counter(int64_t v) { + bool update_counter_generic(int64_t v, int cnt_size) { uint8_t old_counter = counter; counter = v; - if (((old_counter+1) & 3) != v) { + if (((old_counter+1) & ((1 << cnt_size) -1)) != v) { counter_fail += 1; if (counter_fail > 1) { INFO("%X COUNTER FAIL %d -- %d vs %d\n", address, counter_fail, old_counter, (int)v); diff --git a/selfdrive/can/parser.py b/selfdrive/can/parser.py index 165673cea..8960953ed 100644 --- a/selfdrive/can/parser.py +++ b/selfdrive/can/parser.py @@ -4,8 +4,12 @@ import numbers from selfdrive.can.libdbc_py import libdbc, ffi + class CANParser(object): - def __init__(self, dbc_name, signals, checks=[], bus=0, sendcan=False, tcp_addr="127.0.0.1"): + def __init__(self, dbc_name, signals, checks=None, bus=0, sendcan=False, tcp_addr="127.0.0.1"): + if checks is None: + checks = [] + self.can_valid = True self.vl = defaultdict(dict) self.ts = defaultdict(dict) diff --git a/selfdrive/can/process_dbc.py b/selfdrive/can/process_dbc.py index 331e0a313..810947c8e 100755 --- a/selfdrive/can/process_dbc.py +++ b/selfdrive/can/process_dbc.py @@ -50,7 +50,11 @@ for address, msg_name, msg_size, sigs in msgs: sys.exit("COUNTER is not 2 bits longs %s" % msg_name) if sig.start_bit % 8 != 5: sys.exit("COUNTER starts at wrong bit %s" % msg_name) - + if address in [0x200, 0x201]: + if sig.name == "COUNTER_PEDAL" and sig.size != 4: + sys.exit("PEDAL COUNTER is not 4 bits longs %s" % msg_name) + if sig.name == "CHECKSUM_PEDAL" and sig.size != 8: + sys.exit("PEDAL CHECKSUM is not 8 bits longs %s" % msg_name) # Fail on duplicate message names c = Counter([msg_name for address, msg_name, msg_size, sigs in msgs]) diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index f5c30921a..255b20806 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.py @@ -45,3 +45,39 @@ def apply_toyota_steer_torque_limits(apply_torque, apply_torque_last, motor_torq min(apply_torque_last + LIMITS.STEER_DELTA_DOWN, LIMITS.STEER_DELTA_UP)) return int(round(apply_torque)) + + +def crc8_pedal(data): + crc = 0xFF # standard init value + poly = 0xD5 # standard crc8: x8+x7+x6+x4+x2+1 + size = len(data) + for i in range(size-1, -1, -1): + crc ^= data[i] + for j in range(8): + if ((crc & 0x80) != 0): + crc = ((crc << 1) ^ poly) & 0xFF + else: + crc <<= 1 + return crc + + +def create_gas_command(packer, gas_amount, idx): + # Common gas pedal msg generator + enable = gas_amount > 0.001 + + values = { + "ENABLE": enable, + "COUNTER_PEDAL": idx & 0xF, + } + + if enable: + values["GAS_COMMAND"] = gas_amount * 255. + values["GAS_COMMAND2"] = gas_amount * 255. + + dat = packer.make_can_msg("GAS_COMMAND", 0, values)[2] + + dat = [ord(i) for i in dat] + checksum = crc8_pedal(dat[:-1]) + values["CHECKSUM_PEDAL"] = checksum + + return packer.make_can_msg("GAS_COMMAND", 0, values) diff --git a/selfdrive/car/chrysler/carstate.py b/selfdrive/car/chrysler/carstate.py index 72f602d9a..a6344027d 100644 --- a/selfdrive/car/chrysler/carstate.py +++ b/selfdrive/car/chrysler/carstate.py @@ -111,17 +111,17 @@ class CarState(object): self.v_wheel_rr = cp.vl['WHEEL_SPEEDS']['WHEEL_SPEED_RR'] self.v_wheel_rl = cp.vl['WHEEL_SPEEDS']['WHEEL_SPEED_RL'] self.v_wheel_fr = cp.vl['WHEEL_SPEEDS']['WHEEL_SPEED_FR'] - self.v_wheel = (cp.vl['SPEED_1']['SPEED_LEFT'] + cp.vl['SPEED_1']['SPEED_RIGHT']) / 2. + v_wheel = (cp.vl['SPEED_1']['SPEED_LEFT'] + cp.vl['SPEED_1']['SPEED_RIGHT']) / 2. # Kalman filter - if abs(self.v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed - self.v_ego_x = np.matrix([[self.v_wheel], [0.0]]) + if abs(v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed + self.v_ego_kf.x = np.matrix([[v_wheel], [0.0]]) - self.v_ego_raw = self.v_wheel - v_ego_x = self.v_ego_kf.update(self.v_wheel) + self.v_ego_raw = v_wheel + v_ego_x = self.v_ego_kf.update(v_wheel) self.v_ego = float(v_ego_x[0]) self.a_ego = float(v_ego_x[1]) - self.standstill = not self.v_wheel > 0.001 + self.standstill = not v_wheel > 0.001 self.angle_steers = cp.vl["STEERING"]['STEER_ANGLE'] self.angle_steers_rate = cp.vl["STEERING"]['STEERING_RATE'] diff --git a/selfdrive/car/chrysler/chryslercan_test.py b/selfdrive/car/chrysler/chryslercan_test.py index 85a849661..2edfff9f2 100644 --- a/selfdrive/car/chrysler/chryslercan_test.py +++ b/selfdrive/car/chrysler/chryslercan_test.py @@ -1,6 +1,5 @@ import chryslercan from values import CAR -from carcontroller import CarController from selfdrive.can.packer import CANPacker from cereal import car diff --git a/selfdrive/car/chrysler/values.py b/selfdrive/car/chrysler/values.py index 703ba6a51..6e3a24b8f 100644 --- a/selfdrive/car/chrysler/values.py +++ b/selfdrive/car/chrysler/values.py @@ -34,7 +34,7 @@ FINGERPRINTS = { {168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 515: 7, 516: 7, 517: 7, 518: 7, 520: 8, 528: 8, 532: 8, 542: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 660: 8, 669: 3, 671: 8, 672: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770:8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1538: 8}, # Based on 0607d2516fc2148f|2019-02-13--23-03-16 { - 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8 + 168: 8, 257: 5, 258: 8, 264: 8, 268: 8, 270: 8, 274: 2, 280: 8, 284: 8, 288: 7, 290: 6, 291: 8, 292: 8, 294: 8, 300: 8, 308: 8, 320: 8, 324: 8, 331: 8, 332: 8, 344: 8, 368: 8, 376: 3, 384: 8, 388: 4, 448: 6, 456: 4, 464: 8, 469: 8, 480: 8, 500: 8, 501: 8, 512: 8, 514: 8, 520: 8, 528: 8, 532: 8, 544: 8, 557: 8, 559: 8, 560: 8, 564: 8, 571: 3, 579: 8, 584: 8, 608: 8, 624: 8, 625: 8, 632: 8, 639: 8, 653: 8, 654: 8, 655: 8, 658: 6, 660: 8, 669: 3, 671: 8, 672: 8, 678: 8, 680: 8, 701: 8, 703: 8, 704: 8, 705: 8, 706: 8, 709: 8, 710: 8, 719: 8, 720: 6, 729: 5, 736: 8, 737: 8, 746: 5, 752: 2, 754: 8, 760: 8, 764: 8, 766: 8, 770: 8, 773: 8, 779: 8, 782: 8, 784: 8, 792: 8, 799: 8, 800: 8, 804: 8, 816: 8, 817: 8, 820: 8, 825: 2, 826: 8, 832: 8, 838: 2, 848: 8, 853: 8, 856: 4, 860: 6, 863: 8, 878: 8, 882: 8, 897: 8, 906: 8, 908: 8, 924: 8, 926: 3, 929: 8, 937: 8, 938: 8, 939: 8, 940: 8, 941: 8, 942: 8, 943: 8, 947: 8, 948: 8, 958: 8, 959: 8, 962: 8, 969: 4, 973: 8, 974: 5, 979: 8, 980: 8, 981: 8, 982: 8, 983: 8, 984: 8, 992: 8, 993: 7, 995: 8, 996: 8, 1000: 8, 1001: 8, 1002: 8, 1003: 8, 1008: 8, 1009: 8, 1010: 8, 1011: 8, 1012: 8, 1013: 8, 1014: 8, 1015: 8, 1024: 8, 1025: 8, 1026: 8, 1031: 8, 1033: 8, 1050: 8, 1059: 8, 1082: 8, 1083: 8, 1098: 8, 1100: 8, 1537: 8 } ], CAR.JEEP_CHEROKEE: [ diff --git a/selfdrive/car/ford/carstate.py b/selfdrive/car/ford/carstate.py index c860cfdee..5a8f1f142 100644 --- a/selfdrive/car/ford/carstate.py +++ b/selfdrive/car/ford/carstate.py @@ -65,17 +65,17 @@ class CarState(object): self.v_wheel_fr = cp.vl["WheelSpeed_CG1"]['WhlRl_W_Meas'] * WHEEL_RADIUS self.v_wheel_rl = cp.vl["WheelSpeed_CG1"]['WhlFr_W_Meas'] * WHEEL_RADIUS self.v_wheel_rr = cp.vl["WheelSpeed_CG1"]['WhlFl_W_Meas'] * WHEEL_RADIUS - self.v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) + v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) # Kalman filter - if abs(self.v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed - self.v_ego_x = np.matrix([[self.v_wheel], [0.0]]) + if abs(v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed + self.v_ego_kf.x = np.matrix([[v_wheel], [0.0]]) - self.v_ego_raw = self.v_wheel - v_ego_x = self.v_ego_kf.update(self.v_wheel) + self.v_ego_raw = v_wheel + v_ego_x = self.v_ego_kf.update(v_wheel) self.v_ego = float(v_ego_x[0]) self.a_ego = float(v_ego_x[1]) - self.standstill = not self.v_wheel > 0.001 + self.standstill = not v_wheel > 0.001 self.angle_steers = cp.vl["Steering_Wheel_Data_CG1"]['SteWhlRelInit_An_Sns'] self.v_cruise_pcm = cp.vl["Cruise_Status"]['Set_Speed'] * CV.MPH_TO_MS diff --git a/selfdrive/car/gm/carstate.py b/selfdrive/car/gm/carstate.py index d5fa975de..ae97a38b9 100644 --- a/selfdrive/car/gm/carstate.py +++ b/selfdrive/car/gm/carstate.py @@ -79,10 +79,13 @@ class CarState(object): self.v_wheel_fr = pt_cp.vl["EBCMWheelSpdFront"]['FRWheelSpd'] * CV.KPH_TO_MS self.v_wheel_rl = pt_cp.vl["EBCMWheelSpdRear"]['RLWheelSpd'] * CV.KPH_TO_MS self.v_wheel_rr = pt_cp.vl["EBCMWheelSpdRear"]['RRWheelSpd'] * CV.KPH_TO_MS - speed_estimate = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) + v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) - self.v_ego_raw = speed_estimate - v_ego_x = self.v_ego_kf.update(speed_estimate) + if abs(v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed + self.v_ego_kf.x = [[v_wheel], [0.0]] + + self.v_ego_raw = v_wheel + v_ego_x = self.v_ego_kf.update(v_wheel) self.v_ego = float(v_ego_x[0]) self.a_ego = float(v_ego_x[1]) diff --git a/selfdrive/car/honda/carcontroller.py b/selfdrive/car/honda/carcontroller.py index f87f56e49..08c0235fd 100644 --- a/selfdrive/car/honda/carcontroller.py +++ b/selfdrive/car/honda/carcontroller.py @@ -3,6 +3,7 @@ from common.realtime import sec_since_boot from selfdrive.boardd.boardd import can_list_to_can_capnp from selfdrive.controls.lib.drive_helpers import rate_limit from common.numpy_fast import clip +from selfdrive.car import create_gas_command from selfdrive.car.honda import hondacan from selfdrive.car.honda.values import AH, CruiseButtons, CAR from selfdrive.can.packer import CANPacker @@ -170,7 +171,7 @@ class CarController(object): else: # Send gas and brake commands. if (frame % 2) == 0: - idx = (frame / 2) % 4 + idx = frame / 2 pump_on, self.last_pump_ts = brake_pump_hysteresys(apply_brake, self.apply_brake_last, self.last_pump_ts) can_sends.append(hondacan.create_brake_command(self.packer, apply_brake, pump_on, pcm_override, pcm_cancel_cmd, hud.chime, hud.fcw, idx)) @@ -179,6 +180,6 @@ class CarController(object): if CS.CP.enableGasInterceptor: # send exactly zero if apply_gas is zero. Interceptor will send the max between read value and apply_gas. # This prevents unexpected pedal range rescaling - can_sends.append(hondacan.create_gas_command(self.packer, apply_gas, idx)) + can_sends.append(create_gas_command(self.packer, apply_gas, idx)) sendcan.send(can_list_to_can_capnp(can_sends, msgtype='sendcan').to_bytes()) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 00aa358d8..f4c7cade8 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -215,15 +215,15 @@ class CarState(object): self.v_wheel_fr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_FR'] * CV.KPH_TO_MS * speed_factor self.v_wheel_rl = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RL'] * CV.KPH_TO_MS * speed_factor self.v_wheel_rr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RR'] * CV.KPH_TO_MS * speed_factor - self.v_wheel = (self.v_wheel_fl+self.v_wheel_fr+self.v_wheel_rl+self.v_wheel_rr)/4. + v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr)/4. # blend in transmission speed at low speed, since it has more low speed accuracy - self.v_weight = interp(self.v_wheel, v_weight_bp, v_weight_v) + self.v_weight = interp(v_wheel, v_weight_bp, v_weight_v) speed = (1. - self.v_weight) * cp.vl["ENGINE_DATA"]['XMISSION_SPEED'] * CV.KPH_TO_MS * speed_factor + \ - self.v_weight * self.v_wheel + self.v_weight * v_wheel if abs(speed - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed - self.v_ego_x = [[speed], [0.0]] + self.v_ego_kf.x = [[speed], [0.0]] self.v_ego_raw = speed v_ego_x = self.v_ego_kf.update(speed) diff --git a/selfdrive/car/honda/hondacan.py b/selfdrive/car/honda/hondacan.py index 3d92d24a7..435360d65 100644 --- a/selfdrive/car/honda/hondacan.py +++ b/selfdrive/car/honda/hondacan.py @@ -41,18 +41,6 @@ def create_brake_command(packer, apply_brake, pump_on, pcm_override, pcm_cancel_ return packer.make_can_msg("BRAKE_COMMAND", 0, values, idx) -def create_gas_command(packer, gas_amount, idx): - enable = gas_amount > 0.001 - - values = {"ENABLE": enable} - - if enable: - values["GAS_COMMAND"] = gas_amount * 255. - values["GAS_COMMAND2"] = gas_amount * 255. - - return packer.make_can_msg("GAS_COMMAND", 0, values, idx) - - def create_steering_control(packer, apply_steer, lkas_active, car_fingerprint, idx): values = { "STEER_TORQUE": apply_steer if lkas_active else 0, diff --git a/selfdrive/car/hyundai/carstate.py b/selfdrive/car/hyundai/carstate.py index 3b423ae04..bd3e63740 100644 --- a/selfdrive/car/hyundai/carstate.py +++ b/selfdrive/car/hyundai/carstate.py @@ -167,22 +167,22 @@ class CarState(object): self.v_wheel_fr = cp.vl["WHL_SPD11"]['WHL_SPD_FR'] * CV.KPH_TO_MS self.v_wheel_rl = cp.vl["WHL_SPD11"]['WHL_SPD_RL'] * CV.KPH_TO_MS self.v_wheel_rr = cp.vl["WHL_SPD11"]['WHL_SPD_RR'] * CV.KPH_TO_MS - self.v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr) / 4. + v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr) / 4. - self.low_speed_lockout = self.v_wheel < 1.0 + self.low_speed_lockout = v_wheel < 1.0 # Kalman filter, even though Hyundai raw wheel speed is heaviliy filtered by default - if abs(self.v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed - self.v_ego_x = np.matrix([[self.v_wheel], [0.0]]) + if abs(v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed + self.v_ego_kf.x = np.matrix([[v_wheel], [0.0]]) - self.v_ego_raw = self.v_wheel - v_ego_x = self.v_ego_kf.update(self.v_wheel) + self.v_ego_raw = v_wheel + v_ego_x = self.v_ego_kf.update(v_wheel) self.v_ego = float(v_ego_x[0]) self.a_ego = float(v_ego_x[1]) is_set_speed_in_mph = int(cp.vl["CLU11"]["CF_Clu_SPEED_UNIT"]) speed_conv = CV.MPH_TO_MS if is_set_speed_in_mph else CV.KPH_TO_MS self.cruise_set_speed = cp.vl["SCC11"]['VSetDis'] * speed_conv - self.standstill = not self.v_wheel > 0.1 + self.standstill = not v_wheel > 0.1 self.angle_steers = cp.vl["SAS11"]['SAS_Angle'] self.angle_steers_rate = cp.vl["SAS11"]['SAS_Speed'] diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index a854eebbc..d7fc2bd39 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -87,7 +87,6 @@ class CarInterface(object): ret.minSteerSpeed = 0. elif candidate == CAR.KIA_SORENTO: ret.steerKf = 0.00005 - ret.steerRateCost = 0.5 ret.mass = 1985 + std_cargo ret.wheelbase = 2.78 ret.steerRatio = 14.4 * 1.1 # 10% higher at the center seems reasonable @@ -96,7 +95,6 @@ class CarInterface(object): ret.minSteerSpeed = 0. elif candidate == CAR.ELANTRA: ret.steerKf = 0.00006 - ret.steerRateCost = 0.5 ret.mass = 1275 + std_cargo ret.wheelbase = 2.7 ret.steerRatio = 13.73 #Spec @@ -106,7 +104,6 @@ class CarInterface(object): ret.minSteerSpeed = 32 * CV.MPH_TO_MS elif candidate == CAR.GENESIS: ret.steerKf = 0.00005 - ret.steerRateCost = 0.5 ret.mass = 2060 + std_cargo ret.wheelbase = 3.01 ret.steerRatio = 16.5 @@ -123,7 +120,6 @@ class CarInterface(object): ret.steerKpV, ret.steerKiV = [[0.25], [0.05]] elif candidate == CAR.KIA_STINGER: ret.steerKf = 0.00005 - ret.steerRateCost = 0.5 ret.mass = 1825 + std_cargo ret.wheelbase = 2.78 ret.steerRatio = 14.4 * 1.15 # 15% higher at the center seems reasonable diff --git a/selfdrive/car/subaru/__init__.py b/selfdrive/car/subaru/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/selfdrive/car/subaru/__init__.py @@ -0,0 +1 @@ + diff --git a/selfdrive/car/subaru/carstate.py b/selfdrive/car/subaru/carstate.py new file mode 100644 index 000000000..e12f5f957 --- /dev/null +++ b/selfdrive/car/subaru/carstate.py @@ -0,0 +1,104 @@ +import numpy as np +from common.kalman.simple_kalman import KF1D +from selfdrive.config import Conversions as CV +from selfdrive.can.parser import CANParser +from selfdrive.car.subaru.values import DBC, STEER_THRESHOLD + +def get_powertrain_can_parser(CP): + # this function generates lists for signal, messages and initial values + signals = [ + # sig_name, sig_address, default + ("Steer_Torque_Sensor", "Steering_Torque", 0), + ("Steering_Angle", "Steering_Torque", 0), + ("Cruise_On", "CruiseControl", 0), + ("Cruise_Activated", "CruiseControl", 0), + ("Brake_Pedal", "Brake_Pedal", 0), + ("Throttle_Pedal", "Throttle", 0), + ("LEFT_BLINKER", "Dashlights", 0), + ("RIGHT_BLINKER", "Dashlights", 0), + ("SEATBELT_FL", "Dashlights", 0), + ("FL", "Wheel_Speeds", 0), + ("FR", "Wheel_Speeds", 0), + ("RL", "Wheel_Speeds", 0), + ("RR", "Wheel_Speeds", 0), + ("DOOR_OPEN_FR", "BodyInfo", 1), + ("DOOR_OPEN_FL", "BodyInfo", 1), + ("DOOR_OPEN_RR", "BodyInfo", 1), + ("DOOR_OPEN_RL", "BodyInfo", 1), + ] + + checks = [ + # sig_address, frequency + ("Dashlights", 10), + ("CruiseControl", 20), + ("Wheel_Speeds", 50), + ("Steering_Torque", 100), + ("BodyInfo", 10), + ] + + return CANParser(DBC[CP.carFingerprint]['pt'], signals, checks, 0) + +class CarState(object): + def __init__(self, CP): + # initialize can parser + self.CP = CP + + self.car_fingerprint = CP.carFingerprint + self.left_blinker_on = False + self.prev_left_blinker_on = False + self.right_blinker_on = False + self.prev_right_blinker_on = False + self.steer_torque_driver = 0 + self.steer_not_allowed = False + self.main_on = False + + # vEgo kalman filter + dt = 0.01 + self.v_ego_kf = KF1D(x0=np.matrix([[0.], [0.]]), + A=np.matrix([[1., dt], [0., 1.]]), + C=np.matrix([1., 0.]), + K=np.matrix([[0.12287673], [0.29666309]])) + self.v_ego = 0. + + def update(self, cp): + + self.can_valid = True + self.pedal_gas = cp.vl["Throttle"]['Throttle_Pedal'] + self.brake_pressure = cp.vl["Brake_Pedal"]['Brake_Pedal'] + self.user_gas_pressed = self.pedal_gas > 0 + self.brake_pressed = self.brake_pressure > 0 + self.brake_lights = bool(self.brake_pressed) + + self.v_wheel_fl = cp.vl["Wheel_Speeds"]['FL'] * CV.KPH_TO_MS + self.v_wheel_fr = cp.vl["Wheel_Speeds"]['FR'] * CV.KPH_TO_MS + self.v_wheel_rl = cp.vl["Wheel_Speeds"]['RL'] * CV.KPH_TO_MS + self.v_wheel_rr = cp.vl["Wheel_Speeds"]['RR'] * CV.KPH_TO_MS + + v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr) / 4. + # Kalman filter, even though Hyundai raw wheel speed is heaviliy filtered by default + if abs(v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed + self.v_ego_kf.x = np.matrix([[v_wheel], [0.0]]) + + self.v_ego_raw = v_wheel + v_ego_x = self.v_ego_kf.update(v_wheel) + + self.v_ego = float(v_ego_x[0]) + self.a_ego = float(v_ego_x[1]) + self.standstill = self.v_ego_raw < 0.01 + + self.prev_left_blinker_on = self.left_blinker_on + self.prev_right_blinker_on = self.right_blinker_on + self.left_blinker_on = cp.vl["Dashlights"]['LEFT_BLINKER'] == 1 + self.right_blinker_on = cp.vl["Dashlights"]['RIGHT_BLINKER'] == 1 + self.seatbelt_unlatched = cp.vl["Dashlights"]['SEATBELT_FL'] == 1 + self.steer_torque_driver = cp.vl["Steering_Torque"]['Steer_Torque_Sensor'] + self.acc_active = cp.vl["CruiseControl"]['Cruise_Activated'] + self.main_on = cp.vl["CruiseControl"]['Cruise_On'] + self.steer_override = abs(self.steer_torque_driver) > STEER_THRESHOLD[self.car_fingerprint] + self.angle_steers = cp.vl["Steering_Torque"]['Steering_Angle'] + self.door_open = any([cp.vl["BodyInfo"]['DOOR_OPEN_RR'], + cp.vl["BodyInfo"]['DOOR_OPEN_RL'], + cp.vl["BodyInfo"]['DOOR_OPEN_FR'], + cp.vl["BodyInfo"]['DOOR_OPEN_FL']]) + + diff --git a/selfdrive/car/subaru/interface.py b/selfdrive/car/subaru/interface.py new file mode 100644 index 000000000..93a1ac62b --- /dev/null +++ b/selfdrive/car/subaru/interface.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python +from cereal import car +from common.realtime import sec_since_boot +from selfdrive.config import Conversions as CV +from selfdrive.controls.lib.drive_helpers import create_event, EventTypes as ET +from selfdrive.controls.lib.vehicle_model import VehicleModel +from selfdrive.car.subaru.values import CAR +from selfdrive.car.subaru.carstate import CarState, get_powertrain_can_parser + +try: + from selfdrive.car.subaru.carcontroller import CarController +except ImportError: + CarController = None + + +class CarInterface(object): + def __init__(self, CP, sendcan=None): + self.CP = CP + + self.frame = 0 + self.can_invalid_count = 0 + self.acc_active_prev = 0 + + # *** init the major players *** + self.CS = CarState(CP) + self.VM = VehicleModel(CP) + self.pt_cp = get_powertrain_can_parser(CP) + + # sending if read only is False + if sendcan is not None: + self.sendcan = sendcan + self.CC = CarController(CP.carFingerprint) + + @staticmethod + def compute_gb(accel, speed): + return float(accel) / 4.0 + + @staticmethod + def calc_accel_override(a_ego, a_target, v_ego, v_target): + return 1.0 + + @staticmethod + def get_params(candidate, fingerprint): + ret = car.CarParams.new_message() + + ret.carName = "subaru" + ret.carFingerprint = candidate + ret.safetyModel = car.CarParams.SafetyModels.subaru + + ret.enableCruise = False + ret.steerLimitAlert = True + ret.enableCamera = True + + std_cargo = 136 + ret.steerRateCost = 0.7 + + if candidate in [CAR.IMPREZA]: + ret.mass = 1568 + std_cargo + ret.wheelbase = 2.67 + ret.centerToFront = ret.wheelbase * 0.5 + ret.steerRatio = 15 + tire_stiffness_factor = 1.0 + ret.steerActuatorDelay = 0.4 # end-to-end angle controller + ret.steerKf = 0.00005 + ret.steerKiBP, ret.steerKpBP = [[0., 20.], [0., 20.]] + ret.steerKpV, ret.steerKiV = [[0.2, 0.3], [0.02, 0.03]] + ret.steerMaxBP = [0.] # m/s + ret.steerMaxV = [1.] + + ret.steerControlType = car.CarParams.SteerControlType.torque + ret.steerRatioRear = 0. + # testing tuning + + # No long control in subaru + ret.gasMaxBP = [0.] + ret.gasMaxV = [0.] + ret.brakeMaxBP = [0.] + ret.brakeMaxV = [0.] + ret.longPidDeadzoneBP = [0.] + ret.longPidDeadzoneV = [0.] + ret.longitudinalKpBP = [0.] + ret.longitudinalKpV = [0.] + ret.longitudinalKiBP = [0.] + ret.longitudinalKiV = [0.] + + # end from gm + + # hardcoding honda civic 2016 touring params so they can be used to + # scale unknown params for other cars + mass_civic = 2923./2.205 + std_cargo + wheelbase_civic = 2.70 + centerToFront_civic = wheelbase_civic * 0.4 + centerToRear_civic = wheelbase_civic - centerToFront_civic + rotationalInertia_civic = 2500 + tireStiffnessFront_civic = 192150 + tireStiffnessRear_civic = 202500 + centerToRear = ret.wheelbase - ret.centerToFront + + # TODO: get actual value, for now starting with reasonable value for + # civic and scaling by mass and wheelbase + ret.rotationalInertia = rotationalInertia_civic * \ + ret.mass * ret.wheelbase**2 / (mass_civic * wheelbase_civic**2) + + # TODO: start from empirically derived lateral slip stiffness for the civic and scale by + # mass and CG position, so all cars will have approximately similar dyn behaviors + ret.tireStiffnessFront = (tireStiffnessFront_civic * tire_stiffness_factor) * \ + ret.mass / mass_civic * \ + (centerToRear / ret.wheelbase) / (centerToRear_civic / wheelbase_civic) + ret.tireStiffnessRear = (tireStiffnessRear_civic * tire_stiffness_factor) * \ + ret.mass / mass_civic * \ + (ret.centerToFront / ret.wheelbase) / (centerToFront_civic / wheelbase_civic) + + return ret + + # returns a car.CarState + def update(self, c): + + self.pt_cp.update(int(sec_since_boot() * 1e9), False) + self.CS.update(self.pt_cp) + + # create message + ret = car.CarState.new_message() + + # speeds + ret.vEgo = self.CS.v_ego + ret.aEgo = self.CS.a_ego + ret.vEgoRaw = self.CS.v_ego_raw + ret.yawRate = self.VM.yaw_rate(self.CS.angle_steers * CV.DEG_TO_RAD, self.CS.v_ego) + ret.standstill = self.CS.standstill + ret.wheelSpeeds.fl = self.CS.v_wheel_fl + ret.wheelSpeeds.fr = self.CS.v_wheel_fr + ret.wheelSpeeds.rl = self.CS.v_wheel_rl + ret.wheelSpeeds.rr = self.CS.v_wheel_rr + + # steering wheel + ret.steeringAngle = self.CS.angle_steers + + # torque and user override. Driver awareness + # timer resets when the user uses the steering wheel. + ret.steeringPressed = self.CS.steer_override + ret.steeringTorque = self.CS.steer_torque_driver + + # cruise state + ret.cruiseState.available = bool(self.CS.main_on) + ret.leftBlinker = self.CS.left_blinker_on + ret.rightBlinker = self.CS.right_blinker_on + ret.seatbeltUnlatched = self.CS.seatbelt_unlatched + + buttonEvents = [] + + # blinkers + if self.CS.left_blinker_on != self.CS.prev_left_blinker_on: + be = car.CarState.ButtonEvent.new_message() + be.type = 'leftBlinker' + be.pressed = self.CS.left_blinker_on + buttonEvents.append(be) + + if self.CS.right_blinker_on != self.CS.prev_right_blinker_on: + be = car.CarState.ButtonEvent.new_message() + be.type = 'rightBlinker' + be.pressed = self.CS.right_blinker_on + buttonEvents.append(be) + + be = car.CarState.ButtonEvent.new_message() + be.type = 'accelCruise' + buttonEvents.append(be) + + + events = [] + if not self.CS.can_valid: + self.can_invalid_count += 1 + if self.can_invalid_count >= 5: + events.append(create_event('commIssue', [ET.NO_ENTRY, ET.IMMEDIATE_DISABLE])) + else: + self.can_invalid_count = 0 + + if ret.seatbeltUnlatched: + events.append(create_event('seatbeltNotLatched', [ET.NO_ENTRY, ET.SOFT_DISABLE])) + + if self.CS.acc_active and not self.acc_active_prev: + events.append(create_event('pcmEnable', [ET.ENABLE])) + if not self.CS.acc_active: + events.append(create_event('pcmDisable', [ET.USER_DISABLE])) + + ## handle button presses + #for b in ret.buttonEvents: + # # do enable on both accel and decel buttons + # if b.type in ["accelCruise", "decelCruise"] and not b.pressed: + # events.append(create_event('buttonEnable', [ET.ENABLE])) + # # do disable on button down + # if b.type == "cancel" and b.pressed: + # events.append(create_event('buttonCancel', [ET.USER_DISABLE])) + + ret.events = events + + # update previous brake/gas pressed + self.acc_active_prev = self.CS.acc_active + + + # cast to reader so it can't be modified + return ret.as_reader() + + def apply(self, c): + self.CC.update(self.sendcan, c.enabled, self.CS, self.frame, c.actuators) + self.frame += 1 diff --git a/selfdrive/car/subaru/radar_interface.py b/selfdrive/car/subaru/radar_interface.py new file mode 100644 index 000000000..96159fd87 --- /dev/null +++ b/selfdrive/car/subaru/radar_interface.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +from cereal import car +import time + + +class RadarInterface(object): + def __init__(self, CP): + # radar + self.pts = {} + self.delay = 0.1 + + def update(self): + + ret = car.RadarState.new_message() + time.sleep(0.05) # radard runs on RI updates + + return ret + +if __name__ == "__main__": + RI = RadarInterface(None) + while 1: + ret = RI.update() + print(chr(27) + "[2J") + print ret diff --git a/selfdrive/car/subaru/values.py b/selfdrive/car/subaru/values.py new file mode 100644 index 000000000..18b892956 --- /dev/null +++ b/selfdrive/car/subaru/values.py @@ -0,0 +1,18 @@ +from selfdrive.car import dbc_dict + +class CAR: + IMPREZA = "SUBARU IMPREZA LIMITED 2019" + +FINGERPRINTS = { + CAR.IMPREZA: [{ + 2: 8, 64: 8, 65: 8, 72: 8, 73: 8, 280: 8, 281: 8, 290: 8, 312: 8, 313: 8, 314: 8, 315: 8, 316: 8, 326: 8, 544: 8, 545: 8, 546: 8, 552: 8, 554: 8, 557: 8, 576: 8, 577: 8, 722: 8, 801: 8, 802: 8, 805: 8, 808: 8, 816: 8, 826: 8, 837: 8, 838: 8, 839: 8, 842: 8, 912: 8, 915: 8, 940: 8, 1614: 8, 1617: 8, 1632: 8, 1650: 8, 1657: 8, 1658: 8, 1677: 8, 1697: 8, 1722: 8, 1743: 8, 1759: 8, 1786: 5, 1787: 5, 1788: 8, 1809: 8, 1813: 8, 1817: 8, 1821: 8, 1840: 8, 1848: 8, 1924: 8, 1932: 8, 1952: 8, 1960: 8 + }], +} + +STEER_THRESHOLD = { + CAR.IMPREZA: 80, +} + +DBC = { + CAR.IMPREZA: dbc_dict('subaru_global_2017', None), +} diff --git a/selfdrive/car/toyota/carcontroller.py b/selfdrive/car/toyota/carcontroller.py index 8c1ed1192..cdd1bde51 100644 --- a/selfdrive/car/toyota/carcontroller.py +++ b/selfdrive/car/toyota/carcontroller.py @@ -2,10 +2,11 @@ from cereal import car from common.numpy_fast import clip, interp from selfdrive.boardd.boardd import can_list_to_can_capnp from selfdrive.car import apply_toyota_steer_torque_limits +from selfdrive.car import create_gas_command from selfdrive.car.toyota.toyotacan import make_can_msg, create_video_target,\ create_steer_command, create_ui_command, \ create_ipas_steer_command, create_accel_command, \ - create_fcw_command, create_gas_command + create_fcw_command from selfdrive.car.toyota.values import ECU, STATIC_MSGS from selfdrive.can.packer import CANPacker @@ -222,10 +223,10 @@ class CarController(object): else: can_sends.append(create_accel_command(self.packer, 0, pcm_cancel_cmd, False, lead)) - if CS.CP.enableGasInterceptor: + if (frame % 2 == 0) and (CS.CP.enableGasInterceptor): # send exactly zero if apply_gas is zero. Interceptor will send the max between read value and apply_gas. # This prevents unexpected pedal range rescaling - can_sends.append(create_gas_command(self.packer, apply_gas)) + can_sends.append(create_gas_command(self.packer, apply_gas, frame/2)) if frame % 10 == 0 and ECU.CAM in self.fake_ecus and not forwarding_camera: for addr in TARGET_IDS: diff --git a/selfdrive/car/toyota/carstate.py b/selfdrive/car/toyota/carstate.py index bb3b3f052..02debc47b 100644 --- a/selfdrive/car/toyota/carstate.py +++ b/selfdrive/car/toyota/carstate.py @@ -62,7 +62,7 @@ def get_can_parser(CP): if CP.carFingerprint == CAR.PRIUS: signals += [("STATE", "AUTOPARK_STATUS", 0)] - + # add gas interceptor reading if we are using it if CP.enableGasInterceptor: signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR", 0)) @@ -129,17 +129,17 @@ class CarState(object): self.v_wheel_fr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_FR'] * CV.KPH_TO_MS self.v_wheel_rl = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RL'] * CV.KPH_TO_MS self.v_wheel_rr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RR'] * CV.KPH_TO_MS - self.v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) + v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) # Kalman filter - if abs(self.v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed - self.v_ego_x = np.matrix([[self.v_wheel], [0.0]]) + if abs(v_wheel - self.v_ego) > 2.0: # Prevent large accelerations when car starts at non zero speed + self.v_ego_kf.x = np.matrix([[v_wheel], [0.0]]) - self.v_ego_raw = self.v_wheel - v_ego_x = self.v_ego_kf.update(self.v_wheel) + self.v_ego_raw = v_wheel + v_ego_x = self.v_ego_kf.update(v_wheel) self.v_ego = float(v_ego_x[0]) self.a_ego = float(v_ego_x[1]) - self.standstill = not self.v_wheel > 0.001 + self.standstill = not v_wheel > 0.001 self.angle_steers = cp.vl["STEER_ANGLE_SENSOR"]['STEER_ANGLE'] + cp.vl["STEER_ANGLE_SENSOR"]['STEER_FRACTION'] self.angle_steers_rate = cp.vl["STEER_ANGLE_SENSOR"]['STEER_RATE'] diff --git a/selfdrive/car/toyota/toyotacan.py b/selfdrive/car/toyota/toyotacan.py index ae257940a..720c0ef60 100644 --- a/selfdrive/car/toyota/toyotacan.py +++ b/selfdrive/car/toyota/toyotacan.py @@ -78,18 +78,6 @@ def create_accel_command(packer, accel, pcm_cancel, standstill_req, lead): } return packer.make_can_msg("ACC_CONTROL", 0, values) -def create_gas_command(packer, gas_amount): - """Creates a CAN message for the Pedal DBC GAS_COMMAND.""" - enable = gas_amount > 0.001 - - values = {"ENABLE": enable} - - if enable: - values["GAS_COMMAND"] = gas_amount * 255. - values["GAS_COMMAND2"] = gas_amount * 255. - - return packer.make_can_msg("GAS_COMMAND", 0, values) - def create_fcw_command(packer, fcw): values = { diff --git a/selfdrive/car/toyota/values.py b/selfdrive/car/toyota/values.py index ec127c941..2f3f44448 100644 --- a/selfdrive/car/toyota/values.py +++ b/selfdrive/car/toyota/values.py @@ -89,23 +89,12 @@ FINGERPRINTS = { 36: 8, 37: 8, 170: 8, 180: 8, 186: 4, 355: 5, 426: 6, 452: 8, 464: 8, 466: 8, 467: 8, 547: 8, 548: 8, 552: 4, 562: 4, 608: 8, 610: 5, 643: 7, 705: 8, 725: 2, 740: 5, 742: 8, 743: 8, 800: 8, 830: 7, 835: 8, 836: 8, 849: 4, 869: 7, 870: 7, 871: 2, 896: 8, 897: 8, 900: 6, 902: 6, 905: 8, 911: 8, 916: 3, 921: 8, 922: 8, 933: 8, 944: 8, 945: 8, 951: 8, 955: 8, 956: 8, 979: 2, 998: 5, 999: 7, 1000: 8, 1001: 8, 1008: 2, 1017: 8, 1041: 8, 1042: 8, 1043: 8, 1044: 8, 1056: 8, 1059: 1, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1176: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1181: 8, 1190: 8, 1191: 8, 1192: 8, 1196: 8, 1207: 8, 1227: 8, 1235: 8, 1263: 8, 1279: 8, 1552: 8, 1553: 8, 1554: 8, 1555: 8, 1556: 8, 1557: 8, 1561: 8, 1562: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1584: 8, 1589: 8, 1592: 8, 1593: 8, 1595: 8, 1596: 8, 1597: 8, 1600: 8, 1664: 8, 1728: 8, 1745: 8, 1779: 8 }], CAR.PRIUS: [{ - 36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 512: 6, 513: 6, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 8, 614: 8, 643: 7, 658: 8, 713: 8, 740: 5, 742: 8, 743: 8, 800: 8, 810: 2, 814: 8, 829: 2, 830: 7, 835: 8, 836: 8, 863: 8, 869: 7, 870: 7, 871: 2, 898: 8, 900: 6, 902: 6, 905: 8, 918: 8, 921: 8, 933: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 975: 5, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1057: 8, 1059: 1, 1071: 8, 1077: 8, 1082: 8, 1083: 8, 1084: 8, 1085: 8, 1086: 8, 1114: 8, 1132: 8, 1161: 8, 1162: 8, 1163: 8, 1175: 8, 1227: 8, 1228: 8, 1235: 8, 1237: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1595: 8, 1777: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 - }, - # Prius Prime - { - 36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 512: 6, 513: 6, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 8, 614: 8, 643: 7, 658: 8, 713: 8, 740: 5, 742: 8, 743: 8, 800: 8, 810: 2, 814: 8, 824: 2, 829: 2, 830: 7, 835: 8, 836: 8, 863: 8, 869: 7, 870: 7, 871: 2,898: 8, 900: 6, 902: 6, 905: 8, 913: 8, 918: 8, 921: 8, 933: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 974: 8, 975: 5, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1057: 8, 1059: 1, 1071: 8, 1076: 8, 1077: 8, 1082: 8, 1083: 8, 1084: 8, 1085: 8, 1086: 8, 1114: 8, 1132: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1175: 8, 1227: 8, 1228: 8, 1235: 8, 1237: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1595: 8, 1777: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 - }, - # Taiwanese Prius Prime - { + # with ipas 36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 512: 6, 513: 6, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 8, 614: 8, 643: 7, 658: 8, 713: 8, 740: 5, 742: 8, 743: 8, 800: 8, 810: 2, 814: 8, 824: 2, 829: 2, 830: 7, 835: 8, 836: 8, 845: 5, 863: 8, 869: 7, 870: 7, 871: 2,898: 8, 900: 6, 902: 6, 905: 8, 913: 8, 918: 8, 921: 8, 933: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 974: 8, 975: 5, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1005: 2, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1057: 8, 1059: 1, 1071: 8, 1076: 8, 1077: 8, 1082: 8, 1083: 8, 1084: 8, 1085: 8, 1086: 8, 1114: 8, 1132: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1175: 8, 1227: 8, 1228: 8, 1235: 8, 1237: 8, 1264: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1595: 8, 1777: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 }], #Corolla w/ added Pedal Support (512L and 513L) CAR.COROLLA: [{ - 36: 8, 37: 8, 170: 8, 180: 8, 186: 4, 426: 6, 452: 8, 464: 8, 466: 8, 467: 8, 512: 6, 513: 6, 547: 8, 548: 8, 552: 4, 608: 8, 610: 5, 643: 7, 705: 8, 740: 5, 800: 8, 835: 8, 836: 8, 849: 4, 869: 7, 870: 7, 871: 2, 896: 8, 897: 8, 900: 6, 902: 6, 905: 8, 911: 8, 916: 2, 921: 8, 933: 8, 944: 8, 945: 8, 951: 8, 955: 4, 956: 8, 979: 2, 992: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1017: 8, 1041: 8, 1042: 8, 1043: 8, 1044: 8, 1056: 8, 1059: 1, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1196: 8, 1227: 8, 1235: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1561: 8, 1562: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1584: 8, 1589: 8, 1592: 8, 1596: 8, 1597: 8, 1600: 8, 1664: 8, 1728: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 - }, - # Corolla LE 2017 w/ added Pedal Support (512L and 513L) - { - 36: 8, 37: 8, 170: 8, 180: 8, 186: 4, 426: 6, 452: 8, 464: 8, 466: 8, 467: 8, 512: 6, 513: 6, 547: 8, 548: 8, 552: 4, 608: 8, 610: 5, 643: 7, 705: 8, 740: 5, 800: 8, 835: 8, 836: 8, 849: 4, 869: 7, 870: 7, 871: 2, 896: 8, 897: 8, 900: 6, 902: 6, 905: 8, 911: 8, 916: 2, 921: 8, 933: 8, 944: 8, 945: 8, 951: 8, 955: 4, 956: 8, 979: 2, 998: 5, 999: 7, 1000: 8, 1001: 8, 1017: 8, 1041: 8, 1042: 8, 1043: 8, 1044: 8, 1056: 8, 1059: 1, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1196: 8, 1227: 8, 1235: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1561: 8, 1562: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1592: 8, 1596: 8, 1597: 8, 1600: 8, 1664: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8, 2016: 8, 2017: 8, 2018: 8, 2019: 8, 2020: 8, 2021: 8, 2022: 8, 2023: 8, 2024: 8 + 36: 8, 37: 8, 170: 8, 180: 8, 186: 4, 426: 6, 452: 8, 464: 8, 466: 8, 467: 8, 512: 6, 513: 6, 547: 8, 548: 8, 552: 4, 608: 8, 610: 5, 643: 7, 705: 8, 740: 5, 800: 8, 835: 8, 836: 8, 849: 4, 869: 7, 870: 7, 871: 2, 896: 8, 897: 8, 900: 6, 902: 6, 905: 8, 911: 8, 916: 2, 921: 8, 933: 8, 944: 8, 945: 8, 951: 8, 955: 4, 956: 8, 979: 2, 992: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1017: 8, 1041: 8, 1042: 8, 1043: 8, 1044: 8, 1056: 8, 1059: 1, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1196: 8, 1227: 8, 1235: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1561: 8, 1562: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1584: 8, 1589: 8, 1592: 8, 1596: 8, 1597: 8, 1600: 8, 1664: 8, 1728: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8, 2016: 8, 2017: 8, 2018: 8, 2019: 8, 2020: 8, 2021: 8, 2022: 8, 2023: 8, 2024: 8 }], CAR.LEXUS_RXH: [{ 36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 5, 643: 7, 658: 8, 713: 8, 740: 5, 742: 8, 743: 8, 800: 8, 810: 2, 812: 3, 814: 8, 830: 7, 835: 8, 836: 8, 845: 5, 863: 8, 869: 7, 870: 7, 871: 2, 898: 8, 900: 6, 902: 6, 905: 8, 913: 8, 918: 8, 921: 8, 933: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 975: 6, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1005: 2, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1059: 1, 1063: 8, 1071: 8, 1077: 8, 1082: 8, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1227: 8, 1228: 8, 1235: 8, 1237: 8, 1264: 8, 1279: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1575: 8, 1595: 8, 1777: 8, 1779: 8, 1808: 8, 1810: 8, 1816: 8, 1818: 8, 1840: 8, 1848: 8, 1904: 8, 1912: 8, 1940: 8, 1941: 8, 1948: 8, 1949: 8, 1952: 8, 1956: 8, 1960: 8, 1964: 8, 1986: 8, 1990: 8, 1994: 8, 1998: 8, 2004: 8, 2012: 8 @@ -133,6 +122,10 @@ FINGERPRINTS = { #LE and LE with Blindspot Monitor { 36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 8, 643: 7, 713: 8, 728: 8, 740: 5, 761: 8, 764: 8, 800: 8, 810: 2, 812: 8, 818: 8, 824: 8, 829: 2, 830: 7, 835: 8, 836: 8, 869: 7, 870: 7, 871: 2, 889: 8, 898: 8, 900: 6, 902: 6, 905: 8, 921: 8, 933: 8, 934: 8, 935: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 975: 5, 983: 8, 984: 8, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1002: 8, 1011: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1057: 8, 1059: 1, 1071: 8, 1076: 8, 1077: 8, 1084: 8, 1085: 8, 1086: 8, 1114: 8, 1132: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1235: 8, 1237: 8, 1264: 8, 1279: 8, 1541: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1595: 8, 1745: 8, 1779: 8, 1786: 8, 1787: 8, 1788: 8, 1789: 8, 1808: 8, 1810: 8, 1816: 8, 1818: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 + }, + #SL + { + 36: 8, 37: 8, 166: 8, 170: 8, 180: 8, 295: 8, 296: 8, 426: 6, 452: 8, 466: 8, 467: 8, 550: 8, 552: 4, 560: 7, 562: 6, 581: 5, 608: 8, 610: 8, 643: 7, 713: 8, 728: 8, 740: 5, 761: 8, 764: 8, 800: 8, 810: 2, 812: 8, 818: 8, 824: 8, 829: 2, 830: 7, 835: 8, 836: 8, 869: 7, 870: 7, 871: 2, 888: 8, 889: 8, 898: 8, 900: 6, 902: 6, 905: 8, 913: 8, 918: 8, 921: 8, 933: 8, 934: 8, 935: 8, 944: 8, 945: 8, 950: 8, 951: 8, 953: 8, 955: 8, 956: 8, 971: 7, 975: 5, 993: 8, 998: 5, 999: 7, 1000: 8, 1001: 8, 1002: 8, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1044: 8, 1056: 8, 1057: 8, 1059: 1, 1071: 8, 1076: 8, 1077: 8, 1084: 8, 1085: 8, 1086: 8, 1114: 8, 1132: 8, 1161: 8, 1162: 8, 1163: 8, 1164: 8, 1165: 8, 1166: 8, 1167: 8, 1228: 8, 1235: 8, 1237: 8, 1264: 8, 1279: 8, 1541: 8, 1552: 8, 1553: 8, 1556: 8, 1557: 8, 1568: 8, 1570: 8, 1571: 8, 1572: 8, 1595: 8, 1745: 8, 1779: 8, 1786: 8, 1787: 8, 1788: 8, 1789: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 }], CAR.HIGHLANDER: [{ 36: 8, 37: 8, 114: 5, 119: 6, 120: 4, 170: 8, 180: 8, 186: 4, 238: 4, 355: 5, 426: 6, 452: 8, 464: 8, 466: 8, 467: 8, 544: 4, 545: 5, 550: 8, 552: 4, 608: 8, 610: 5, 643: 7, 705: 8, 725: 2, 740: 5, 800: 8, 835: 8, 836: 8, 849: 4, 869: 7, 870: 7, 871: 2, 896: 8, 900: 6, 902: 6, 905: 8, 911: 8, 916: 3, 921: 8, 922: 8, 933: 8, 944: 8, 945: 8, 951: 8, 955: 8, 956: 8, 979: 2, 998: 5, 999: 7, 1000: 8, 1001: 8, 1008: 2, 1014: 8, 1017: 8, 1020: 8, 1041: 8, 1042: 8, 1043: 8, 1044: 8, 1056: 8, 1059: 1, 1114: 8, 1161: 8, 1162: 8, 1163: 8, 1176: 8, 1177: 8, 1178: 8, 1179: 8, 1180: 8, 1181: 8, 1182: 8, 1183: 8, 1189: 8, 1190: 8, 1191: 8, 1192: 8, 1196: 8, 1197: 8, 1198: 8, 1199: 8, 1206: 8, 1207: 8, 1212: 8, 1227: 8, 1235: 8, 1237: 8, 1279: 8, 1408: 8, 1409: 8, 1410: 8, 1552: 8, 1553: 8, 1554: 8, 1556: 8, 1557: 8, 1561: 8, 1562: 8, 1568: 8, 1569: 8, 1570: 8, 1571: 8, 1572: 8, 1584: 8, 1589: 8, 1592: 8, 1593: 8, 1595: 8, 1599: 8, 1656: 8, 1666: 8, 1667: 8, 1728: 8, 1745: 8, 1779: 8, 1904: 8, 1912: 8, 1990: 8, 1998: 8 diff --git a/selfdrive/common/version.h b/selfdrive/common/version.h index b1deb2116..b1cb55d12 100644 --- a/selfdrive/common/version.h +++ b/selfdrive/common/version.h @@ -1 +1 @@ -#define COMMA_VERSION "0.5.9-release" +#define COMMA_VERSION "0.5.10-release" diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index 7a17556ec..b5d699bda 100755 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -11,7 +11,7 @@ import selfdrive.messaging as messaging from selfdrive.config import Conversions as CV from selfdrive.services import service_list from selfdrive.car.car_helpers import get_car -from selfdrive.controls.lib.drive_helpers import learn_angle_offset, \ +from selfdrive.controls.lib.drive_helpers import learn_angle_model_bias, \ get_events, \ create_event, \ EventTypes as ET, \ @@ -202,7 +202,7 @@ def state_transition(CS, CP, state, events, soft_disable_timer, v_cruise_kph, AM def state_control(plan, path_plan, CS, CP, state, events, v_cruise_kph, v_cruise_kph_last, AM, rk, - driver_status, LaC, LoC, VM, angle_offset, passive, is_metric, cal_perc): + driver_status, LaC, LoC, VM, angle_model_bias, passive, is_metric, cal_perc): """Given the state, this function returns an actuators packet""" actuators = car.CarControl.Actuators.new_message() @@ -241,7 +241,7 @@ def state_control(plan, path_plan, CS, CP, state, events, v_cruise_kph, v_cruise # Run angle offset learner at 20 Hz if rk.frame % 5 == 2: - angle_offset = learn_angle_offset(active, CS.vEgo, angle_offset, + angle_model_bias = learn_angle_model_bias(active, CS.vEgo, angle_model_bias, path_plan.cPoly, path_plan.cProb, CS.steeringAngle, CS.steeringPressed) @@ -277,12 +277,12 @@ def state_control(plan, path_plan, CS, CP, state, events, v_cruise_kph, v_cruise AM.process_alerts(sec_since_boot()) - return actuators, v_cruise_kph, driver_status, angle_offset, v_acc_sol, a_acc_sol + return actuators, v_cruise_kph, driver_status, angle_model_bias, v_acc_sol, a_acc_sol def data_send(plan, path_plan, CS, CI, CP, VM, state, events, actuators, v_cruise_kph, rk, carstate, carcontrol, live100, AM, driver_status, - LaC, LoC, angle_offset, passive, start_time, params, v_acc, a_acc): + LaC, LoC, angle_model_bias, passive, start_time, params, v_acc, a_acc): """Send actuators and hud commands to the car, send live100 and MPC logging""" plan_ts = plan.logMonoTime plan = plan.plan @@ -353,7 +353,7 @@ def data_send(plan, path_plan, CS, CI, CP, VM, state, events, actuators, v_cruis "vTargetLead": float(v_acc), "aTarget": float(a_acc), "jerkFactor": float(plan.jerkFactor), - "angleOffset": float(angle_offset), + "angleModelBias": float(angle_model_bias), "gpsPlannerActive": plan.gpsPlannerActive, "vCurvature": plan.vCurvature, "decelForTurn": plan.decelForTurn, @@ -378,7 +378,7 @@ def data_send(plan, path_plan, CS, CI, CP, VM, state, events, actuators, v_cruis carcontrol.send(cc_send.to_bytes()) if (rk.frame % 36000) == 0: # update angle offset every 6 minutes - params.put("ControlsParams", json.dumps({'angle_offset': angle_offset})) + params.put("ControlsParams", json.dumps({'angle_model_bias': angle_model_bias})) return CC @@ -461,12 +461,15 @@ def controlsd_thread(gctx=None, rate=100): rk = Ratekeeper(rate, print_delay_threshold=2. / 1000) controls_params = params.get("ControlsParams") + # Read angle offset from previous drive + angle_model_bias = 0. if controls_params is not None: - controls_params = json.loads(controls_params) - angle_offset = controls_params['angle_offset'] - else: - angle_offset = 0. + try: + controls_params = json.loads(controls_params) + angle_model_bias = controls_params['angle_model_bias'] + except (ValueError, KeyError): + pass prof = Profiler(False) # off by default @@ -485,6 +488,8 @@ def controlsd_thread(gctx=None, rate=100): plan_age = (start_time - plan.logMonoTime) / 1e9 if not path_plan.pathPlan.valid or plan_age > 0.5 or path_plan_age > 0.5: events.append(create_event('plannerError', [ET.NO_ENTRY, ET.SOFT_DISABLE])) + if not path_plan.pathPlan.paramsValid: + events.append(create_event('vehicleModelInvalid', [ET.WARNING])) events += list(plan.plan.events) # Only allow engagement with brake pressed when stopped behind another stopped car @@ -498,16 +503,16 @@ def controlsd_thread(gctx=None, rate=100): prof.checkpoint("State transition") # Compute actuators (runs PID loops and lateral MPC) - actuators, v_cruise_kph, driver_status, angle_offset, v_acc, a_acc = \ + actuators, v_cruise_kph, driver_status, angle_model_bias, v_acc, a_acc = \ state_control(plan.plan, path_plan.pathPlan, CS, CP, state, events, v_cruise_kph, v_cruise_kph_last, AM, rk, driver_status, - LaC, LoC, VM, angle_offset, passive, is_metric, cal_perc) + LaC, LoC, VM, angle_model_bias, passive, is_metric, cal_perc) prof.checkpoint("State Control") # Publish data CC = data_send(plan, path_plan, CS, CI, CP, VM, state, events, actuators, v_cruise_kph, rk, carstate, carcontrol, - live100, AM, driver_status, LaC, LoC, angle_offset, passive, start_time, params, v_acc, a_acc) + live100, AM, driver_status, LaC, LoC, angle_model_bias, passive, start_time, params, v_acc, a_acc) prof.checkpoint("Sent") rk.keep_time() # Run at 100Hz diff --git a/selfdrive/controls/lib/alerts.py b/selfdrive/controls/lib/alerts.py index cc9b19d5d..17caf7fbf 100644 --- a/selfdrive/controls/lib/alerts.py +++ b/selfdrive/controls/lib/alerts.py @@ -624,4 +624,11 @@ ALERTS = [ "Set 0111 for openpilot. 1011 for stock", AlertStatus.normal, AlertSize.mid, Priority.LOW_LOWEST, VisualAlert.none, AudibleAlert.none, 0., 0., .2), + + Alert( + "vehicleModelInvalid", + "Vehicle Parameter Identification Failed", + "", + AlertStatus.normal, AlertSize.small, + Priority.LOWEST, VisualAlert.steerRequired, AudibleAlert.none, .0, .0, .1), ] diff --git a/selfdrive/controls/lib/drive_helpers.py b/selfdrive/controls/lib/drive_helpers.py index 9d78c9667..15d5a202f 100644 --- a/selfdrive/controls/lib/drive_helpers.py +++ b/selfdrive/controls/lib/drive_helpers.py @@ -55,7 +55,7 @@ def rate_limit(new_value, last_value, dw_step, up_step): return clip(new_value, last_value + dw_step, last_value + up_step) -def learn_angle_offset(lateral_control, v_ego, angle_offset, c_poly, c_prob, angle_steers, steer_override): +def learn_angle_model_bias(lateral_control, v_ego, angle_model_bias, c_poly, c_prob, angle_steers, steer_override): # simple integral controller that learns how much steering offset to put to have the car going straight # while being in the middle of the lane min_offset = -5. # deg @@ -69,10 +69,10 @@ def learn_angle_offset(lateral_control, v_ego, angle_offset, c_poly, c_prob, ang # only learn if lateral control is active and if driver is not overriding: if lateral_control and not steer_override: - angle_offset += c_poly[3] * alpha_v - angle_offset = clip(angle_offset, min_offset, max_offset) + angle_model_bias += c_poly[3] * alpha_v + angle_model_bias = clip(angle_model_bias, min_offset, max_offset) - return angle_offset + return angle_model_bias def update_v_cruise(v_cruise_kph, buttonEvents, enabled): diff --git a/selfdrive/controls/lib/fcw.py b/selfdrive/controls/lib/fcw.py new file mode 100644 index 000000000..f93a72cfc --- /dev/null +++ b/selfdrive/controls/lib/fcw.py @@ -0,0 +1,71 @@ +import numpy as np +from collections import defaultdict + +from common.numpy_fast import interp + +_FCW_A_ACT_V = [-3., -2.] +_FCW_A_ACT_BP = [0., 30.] + + +class FCWChecker(object): + def __init__(self): + self.reset_lead(0.0) + + def reset_lead(self, cur_time): + self.last_fcw_a = 0.0 + self.v_lead_max = 0.0 + self.lead_seen_t = cur_time + self.last_fcw_time = 0.0 + self.last_min_a = 0.0 + + self.counters = defaultdict(lambda: 0) + + @staticmethod + def calc_ttc(v_ego, a_ego, x_lead, v_lead, a_lead): + max_ttc = 5.0 + + v_rel = v_ego - v_lead + a_rel = a_ego - a_lead + + # assuming that closing gap ARel comes from lead vehicle decel, + # then limit ARel so that v_lead will get to zero in no sooner than t_decel. + # This helps underweighting ARel when v_lead is close to zero. + t_decel = 2. + a_rel = np.minimum(a_rel, v_lead / t_decel) + + # delta of the quadratic equation to solve for ttc + delta = v_rel**2 + 2 * x_lead * a_rel + + # assign an arbitrary high ttc value if there is no solution to ttc + if delta < 0.1 or (np.sqrt(delta) + v_rel < 0.1): + ttc = max_ttc + else: + ttc = np.minimum(2 * x_lead / (np.sqrt(delta) + v_rel), max_ttc) + return ttc + + def update(self, mpc_solution, cur_time, v_ego, a_ego, x_lead, v_lead, a_lead, y_lead, vlat_lead, fcw_lead, blinkers): + mpc_solution_a = list(mpc_solution[0].a_ego) + self.last_min_a = min(mpc_solution_a) + self.v_lead_max = max(self.v_lead_max, v_lead) + + if (fcw_lead > 0.99): + ttc = self.calc_ttc(v_ego, a_ego, x_lead, v_lead, a_lead) + self.counters['v_ego'] = self.counters['v_ego'] + 1 if v_ego > 5.0 else 0 + self.counters['ttc'] = self.counters['ttc'] + 1 if ttc < 2.5 else 0 + self.counters['v_lead_max'] = self.counters['v_lead_max'] + 1 if self.v_lead_max > 2.5 else 0 + self.counters['v_ego_lead'] = self.counters['v_ego_lead'] + 1 if v_ego > v_lead else 0 + self.counters['lead_seen'] = self.counters['lead_seen'] + 0.33 + self.counters['y_lead'] = self.counters['y_lead'] + 1 if abs(y_lead) < 1.0 else 0 + self.counters['vlat_lead'] = self.counters['vlat_lead'] + 1 if abs(vlat_lead) < 0.4 else 0 + self.counters['blinkers'] = self.counters['blinkers'] + 10.0 / (20 * 3.0) if not blinkers else 0 + + a_thr = interp(v_lead, _FCW_A_ACT_BP, _FCW_A_ACT_V) + a_delta = min(mpc_solution_a[:15]) - min(0.0, a_ego) + + fcw_allowed = all(c >= 10 for c in self.counters.values()) + if (self.last_min_a < -3.0 or a_delta < a_thr) and fcw_allowed and self.last_fcw_time + 5.0 < cur_time: + self.last_fcw_time = cur_time + self.last_fcw_a = self.last_min_a + return True + + return False diff --git a/selfdrive/controls/lib/latcontrol.py b/selfdrive/controls/lib/latcontrol.py index cc06fd40d..694943870 100644 --- a/selfdrive/controls/lib/latcontrol.py +++ b/selfdrive/controls/lib/latcontrol.py @@ -37,6 +37,8 @@ class LatControl(object): self.pid.neg_limit = -steers_max steer_feedforward = self.angle_steers_des # feedforward desired angle if CP.steerControlType == car.CarParams.SteerControlType.torque: + # TODO: feedforward something based on path_plan.rateSteers + steer_feedforward -= path_plan.angleOffset # subtract the offset, since it does not contribute to resistive torque steer_feedforward *= v_ego**2 # proportional to realigning tire momentum (~ lateral accel) deadzone = 0.0 output_steer = self.pid.update(self.angle_steers_des, angle_steers, check_saturation=(v_ego > 10), override=steer_override, diff --git a/selfdrive/controls/lib/lateral_mpc/lateral_mpc.c b/selfdrive/controls/lib/lateral_mpc/lateral_mpc.c index f4cee7f2d..e5adf02cf 100644 --- a/selfdrive/controls/lib/lateral_mpc/lateral_mpc.c +++ b/selfdrive/controls/lib/lateral_mpc/lateral_mpc.c @@ -26,6 +26,7 @@ typedef struct { double y[N+1]; double psi[N+1]; double delta[N+1]; + double rate[N+1]; double cost; } log_t; @@ -103,7 +104,7 @@ int run_mpc(state_t * x0, log_t * solution, acado_preparationStep(); acado_feedbackStep(); - + /* printf("lat its: %d\n", acado_getNWSR()); // n iterations printf("Objective: %.6f\n", acado_getObjective()); // solution cost */ @@ -112,6 +113,7 @@ int run_mpc(state_t * x0, log_t * solution, solution->y[i] = acadoVariables.x[i*NX+1]; solution->psi[i] = acadoVariables.x[i*NX+2]; solution->delta[i] = acadoVariables.x[i*NX+3]; + solution->rate[i] = acadoVariables.u[i]; } solution->cost = acado_getObjective(); diff --git a/selfdrive/controls/lib/lateral_mpc/lateral_mpc.o b/selfdrive/controls/lib/lateral_mpc/lateral_mpc.o index 029fda217c011135ebfd64ce91940fce5fab5107..fdd82d242cbaff90e4c4f07bf32e16c2b45f51f2 100644 GIT binary patch delta 483 zcmXxgKP&@L90%~mGI7BB${9=Q$vJDVV zX@0S-foLacIgQ`XQhQ+$pfQ66{%9;^`vj+^KEJgSF=k9%BBq|nR|_CldPXCH7fjvC z(O}Z{j0%2g>VI8>310o%%|(nkx2x5-T}kjWHssz78Ym(XmweAYM`Zdyk)LLhFhO2JSX3_GVse<34tx2JUjO`*dr}>?! zzeu4z^<}-Z7+~2fRkO>R$x3(=M2vv5OrlOKfm6YG0?v{eb#jL>i|K%zT*I}&yTGKX{IzF_Ym@GrIp9#kc^H`3jtvN$G>;CTr#RA2&q^_-ze>o ct#@BPR(jbGU6HL-Hb@SwA{!z{)*I{m0m+D(p#T5? delta 398 zcmXwzzfZzI6vyA)wa^1)P(vajXdRSI7N=HlG6HcRNQ^PD)}*h zq{KnO;^2SaAED_+aM8&Q{y4zC;eGGD?A3(Us~Tc; z6<89{-oBW-B-tteOw_~6d zhHC3bq_AAd%o87{jK7h1t|j6+QR-L`>Z~F9a7fgsmvcGsq-W)B6P^R@@uR?gePhW0Vu=gpx=>>8(2r^ il&6(d{6P4bvV@L!Tgl*e!atQ|6ys@{K{NcA&i?`0QFPk? diff --git a/selfdrive/controls/lib/lateral_mpc/libmpc.so b/selfdrive/controls/lib/lateral_mpc/libmpc.so index a0c0dc815d3b1037e977be2e25a748257597d69d..3fd13255020c981bcbc8e1be60d98e7b80b5bdef 100755 GIT binary patch delta 11081 zcmZ{q3s_Xu+Q;{rVb~ywpx|&51ib4()IRl7!0}36QW!Py4tRmgOw!8IV!S1(DdQ$r znH3r-qDQguIG&>gC@L98@e-MJ5+l>pCm}sGQ_}waYxY`#`}x|>!+ziOd*8j*yVhQp z4KH<{cB=cdQ+|4@$xc~f*JP)C;TwU+k7%VwQX!;UyOBj2ZI+I~Eo%&=;aa8aL(g(d=lqR>Ub9C={laTka6bFJ=~hFvz9A;VXfuXa-H>eC1ad< zOjo-WVS~;(hI60F$0MJ`c_$suQz}>_+?t}Z)+&wT%(-{C)uyxhZPj9UN5=G&wlm*{v7=Xp9# zIWN@liyBvwp9&1U#(ipZKL1s6o-&V#Ezly7PCp+1RL(;^1sYenO$-dJ=02r5pIRk#qB+;d~jabKYIYmvL^<@%t=zJpI(MBmx$ER>!sN+S-uoQD>8MoHxthGu` zirLrru2!d{M5mf_Lq31J7s=cjuj8+A{-ll@KGbSU{|mlc$0@HTU*oMLv85hS`lgyg zk8pFj?y-6$1HsmFYlF_}w_OXu=j`L1`CraE>3AmRgLHf)=P5eARpZKUsez%Na37n_ z=bRF4HIKQ&t))6^&-b(lt8{z{=XE;1T3KZ^ho0fqfG-~JSFLi$YR>iAq19>8S>rfQ z)A8w?FVXQAIM37ZJ)9Tnc)7-vc@LDm-7%EFW@|0 z$3N4!^3|lk(2LwBUFUOGA(PExO&@5HNFL z3x?wET+j#in+sxb_sbfB`?$qjlto!qXk}R|a37MrhUwYn&_sKM!Dcmeuvxt&Dd=RA zO4k~tnzfchKCptFjq7-KR|Q+@F8#P0i2#=VIF&~7w$Ko^8~(_b!FUQ7H(Nq52a!8)6j-w_fVER z&$KhouNkM+cPhwcZHM50{KHdU>DmVxXPs&dUZ>;hLbUd;w&Y4$!Ol48)2Hy zznXoN_BqLDcScSY_gU9b^T})B^9}QH#J&(^2u-qIH%9dv#XEcJcOKmFBxT03i=;`3 zd-1;KK0rx(X^vOTT1is2EDv_nycA2c(r+&p2wdY)9CKgE(`=4=uTCOl2;CP=qLq0o z<4g(mf1F5E=t?$bU#-L_I*hNiB_zSo{`Ea=NP==~_!a_PsDdQXNS<(Az1>*7rw{X^z_WonB;?vUyiA+y;Ks2X0v(oihOq*t;L--pyde zwfAR|K+8IjVC7*+96WmMJIfyW^OIl?}D$cEHhwvTo4WH}o%wLA*li?U}X)?*xs_L@BX6>h{ z=GyO@t71*8d(~#`4PK+;H&)uLUBS=lc$YV9)=uD+I&NBJvxb3xrsJn_U$a?*U^uEX z%+Ix1{lP!c@f)bf2YkPduUliY8o+n!`8u2R;h(CxP{&WbZnORh9=u&=xUt%1ZJ>>b zBvvW^@&=iv?5_QGVS;@p8;q?sYY4W7kQR@y@$Rxg+fLfG;L*fp{rFAo{j_euJ@03u z_I|uuaOQ6UR{|U%4zDW{3>jLR^Ecb9^U$w(*PCAqi{%FRZ1CASZpyb=)4yzI z+}g|?j;k*a({ss9*K-^_zdh+ucjh>L`A=^)S);C%;ePGf8r{+^R-z=#jLV6 z5Gknino36+r3Oqn$B^qk6U_CV^@rJ9zxKmo1J=!in}vAr-c2kvCF<5m-0N>m!hPUR zTW~+~)62LIz0Fqg)Z5Hw{q1YGXWco$YP#EtExo533V^UUw>E}B32$Wk$XAVVcqiV! z9EN`Eml?R5@3U1k={~Es{(gT(9&AM|B@YV8$OL;dqBh;LStHQ-1y?;$*RX}c_#ecj`;?Z?_ zkdUQ*s2MeU?66tumFWB3{Ib6Cv{{NaDONM~D|*I2mSPEC_d#S%oArIP)U(;k!{>uj z@XpQL`K*x`jAWK`u{WWJ$LZ}u)-bujm!u#f`b}$sO_Z*0L*_u-Y(sjH1ZR7H(i2WJ zsV(6f8Foo(4)7R91dy!;-&c~GEZ7h-GU#{hh@&Hl9VA=3IkJ?q&m>L8803$^j|7+K z40@nFaiM}eLF6XHmS7Sajh>*#H*VRiMOaWQkT2WHiEqttKIq*b1eiI5i0yk{n_l4-O<2$_jTmxd6$S-L006ZfSM@(JtI z8)2eT!E}5$X$Oxv;be1*9{n0l9OM;R5<&U|^N#5{^m7Dhz;o9+l6r`fk)B9zMiOk# zRF3kLdPR{1Ea1gtI=vf3qM`eDBJc3vKOV0IfBw8mJ8MgVog>rPL69+xMn;oO+POPX zJ9DWTO>pSap)u%7B7HW7j3(FV>{t>)&&H56l0;);$zXEb36$=KVp$xy3Xko5h>avU z!{f>GM#zo*5hCQiC&+072I_@@LZri>E?) z7#V?Q#|>lkI+qS32Ask4rQxKEOrZltz&OqM>IiZMM=l*ch7`f~UKRCfcJ>BMP>N%EYf^Iy?A zxxL)e$$WIubC!0&SxW2XkRVz*i~Nlpp*`l)?`M&l>OK4t5@AV$uFu zrcy696Ho^`MA_jw6TCsk=dZO{p9a6J zcBc0;$-urzoRCMN{P4{{bC#3#H2p>FP($g`7fByq%{Z#HO^GV&;k^7J_FSA$DeVt7AC#lX)Hjyp9Bz67pZ3I6C{21}$g&&i1_%`ptNMdx>ANF3o($u#+ z(e{LMVPAP}YTy)06Mhw{v9@|CQtG}Sa`iOlcdO;eCgM%|=gF}UQ}g7heFN>kPCZ$? ze!!pR2NOTri@z$@Naf!4rWIsw(+J7FYQUegK$02?eoS_^hiz$$xAR(_{2u8NXn!#A zL~#(FYg$pJJ!g^aO-9My7SDL64GHzZ^}ZA&x~TVmd>R(6S$C+5Wv zdwPj2(c>56V^8;Hej5`qr*psWg`dHmet`RB`q*jSTXH*pKVFB?p8km~k?wd)4xN)J zpqD-U2!G&vRNRhLyg4Crfe1kOne6HR5&`(y(>pM~EeV+mMF7Ij+n)Xz8fkb-j`VNM z8%D=YfCX%pJGRXf5RIJ%jAw9{fT;N_V9I7WA~)}QPVvih`Z-(TPsWITzCW#SEcEx; zxY6LdanY(dt{$r-`*AOi&(~4nx*^903|EF0?F-THeTp#D9&2m#v?$I)rT4}(yLAgu4 z3mH-2QhOUE$p$$dvKn#`$l zOH=?^b;YIbfL!*qORa)jbk(IkfGn=VbNH*r%pYCqlaR$XUFs6ZdAD3@0i@+F8id@@ z2!F`lzqr&8_II1#;4kOG;SZO(4B)Q6TV*Mm9cH&$19>abtxEV)Qcbj59RxY3yIakM zOz-Vh^C4&Ub*n6!P&&}9K7c$r#H|MSqT*3*bv$Iy1h<+8d3*-^7@y@+9UNUu}y_m`yQXWeQVWWyI| z2(t2=TipaX^1NFuhI|LI60*3)-9h~UO7$hT8q^j;TZ^7SrqPVua#+lN!-;3YMufMH zk~%|WKX;G2)RmAv`w$_$P%O8nrMqPxVxj-sEe|!^`jo~M%VFMw;L`guIsv+G8uYZ! zT&fSvVeTn=WH0ZLnD-9}^=I~XU}y9GIPF_3o4t>sc(j6^E0#OZ(mkkp9{uMYIm%Fc zf?nMtcWv_!OW`nleEz`T(&$pzOqZ}Ku~4O>Ct356hKDCv(~+b*eXdvzCjs=$V(gcj z&d>uI{Wppvn>H59QIR!R3d>QSWJqb6oKEzPjmVU5Ljx*GCpy&3<1HAJ?u{^w+{b}$0vX7xEiVoN>cQsVS z(%Jjvey#Gch&o}_O6m0H5;?MK2-G^1568JxA5<=8HDbJxF9FSwk6SU%h+|6KHN^c*K zyAmH7cu?*|X41rim>>IJr?U^@UB%Pa4$85nA}rG#&C`RHAC$dF1UesoxT(I40Ev0>+9A1H$MQpNwTdk;V<8cP z-WkO@Y&DB$1zZeuN9gTC^5BjkSn$i4Ym2uNgkm}tz%n}Q6WNSTPy0j;A6-z6XklsT z$>L-CQZ;P*bv9OHJ*|QLIJOb|vc~5|crZ6ft?_uJTPy->@qp*jHWcYmmR)c@l#oZIFk?n~u5xN;W|3zXW}FtD>vviK^P@z&FyjSyE|F*#9Ao6UM50}AHXQ8A zqtTTt7@kYlpd?{~^<1?y73N2&c3~D%UZmOu59EqSwF{0v(t9qEY8RYM2zH57yH=7U zd}Mkqo@%EzE9K@~yKw5jmH*JdQ;1O{+l84eM|O#1yH=8! zirl&|Kfx6}{~yjp&RzHq;EKq(3qFu5BIhnRJEhpgbM7>`N^VZNYbHq=%oUMz7kmg; zMABXG1g;d(omE)TBI_>9NnEL=7hn#2ly>LXLU(>Hn`4LZqR6|8r-yR|d3WV}tKcyr z&o1mExuWNzI2U<#;Xj%yN2ndmKFYHT^OIburxh?iO0)~}SgwdfyWr!vA`_pOap50-5lhkVKwq@Qb{XnWV0b<3%yz+k0!Th^aXtISJKoApweNw@PZr{_T=Hm z+u7);(NB793myBl+|_rxr;JX~>v%d;?|#H%_LtVu9v4yhL3-h$984Eql*0_Y_s|U& z(QX4{XfU7NzKAc$h&?pyl04cFpHDL{$uEUg|3v_WwDFQ`4s-GUdk`Ico5#24LmG1# zAEfy-^)ec+rmHT?=DtDyc)T|j&o`UDG*ic|oEOp0FUwnqjaJmk!A5_nj^=!c!7u%b zMqP9#%m%dmuP@PdIvY{*wpux4Y@M!w3!aZce`%iXHOBFVTkE(8bkGr+Su4*bLhhP|{U6GSRWEiUmkQ)u6>@m|hd zk;jG>{)JCD^D&b;I_7IR8N&WG0>H=shUV>jyxx5N7V>E$%mz!5v(;6305Oa#qQk$D zw~+?t*WbuDlSm$|2=nRFN~|DE#oxnx2DB0@2kwKzeFpf76?2Qe67Dn5x6+}tR!RTK PiejZ4ce=xUZW{g%c>7?@ delta 10897 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 v_lead): + v_lead = 0.0 + a_lead = 0.0 + + self.a_lead_tau = lead.aLeadTau + self.new_lead = False + if not self.prev_lead_status or abs(x_lead - self.prev_lead_x) > 2.5: + self.libmpc.init_with_simulation(self.v_mpc, x_lead, v_lead, a_lead, self.a_lead_tau) + self.new_lead = True + + self.prev_lead_status = True + self.prev_lead_x = x_lead + self.cur_state[0].x_l = x_lead + self.cur_state[0].v_l = v_lead + else: + self.prev_lead_status = False + # Fake a fast lead car, so mpc keeps running + self.cur_state[0].x_l = 50.0 + self.cur_state[0].v_l = v_ego + 10.0 + a_lead = 0.0 + self.a_lead_tau = _LEAD_ACCEL_TAU + + # Calculate mpc + t = sec_since_boot() + n_its = self.libmpc.run_mpc(self.cur_state, self.mpc_solution, self.a_lead_tau, a_lead) + duration = int((sec_since_boot() - t) * 1e9) + self.send_mpc_solution(n_its, duration) + + # Get solution. MPC timestep is 0.2 s, so interpolation to 0.05 s is needed + self.v_mpc = self.mpc_solution[0].v_ego[1] + self.a_mpc = self.mpc_solution[0].a_ego[1] + self.v_mpc_future = self.mpc_solution[0].v_ego[10] + + # Reset if NaN or goes through lead car + dls = np.array(list(self.mpc_solution[0].x_l)) - np.array(list(self.mpc_solution[0].x_ego)) + crashing = min(dls) < -50.0 + nans = np.any(np.isnan(list(self.mpc_solution[0].v_ego))) + backwards = min(list(self.mpc_solution[0].v_ego)) < -0.01 + + if ((backwards or crashing) and self.prev_lead_status) or nans: + if t > self.last_cloudlog_t + 5.0: + self.last_cloudlog_t = t + cloudlog.warning("Longitudinal mpc %d reset - backwards: %s crashing: %s nan: %s" % ( + self.mpc_id, backwards, crashing, nans)) + + self.libmpc.init(MPC_COST_LONG.TTC, MPC_COST_LONG.DISTANCE, + MPC_COST_LONG.ACCELERATION, MPC_COST_LONG.JERK) + self.cur_state[0].v_ego = v_ego + self.cur_state[0].a_ego = 0.0 + self.v_mpc = v_ego + self.a_mpc = CS.carState.aEgo + self.prev_lead_status = False diff --git a/selfdrive/controls/lib/longitudinal_mpc/generator.cpp b/selfdrive/controls/lib/longitudinal_mpc/generator.cpp index f5c95394d..1f0e28d00 100644 --- a/selfdrive/controls/lib/longitudinal_mpc/generator.cpp +++ b/selfdrive/controls/lib/longitudinal_mpc/generator.cpp @@ -18,30 +18,21 @@ int main( ) DifferentialEquation f; DifferentialState x_ego, v_ego, a_ego; - DifferentialState x_l, v_l, t; - - OnlineData lambda, a_l_0; + OnlineData x_l, v_l; Control j_ego; auto desired = 4.0 + RW(v_ego, v_l); auto d_l = x_l - x_ego; - // Directly calculate a_l to prevent instabilites due to discretization - auto a_l = a_l_0 * exp(-lambda * t * t / 2); - // Equations of motion f << dot(x_ego) == v_ego; f << dot(v_ego) == a_ego; f << dot(a_ego) == j_ego; - f << dot(x_l) == v_l; - f << dot(v_l) == a_l; - f << dot(t) == 1; - // Running cost Function h; - h << exp(0.3 * NORM_RW_ERROR(v_ego, v_l, d_l)) - exp(0.3 * NORM_RW_ERROR(v_ego, v_l, desired)); + h << exp(0.3 * NORM_RW_ERROR(v_ego, v_l, d_l)); h << (d_l - desired) / (0.05 * v_ego + 0.5); h << a_ego * (0.1 * v_ego + 1.0); h << j_ego * (0.1 * v_ego + 1.0); @@ -51,7 +42,7 @@ int main( ) // Terminal cost Function hN; - hN << exp(0.3 * NORM_RW_ERROR(v_ego, v_l, d_l)) - exp(0.3 * NORM_RW_ERROR(v_ego, v_l, desired)); + hN << exp(0.3 * NORM_RW_ERROR(v_ego, v_l, d_l)); hN << (d_l - desired) / (0.05 * v_ego + 0.5); hN << a_ego * (0.1 * v_ego + 1.0); diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_auxiliary_functions.o b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_auxiliary_functions.o index 65182c5bb1ee556c590df0205f806c984ec71d46..5466ca143bdeea2f5ed9336a912871395ef5cee7 100644 GIT binary patch delta 1480 zcmZ{kO=uHA6oBV#if(@FZn90M8^yGxXc~(&9;}L(U6G0+QpJOwtfJt-gGCPog>1ot zf`^2cLxqAKdI%mQkc&tU4fN1M4+rax|H9_+lC@0*!j9*=G3 zgM2v$US)W65X{PA0vYqxU$X3B%$A|a$&y-q66zU=(r|HWQ7T{8SN zPSRL*(&gHvp07Y-z-Yct1#-`3Zeim^}FA&ngo_K3!M!k*LE zOTtcS>@8vMY3u`GA8Bk^*g1`z7q+gkuY_IF*cD+vXlzT^RgL{AEbAK);X0dG=%#Lu z#_ka|r?I2L9@p4Y!cJ)HWnph<>}_GEH8#KtRyG;#=_mNvqHa~53HS6ICT;3Imv+6U zy-ra`4Sk#9vX$7yJDtc%)^Uo_UsgZXY}@^`CTH=7#9tc`{<4kLKR t8H={r@0Uj%A3I}k2b)e2rV)CI5TMV-9L})u05;ip1tDF8N%YhE{{eNl@HYSe delta 1639 zcmZ{kL1+^}6hLP-HEffRO?G3p8^JWC)HDq&^WFKWB2-kd{Rh1HYDVZnx?_<1Ip{REvA^L^rpwbCdeg z26A6-X#1&_`}<1a-{lsCN77NII)ysSFJJ)y3k#SoVDT<1bUq}}g&lTUz=i~DM8Glv zcJ>%6l$>+NV96O5unPiqNx-HAY+AssQU)KCPt^tAY9HPMOHGcJ$&W$DV{++8L7x@2 zM8oZX-f>=sylUcRbx}ARm z#2_|6@Zjrj6gJOS_2Y0%~&^uN$g!_A4u#1wfGs#YDpLfN35b`-z!#S zRbtm5ubFy<+iurGA~F&^YIB=6<5&2inbtQ?DQ~-fhkatVJf-L>g7}f|fUB9ayWA!S zHF;GQeC-82dM_X2oIVNppYM!pbtz&h3W~x@eHza}L(lcA{M|T&l##O=+tT6&+hLQjbzRrBTf23D>8Uc%xENmJOC(#@m9fCxOK(9C zQ2bzwF(xAn@fCw&w235WKp@dXKZx>y1f!7fK?8|qVB!Z7(VS!_`aie#LhZ;t=t=H< z&iUWxcb{|r=iJ-A(AU4FL{W&<6mo{#9a$2B6orpDvRfu(nDq;ho2eApU2GNIDhZtZyzR#ZX?X%^a5ojT3F~s9#xvxqGu9Oop z)v7R#DNJow$id%GFRlLJAzm$#~wX0(^@F>B(8F$)=YpGJXJzytX#j}RW33uT+ z%SuL$UUCl7^Ufg}u10PZ;{g|N7_feRJ6##btH%MMoMIz)9Y zF7C?(Th(0fLBiYj6Yd~PIQ%2D#ZH97#zY8pRn#@Kaw0H)F{O+gbwiuQGpzSd%4ZM@ ztC&zLlJt;Yr(G_LRVE@NKW9VpLh~@OsZgthR>MTr)DDA<)XiZF%HmG;`KSMj=ksBUe25XGrj~o8nw#M)V z>o2^OgY}?w7^BeySFUXbpIfYrI%;#(c@A?%&UmrT1Bj=S42yrBI3&x9&g9ds&Id=!kghyb5s%Tex{YxB{bK%hcxe# z4{PgCQzb-%)-%!h8WSroFtN&>!22^qH^9Tal_{!XjozsoLfngEADxhl4a{aR2bt)) z2(J7tQ-^%rV29|THl6C=&iiy)=ENMHLjGaoe~&uV2_e5bGWQ2um$hUanXjYH3^Yd- z5iMK5yb0zq7*_&&I?u>_nIoAQ-(DR1XbZj<4i!uid*@wnSHXGnjNB8l)(rN-UW3sM z?q$h%z@)((1M?HU7qxSlX?P;*&G@qPBgxc&83pqpnCoEb=V!i^OdS{vOb*PiU>XzR z{=wCne5S(r71o-OTm!gCa3{ds1h;(tT8=g_O<;C{`4r6WU|JKRc3a=PwOShl|wa;H`tz-gV_JcVG<~Eox_QNA<=B?$B&lLjqBKH25U^&=mzLtu0l77tK9ncNm zCk^k{N+ts4B`{xu5!i#h2~mdkLwZ=qZMef_jBj9B4Es-!--0x4R)~1)+rKwm!*8Yh zZ9ej*Z0F+ncp<*PCEGDGeu|%IV*H;djHS^2>p@aGl4BzcyV4nbbbPF#I~WRv8hqL0 zh~BZGufH#`v2UO|6zbSII+ongYWz>R_h}L$aP8xp+x2WRwcSKU z$Fk{>Ofs9!kDnONY}Y4}DRVerT^`Q_QzWQoGuh-2;vUV2nepLdHi>FR45svKj5G}g zyX2`;p2DPQcQ9m5`hSG2VC6ek+??kB`uB=1V7dO)yckKXa1CVwlPB4%h02fS>~Og* zHuG9xxPd?SvNf0mL`QRNg-!UJ@V5HK7!_x8@`SZ`#1PjG`irp1VY@nY`1yxeQXW IZfp7X4}a$)ApigX literal 8584 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 SdR3ZDK@a^qm%n%U{QVakJWaU( diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.cpp b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.cpp index a4d9f8cde..36e675e03 100644 --- a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.cpp +++ b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.cpp @@ -40,7 +40,7 @@ int acado_solve( void ) { acado_nWSR = QPOASES_NWSRMAX; - QProblem qp(26, 20); + QProblem qp(23, 20); returnValue retVal = qp.init(acadoWorkspace.H, acadoWorkspace.g, acadoWorkspace.A, acadoWorkspace.lb, acadoWorkspace.ub, acadoWorkspace.lbA, acadoWorkspace.ubA, acado_nWSR, acadoWorkspace.y); diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.hpp b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.hpp index 3b3c75aa1..8a58805f8 100644 --- a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.hpp +++ b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.hpp @@ -37,7 +37,7 @@ */ /** Maximum number of optimization variables. */ -#define QPOASES_NVMAX 26 +#define QPOASES_NVMAX 23 /** Maximum number of constraints. */ #define QPOASES_NCMAX 20 /** Maximum number of working set recalculations. */ diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.o b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_qpoases_interface.o index ce919eb77f5fa8600f029507b194a498570eb5bf..21293576928754ed5f9b883d4937f486aa2fdfe0 100644 GIT binary patch delta 174 zcmdlWzCnCKV5qXg#s7zSE($X+OekhznAl<05cD9KVd6ukhM*=O&R}BL$-uxcMFc26 zg~{P3hjM=q=b^43uK9gI+?RWTc((Ng@t*Aq;(O8;#Q&o&sDp{4`$6)=W%`~x{Xvaj z4#Px{0U(XYe2^s|@dwPpTK|R|#o8=fM GaRC6o;z8s9 delta 174 zcmdlWzCnCKV5qvo#sADY7lj!ZCKNLJAfuj+pqj+G*t%f5(-7*qwhIV2;1`nVDhLgXYb0 HjFY$k?N&gZ diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_solver.c b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_solver.c index 676787bbf..e4bf392f9 100644 --- a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_solver.c +++ b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_solver.c @@ -37,69 +37,33 @@ int lRun1; ret = 0; for (lRun1 = 0; lRun1 < 20; ++lRun1) { -acadoWorkspace.state[0] = acadoVariables.x[lRun1 * 6]; -acadoWorkspace.state[1] = acadoVariables.x[lRun1 * 6 + 1]; -acadoWorkspace.state[2] = acadoVariables.x[lRun1 * 6 + 2]; -acadoWorkspace.state[3] = acadoVariables.x[lRun1 * 6 + 3]; -acadoWorkspace.state[4] = acadoVariables.x[lRun1 * 6 + 4]; -acadoWorkspace.state[5] = acadoVariables.x[lRun1 * 6 + 5]; +acadoWorkspace.state[0] = acadoVariables.x[lRun1 * 3]; +acadoWorkspace.state[1] = acadoVariables.x[lRun1 * 3 + 1]; +acadoWorkspace.state[2] = acadoVariables.x[lRun1 * 3 + 2]; -acadoWorkspace.state[48] = acadoVariables.u[lRun1]; -acadoWorkspace.state[49] = acadoVariables.od[lRun1 * 2]; -acadoWorkspace.state[50] = acadoVariables.od[lRun1 * 2 + 1]; +acadoWorkspace.state[15] = acadoVariables.u[lRun1]; +acadoWorkspace.state[16] = acadoVariables.od[lRun1 * 2]; +acadoWorkspace.state[17] = acadoVariables.od[lRun1 * 2 + 1]; ret = acado_integrate(acadoWorkspace.state, 1, lRun1); -acadoWorkspace.d[lRun1 * 6] = acadoWorkspace.state[0] - acadoVariables.x[lRun1 * 6 + 6]; -acadoWorkspace.d[lRun1 * 6 + 1] = acadoWorkspace.state[1] - acadoVariables.x[lRun1 * 6 + 7]; -acadoWorkspace.d[lRun1 * 6 + 2] = acadoWorkspace.state[2] - acadoVariables.x[lRun1 * 6 + 8]; -acadoWorkspace.d[lRun1 * 6 + 3] = acadoWorkspace.state[3] - acadoVariables.x[lRun1 * 6 + 9]; -acadoWorkspace.d[lRun1 * 6 + 4] = acadoWorkspace.state[4] - acadoVariables.x[lRun1 * 6 + 10]; -acadoWorkspace.d[lRun1 * 6 + 5] = acadoWorkspace.state[5] - acadoVariables.x[lRun1 * 6 + 11]; +acadoWorkspace.d[lRun1 * 3] = acadoWorkspace.state[0] - acadoVariables.x[lRun1 * 3 + 3]; +acadoWorkspace.d[lRun1 * 3 + 1] = acadoWorkspace.state[1] - acadoVariables.x[lRun1 * 3 + 4]; +acadoWorkspace.d[lRun1 * 3 + 2] = acadoWorkspace.state[2] - acadoVariables.x[lRun1 * 3 + 5]; -acadoWorkspace.evGx[lRun1 * 36] = acadoWorkspace.state[6]; -acadoWorkspace.evGx[lRun1 * 36 + 1] = acadoWorkspace.state[7]; -acadoWorkspace.evGx[lRun1 * 36 + 2] = acadoWorkspace.state[8]; -acadoWorkspace.evGx[lRun1 * 36 + 3] = acadoWorkspace.state[9]; -acadoWorkspace.evGx[lRun1 * 36 + 4] = acadoWorkspace.state[10]; -acadoWorkspace.evGx[lRun1 * 36 + 5] = acadoWorkspace.state[11]; -acadoWorkspace.evGx[lRun1 * 36 + 6] = acadoWorkspace.state[12]; -acadoWorkspace.evGx[lRun1 * 36 + 7] = acadoWorkspace.state[13]; -acadoWorkspace.evGx[lRun1 * 36 + 8] = acadoWorkspace.state[14]; -acadoWorkspace.evGx[lRun1 * 36 + 9] = acadoWorkspace.state[15]; -acadoWorkspace.evGx[lRun1 * 36 + 10] = acadoWorkspace.state[16]; -acadoWorkspace.evGx[lRun1 * 36 + 11] = acadoWorkspace.state[17]; -acadoWorkspace.evGx[lRun1 * 36 + 12] = acadoWorkspace.state[18]; -acadoWorkspace.evGx[lRun1 * 36 + 13] = acadoWorkspace.state[19]; -acadoWorkspace.evGx[lRun1 * 36 + 14] = acadoWorkspace.state[20]; -acadoWorkspace.evGx[lRun1 * 36 + 15] = acadoWorkspace.state[21]; -acadoWorkspace.evGx[lRun1 * 36 + 16] = acadoWorkspace.state[22]; -acadoWorkspace.evGx[lRun1 * 36 + 17] = acadoWorkspace.state[23]; -acadoWorkspace.evGx[lRun1 * 36 + 18] = acadoWorkspace.state[24]; -acadoWorkspace.evGx[lRun1 * 36 + 19] = acadoWorkspace.state[25]; -acadoWorkspace.evGx[lRun1 * 36 + 20] = acadoWorkspace.state[26]; -acadoWorkspace.evGx[lRun1 * 36 + 21] = acadoWorkspace.state[27]; -acadoWorkspace.evGx[lRun1 * 36 + 22] = acadoWorkspace.state[28]; -acadoWorkspace.evGx[lRun1 * 36 + 23] = acadoWorkspace.state[29]; -acadoWorkspace.evGx[lRun1 * 36 + 24] = acadoWorkspace.state[30]; -acadoWorkspace.evGx[lRun1 * 36 + 25] = acadoWorkspace.state[31]; -acadoWorkspace.evGx[lRun1 * 36 + 26] = acadoWorkspace.state[32]; -acadoWorkspace.evGx[lRun1 * 36 + 27] = acadoWorkspace.state[33]; -acadoWorkspace.evGx[lRun1 * 36 + 28] = acadoWorkspace.state[34]; -acadoWorkspace.evGx[lRun1 * 36 + 29] = acadoWorkspace.state[35]; -acadoWorkspace.evGx[lRun1 * 36 + 30] = acadoWorkspace.state[36]; -acadoWorkspace.evGx[lRun1 * 36 + 31] = acadoWorkspace.state[37]; -acadoWorkspace.evGx[lRun1 * 36 + 32] = acadoWorkspace.state[38]; -acadoWorkspace.evGx[lRun1 * 36 + 33] = acadoWorkspace.state[39]; -acadoWorkspace.evGx[lRun1 * 36 + 34] = acadoWorkspace.state[40]; -acadoWorkspace.evGx[lRun1 * 36 + 35] = acadoWorkspace.state[41]; +acadoWorkspace.evGx[lRun1 * 9] = acadoWorkspace.state[3]; +acadoWorkspace.evGx[lRun1 * 9 + 1] = acadoWorkspace.state[4]; +acadoWorkspace.evGx[lRun1 * 9 + 2] = acadoWorkspace.state[5]; +acadoWorkspace.evGx[lRun1 * 9 + 3] = acadoWorkspace.state[6]; +acadoWorkspace.evGx[lRun1 * 9 + 4] = acadoWorkspace.state[7]; +acadoWorkspace.evGx[lRun1 * 9 + 5] = acadoWorkspace.state[8]; +acadoWorkspace.evGx[lRun1 * 9 + 6] = acadoWorkspace.state[9]; +acadoWorkspace.evGx[lRun1 * 9 + 7] = acadoWorkspace.state[10]; +acadoWorkspace.evGx[lRun1 * 9 + 8] = acadoWorkspace.state[11]; -acadoWorkspace.evGu[lRun1 * 6] = acadoWorkspace.state[42]; -acadoWorkspace.evGu[lRun1 * 6 + 1] = acadoWorkspace.state[43]; -acadoWorkspace.evGu[lRun1 * 6 + 2] = acadoWorkspace.state[44]; -acadoWorkspace.evGu[lRun1 * 6 + 3] = acadoWorkspace.state[45]; -acadoWorkspace.evGu[lRun1 * 6 + 4] = acadoWorkspace.state[46]; -acadoWorkspace.evGu[lRun1 * 6 + 5] = acadoWorkspace.state[47]; +acadoWorkspace.evGu[lRun1 * 3] = acadoWorkspace.state[12]; +acadoWorkspace.evGu[lRun1 * 3 + 1] = acadoWorkspace.state[13]; +acadoWorkspace.evGu[lRun1 * 3 + 2] = acadoWorkspace.state[14]; } return ret; } @@ -107,201 +71,112 @@ return ret; void acado_evaluateLSQ(const real_t* in, real_t* out) { const real_t* xd = in; -const real_t* u = in + 6; -/* Vector of auxiliary variables; number of elements: 30. */ +const real_t* u = in + 3; +const real_t* od = in + 4; +/* Vector of auxiliary variables; number of elements: 15. */ real_t* a = acadoWorkspace.objAuxVar; /* Compute intermediate quantities: */ a[0] = (sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[1] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(xd[3]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); -a[2] = (sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[3] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))/(a[2]+(real_t)(1.0000000000000001e-01)))))); -a[4] = ((real_t)(1.0000000000000000e+00)/(a[0]+(real_t)(1.0000000000000001e-01))); -a[5] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(xd[3]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); -a[6] = (((real_t)(2.9999999999999999e-01)*(((real_t)(0.0000000000000000e+00)-((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00)))*a[4]))*a[5]); -a[7] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[8] = (1.0/sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[9] = (a[8]*(real_t)(5.0000000000000000e-01)); -a[10] = (a[4]*a[4]); -a[11] = (((real_t)(2.9999999999999999e-01)*(((((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[7]))*a[4])-((((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(xd[3]-xd[0]))*a[9])*a[10])))*a[5]); +a[1] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(od[0]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); +a[2] = ((real_t)(1.0000000000000000e+00)/(a[0]+(real_t)(1.0000000000000001e-01))); +a[3] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(od[0]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); +a[4] = (((real_t)(2.9999999999999999e-01)*(((real_t)(0.0000000000000000e+00)-((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00)))*a[2]))*a[3]); +a[5] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); +a[6] = (1.0/sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); +a[7] = (a[6]*(real_t)(5.0000000000000000e-01)); +a[8] = (a[2]*a[2]); +a[9] = (((real_t)(2.9999999999999999e-01)*(((((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[5]))*a[2])-((((((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(od[0]-xd[0]))*a[7])*a[8])))*a[3]); +a[10] = (real_t)(0.0000000000000000e+00); +a[11] = ((real_t)(1.0000000000000000e+00)/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); a[12] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[13] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[14] = ((real_t)(1.0000000000000000e+00)/(a[2]+(real_t)(1.0000000000000001e-01))); -a[15] = (1.0/sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[16] = (a[15]*(real_t)(5.0000000000000000e-01)); -a[17] = (a[14]*a[14]); -a[18] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))/(a[2]+(real_t)(1.0000000000000001e-01)))))); -a[19] = (((real_t)(2.9999999999999999e-01)*((((((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[12]))-(((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[13])))*a[14])-((((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))*a[16])*a[17])))*a[18]); -a[20] = (((real_t)(2.9999999999999999e-01)*(((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00))*a[4]))*a[5]); -a[21] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[22] = (((real_t)(2.9999999999999999e-01)*((((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[21]))*a[4]))*a[5]); -a[23] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[24] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[25] = (((real_t)(2.9999999999999999e-01)*(((((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[23]))-(((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[24])))*a[14]))*a[18]); -a[26] = ((real_t)(1.0000000000000000e+00)/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); -a[27] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[28] = (a[26]*a[26]); -a[29] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); +a[13] = (a[11]*a[11]); +a[14] = (real_t)(0.0000000000000000e+00); /* Compute outputs: */ -out[0] = (a[1]-a[3]); -out[1] = (((xd[3]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); +out[0] = a[1]; +out[1] = (((od[0]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))))/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); out[2] = (xd[2]*(((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00))); out[3] = (u[0]*(((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00))); -out[4] = a[6]; -out[5] = (a[11]-a[19]); -out[6] = (real_t)(0.0000000000000000e+00); -out[7] = a[20]; -out[8] = (a[22]-a[25]); +out[4] = a[4]; +out[5] = a[9]; +out[6] = a[10]; +out[7] = (((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00))*a[11]); +out[8] = ((((real_t)(0.0000000000000000e+00)-(((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[12])))*a[11])-((((od[0]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))))*(real_t)(5.0000000000000003e-02))*a[13])); out[9] = (real_t)(0.0000000000000000e+00); -out[10] = (((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00))*a[26]); -out[11] = ((((real_t)(0.0000000000000000e+00)-(((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[27])))*a[26])-((((xd[3]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))*(real_t)(5.0000000000000003e-02))*a[28])); -out[12] = (real_t)(0.0000000000000000e+00); -out[13] = a[26]; -out[14] = (((real_t)(0.0000000000000000e+00)-(((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[29])))*a[26]); +out[10] = (real_t)(0.0000000000000000e+00); +out[11] = (xd[2]*(real_t)(1.0000000000000001e-01)); +out[12] = (((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00)); +out[13] = (real_t)(0.0000000000000000e+00); +out[14] = (u[0]*(real_t)(1.0000000000000001e-01)); out[15] = (real_t)(0.0000000000000000e+00); -out[16] = (real_t)(0.0000000000000000e+00); -out[17] = (xd[2]*(real_t)(1.0000000000000001e-01)); -out[18] = (((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00)); -out[19] = (real_t)(0.0000000000000000e+00); -out[20] = (real_t)(0.0000000000000000e+00); -out[21] = (real_t)(0.0000000000000000e+00); -out[22] = (real_t)(0.0000000000000000e+00); -out[23] = (u[0]*(real_t)(1.0000000000000001e-01)); -out[24] = (real_t)(0.0000000000000000e+00); -out[25] = (real_t)(0.0000000000000000e+00); -out[26] = (real_t)(0.0000000000000000e+00); -out[27] = (real_t)(0.0000000000000000e+00); -out[28] = (real_t)(0.0000000000000000e+00); -out[29] = (real_t)(0.0000000000000000e+00); -out[30] = (real_t)(0.0000000000000000e+00); -out[31] = (((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00)); +out[16] = a[14]; +out[17] = (real_t)(0.0000000000000000e+00); +out[18] = (real_t)(0.0000000000000000e+00); +out[19] = (((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00)); } void acado_evaluateLSQEndTerm(const real_t* in, real_t* out) { const real_t* xd = in; -/* Vector of auxiliary variables; number of elements: 30. */ +const real_t* od = in + 3; +/* Vector of auxiliary variables; number of elements: 14. */ real_t* a = acadoWorkspace.objAuxVar; /* Compute intermediate quantities: */ a[0] = (sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[1] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(xd[3]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); -a[2] = (sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[3] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))/(a[2]+(real_t)(1.0000000000000001e-01)))))); -a[4] = ((real_t)(1.0000000000000000e+00)/(a[0]+(real_t)(1.0000000000000001e-01))); -a[5] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(xd[3]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); -a[6] = (((real_t)(2.9999999999999999e-01)*(((real_t)(0.0000000000000000e+00)-((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00)))*a[4]))*a[5]); -a[7] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[8] = (1.0/sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[9] = (a[8]*(real_t)(5.0000000000000000e-01)); -a[10] = (a[4]*a[4]); -a[11] = (((real_t)(2.9999999999999999e-01)*(((((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[7]))*a[4])-((((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(xd[3]-xd[0]))*a[9])*a[10])))*a[5]); +a[1] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(od[0]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); +a[2] = ((real_t)(1.0000000000000000e+00)/(a[0]+(real_t)(1.0000000000000001e-01))); +a[3] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(od[0]-xd[0]))/(a[0]+(real_t)(1.0000000000000001e-01)))))); +a[4] = (((real_t)(2.9999999999999999e-01)*(((real_t)(0.0000000000000000e+00)-((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00)))*a[2]))*a[3]); +a[5] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); +a[6] = (1.0/sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); +a[7] = (a[6]*(real_t)(5.0000000000000000e-01)); +a[8] = (a[2]*a[2]); +a[9] = (((real_t)(2.9999999999999999e-01)*(((((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[5]))*a[2])-((((((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-(od[0]-xd[0]))*a[7])*a[8])))*a[3]); +a[10] = (real_t)(0.0000000000000000e+00); +a[11] = ((real_t)(1.0000000000000000e+00)/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); a[12] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[13] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[14] = ((real_t)(1.0000000000000000e+00)/(a[2]+(real_t)(1.0000000000000001e-01))); -a[15] = (1.0/sqrt((xd[1]+(real_t)(5.0000000000000000e-01)))); -a[16] = (a[15]*(real_t)(5.0000000000000000e-01)); -a[17] = (a[14]*a[14]); -a[18] = (exp(((real_t)(2.9999999999999999e-01)*(((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))/(a[2]+(real_t)(1.0000000000000001e-01)))))); -a[19] = (((real_t)(2.9999999999999999e-01)*((((((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[12]))-(((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[13])))*a[14])-((((((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))+(real_t)(4.0000000000000000e+00))-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))*a[16])*a[17])))*a[18]); -a[20] = (((real_t)(2.9999999999999999e-01)*(((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00))*a[4]))*a[5]); -a[21] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[22] = (((real_t)(2.9999999999999999e-01)*((((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[21]))*a[4]))*a[5]); -a[23] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[24] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[25] = (((real_t)(2.9999999999999999e-01)*(((((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[23]))-(((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[24])))*a[14]))*a[18]); -a[26] = ((real_t)(1.0000000000000000e+00)/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); -a[27] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); -a[28] = (a[26]*a[26]); -a[29] = ((real_t)(1.0000000000000000e+00)/(real_t)(1.9620000000000001e+01)); +a[13] = (a[11]*a[11]); /* Compute outputs: */ -out[0] = (a[1]-a[3]); -out[1] = (((xd[3]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); +out[0] = a[1]; +out[1] = (((od[0]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))))/(((real_t)(5.0000000000000003e-02)*xd[1])+(real_t)(5.0000000000000000e-01))); out[2] = (xd[2]*(((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00))); -out[3] = a[6]; -out[4] = (a[11]-a[19]); -out[5] = (real_t)(0.0000000000000000e+00); -out[6] = a[20]; -out[7] = (a[22]-a[25]); +out[3] = a[4]; +out[4] = a[9]; +out[5] = a[10]; +out[6] = (((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00))*a[11]); +out[7] = ((((real_t)(0.0000000000000000e+00)-(((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[12])))*a[11])-((((od[0]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((od[1]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((od[1]*od[1])/(real_t)(1.9620000000000001e+01)))))*(real_t)(5.0000000000000003e-02))*a[13])); out[8] = (real_t)(0.0000000000000000e+00); -out[9] = (((real_t)(0.0000000000000000e+00)-(real_t)(1.0000000000000000e+00))*a[26]); -out[10] = ((((real_t)(0.0000000000000000e+00)-(((real_t)(1.8000000000000000e+00)-((real_t)(-1.8000000000000000e+00)))+((xd[1]+xd[1])*a[27])))*a[26])-((((xd[3]-xd[0])-((real_t)(4.0000000000000000e+00)+((((xd[1]*(real_t)(1.8000000000000000e+00))-((xd[4]-xd[1])*(real_t)(1.8000000000000000e+00)))+((xd[1]*xd[1])/(real_t)(1.9620000000000001e+01)))-((xd[4]*xd[4])/(real_t)(1.9620000000000001e+01)))))*(real_t)(5.0000000000000003e-02))*a[28])); -out[11] = (real_t)(0.0000000000000000e+00); -out[12] = a[26]; -out[13] = (((real_t)(0.0000000000000000e+00)-(((real_t)(0.0000000000000000e+00)-(real_t)(1.8000000000000000e+00))-((xd[4]+xd[4])*a[29])))*a[26]); -out[14] = (real_t)(0.0000000000000000e+00); -out[15] = (real_t)(0.0000000000000000e+00); -out[16] = (xd[2]*(real_t)(1.0000000000000001e-01)); -out[17] = (((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00)); -out[18] = (real_t)(0.0000000000000000e+00); -out[19] = (real_t)(0.0000000000000000e+00); -out[20] = (real_t)(0.0000000000000000e+00); +out[9] = (real_t)(0.0000000000000000e+00); +out[10] = (xd[2]*(real_t)(1.0000000000000001e-01)); +out[11] = (((real_t)(1.0000000000000001e-01)*xd[1])+(real_t)(1.0000000000000000e+00)); } void acado_setObjQ1Q2( real_t* const tmpFx, real_t* const tmpObjS, real_t* const tmpQ1, real_t* const tmpQ2 ) { -tmpQ2[0] = + tmpFx[0]*tmpObjS[0] + tmpFx[6]*tmpObjS[4] + tmpFx[12]*tmpObjS[8] + tmpFx[18]*tmpObjS[12]; -tmpQ2[1] = + tmpFx[0]*tmpObjS[1] + tmpFx[6]*tmpObjS[5] + tmpFx[12]*tmpObjS[9] + tmpFx[18]*tmpObjS[13]; -tmpQ2[2] = + tmpFx[0]*tmpObjS[2] + tmpFx[6]*tmpObjS[6] + tmpFx[12]*tmpObjS[10] + tmpFx[18]*tmpObjS[14]; -tmpQ2[3] = + tmpFx[0]*tmpObjS[3] + tmpFx[6]*tmpObjS[7] + tmpFx[12]*tmpObjS[11] + tmpFx[18]*tmpObjS[15]; -tmpQ2[4] = + tmpFx[1]*tmpObjS[0] + tmpFx[7]*tmpObjS[4] + tmpFx[13]*tmpObjS[8] + tmpFx[19]*tmpObjS[12]; -tmpQ2[5] = + tmpFx[1]*tmpObjS[1] + tmpFx[7]*tmpObjS[5] + tmpFx[13]*tmpObjS[9] + tmpFx[19]*tmpObjS[13]; -tmpQ2[6] = + tmpFx[1]*tmpObjS[2] + tmpFx[7]*tmpObjS[6] + tmpFx[13]*tmpObjS[10] + tmpFx[19]*tmpObjS[14]; -tmpQ2[7] = + tmpFx[1]*tmpObjS[3] + tmpFx[7]*tmpObjS[7] + tmpFx[13]*tmpObjS[11] + tmpFx[19]*tmpObjS[15]; -tmpQ2[8] = + tmpFx[2]*tmpObjS[0] + tmpFx[8]*tmpObjS[4] + tmpFx[14]*tmpObjS[8] + tmpFx[20]*tmpObjS[12]; -tmpQ2[9] = + tmpFx[2]*tmpObjS[1] + tmpFx[8]*tmpObjS[5] + tmpFx[14]*tmpObjS[9] + tmpFx[20]*tmpObjS[13]; -tmpQ2[10] = + tmpFx[2]*tmpObjS[2] + tmpFx[8]*tmpObjS[6] + tmpFx[14]*tmpObjS[10] + tmpFx[20]*tmpObjS[14]; -tmpQ2[11] = + tmpFx[2]*tmpObjS[3] + tmpFx[8]*tmpObjS[7] + tmpFx[14]*tmpObjS[11] + tmpFx[20]*tmpObjS[15]; -tmpQ2[12] = + tmpFx[3]*tmpObjS[0] + tmpFx[9]*tmpObjS[4] + tmpFx[15]*tmpObjS[8] + tmpFx[21]*tmpObjS[12]; -tmpQ2[13] = + tmpFx[3]*tmpObjS[1] + tmpFx[9]*tmpObjS[5] + tmpFx[15]*tmpObjS[9] + tmpFx[21]*tmpObjS[13]; -tmpQ2[14] = + tmpFx[3]*tmpObjS[2] + tmpFx[9]*tmpObjS[6] + tmpFx[15]*tmpObjS[10] + tmpFx[21]*tmpObjS[14]; -tmpQ2[15] = + tmpFx[3]*tmpObjS[3] + tmpFx[9]*tmpObjS[7] + tmpFx[15]*tmpObjS[11] + tmpFx[21]*tmpObjS[15]; -tmpQ2[16] = + tmpFx[4]*tmpObjS[0] + tmpFx[10]*tmpObjS[4] + tmpFx[16]*tmpObjS[8] + tmpFx[22]*tmpObjS[12]; -tmpQ2[17] = + tmpFx[4]*tmpObjS[1] + tmpFx[10]*tmpObjS[5] + tmpFx[16]*tmpObjS[9] + tmpFx[22]*tmpObjS[13]; -tmpQ2[18] = + tmpFx[4]*tmpObjS[2] + tmpFx[10]*tmpObjS[6] + tmpFx[16]*tmpObjS[10] + tmpFx[22]*tmpObjS[14]; -tmpQ2[19] = + tmpFx[4]*tmpObjS[3] + tmpFx[10]*tmpObjS[7] + tmpFx[16]*tmpObjS[11] + tmpFx[22]*tmpObjS[15]; -tmpQ2[20] = + tmpFx[5]*tmpObjS[0] + tmpFx[11]*tmpObjS[4] + tmpFx[17]*tmpObjS[8] + tmpFx[23]*tmpObjS[12]; -tmpQ2[21] = + tmpFx[5]*tmpObjS[1] + tmpFx[11]*tmpObjS[5] + tmpFx[17]*tmpObjS[9] + tmpFx[23]*tmpObjS[13]; -tmpQ2[22] = + tmpFx[5]*tmpObjS[2] + tmpFx[11]*tmpObjS[6] + tmpFx[17]*tmpObjS[10] + tmpFx[23]*tmpObjS[14]; -tmpQ2[23] = + tmpFx[5]*tmpObjS[3] + tmpFx[11]*tmpObjS[7] + tmpFx[17]*tmpObjS[11] + tmpFx[23]*tmpObjS[15]; -tmpQ1[0] = + tmpQ2[0]*tmpFx[0] + tmpQ2[1]*tmpFx[6] + tmpQ2[2]*tmpFx[12] + tmpQ2[3]*tmpFx[18]; -tmpQ1[1] = + tmpQ2[0]*tmpFx[1] + tmpQ2[1]*tmpFx[7] + tmpQ2[2]*tmpFx[13] + tmpQ2[3]*tmpFx[19]; -tmpQ1[2] = + tmpQ2[0]*tmpFx[2] + tmpQ2[1]*tmpFx[8] + tmpQ2[2]*tmpFx[14] + tmpQ2[3]*tmpFx[20]; -tmpQ1[3] = + tmpQ2[0]*tmpFx[3] + tmpQ2[1]*tmpFx[9] + tmpQ2[2]*tmpFx[15] + tmpQ2[3]*tmpFx[21]; -tmpQ1[4] = + tmpQ2[0]*tmpFx[4] + tmpQ2[1]*tmpFx[10] + tmpQ2[2]*tmpFx[16] + tmpQ2[3]*tmpFx[22]; -tmpQ1[5] = + tmpQ2[0]*tmpFx[5] + tmpQ2[1]*tmpFx[11] + tmpQ2[2]*tmpFx[17] + tmpQ2[3]*tmpFx[23]; -tmpQ1[6] = + tmpQ2[4]*tmpFx[0] + tmpQ2[5]*tmpFx[6] + tmpQ2[6]*tmpFx[12] + tmpQ2[7]*tmpFx[18]; -tmpQ1[7] = + tmpQ2[4]*tmpFx[1] + tmpQ2[5]*tmpFx[7] + tmpQ2[6]*tmpFx[13] + tmpQ2[7]*tmpFx[19]; -tmpQ1[8] = + tmpQ2[4]*tmpFx[2] + tmpQ2[5]*tmpFx[8] + tmpQ2[6]*tmpFx[14] + tmpQ2[7]*tmpFx[20]; -tmpQ1[9] = + tmpQ2[4]*tmpFx[3] + tmpQ2[5]*tmpFx[9] + tmpQ2[6]*tmpFx[15] + tmpQ2[7]*tmpFx[21]; -tmpQ1[10] = + tmpQ2[4]*tmpFx[4] + tmpQ2[5]*tmpFx[10] + tmpQ2[6]*tmpFx[16] + tmpQ2[7]*tmpFx[22]; -tmpQ1[11] = + tmpQ2[4]*tmpFx[5] + tmpQ2[5]*tmpFx[11] + tmpQ2[6]*tmpFx[17] + tmpQ2[7]*tmpFx[23]; -tmpQ1[12] = + tmpQ2[8]*tmpFx[0] + tmpQ2[9]*tmpFx[6] + tmpQ2[10]*tmpFx[12] + tmpQ2[11]*tmpFx[18]; -tmpQ1[13] = + tmpQ2[8]*tmpFx[1] + tmpQ2[9]*tmpFx[7] + tmpQ2[10]*tmpFx[13] + tmpQ2[11]*tmpFx[19]; -tmpQ1[14] = + tmpQ2[8]*tmpFx[2] + tmpQ2[9]*tmpFx[8] + tmpQ2[10]*tmpFx[14] + tmpQ2[11]*tmpFx[20]; -tmpQ1[15] = + tmpQ2[8]*tmpFx[3] + tmpQ2[9]*tmpFx[9] + tmpQ2[10]*tmpFx[15] + tmpQ2[11]*tmpFx[21]; -tmpQ1[16] = + tmpQ2[8]*tmpFx[4] + tmpQ2[9]*tmpFx[10] + tmpQ2[10]*tmpFx[16] + tmpQ2[11]*tmpFx[22]; -tmpQ1[17] = + tmpQ2[8]*tmpFx[5] + tmpQ2[9]*tmpFx[11] + tmpQ2[10]*tmpFx[17] + tmpQ2[11]*tmpFx[23]; -tmpQ1[18] = + tmpQ2[12]*tmpFx[0] + tmpQ2[13]*tmpFx[6] + tmpQ2[14]*tmpFx[12] + tmpQ2[15]*tmpFx[18]; -tmpQ1[19] = + tmpQ2[12]*tmpFx[1] + tmpQ2[13]*tmpFx[7] + tmpQ2[14]*tmpFx[13] + tmpQ2[15]*tmpFx[19]; -tmpQ1[20] = + tmpQ2[12]*tmpFx[2] + tmpQ2[13]*tmpFx[8] + tmpQ2[14]*tmpFx[14] + tmpQ2[15]*tmpFx[20]; -tmpQ1[21] = + tmpQ2[12]*tmpFx[3] + tmpQ2[13]*tmpFx[9] + tmpQ2[14]*tmpFx[15] + tmpQ2[15]*tmpFx[21]; -tmpQ1[22] = + tmpQ2[12]*tmpFx[4] + tmpQ2[13]*tmpFx[10] + tmpQ2[14]*tmpFx[16] + tmpQ2[15]*tmpFx[22]; -tmpQ1[23] = + tmpQ2[12]*tmpFx[5] + tmpQ2[13]*tmpFx[11] + tmpQ2[14]*tmpFx[17] + tmpQ2[15]*tmpFx[23]; -tmpQ1[24] = + tmpQ2[16]*tmpFx[0] + tmpQ2[17]*tmpFx[6] + tmpQ2[18]*tmpFx[12] + tmpQ2[19]*tmpFx[18]; -tmpQ1[25] = + tmpQ2[16]*tmpFx[1] + tmpQ2[17]*tmpFx[7] + tmpQ2[18]*tmpFx[13] + tmpQ2[19]*tmpFx[19]; -tmpQ1[26] = + tmpQ2[16]*tmpFx[2] + tmpQ2[17]*tmpFx[8] + tmpQ2[18]*tmpFx[14] + tmpQ2[19]*tmpFx[20]; -tmpQ1[27] = + tmpQ2[16]*tmpFx[3] + tmpQ2[17]*tmpFx[9] + tmpQ2[18]*tmpFx[15] + tmpQ2[19]*tmpFx[21]; -tmpQ1[28] = + tmpQ2[16]*tmpFx[4] + tmpQ2[17]*tmpFx[10] + tmpQ2[18]*tmpFx[16] + tmpQ2[19]*tmpFx[22]; -tmpQ1[29] = + tmpQ2[16]*tmpFx[5] + tmpQ2[17]*tmpFx[11] + tmpQ2[18]*tmpFx[17] + tmpQ2[19]*tmpFx[23]; -tmpQ1[30] = + tmpQ2[20]*tmpFx[0] + tmpQ2[21]*tmpFx[6] + tmpQ2[22]*tmpFx[12] + tmpQ2[23]*tmpFx[18]; -tmpQ1[31] = + tmpQ2[20]*tmpFx[1] + tmpQ2[21]*tmpFx[7] + tmpQ2[22]*tmpFx[13] + tmpQ2[23]*tmpFx[19]; -tmpQ1[32] = + tmpQ2[20]*tmpFx[2] + tmpQ2[21]*tmpFx[8] + tmpQ2[22]*tmpFx[14] + tmpQ2[23]*tmpFx[20]; -tmpQ1[33] = + tmpQ2[20]*tmpFx[3] + tmpQ2[21]*tmpFx[9] + tmpQ2[22]*tmpFx[15] + tmpQ2[23]*tmpFx[21]; -tmpQ1[34] = + tmpQ2[20]*tmpFx[4] + tmpQ2[21]*tmpFx[10] + tmpQ2[22]*tmpFx[16] + tmpQ2[23]*tmpFx[22]; -tmpQ1[35] = + tmpQ2[20]*tmpFx[5] + tmpQ2[21]*tmpFx[11] + tmpQ2[22]*tmpFx[17] + tmpQ2[23]*tmpFx[23]; +tmpQ2[0] = + tmpFx[0]*tmpObjS[0] + tmpFx[3]*tmpObjS[4] + tmpFx[6]*tmpObjS[8] + tmpFx[9]*tmpObjS[12]; +tmpQ2[1] = + tmpFx[0]*tmpObjS[1] + tmpFx[3]*tmpObjS[5] + tmpFx[6]*tmpObjS[9] + tmpFx[9]*tmpObjS[13]; +tmpQ2[2] = + tmpFx[0]*tmpObjS[2] + tmpFx[3]*tmpObjS[6] + tmpFx[6]*tmpObjS[10] + tmpFx[9]*tmpObjS[14]; +tmpQ2[3] = + tmpFx[0]*tmpObjS[3] + tmpFx[3]*tmpObjS[7] + tmpFx[6]*tmpObjS[11] + tmpFx[9]*tmpObjS[15]; +tmpQ2[4] = + tmpFx[1]*tmpObjS[0] + tmpFx[4]*tmpObjS[4] + tmpFx[7]*tmpObjS[8] + tmpFx[10]*tmpObjS[12]; +tmpQ2[5] = + tmpFx[1]*tmpObjS[1] + tmpFx[4]*tmpObjS[5] + tmpFx[7]*tmpObjS[9] + tmpFx[10]*tmpObjS[13]; +tmpQ2[6] = + tmpFx[1]*tmpObjS[2] + tmpFx[4]*tmpObjS[6] + tmpFx[7]*tmpObjS[10] + tmpFx[10]*tmpObjS[14]; +tmpQ2[7] = + tmpFx[1]*tmpObjS[3] + tmpFx[4]*tmpObjS[7] + tmpFx[7]*tmpObjS[11] + tmpFx[10]*tmpObjS[15]; +tmpQ2[8] = + tmpFx[2]*tmpObjS[0] + tmpFx[5]*tmpObjS[4] + tmpFx[8]*tmpObjS[8] + tmpFx[11]*tmpObjS[12]; +tmpQ2[9] = + tmpFx[2]*tmpObjS[1] + tmpFx[5]*tmpObjS[5] + tmpFx[8]*tmpObjS[9] + tmpFx[11]*tmpObjS[13]; +tmpQ2[10] = + tmpFx[2]*tmpObjS[2] + tmpFx[5]*tmpObjS[6] + tmpFx[8]*tmpObjS[10] + tmpFx[11]*tmpObjS[14]; +tmpQ2[11] = + tmpFx[2]*tmpObjS[3] + tmpFx[5]*tmpObjS[7] + tmpFx[8]*tmpObjS[11] + tmpFx[11]*tmpObjS[15]; +tmpQ1[0] = + tmpQ2[0]*tmpFx[0] + tmpQ2[1]*tmpFx[3] + tmpQ2[2]*tmpFx[6] + tmpQ2[3]*tmpFx[9]; +tmpQ1[1] = + tmpQ2[0]*tmpFx[1] + tmpQ2[1]*tmpFx[4] + tmpQ2[2]*tmpFx[7] + tmpQ2[3]*tmpFx[10]; +tmpQ1[2] = + tmpQ2[0]*tmpFx[2] + tmpQ2[1]*tmpFx[5] + tmpQ2[2]*tmpFx[8] + tmpQ2[3]*tmpFx[11]; +tmpQ1[3] = + tmpQ2[4]*tmpFx[0] + tmpQ2[5]*tmpFx[3] + tmpQ2[6]*tmpFx[6] + tmpQ2[7]*tmpFx[9]; +tmpQ1[4] = + tmpQ2[4]*tmpFx[1] + tmpQ2[5]*tmpFx[4] + tmpQ2[6]*tmpFx[7] + tmpQ2[7]*tmpFx[10]; +tmpQ1[5] = + tmpQ2[4]*tmpFx[2] + tmpQ2[5]*tmpFx[5] + tmpQ2[6]*tmpFx[8] + tmpQ2[7]*tmpFx[11]; +tmpQ1[6] = + tmpQ2[8]*tmpFx[0] + tmpQ2[9]*tmpFx[3] + tmpQ2[10]*tmpFx[6] + tmpQ2[11]*tmpFx[9]; +tmpQ1[7] = + tmpQ2[8]*tmpFx[1] + tmpQ2[9]*tmpFx[4] + tmpQ2[10]*tmpFx[7] + tmpQ2[11]*tmpFx[10]; +tmpQ1[8] = + tmpQ2[8]*tmpFx[2] + tmpQ2[9]*tmpFx[5] + tmpQ2[10]*tmpFx[8] + tmpQ2[11]*tmpFx[11]; } void acado_setObjR1R2( real_t* const tmpFu, real_t* const tmpObjS, real_t* const tmpR1, real_t* const tmpR2 ) @@ -315,60 +190,24 @@ tmpR1[0] = + tmpR2[0]*tmpFu[0] + tmpR2[1]*tmpFu[1] + tmpR2[2]*tmpFu[2] + tmpR2[3 void acado_setObjQN1QN2( real_t* const tmpFx, real_t* const tmpObjSEndTerm, real_t* const tmpQN1, real_t* const tmpQN2 ) { -tmpQN2[0] = + tmpFx[0]*tmpObjSEndTerm[0] + tmpFx[6]*tmpObjSEndTerm[3] + tmpFx[12]*tmpObjSEndTerm[6]; -tmpQN2[1] = + tmpFx[0]*tmpObjSEndTerm[1] + tmpFx[6]*tmpObjSEndTerm[4] + tmpFx[12]*tmpObjSEndTerm[7]; -tmpQN2[2] = + tmpFx[0]*tmpObjSEndTerm[2] + tmpFx[6]*tmpObjSEndTerm[5] + tmpFx[12]*tmpObjSEndTerm[8]; -tmpQN2[3] = + tmpFx[1]*tmpObjSEndTerm[0] + tmpFx[7]*tmpObjSEndTerm[3] + tmpFx[13]*tmpObjSEndTerm[6]; -tmpQN2[4] = + tmpFx[1]*tmpObjSEndTerm[1] + tmpFx[7]*tmpObjSEndTerm[4] + tmpFx[13]*tmpObjSEndTerm[7]; -tmpQN2[5] = + tmpFx[1]*tmpObjSEndTerm[2] + tmpFx[7]*tmpObjSEndTerm[5] + tmpFx[13]*tmpObjSEndTerm[8]; -tmpQN2[6] = + tmpFx[2]*tmpObjSEndTerm[0] + tmpFx[8]*tmpObjSEndTerm[3] + tmpFx[14]*tmpObjSEndTerm[6]; -tmpQN2[7] = + tmpFx[2]*tmpObjSEndTerm[1] + tmpFx[8]*tmpObjSEndTerm[4] + tmpFx[14]*tmpObjSEndTerm[7]; -tmpQN2[8] = + tmpFx[2]*tmpObjSEndTerm[2] + tmpFx[8]*tmpObjSEndTerm[5] + tmpFx[14]*tmpObjSEndTerm[8]; -tmpQN2[9] = + tmpFx[3]*tmpObjSEndTerm[0] + tmpFx[9]*tmpObjSEndTerm[3] + tmpFx[15]*tmpObjSEndTerm[6]; -tmpQN2[10] = + tmpFx[3]*tmpObjSEndTerm[1] + tmpFx[9]*tmpObjSEndTerm[4] + tmpFx[15]*tmpObjSEndTerm[7]; -tmpQN2[11] = + tmpFx[3]*tmpObjSEndTerm[2] + tmpFx[9]*tmpObjSEndTerm[5] + tmpFx[15]*tmpObjSEndTerm[8]; -tmpQN2[12] = + tmpFx[4]*tmpObjSEndTerm[0] + tmpFx[10]*tmpObjSEndTerm[3] + tmpFx[16]*tmpObjSEndTerm[6]; -tmpQN2[13] = + tmpFx[4]*tmpObjSEndTerm[1] + tmpFx[10]*tmpObjSEndTerm[4] + tmpFx[16]*tmpObjSEndTerm[7]; -tmpQN2[14] = + tmpFx[4]*tmpObjSEndTerm[2] + tmpFx[10]*tmpObjSEndTerm[5] + tmpFx[16]*tmpObjSEndTerm[8]; -tmpQN2[15] = + tmpFx[5]*tmpObjSEndTerm[0] + tmpFx[11]*tmpObjSEndTerm[3] + tmpFx[17]*tmpObjSEndTerm[6]; -tmpQN2[16] = + tmpFx[5]*tmpObjSEndTerm[1] + tmpFx[11]*tmpObjSEndTerm[4] + tmpFx[17]*tmpObjSEndTerm[7]; -tmpQN2[17] = + tmpFx[5]*tmpObjSEndTerm[2] + tmpFx[11]*tmpObjSEndTerm[5] + tmpFx[17]*tmpObjSEndTerm[8]; -tmpQN1[0] = + tmpQN2[0]*tmpFx[0] + tmpQN2[1]*tmpFx[6] + tmpQN2[2]*tmpFx[12]; -tmpQN1[1] = + tmpQN2[0]*tmpFx[1] + tmpQN2[1]*tmpFx[7] + tmpQN2[2]*tmpFx[13]; -tmpQN1[2] = + tmpQN2[0]*tmpFx[2] + tmpQN2[1]*tmpFx[8] + tmpQN2[2]*tmpFx[14]; -tmpQN1[3] = + tmpQN2[0]*tmpFx[3] + tmpQN2[1]*tmpFx[9] + tmpQN2[2]*tmpFx[15]; -tmpQN1[4] = + tmpQN2[0]*tmpFx[4] + tmpQN2[1]*tmpFx[10] + tmpQN2[2]*tmpFx[16]; -tmpQN1[5] = + tmpQN2[0]*tmpFx[5] + tmpQN2[1]*tmpFx[11] + tmpQN2[2]*tmpFx[17]; -tmpQN1[6] = + tmpQN2[3]*tmpFx[0] + tmpQN2[4]*tmpFx[6] + tmpQN2[5]*tmpFx[12]; -tmpQN1[7] = + tmpQN2[3]*tmpFx[1] + tmpQN2[4]*tmpFx[7] + tmpQN2[5]*tmpFx[13]; -tmpQN1[8] = + tmpQN2[3]*tmpFx[2] + tmpQN2[4]*tmpFx[8] + tmpQN2[5]*tmpFx[14]; -tmpQN1[9] = + tmpQN2[3]*tmpFx[3] + tmpQN2[4]*tmpFx[9] + tmpQN2[5]*tmpFx[15]; -tmpQN1[10] = + tmpQN2[3]*tmpFx[4] + tmpQN2[4]*tmpFx[10] + tmpQN2[5]*tmpFx[16]; -tmpQN1[11] = + tmpQN2[3]*tmpFx[5] + tmpQN2[4]*tmpFx[11] + tmpQN2[5]*tmpFx[17]; -tmpQN1[12] = + tmpQN2[6]*tmpFx[0] + tmpQN2[7]*tmpFx[6] + tmpQN2[8]*tmpFx[12]; -tmpQN1[13] = + tmpQN2[6]*tmpFx[1] + tmpQN2[7]*tmpFx[7] + tmpQN2[8]*tmpFx[13]; -tmpQN1[14] = + tmpQN2[6]*tmpFx[2] + tmpQN2[7]*tmpFx[8] + tmpQN2[8]*tmpFx[14]; -tmpQN1[15] = + tmpQN2[6]*tmpFx[3] + tmpQN2[7]*tmpFx[9] + tmpQN2[8]*tmpFx[15]; -tmpQN1[16] = + tmpQN2[6]*tmpFx[4] + tmpQN2[7]*tmpFx[10] + tmpQN2[8]*tmpFx[16]; -tmpQN1[17] = + tmpQN2[6]*tmpFx[5] + tmpQN2[7]*tmpFx[11] + tmpQN2[8]*tmpFx[17]; -tmpQN1[18] = + tmpQN2[9]*tmpFx[0] + tmpQN2[10]*tmpFx[6] + tmpQN2[11]*tmpFx[12]; -tmpQN1[19] = + tmpQN2[9]*tmpFx[1] + tmpQN2[10]*tmpFx[7] + tmpQN2[11]*tmpFx[13]; -tmpQN1[20] = + tmpQN2[9]*tmpFx[2] + tmpQN2[10]*tmpFx[8] + tmpQN2[11]*tmpFx[14]; -tmpQN1[21] = + tmpQN2[9]*tmpFx[3] + tmpQN2[10]*tmpFx[9] + tmpQN2[11]*tmpFx[15]; -tmpQN1[22] = + tmpQN2[9]*tmpFx[4] + tmpQN2[10]*tmpFx[10] + tmpQN2[11]*tmpFx[16]; -tmpQN1[23] = + tmpQN2[9]*tmpFx[5] + tmpQN2[10]*tmpFx[11] + tmpQN2[11]*tmpFx[17]; -tmpQN1[24] = + tmpQN2[12]*tmpFx[0] + tmpQN2[13]*tmpFx[6] + tmpQN2[14]*tmpFx[12]; -tmpQN1[25] = + tmpQN2[12]*tmpFx[1] + tmpQN2[13]*tmpFx[7] + tmpQN2[14]*tmpFx[13]; -tmpQN1[26] = + tmpQN2[12]*tmpFx[2] + tmpQN2[13]*tmpFx[8] + tmpQN2[14]*tmpFx[14]; -tmpQN1[27] = + tmpQN2[12]*tmpFx[3] + tmpQN2[13]*tmpFx[9] + tmpQN2[14]*tmpFx[15]; -tmpQN1[28] = + tmpQN2[12]*tmpFx[4] + tmpQN2[13]*tmpFx[10] + tmpQN2[14]*tmpFx[16]; -tmpQN1[29] = + tmpQN2[12]*tmpFx[5] + tmpQN2[13]*tmpFx[11] + tmpQN2[14]*tmpFx[17]; -tmpQN1[30] = + tmpQN2[15]*tmpFx[0] + tmpQN2[16]*tmpFx[6] + tmpQN2[17]*tmpFx[12]; -tmpQN1[31] = + tmpQN2[15]*tmpFx[1] + tmpQN2[16]*tmpFx[7] + tmpQN2[17]*tmpFx[13]; -tmpQN1[32] = + tmpQN2[15]*tmpFx[2] + tmpQN2[16]*tmpFx[8] + tmpQN2[17]*tmpFx[14]; -tmpQN1[33] = + tmpQN2[15]*tmpFx[3] + tmpQN2[16]*tmpFx[9] + tmpQN2[17]*tmpFx[15]; -tmpQN1[34] = + tmpQN2[15]*tmpFx[4] + tmpQN2[16]*tmpFx[10] + tmpQN2[17]*tmpFx[16]; -tmpQN1[35] = + tmpQN2[15]*tmpFx[5] + tmpQN2[16]*tmpFx[11] + tmpQN2[17]*tmpFx[17]; +tmpQN2[0] = + tmpFx[0]*tmpObjSEndTerm[0] + tmpFx[3]*tmpObjSEndTerm[3] + tmpFx[6]*tmpObjSEndTerm[6]; +tmpQN2[1] = + tmpFx[0]*tmpObjSEndTerm[1] + tmpFx[3]*tmpObjSEndTerm[4] + tmpFx[6]*tmpObjSEndTerm[7]; +tmpQN2[2] = + tmpFx[0]*tmpObjSEndTerm[2] + tmpFx[3]*tmpObjSEndTerm[5] + tmpFx[6]*tmpObjSEndTerm[8]; +tmpQN2[3] = + tmpFx[1]*tmpObjSEndTerm[0] + tmpFx[4]*tmpObjSEndTerm[3] + tmpFx[7]*tmpObjSEndTerm[6]; +tmpQN2[4] = + tmpFx[1]*tmpObjSEndTerm[1] + tmpFx[4]*tmpObjSEndTerm[4] + tmpFx[7]*tmpObjSEndTerm[7]; +tmpQN2[5] = + tmpFx[1]*tmpObjSEndTerm[2] + tmpFx[4]*tmpObjSEndTerm[5] + tmpFx[7]*tmpObjSEndTerm[8]; +tmpQN2[6] = + tmpFx[2]*tmpObjSEndTerm[0] + tmpFx[5]*tmpObjSEndTerm[3] + tmpFx[8]*tmpObjSEndTerm[6]; +tmpQN2[7] = + tmpFx[2]*tmpObjSEndTerm[1] + tmpFx[5]*tmpObjSEndTerm[4] + tmpFx[8]*tmpObjSEndTerm[7]; +tmpQN2[8] = + tmpFx[2]*tmpObjSEndTerm[2] + tmpFx[5]*tmpObjSEndTerm[5] + tmpFx[8]*tmpObjSEndTerm[8]; +tmpQN1[0] = + tmpQN2[0]*tmpFx[0] + tmpQN2[1]*tmpFx[3] + tmpQN2[2]*tmpFx[6]; +tmpQN1[1] = + tmpQN2[0]*tmpFx[1] + tmpQN2[1]*tmpFx[4] + tmpQN2[2]*tmpFx[7]; +tmpQN1[2] = + tmpQN2[0]*tmpFx[2] + tmpQN2[1]*tmpFx[5] + tmpQN2[2]*tmpFx[8]; +tmpQN1[3] = + tmpQN2[3]*tmpFx[0] + tmpQN2[4]*tmpFx[3] + tmpQN2[5]*tmpFx[6]; +tmpQN1[4] = + tmpQN2[3]*tmpFx[1] + tmpQN2[4]*tmpFx[4] + tmpQN2[5]*tmpFx[7]; +tmpQN1[5] = + tmpQN2[3]*tmpFx[2] + tmpQN2[4]*tmpFx[5] + tmpQN2[5]*tmpFx[8]; +tmpQN1[6] = + tmpQN2[6]*tmpFx[0] + tmpQN2[7]*tmpFx[3] + tmpQN2[8]*tmpFx[6]; +tmpQN1[7] = + tmpQN2[6]*tmpFx[1] + tmpQN2[7]*tmpFx[4] + tmpQN2[8]*tmpFx[7]; +tmpQN1[8] = + tmpQN2[6]*tmpFx[2] + tmpQN2[7]*tmpFx[5] + tmpQN2[8]*tmpFx[8]; } void acado_evaluateObjective( ) @@ -376,15 +215,12 @@ void acado_evaluateObjective( ) int runObj; for (runObj = 0; runObj < 20; ++runObj) { -acadoWorkspace.objValueIn[0] = acadoVariables.x[runObj * 6]; -acadoWorkspace.objValueIn[1] = acadoVariables.x[runObj * 6 + 1]; -acadoWorkspace.objValueIn[2] = acadoVariables.x[runObj * 6 + 2]; -acadoWorkspace.objValueIn[3] = acadoVariables.x[runObj * 6 + 3]; -acadoWorkspace.objValueIn[4] = acadoVariables.x[runObj * 6 + 4]; -acadoWorkspace.objValueIn[5] = acadoVariables.x[runObj * 6 + 5]; -acadoWorkspace.objValueIn[6] = acadoVariables.u[runObj]; -acadoWorkspace.objValueIn[7] = acadoVariables.od[runObj * 2]; -acadoWorkspace.objValueIn[8] = acadoVariables.od[runObj * 2 + 1]; +acadoWorkspace.objValueIn[0] = acadoVariables.x[runObj * 3]; +acadoWorkspace.objValueIn[1] = acadoVariables.x[runObj * 3 + 1]; +acadoWorkspace.objValueIn[2] = acadoVariables.x[runObj * 3 + 2]; +acadoWorkspace.objValueIn[3] = acadoVariables.u[runObj]; +acadoWorkspace.objValueIn[4] = acadoVariables.od[runObj * 2]; +acadoWorkspace.objValueIn[5] = acadoVariables.od[runObj * 2 + 1]; acado_evaluateLSQ( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut ); acadoWorkspace.Dy[runObj * 4] = acadoWorkspace.objValueOut[0]; @@ -392,19 +228,16 @@ acadoWorkspace.Dy[runObj * 4 + 1] = acadoWorkspace.objValueOut[1]; acadoWorkspace.Dy[runObj * 4 + 2] = acadoWorkspace.objValueOut[2]; acadoWorkspace.Dy[runObj * 4 + 3] = acadoWorkspace.objValueOut[3]; -acado_setObjQ1Q2( &(acadoWorkspace.objValueOut[ 4 ]), &(acadoVariables.W[ runObj * 16 ]), &(acadoWorkspace.Q1[ runObj * 36 ]), &(acadoWorkspace.Q2[ runObj * 24 ]) ); +acado_setObjQ1Q2( &(acadoWorkspace.objValueOut[ 4 ]), &(acadoVariables.W[ runObj * 16 ]), &(acadoWorkspace.Q1[ runObj * 9 ]), &(acadoWorkspace.Q2[ runObj * 12 ]) ); -acado_setObjR1R2( &(acadoWorkspace.objValueOut[ 28 ]), &(acadoVariables.W[ runObj * 16 ]), &(acadoWorkspace.R1[ runObj ]), &(acadoWorkspace.R2[ runObj * 4 ]) ); +acado_setObjR1R2( &(acadoWorkspace.objValueOut[ 16 ]), &(acadoVariables.W[ runObj * 16 ]), &(acadoWorkspace.R1[ runObj ]), &(acadoWorkspace.R2[ runObj * 4 ]) ); } -acadoWorkspace.objValueIn[0] = acadoVariables.x[120]; -acadoWorkspace.objValueIn[1] = acadoVariables.x[121]; -acadoWorkspace.objValueIn[2] = acadoVariables.x[122]; -acadoWorkspace.objValueIn[3] = acadoVariables.x[123]; -acadoWorkspace.objValueIn[4] = acadoVariables.x[124]; -acadoWorkspace.objValueIn[5] = acadoVariables.x[125]; -acadoWorkspace.objValueIn[6] = acadoVariables.od[40]; -acadoWorkspace.objValueIn[7] = acadoVariables.od[41]; +acadoWorkspace.objValueIn[0] = acadoVariables.x[60]; +acadoWorkspace.objValueIn[1] = acadoVariables.x[61]; +acadoWorkspace.objValueIn[2] = acadoVariables.x[62]; +acadoWorkspace.objValueIn[3] = acadoVariables.od[40]; +acadoWorkspace.objValueIn[4] = acadoVariables.od[41]; acado_evaluateLSQEndTerm( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut ); acadoWorkspace.DyN[0] = acadoWorkspace.objValueOut[0]; @@ -417,12 +250,9 @@ acado_setObjQN1QN2( &(acadoWorkspace.objValueOut[ 3 ]), acadoVariables.WN, acado void acado_multGxd( real_t* const dOld, real_t* const Gx1, real_t* const dNew ) { -dNew[0] += + Gx1[0]*dOld[0] + Gx1[1]*dOld[1] + Gx1[2]*dOld[2] + Gx1[3]*dOld[3] + Gx1[4]*dOld[4] + Gx1[5]*dOld[5]; -dNew[1] += + Gx1[6]*dOld[0] + Gx1[7]*dOld[1] + Gx1[8]*dOld[2] + Gx1[9]*dOld[3] + Gx1[10]*dOld[4] + Gx1[11]*dOld[5]; -dNew[2] += + Gx1[12]*dOld[0] + Gx1[13]*dOld[1] + Gx1[14]*dOld[2] + Gx1[15]*dOld[3] + Gx1[16]*dOld[4] + Gx1[17]*dOld[5]; -dNew[3] += + Gx1[18]*dOld[0] + Gx1[19]*dOld[1] + Gx1[20]*dOld[2] + Gx1[21]*dOld[3] + Gx1[22]*dOld[4] + Gx1[23]*dOld[5]; -dNew[4] += + Gx1[24]*dOld[0] + Gx1[25]*dOld[1] + Gx1[26]*dOld[2] + Gx1[27]*dOld[3] + Gx1[28]*dOld[4] + Gx1[29]*dOld[5]; -dNew[5] += + Gx1[30]*dOld[0] + Gx1[31]*dOld[1] + Gx1[32]*dOld[2] + Gx1[33]*dOld[3] + Gx1[34]*dOld[4] + Gx1[35]*dOld[5]; +dNew[0] += + Gx1[0]*dOld[0] + Gx1[1]*dOld[1] + Gx1[2]*dOld[2]; +dNew[1] += + Gx1[3]*dOld[0] + Gx1[4]*dOld[1] + Gx1[5]*dOld[2]; +dNew[2] += + Gx1[6]*dOld[0] + Gx1[7]*dOld[1] + Gx1[8]*dOld[2]; } void acado_moveGxT( real_t* const Gx1, real_t* const Gx2 ) @@ -436,83 +266,26 @@ Gx2[5] = Gx1[5]; Gx2[6] = Gx1[6]; Gx2[7] = Gx1[7]; Gx2[8] = Gx1[8]; -Gx2[9] = Gx1[9]; -Gx2[10] = Gx1[10]; -Gx2[11] = Gx1[11]; -Gx2[12] = Gx1[12]; -Gx2[13] = Gx1[13]; -Gx2[14] = Gx1[14]; -Gx2[15] = Gx1[15]; -Gx2[16] = Gx1[16]; -Gx2[17] = Gx1[17]; -Gx2[18] = Gx1[18]; -Gx2[19] = Gx1[19]; -Gx2[20] = Gx1[20]; -Gx2[21] = Gx1[21]; -Gx2[22] = Gx1[22]; -Gx2[23] = Gx1[23]; -Gx2[24] = Gx1[24]; -Gx2[25] = Gx1[25]; -Gx2[26] = Gx1[26]; -Gx2[27] = Gx1[27]; -Gx2[28] = Gx1[28]; -Gx2[29] = Gx1[29]; -Gx2[30] = Gx1[30]; -Gx2[31] = Gx1[31]; -Gx2[32] = Gx1[32]; -Gx2[33] = Gx1[33]; -Gx2[34] = Gx1[34]; -Gx2[35] = Gx1[35]; } void acado_multGxGx( real_t* const Gx1, real_t* const Gx2, real_t* const Gx3 ) { -Gx3[0] = + Gx1[0]*Gx2[0] + Gx1[1]*Gx2[6] + Gx1[2]*Gx2[12] + Gx1[3]*Gx2[18] + Gx1[4]*Gx2[24] + Gx1[5]*Gx2[30]; -Gx3[1] = + Gx1[0]*Gx2[1] + Gx1[1]*Gx2[7] + Gx1[2]*Gx2[13] + Gx1[3]*Gx2[19] + Gx1[4]*Gx2[25] + Gx1[5]*Gx2[31]; -Gx3[2] = + Gx1[0]*Gx2[2] + Gx1[1]*Gx2[8] + Gx1[2]*Gx2[14] + Gx1[3]*Gx2[20] + Gx1[4]*Gx2[26] + Gx1[5]*Gx2[32]; -Gx3[3] = + Gx1[0]*Gx2[3] + Gx1[1]*Gx2[9] + Gx1[2]*Gx2[15] + Gx1[3]*Gx2[21] + Gx1[4]*Gx2[27] + Gx1[5]*Gx2[33]; -Gx3[4] = + Gx1[0]*Gx2[4] + Gx1[1]*Gx2[10] + Gx1[2]*Gx2[16] + Gx1[3]*Gx2[22] + Gx1[4]*Gx2[28] + Gx1[5]*Gx2[34]; -Gx3[5] = + Gx1[0]*Gx2[5] + Gx1[1]*Gx2[11] + Gx1[2]*Gx2[17] + Gx1[3]*Gx2[23] + Gx1[4]*Gx2[29] + Gx1[5]*Gx2[35]; -Gx3[6] = + Gx1[6]*Gx2[0] + Gx1[7]*Gx2[6] + Gx1[8]*Gx2[12] + Gx1[9]*Gx2[18] + Gx1[10]*Gx2[24] + Gx1[11]*Gx2[30]; -Gx3[7] = + Gx1[6]*Gx2[1] + Gx1[7]*Gx2[7] + Gx1[8]*Gx2[13] + Gx1[9]*Gx2[19] + Gx1[10]*Gx2[25] + Gx1[11]*Gx2[31]; -Gx3[8] = + Gx1[6]*Gx2[2] + Gx1[7]*Gx2[8] + Gx1[8]*Gx2[14] + Gx1[9]*Gx2[20] + Gx1[10]*Gx2[26] + Gx1[11]*Gx2[32]; -Gx3[9] = + Gx1[6]*Gx2[3] + Gx1[7]*Gx2[9] + Gx1[8]*Gx2[15] + Gx1[9]*Gx2[21] + Gx1[10]*Gx2[27] + Gx1[11]*Gx2[33]; -Gx3[10] = + Gx1[6]*Gx2[4] + Gx1[7]*Gx2[10] + Gx1[8]*Gx2[16] + Gx1[9]*Gx2[22] + Gx1[10]*Gx2[28] + Gx1[11]*Gx2[34]; -Gx3[11] = + Gx1[6]*Gx2[5] + Gx1[7]*Gx2[11] + Gx1[8]*Gx2[17] + Gx1[9]*Gx2[23] + Gx1[10]*Gx2[29] + Gx1[11]*Gx2[35]; -Gx3[12] = + Gx1[12]*Gx2[0] + Gx1[13]*Gx2[6] + Gx1[14]*Gx2[12] + Gx1[15]*Gx2[18] + Gx1[16]*Gx2[24] + Gx1[17]*Gx2[30]; -Gx3[13] = + Gx1[12]*Gx2[1] + Gx1[13]*Gx2[7] + Gx1[14]*Gx2[13] + Gx1[15]*Gx2[19] + Gx1[16]*Gx2[25] + Gx1[17]*Gx2[31]; -Gx3[14] = + Gx1[12]*Gx2[2] + Gx1[13]*Gx2[8] + Gx1[14]*Gx2[14] + Gx1[15]*Gx2[20] + Gx1[16]*Gx2[26] + Gx1[17]*Gx2[32]; -Gx3[15] = + Gx1[12]*Gx2[3] + Gx1[13]*Gx2[9] + Gx1[14]*Gx2[15] + Gx1[15]*Gx2[21] + Gx1[16]*Gx2[27] + Gx1[17]*Gx2[33]; -Gx3[16] = + Gx1[12]*Gx2[4] + Gx1[13]*Gx2[10] + Gx1[14]*Gx2[16] + Gx1[15]*Gx2[22] + Gx1[16]*Gx2[28] + Gx1[17]*Gx2[34]; -Gx3[17] = + Gx1[12]*Gx2[5] + Gx1[13]*Gx2[11] + Gx1[14]*Gx2[17] + Gx1[15]*Gx2[23] + Gx1[16]*Gx2[29] + Gx1[17]*Gx2[35]; -Gx3[18] = + Gx1[18]*Gx2[0] + Gx1[19]*Gx2[6] + Gx1[20]*Gx2[12] + Gx1[21]*Gx2[18] + Gx1[22]*Gx2[24] + Gx1[23]*Gx2[30]; -Gx3[19] = + Gx1[18]*Gx2[1] + Gx1[19]*Gx2[7] + Gx1[20]*Gx2[13] + Gx1[21]*Gx2[19] + Gx1[22]*Gx2[25] + Gx1[23]*Gx2[31]; -Gx3[20] = + Gx1[18]*Gx2[2] + Gx1[19]*Gx2[8] + Gx1[20]*Gx2[14] + Gx1[21]*Gx2[20] + Gx1[22]*Gx2[26] + Gx1[23]*Gx2[32]; -Gx3[21] = + Gx1[18]*Gx2[3] + Gx1[19]*Gx2[9] + Gx1[20]*Gx2[15] + Gx1[21]*Gx2[21] + Gx1[22]*Gx2[27] + Gx1[23]*Gx2[33]; -Gx3[22] = + Gx1[18]*Gx2[4] + Gx1[19]*Gx2[10] + Gx1[20]*Gx2[16] + Gx1[21]*Gx2[22] + Gx1[22]*Gx2[28] + Gx1[23]*Gx2[34]; -Gx3[23] = + Gx1[18]*Gx2[5] + Gx1[19]*Gx2[11] + Gx1[20]*Gx2[17] + Gx1[21]*Gx2[23] + Gx1[22]*Gx2[29] + Gx1[23]*Gx2[35]; -Gx3[24] = + Gx1[24]*Gx2[0] + Gx1[25]*Gx2[6] + Gx1[26]*Gx2[12] + Gx1[27]*Gx2[18] + Gx1[28]*Gx2[24] + Gx1[29]*Gx2[30]; -Gx3[25] = + Gx1[24]*Gx2[1] + Gx1[25]*Gx2[7] + Gx1[26]*Gx2[13] + Gx1[27]*Gx2[19] + Gx1[28]*Gx2[25] + Gx1[29]*Gx2[31]; -Gx3[26] = + Gx1[24]*Gx2[2] + Gx1[25]*Gx2[8] + Gx1[26]*Gx2[14] + Gx1[27]*Gx2[20] + Gx1[28]*Gx2[26] + Gx1[29]*Gx2[32]; -Gx3[27] = + Gx1[24]*Gx2[3] + Gx1[25]*Gx2[9] + Gx1[26]*Gx2[15] + Gx1[27]*Gx2[21] + Gx1[28]*Gx2[27] + Gx1[29]*Gx2[33]; -Gx3[28] = + Gx1[24]*Gx2[4] + Gx1[25]*Gx2[10] + Gx1[26]*Gx2[16] + Gx1[27]*Gx2[22] + Gx1[28]*Gx2[28] + Gx1[29]*Gx2[34]; -Gx3[29] = + Gx1[24]*Gx2[5] + Gx1[25]*Gx2[11] + Gx1[26]*Gx2[17] + Gx1[27]*Gx2[23] + Gx1[28]*Gx2[29] + Gx1[29]*Gx2[35]; -Gx3[30] = + Gx1[30]*Gx2[0] + Gx1[31]*Gx2[6] + Gx1[32]*Gx2[12] + Gx1[33]*Gx2[18] + Gx1[34]*Gx2[24] + Gx1[35]*Gx2[30]; -Gx3[31] = + Gx1[30]*Gx2[1] + Gx1[31]*Gx2[7] + Gx1[32]*Gx2[13] + Gx1[33]*Gx2[19] + Gx1[34]*Gx2[25] + Gx1[35]*Gx2[31]; -Gx3[32] = + Gx1[30]*Gx2[2] + Gx1[31]*Gx2[8] + Gx1[32]*Gx2[14] + Gx1[33]*Gx2[20] + Gx1[34]*Gx2[26] + Gx1[35]*Gx2[32]; -Gx3[33] = + Gx1[30]*Gx2[3] + Gx1[31]*Gx2[9] + Gx1[32]*Gx2[15] + Gx1[33]*Gx2[21] + Gx1[34]*Gx2[27] + Gx1[35]*Gx2[33]; -Gx3[34] = + Gx1[30]*Gx2[4] + Gx1[31]*Gx2[10] + Gx1[32]*Gx2[16] + Gx1[33]*Gx2[22] + Gx1[34]*Gx2[28] + Gx1[35]*Gx2[34]; -Gx3[35] = + Gx1[30]*Gx2[5] + Gx1[31]*Gx2[11] + Gx1[32]*Gx2[17] + Gx1[33]*Gx2[23] + Gx1[34]*Gx2[29] + Gx1[35]*Gx2[35]; +Gx3[0] = + Gx1[0]*Gx2[0] + Gx1[1]*Gx2[3] + Gx1[2]*Gx2[6]; +Gx3[1] = + Gx1[0]*Gx2[1] + Gx1[1]*Gx2[4] + Gx1[2]*Gx2[7]; +Gx3[2] = + Gx1[0]*Gx2[2] + Gx1[1]*Gx2[5] + Gx1[2]*Gx2[8]; +Gx3[3] = + Gx1[3]*Gx2[0] + Gx1[4]*Gx2[3] + Gx1[5]*Gx2[6]; +Gx3[4] = + Gx1[3]*Gx2[1] + Gx1[4]*Gx2[4] + Gx1[5]*Gx2[7]; +Gx3[5] = + Gx1[3]*Gx2[2] + Gx1[4]*Gx2[5] + Gx1[5]*Gx2[8]; +Gx3[6] = + Gx1[6]*Gx2[0] + Gx1[7]*Gx2[3] + Gx1[8]*Gx2[6]; +Gx3[7] = + Gx1[6]*Gx2[1] + Gx1[7]*Gx2[4] + Gx1[8]*Gx2[7]; +Gx3[8] = + Gx1[6]*Gx2[2] + Gx1[7]*Gx2[5] + Gx1[8]*Gx2[8]; } void acado_multGxGu( real_t* const Gx1, real_t* const Gu1, real_t* const Gu2 ) { -Gu2[0] = + Gx1[0]*Gu1[0] + Gx1[1]*Gu1[1] + Gx1[2]*Gu1[2] + Gx1[3]*Gu1[3] + Gx1[4]*Gu1[4] + Gx1[5]*Gu1[5]; -Gu2[1] = + Gx1[6]*Gu1[0] + Gx1[7]*Gu1[1] + Gx1[8]*Gu1[2] + Gx1[9]*Gu1[3] + Gx1[10]*Gu1[4] + Gx1[11]*Gu1[5]; -Gu2[2] = + Gx1[12]*Gu1[0] + Gx1[13]*Gu1[1] + Gx1[14]*Gu1[2] + Gx1[15]*Gu1[3] + Gx1[16]*Gu1[4] + Gx1[17]*Gu1[5]; -Gu2[3] = + Gx1[18]*Gu1[0] + Gx1[19]*Gu1[1] + Gx1[20]*Gu1[2] + Gx1[21]*Gu1[3] + Gx1[22]*Gu1[4] + Gx1[23]*Gu1[5]; -Gu2[4] = + Gx1[24]*Gu1[0] + Gx1[25]*Gu1[1] + Gx1[26]*Gu1[2] + Gx1[27]*Gu1[3] + Gx1[28]*Gu1[4] + Gx1[29]*Gu1[5]; -Gu2[5] = + Gx1[30]*Gu1[0] + Gx1[31]*Gu1[1] + Gx1[32]*Gu1[2] + Gx1[33]*Gu1[3] + Gx1[34]*Gu1[4] + Gx1[35]*Gu1[5]; +Gu2[0] = + Gx1[0]*Gu1[0] + Gx1[1]*Gu1[1] + Gx1[2]*Gu1[2]; +Gu2[1] = + Gx1[3]*Gu1[0] + Gx1[4]*Gu1[1] + Gx1[5]*Gu1[2]; +Gu2[2] = + Gx1[6]*Gu1[0] + Gx1[7]*Gu1[1] + Gx1[8]*Gu1[2]; } void acado_moveGuE( real_t* const Gu1, real_t* const Gu2 ) @@ -520,49 +293,40 @@ void acado_moveGuE( real_t* const Gu1, real_t* const Gu2 ) Gu2[0] = Gu1[0]; Gu2[1] = Gu1[1]; Gu2[2] = Gu1[2]; -Gu2[3] = Gu1[3]; -Gu2[4] = Gu1[4]; -Gu2[5] = Gu1[5]; } void acado_setBlockH11( int iRow, int iCol, real_t* const Gu1, real_t* const Gu2 ) { -acadoWorkspace.H[(iRow * 26 + 156) + (iCol + 6)] += + Gu1[0]*Gu2[0] + Gu1[1]*Gu2[1] + Gu1[2]*Gu2[2] + Gu1[3]*Gu2[3] + Gu1[4]*Gu2[4] + Gu1[5]*Gu2[5]; +acadoWorkspace.H[(iRow * 23 + 69) + (iCol + 3)] += + Gu1[0]*Gu2[0] + Gu1[1]*Gu2[1] + Gu1[2]*Gu2[2]; } void acado_setBlockH11_R1( int iRow, int iCol, real_t* const R11 ) { -acadoWorkspace.H[(iRow * 26 + 156) + (iCol + 6)] = R11[0]; +acadoWorkspace.H[(iRow * 23 + 69) + (iCol + 3)] = R11[0]; } void acado_zeroBlockH11( int iRow, int iCol ) { -acadoWorkspace.H[(iRow * 26 + 156) + (iCol + 6)] = 0.0000000000000000e+00; +acadoWorkspace.H[(iRow * 23 + 69) + (iCol + 3)] = 0.0000000000000000e+00; } void acado_copyHTH( int iRow, int iCol ) { -acadoWorkspace.H[(iRow * 26 + 156) + (iCol + 6)] = acadoWorkspace.H[(iCol * 26 + 156) + (iRow + 6)]; +acadoWorkspace.H[(iRow * 23 + 69) + (iCol + 3)] = acadoWorkspace.H[(iCol * 23 + 69) + (iRow + 3)]; } void acado_multQ1d( real_t* const Gx1, real_t* const dOld, real_t* const dNew ) { -dNew[0] = + Gx1[0]*dOld[0] + Gx1[1]*dOld[1] + Gx1[2]*dOld[2] + Gx1[3]*dOld[3] + Gx1[4]*dOld[4] + Gx1[5]*dOld[5]; -dNew[1] = + Gx1[6]*dOld[0] + Gx1[7]*dOld[1] + Gx1[8]*dOld[2] + Gx1[9]*dOld[3] + Gx1[10]*dOld[4] + Gx1[11]*dOld[5]; -dNew[2] = + Gx1[12]*dOld[0] + Gx1[13]*dOld[1] + Gx1[14]*dOld[2] + Gx1[15]*dOld[3] + Gx1[16]*dOld[4] + Gx1[17]*dOld[5]; -dNew[3] = + Gx1[18]*dOld[0] + Gx1[19]*dOld[1] + Gx1[20]*dOld[2] + Gx1[21]*dOld[3] + Gx1[22]*dOld[4] + Gx1[23]*dOld[5]; -dNew[4] = + Gx1[24]*dOld[0] + Gx1[25]*dOld[1] + Gx1[26]*dOld[2] + Gx1[27]*dOld[3] + Gx1[28]*dOld[4] + Gx1[29]*dOld[5]; -dNew[5] = + Gx1[30]*dOld[0] + Gx1[31]*dOld[1] + Gx1[32]*dOld[2] + Gx1[33]*dOld[3] + Gx1[34]*dOld[4] + Gx1[35]*dOld[5]; +dNew[0] = + Gx1[0]*dOld[0] + Gx1[1]*dOld[1] + Gx1[2]*dOld[2]; +dNew[1] = + Gx1[3]*dOld[0] + Gx1[4]*dOld[1] + Gx1[5]*dOld[2]; +dNew[2] = + Gx1[6]*dOld[0] + Gx1[7]*dOld[1] + Gx1[8]*dOld[2]; } void acado_multQN1d( real_t* const QN1, real_t* const dOld, real_t* const dNew ) { -dNew[0] = + acadoWorkspace.QN1[0]*dOld[0] + acadoWorkspace.QN1[1]*dOld[1] + acadoWorkspace.QN1[2]*dOld[2] + acadoWorkspace.QN1[3]*dOld[3] + acadoWorkspace.QN1[4]*dOld[4] + acadoWorkspace.QN1[5]*dOld[5]; -dNew[1] = + acadoWorkspace.QN1[6]*dOld[0] + acadoWorkspace.QN1[7]*dOld[1] + acadoWorkspace.QN1[8]*dOld[2] + acadoWorkspace.QN1[9]*dOld[3] + acadoWorkspace.QN1[10]*dOld[4] + acadoWorkspace.QN1[11]*dOld[5]; -dNew[2] = + acadoWorkspace.QN1[12]*dOld[0] + acadoWorkspace.QN1[13]*dOld[1] + acadoWorkspace.QN1[14]*dOld[2] + acadoWorkspace.QN1[15]*dOld[3] + acadoWorkspace.QN1[16]*dOld[4] + acadoWorkspace.QN1[17]*dOld[5]; -dNew[3] = + acadoWorkspace.QN1[18]*dOld[0] + acadoWorkspace.QN1[19]*dOld[1] + acadoWorkspace.QN1[20]*dOld[2] + acadoWorkspace.QN1[21]*dOld[3] + acadoWorkspace.QN1[22]*dOld[4] + acadoWorkspace.QN1[23]*dOld[5]; -dNew[4] = + acadoWorkspace.QN1[24]*dOld[0] + acadoWorkspace.QN1[25]*dOld[1] + acadoWorkspace.QN1[26]*dOld[2] + acadoWorkspace.QN1[27]*dOld[3] + acadoWorkspace.QN1[28]*dOld[4] + acadoWorkspace.QN1[29]*dOld[5]; -dNew[5] = + acadoWorkspace.QN1[30]*dOld[0] + acadoWorkspace.QN1[31]*dOld[1] + acadoWorkspace.QN1[32]*dOld[2] + acadoWorkspace.QN1[33]*dOld[3] + acadoWorkspace.QN1[34]*dOld[4] + acadoWorkspace.QN1[35]*dOld[5]; +dNew[0] = + acadoWorkspace.QN1[0]*dOld[0] + acadoWorkspace.QN1[1]*dOld[1] + acadoWorkspace.QN1[2]*dOld[2]; +dNew[1] = + acadoWorkspace.QN1[3]*dOld[0] + acadoWorkspace.QN1[4]*dOld[1] + acadoWorkspace.QN1[5]*dOld[2]; +dNew[2] = + acadoWorkspace.QN1[6]*dOld[0] + acadoWorkspace.QN1[7]*dOld[1] + acadoWorkspace.QN1[8]*dOld[2]; } void acado_multRDy( real_t* const R2, real_t* const Dy1, real_t* const RDy1 ) @@ -575,29 +339,23 @@ void acado_multQDy( real_t* const Q2, real_t* const Dy1, real_t* const QDy1 ) QDy1[0] = + Q2[0]*Dy1[0] + Q2[1]*Dy1[1] + Q2[2]*Dy1[2] + Q2[3]*Dy1[3]; QDy1[1] = + Q2[4]*Dy1[0] + Q2[5]*Dy1[1] + Q2[6]*Dy1[2] + Q2[7]*Dy1[3]; QDy1[2] = + Q2[8]*Dy1[0] + Q2[9]*Dy1[1] + Q2[10]*Dy1[2] + Q2[11]*Dy1[3]; -QDy1[3] = + Q2[12]*Dy1[0] + Q2[13]*Dy1[1] + Q2[14]*Dy1[2] + Q2[15]*Dy1[3]; -QDy1[4] = + Q2[16]*Dy1[0] + Q2[17]*Dy1[1] + Q2[18]*Dy1[2] + Q2[19]*Dy1[3]; -QDy1[5] = + Q2[20]*Dy1[0] + Q2[21]*Dy1[1] + Q2[22]*Dy1[2] + Q2[23]*Dy1[3]; } void acado_multEQDy( real_t* const E1, real_t* const QDy1, real_t* const U1 ) { -U1[0] += + E1[0]*QDy1[0] + E1[1]*QDy1[1] + E1[2]*QDy1[2] + E1[3]*QDy1[3] + E1[4]*QDy1[4] + E1[5]*QDy1[5]; +U1[0] += + E1[0]*QDy1[0] + E1[1]*QDy1[1] + E1[2]*QDy1[2]; } void acado_multQETGx( real_t* const E1, real_t* const Gx1, real_t* const H101 ) { -H101[0] += + E1[0]*Gx1[0] + E1[1]*Gx1[6] + E1[2]*Gx1[12] + E1[3]*Gx1[18] + E1[4]*Gx1[24] + E1[5]*Gx1[30]; -H101[1] += + E1[0]*Gx1[1] + E1[1]*Gx1[7] + E1[2]*Gx1[13] + E1[3]*Gx1[19] + E1[4]*Gx1[25] + E1[5]*Gx1[31]; -H101[2] += + E1[0]*Gx1[2] + E1[1]*Gx1[8] + E1[2]*Gx1[14] + E1[3]*Gx1[20] + E1[4]*Gx1[26] + E1[5]*Gx1[32]; -H101[3] += + E1[0]*Gx1[3] + E1[1]*Gx1[9] + E1[2]*Gx1[15] + E1[3]*Gx1[21] + E1[4]*Gx1[27] + E1[5]*Gx1[33]; -H101[4] += + E1[0]*Gx1[4] + E1[1]*Gx1[10] + E1[2]*Gx1[16] + E1[3]*Gx1[22] + E1[4]*Gx1[28] + E1[5]*Gx1[34]; -H101[5] += + E1[0]*Gx1[5] + E1[1]*Gx1[11] + E1[2]*Gx1[17] + E1[3]*Gx1[23] + E1[4]*Gx1[29] + E1[5]*Gx1[35]; +H101[0] += + E1[0]*Gx1[0] + E1[1]*Gx1[3] + E1[2]*Gx1[6]; +H101[1] += + E1[0]*Gx1[1] + E1[1]*Gx1[4] + E1[2]*Gx1[7]; +H101[2] += + E1[0]*Gx1[2] + E1[1]*Gx1[5] + E1[2]*Gx1[8]; } void acado_zeroBlockH10( real_t* const H101 ) { -{ int lCopy; for (lCopy = 0; lCopy < 6; lCopy++) H101[ lCopy ] = 0; } +{ int lCopy; for (lCopy = 0; lCopy < 3; lCopy++) H101[ lCopy ] = 0; } } void acado_multEDu( real_t* const E1, real_t* const U1, real_t* const dNew ) @@ -605,9 +363,6 @@ void acado_multEDu( real_t* const E1, real_t* const U1, real_t* const dNew ) dNew[0] += + E1[0]*U1[0]; dNew[1] += + E1[1]*U1[0]; dNew[2] += + E1[2]*U1[0]; -dNew[3] += + E1[3]*U1[0]; -dNew[4] += + E1[4]*U1[0]; -dNew[5] += + E1[5]*U1[0]; } void acado_zeroBlockH00( ) @@ -615,79 +370,25 @@ void acado_zeroBlockH00( ) acadoWorkspace.H[0] = 0.0000000000000000e+00; acadoWorkspace.H[1] = 0.0000000000000000e+00; acadoWorkspace.H[2] = 0.0000000000000000e+00; -acadoWorkspace.H[3] = 0.0000000000000000e+00; -acadoWorkspace.H[4] = 0.0000000000000000e+00; -acadoWorkspace.H[5] = 0.0000000000000000e+00; -acadoWorkspace.H[26] = 0.0000000000000000e+00; -acadoWorkspace.H[27] = 0.0000000000000000e+00; -acadoWorkspace.H[28] = 0.0000000000000000e+00; -acadoWorkspace.H[29] = 0.0000000000000000e+00; -acadoWorkspace.H[30] = 0.0000000000000000e+00; -acadoWorkspace.H[31] = 0.0000000000000000e+00; -acadoWorkspace.H[52] = 0.0000000000000000e+00; -acadoWorkspace.H[53] = 0.0000000000000000e+00; -acadoWorkspace.H[54] = 0.0000000000000000e+00; -acadoWorkspace.H[55] = 0.0000000000000000e+00; -acadoWorkspace.H[56] = 0.0000000000000000e+00; -acadoWorkspace.H[57] = 0.0000000000000000e+00; -acadoWorkspace.H[78] = 0.0000000000000000e+00; -acadoWorkspace.H[79] = 0.0000000000000000e+00; -acadoWorkspace.H[80] = 0.0000000000000000e+00; -acadoWorkspace.H[81] = 0.0000000000000000e+00; -acadoWorkspace.H[82] = 0.0000000000000000e+00; -acadoWorkspace.H[83] = 0.0000000000000000e+00; -acadoWorkspace.H[104] = 0.0000000000000000e+00; -acadoWorkspace.H[105] = 0.0000000000000000e+00; -acadoWorkspace.H[106] = 0.0000000000000000e+00; -acadoWorkspace.H[107] = 0.0000000000000000e+00; -acadoWorkspace.H[108] = 0.0000000000000000e+00; -acadoWorkspace.H[109] = 0.0000000000000000e+00; -acadoWorkspace.H[130] = 0.0000000000000000e+00; -acadoWorkspace.H[131] = 0.0000000000000000e+00; -acadoWorkspace.H[132] = 0.0000000000000000e+00; -acadoWorkspace.H[133] = 0.0000000000000000e+00; -acadoWorkspace.H[134] = 0.0000000000000000e+00; -acadoWorkspace.H[135] = 0.0000000000000000e+00; +acadoWorkspace.H[23] = 0.0000000000000000e+00; +acadoWorkspace.H[24] = 0.0000000000000000e+00; +acadoWorkspace.H[25] = 0.0000000000000000e+00; +acadoWorkspace.H[46] = 0.0000000000000000e+00; +acadoWorkspace.H[47] = 0.0000000000000000e+00; +acadoWorkspace.H[48] = 0.0000000000000000e+00; } void acado_multCTQC( real_t* const Gx1, real_t* const Gx2 ) { -acadoWorkspace.H[0] += + Gx1[0]*Gx2[0] + Gx1[6]*Gx2[6] + Gx1[12]*Gx2[12] + Gx1[18]*Gx2[18] + Gx1[24]*Gx2[24] + Gx1[30]*Gx2[30]; -acadoWorkspace.H[1] += + Gx1[0]*Gx2[1] + Gx1[6]*Gx2[7] + Gx1[12]*Gx2[13] + Gx1[18]*Gx2[19] + Gx1[24]*Gx2[25] + Gx1[30]*Gx2[31]; -acadoWorkspace.H[2] += + Gx1[0]*Gx2[2] + Gx1[6]*Gx2[8] + Gx1[12]*Gx2[14] + Gx1[18]*Gx2[20] + Gx1[24]*Gx2[26] + Gx1[30]*Gx2[32]; -acadoWorkspace.H[3] += + Gx1[0]*Gx2[3] + Gx1[6]*Gx2[9] + Gx1[12]*Gx2[15] + Gx1[18]*Gx2[21] + Gx1[24]*Gx2[27] + Gx1[30]*Gx2[33]; -acadoWorkspace.H[4] += + Gx1[0]*Gx2[4] + Gx1[6]*Gx2[10] + Gx1[12]*Gx2[16] + Gx1[18]*Gx2[22] + Gx1[24]*Gx2[28] + Gx1[30]*Gx2[34]; -acadoWorkspace.H[5] += + Gx1[0]*Gx2[5] + Gx1[6]*Gx2[11] + Gx1[12]*Gx2[17] + Gx1[18]*Gx2[23] + Gx1[24]*Gx2[29] + Gx1[30]*Gx2[35]; -acadoWorkspace.H[26] += + Gx1[1]*Gx2[0] + Gx1[7]*Gx2[6] + Gx1[13]*Gx2[12] + Gx1[19]*Gx2[18] + Gx1[25]*Gx2[24] + Gx1[31]*Gx2[30]; -acadoWorkspace.H[27] += + Gx1[1]*Gx2[1] + Gx1[7]*Gx2[7] + Gx1[13]*Gx2[13] + Gx1[19]*Gx2[19] + Gx1[25]*Gx2[25] + Gx1[31]*Gx2[31]; -acadoWorkspace.H[28] += + Gx1[1]*Gx2[2] + Gx1[7]*Gx2[8] + Gx1[13]*Gx2[14] + Gx1[19]*Gx2[20] + Gx1[25]*Gx2[26] + Gx1[31]*Gx2[32]; -acadoWorkspace.H[29] += + Gx1[1]*Gx2[3] + Gx1[7]*Gx2[9] + Gx1[13]*Gx2[15] + Gx1[19]*Gx2[21] + Gx1[25]*Gx2[27] + Gx1[31]*Gx2[33]; -acadoWorkspace.H[30] += + Gx1[1]*Gx2[4] + Gx1[7]*Gx2[10] + Gx1[13]*Gx2[16] + Gx1[19]*Gx2[22] + Gx1[25]*Gx2[28] + Gx1[31]*Gx2[34]; -acadoWorkspace.H[31] += + Gx1[1]*Gx2[5] + Gx1[7]*Gx2[11] + Gx1[13]*Gx2[17] + Gx1[19]*Gx2[23] + Gx1[25]*Gx2[29] + Gx1[31]*Gx2[35]; -acadoWorkspace.H[52] += + Gx1[2]*Gx2[0] + Gx1[8]*Gx2[6] + Gx1[14]*Gx2[12] + Gx1[20]*Gx2[18] + Gx1[26]*Gx2[24] + Gx1[32]*Gx2[30]; -acadoWorkspace.H[53] += + Gx1[2]*Gx2[1] + Gx1[8]*Gx2[7] + Gx1[14]*Gx2[13] + Gx1[20]*Gx2[19] + Gx1[26]*Gx2[25] + Gx1[32]*Gx2[31]; -acadoWorkspace.H[54] += + Gx1[2]*Gx2[2] + Gx1[8]*Gx2[8] + Gx1[14]*Gx2[14] + Gx1[20]*Gx2[20] + Gx1[26]*Gx2[26] + Gx1[32]*Gx2[32]; -acadoWorkspace.H[55] += + Gx1[2]*Gx2[3] + Gx1[8]*Gx2[9] + Gx1[14]*Gx2[15] + Gx1[20]*Gx2[21] + Gx1[26]*Gx2[27] + Gx1[32]*Gx2[33]; -acadoWorkspace.H[56] += + Gx1[2]*Gx2[4] + Gx1[8]*Gx2[10] + Gx1[14]*Gx2[16] + Gx1[20]*Gx2[22] + Gx1[26]*Gx2[28] + Gx1[32]*Gx2[34]; -acadoWorkspace.H[57] += + Gx1[2]*Gx2[5] + Gx1[8]*Gx2[11] + Gx1[14]*Gx2[17] + Gx1[20]*Gx2[23] + Gx1[26]*Gx2[29] + Gx1[32]*Gx2[35]; -acadoWorkspace.H[78] += + Gx1[3]*Gx2[0] + Gx1[9]*Gx2[6] + Gx1[15]*Gx2[12] + Gx1[21]*Gx2[18] + Gx1[27]*Gx2[24] + Gx1[33]*Gx2[30]; -acadoWorkspace.H[79] += + Gx1[3]*Gx2[1] + Gx1[9]*Gx2[7] + Gx1[15]*Gx2[13] + Gx1[21]*Gx2[19] + Gx1[27]*Gx2[25] + Gx1[33]*Gx2[31]; -acadoWorkspace.H[80] += + Gx1[3]*Gx2[2] + Gx1[9]*Gx2[8] + Gx1[15]*Gx2[14] + Gx1[21]*Gx2[20] + Gx1[27]*Gx2[26] + Gx1[33]*Gx2[32]; -acadoWorkspace.H[81] += + Gx1[3]*Gx2[3] + Gx1[9]*Gx2[9] + Gx1[15]*Gx2[15] + Gx1[21]*Gx2[21] + Gx1[27]*Gx2[27] + Gx1[33]*Gx2[33]; -acadoWorkspace.H[82] += + Gx1[3]*Gx2[4] + Gx1[9]*Gx2[10] + Gx1[15]*Gx2[16] + Gx1[21]*Gx2[22] + Gx1[27]*Gx2[28] + Gx1[33]*Gx2[34]; -acadoWorkspace.H[83] += + Gx1[3]*Gx2[5] + Gx1[9]*Gx2[11] + Gx1[15]*Gx2[17] + Gx1[21]*Gx2[23] + Gx1[27]*Gx2[29] + Gx1[33]*Gx2[35]; -acadoWorkspace.H[104] += + Gx1[4]*Gx2[0] + Gx1[10]*Gx2[6] + Gx1[16]*Gx2[12] + Gx1[22]*Gx2[18] + Gx1[28]*Gx2[24] + Gx1[34]*Gx2[30]; -acadoWorkspace.H[105] += + Gx1[4]*Gx2[1] + Gx1[10]*Gx2[7] + Gx1[16]*Gx2[13] + Gx1[22]*Gx2[19] + Gx1[28]*Gx2[25] + Gx1[34]*Gx2[31]; -acadoWorkspace.H[106] += + Gx1[4]*Gx2[2] + Gx1[10]*Gx2[8] + Gx1[16]*Gx2[14] + Gx1[22]*Gx2[20] + Gx1[28]*Gx2[26] + Gx1[34]*Gx2[32]; -acadoWorkspace.H[107] += + Gx1[4]*Gx2[3] + Gx1[10]*Gx2[9] + Gx1[16]*Gx2[15] + Gx1[22]*Gx2[21] + Gx1[28]*Gx2[27] + Gx1[34]*Gx2[33]; -acadoWorkspace.H[108] += + Gx1[4]*Gx2[4] + Gx1[10]*Gx2[10] + Gx1[16]*Gx2[16] + Gx1[22]*Gx2[22] + Gx1[28]*Gx2[28] + Gx1[34]*Gx2[34]; -acadoWorkspace.H[109] += + Gx1[4]*Gx2[5] + Gx1[10]*Gx2[11] + Gx1[16]*Gx2[17] + Gx1[22]*Gx2[23] + Gx1[28]*Gx2[29] + Gx1[34]*Gx2[35]; -acadoWorkspace.H[130] += + Gx1[5]*Gx2[0] + Gx1[11]*Gx2[6] + Gx1[17]*Gx2[12] + Gx1[23]*Gx2[18] + Gx1[29]*Gx2[24] + Gx1[35]*Gx2[30]; -acadoWorkspace.H[131] += + Gx1[5]*Gx2[1] + Gx1[11]*Gx2[7] + Gx1[17]*Gx2[13] + Gx1[23]*Gx2[19] + Gx1[29]*Gx2[25] + Gx1[35]*Gx2[31]; -acadoWorkspace.H[132] += + Gx1[5]*Gx2[2] + Gx1[11]*Gx2[8] + Gx1[17]*Gx2[14] + Gx1[23]*Gx2[20] + Gx1[29]*Gx2[26] + Gx1[35]*Gx2[32]; -acadoWorkspace.H[133] += + Gx1[5]*Gx2[3] + Gx1[11]*Gx2[9] + Gx1[17]*Gx2[15] + Gx1[23]*Gx2[21] + Gx1[29]*Gx2[27] + Gx1[35]*Gx2[33]; -acadoWorkspace.H[134] += + Gx1[5]*Gx2[4] + Gx1[11]*Gx2[10] + Gx1[17]*Gx2[16] + Gx1[23]*Gx2[22] + Gx1[29]*Gx2[28] + Gx1[35]*Gx2[34]; -acadoWorkspace.H[135] += + Gx1[5]*Gx2[5] + Gx1[11]*Gx2[11] + Gx1[17]*Gx2[17] + Gx1[23]*Gx2[23] + Gx1[29]*Gx2[29] + Gx1[35]*Gx2[35]; +acadoWorkspace.H[0] += + Gx1[0]*Gx2[0] + Gx1[3]*Gx2[3] + Gx1[6]*Gx2[6]; +acadoWorkspace.H[1] += + Gx1[0]*Gx2[1] + Gx1[3]*Gx2[4] + Gx1[6]*Gx2[7]; +acadoWorkspace.H[2] += + Gx1[0]*Gx2[2] + Gx1[3]*Gx2[5] + Gx1[6]*Gx2[8]; +acadoWorkspace.H[23] += + Gx1[1]*Gx2[0] + Gx1[4]*Gx2[3] + Gx1[7]*Gx2[6]; +acadoWorkspace.H[24] += + Gx1[1]*Gx2[1] + Gx1[4]*Gx2[4] + Gx1[7]*Gx2[7]; +acadoWorkspace.H[25] += + Gx1[1]*Gx2[2] + Gx1[4]*Gx2[5] + Gx1[7]*Gx2[8]; +acadoWorkspace.H[46] += + Gx1[2]*Gx2[0] + Gx1[5]*Gx2[3] + Gx1[8]*Gx2[6]; +acadoWorkspace.H[47] += + Gx1[2]*Gx2[1] + Gx1[5]*Gx2[4] + Gx1[8]*Gx2[7]; +acadoWorkspace.H[48] += + Gx1[2]*Gx2[2] + Gx1[5]*Gx2[5] + Gx1[8]*Gx2[8]; } void acado_macCTSlx( real_t* const C0, real_t* const g0 ) @@ -698,12 +399,6 @@ g0[1] += 0.0; ; g0[2] += 0.0; ; -g0[3] += 0.0; -; -g0[4] += 0.0; -; -g0[5] += 0.0; -; } void acado_macETSlu( real_t* const E0, real_t* const g1 ) @@ -721,2896 +416,2836 @@ int lRun4; int lRun5; /** Row vector of size: 20 */ static const int xBoundIndices[ 20 ] = -{ 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79, 85, 91, 97, 103, 109, 115, 121 }; +{ 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61 }; acado_moveGuE( acadoWorkspace.evGu, acadoWorkspace.E ); +acado_moveGxT( &(acadoWorkspace.evGx[ 9 ]), acadoWorkspace.T ); +acado_multGxd( acadoWorkspace.d, &(acadoWorkspace.evGx[ 9 ]), &(acadoWorkspace.d[ 3 ]) ); +acado_multGxGx( acadoWorkspace.T, acadoWorkspace.evGx, &(acadoWorkspace.evGx[ 9 ]) ); + +acado_multGxGu( acadoWorkspace.T, acadoWorkspace.E, &(acadoWorkspace.E[ 3 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 3 ]), &(acadoWorkspace.E[ 6 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 18 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 3 ]), &(acadoWorkspace.evGx[ 18 ]), &(acadoWorkspace.d[ 6 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 9 ]), &(acadoWorkspace.evGx[ 18 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 3 ]), &(acadoWorkspace.E[ 9 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.E[ 12 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 6 ]), &(acadoWorkspace.E[ 15 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 27 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 6 ]), &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.d[ 9 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 18 ]), &(acadoWorkspace.evGx[ 27 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.E[ 18 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.E[ 21 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 15 ]), &(acadoWorkspace.E[ 24 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 9 ]), &(acadoWorkspace.E[ 27 ]) ); + acado_moveGxT( &(acadoWorkspace.evGx[ 36 ]), acadoWorkspace.T ); -acado_multGxd( acadoWorkspace.d, &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.d[ 6 ]) ); -acado_multGxGx( acadoWorkspace.T, acadoWorkspace.evGx, &(acadoWorkspace.evGx[ 36 ]) ); +acado_multGxd( &(acadoWorkspace.d[ 9 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.d[ 12 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.evGx[ 36 ]) ); -acado_multGxGu( acadoWorkspace.T, acadoWorkspace.E, &(acadoWorkspace.E[ 6 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.E[ 30 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.E[ 33 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.E[ 36 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 27 ]), &(acadoWorkspace.E[ 39 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 6 ]), &(acadoWorkspace.E[ 12 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 12 ]), &(acadoWorkspace.E[ 42 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 45 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 12 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.d[ 15 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.evGx[ 45 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.E[ 45 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.E[ 48 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.E[ 51 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 39 ]), &(acadoWorkspace.E[ 54 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.E[ 57 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 15 ]), &(acadoWorkspace.E[ 60 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 54 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 15 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.d[ 18 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.evGx[ 54 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.E[ 63 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.E[ 66 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.E[ 69 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.E[ 72 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 57 ]), &(acadoWorkspace.E[ 75 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.E[ 78 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 18 ]), &(acadoWorkspace.E[ 81 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 63 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 18 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.d[ 21 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.evGx[ 63 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.E[ 84 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.E[ 87 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.E[ 90 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.E[ 93 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.E[ 96 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.E[ 99 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 81 ]), &(acadoWorkspace.E[ 102 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 21 ]), &(acadoWorkspace.E[ 105 ]) ); acado_moveGxT( &(acadoWorkspace.evGx[ 72 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 6 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.d[ 12 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.evGx[ 72 ]) ); +acado_multGxd( &(acadoWorkspace.d[ 21 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.d[ 24 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.evGx[ 72 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.E[ 18 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.E[ 24 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.E[ 108 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.E[ 111 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.E[ 114 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.E[ 117 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.E[ 120 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.E[ 123 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.E[ 126 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 105 ]), &(acadoWorkspace.E[ 129 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 12 ]), &(acadoWorkspace.E[ 30 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 24 ]), &(acadoWorkspace.E[ 132 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 81 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 24 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.d[ 27 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.evGx[ 81 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.E[ 135 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.E[ 138 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.E[ 141 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.E[ 144 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.E[ 147 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.E[ 150 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.E[ 153 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 129 ]), &(acadoWorkspace.E[ 156 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.E[ 159 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 27 ]), &(acadoWorkspace.E[ 162 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 90 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 27 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.d[ 30 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.evGx[ 90 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.E[ 165 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.E[ 168 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.E[ 171 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.E[ 174 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.E[ 177 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.E[ 180 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.E[ 183 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.E[ 186 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 159 ]), &(acadoWorkspace.E[ 189 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.E[ 192 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 30 ]), &(acadoWorkspace.E[ 195 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 99 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 30 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.d[ 33 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.evGx[ 99 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.E[ 198 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.E[ 201 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.E[ 204 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.E[ 207 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.E[ 210 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.E[ 213 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.E[ 216 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.E[ 219 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.E[ 222 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.E[ 225 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 195 ]), &(acadoWorkspace.E[ 228 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 33 ]), &(acadoWorkspace.E[ 231 ]) ); acado_moveGxT( &(acadoWorkspace.evGx[ 108 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 12 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.d[ 18 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.evGx[ 108 ]) ); +acado_multGxd( &(acadoWorkspace.d[ 33 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.d[ 36 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.evGx[ 108 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.E[ 36 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.E[ 42 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.E[ 48 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.E[ 234 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.E[ 237 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.E[ 240 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.E[ 243 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.E[ 246 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.E[ 249 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.E[ 252 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.E[ 255 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.E[ 258 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.E[ 261 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.E[ 264 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 231 ]), &(acadoWorkspace.E[ 267 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 18 ]), &(acadoWorkspace.E[ 54 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 36 ]), &(acadoWorkspace.E[ 270 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 117 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 36 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.d[ 39 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.evGx[ 117 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.E[ 273 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.E[ 276 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.E[ 279 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.E[ 282 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.E[ 285 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.E[ 288 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.E[ 291 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.E[ 294 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.E[ 297 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.E[ 300 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.E[ 303 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 267 ]), &(acadoWorkspace.E[ 306 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.E[ 309 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 39 ]), &(acadoWorkspace.E[ 312 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 126 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 39 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.d[ 42 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.evGx[ 126 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.E[ 315 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.E[ 318 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.E[ 321 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.E[ 324 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.E[ 327 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.E[ 330 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.E[ 333 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.E[ 336 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.E[ 339 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.E[ 342 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.E[ 345 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.E[ 348 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 309 ]), &(acadoWorkspace.E[ 351 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.E[ 354 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 42 ]), &(acadoWorkspace.E[ 357 ]) ); + +acado_moveGxT( &(acadoWorkspace.evGx[ 135 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 42 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.d[ 45 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.evGx[ 135 ]) ); + +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.E[ 360 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.E[ 363 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.E[ 366 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.E[ 369 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.E[ 372 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.E[ 375 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.E[ 378 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.E[ 381 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.E[ 384 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.E[ 387 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.E[ 390 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.E[ 393 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.E[ 396 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.E[ 399 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 357 ]), &(acadoWorkspace.E[ 402 ]) ); + +acado_moveGuE( &(acadoWorkspace.evGu[ 45 ]), &(acadoWorkspace.E[ 405 ]) ); acado_moveGxT( &(acadoWorkspace.evGx[ 144 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 18 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.d[ 24 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.evGx[ 144 ]) ); +acado_multGxd( &(acadoWorkspace.d[ 45 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.d[ 48 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.evGx[ 144 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.E[ 60 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.E[ 66 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.E[ 72 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.E[ 78 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.E[ 408 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.E[ 411 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.E[ 414 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.E[ 417 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.E[ 420 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.E[ 423 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.E[ 426 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.E[ 429 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.E[ 432 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.E[ 435 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.E[ 438 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.E[ 441 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.E[ 444 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.E[ 447 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.E[ 450 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 405 ]), &(acadoWorkspace.E[ 453 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 24 ]), &(acadoWorkspace.E[ 84 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 48 ]), &(acadoWorkspace.E[ 456 ]) ); -acado_moveGxT( &(acadoWorkspace.evGx[ 180 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 24 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.d[ 30 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.evGx[ 180 ]) ); +acado_moveGxT( &(acadoWorkspace.evGx[ 153 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 48 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.d[ 51 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.evGx[ 153 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.E[ 90 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.E[ 96 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.E[ 102 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.E[ 108 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.E[ 114 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.E[ 459 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.E[ 462 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.E[ 465 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.E[ 468 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.E[ 471 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.E[ 474 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.E[ 477 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.E[ 480 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.E[ 483 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.E[ 486 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.E[ 489 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.E[ 492 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.E[ 495 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.E[ 498 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.E[ 501 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 453 ]), &(acadoWorkspace.E[ 504 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.E[ 507 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 30 ]), &(acadoWorkspace.E[ 120 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 51 ]), &(acadoWorkspace.E[ 510 ]) ); -acado_moveGxT( &(acadoWorkspace.evGx[ 216 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 30 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.d[ 36 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.evGx[ 216 ]) ); +acado_moveGxT( &(acadoWorkspace.evGx[ 162 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 51 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.d[ 54 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.evGx[ 162 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.E[ 126 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.E[ 132 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.E[ 138 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.E[ 144 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.E[ 150 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.E[ 156 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.E[ 513 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.E[ 516 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.E[ 519 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.E[ 522 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.E[ 525 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.E[ 528 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.E[ 531 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.E[ 534 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.E[ 537 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.E[ 540 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.E[ 543 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.E[ 546 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.E[ 549 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.E[ 552 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.E[ 555 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.E[ 558 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 507 ]), &(acadoWorkspace.E[ 561 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.E[ 564 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 36 ]), &(acadoWorkspace.E[ 162 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 54 ]), &(acadoWorkspace.E[ 567 ]) ); -acado_moveGxT( &(acadoWorkspace.evGx[ 252 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 36 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.d[ 42 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.evGx[ 252 ]) ); +acado_moveGxT( &(acadoWorkspace.evGx[ 171 ]), acadoWorkspace.T ); +acado_multGxd( &(acadoWorkspace.d[ 54 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.d[ 57 ]) ); +acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.evGx[ 171 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.E[ 168 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.E[ 174 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.E[ 180 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.E[ 186 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.E[ 192 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.E[ 198 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.E[ 204 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.E[ 570 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.E[ 573 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.E[ 576 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.E[ 579 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.E[ 582 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.E[ 585 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.E[ 588 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.E[ 591 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.E[ 594 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.E[ 597 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.E[ 600 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.E[ 603 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.E[ 606 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.E[ 609 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.E[ 612 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.E[ 615 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.E[ 618 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.E[ 621 ]) ); +acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 567 ]), &(acadoWorkspace.E[ 624 ]) ); -acado_moveGuE( &(acadoWorkspace.evGu[ 42 ]), &(acadoWorkspace.E[ 210 ]) ); +acado_moveGuE( &(acadoWorkspace.evGu[ 57 ]), &(acadoWorkspace.E[ 627 ]) ); -acado_moveGxT( &(acadoWorkspace.evGx[ 288 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 42 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.d[ 48 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.evGx[ 288 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 9 ]), acadoWorkspace.evGx, acadoWorkspace.QGx ); +acado_multGxGx( &(acadoWorkspace.Q1[ 18 ]), &(acadoWorkspace.evGx[ 9 ]), &(acadoWorkspace.QGx[ 9 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 27 ]), &(acadoWorkspace.evGx[ 18 ]), &(acadoWorkspace.QGx[ 18 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 36 ]), &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.QGx[ 27 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.QGx[ 36 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.QGx[ 45 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.QGx[ 54 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.QGx[ 63 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.QGx[ 72 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.QGx[ 81 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.QGx[ 90 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.QGx[ 99 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.QGx[ 108 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.QGx[ 117 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.QGx[ 126 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.QGx[ 135 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.QGx[ 144 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.QGx[ 153 ]) ); +acado_multGxGx( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.QGx[ 162 ]) ); +acado_multGxGx( acadoWorkspace.QN1, &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.QGx[ 171 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.E[ 216 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.E[ 222 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.E[ 228 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.E[ 234 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.E[ 240 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.E[ 246 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.E[ 252 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.E[ 258 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 48 ]), &(acadoWorkspace.E[ 264 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 324 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 48 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.d[ 54 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.evGx[ 324 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.E[ 270 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.E[ 276 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.E[ 282 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.E[ 288 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.E[ 294 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.E[ 300 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.E[ 306 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.E[ 312 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.E[ 318 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 54 ]), &(acadoWorkspace.E[ 324 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 360 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 54 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.d[ 60 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.evGx[ 360 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.E[ 330 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.E[ 336 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.E[ 342 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.E[ 348 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.E[ 354 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.E[ 360 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.E[ 366 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.E[ 372 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.E[ 378 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.E[ 384 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 60 ]), &(acadoWorkspace.E[ 390 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 396 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 60 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.d[ 66 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.evGx[ 396 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.E[ 396 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.E[ 402 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.E[ 408 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.E[ 414 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.E[ 420 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.E[ 426 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.E[ 432 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.E[ 438 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.E[ 444 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.E[ 450 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.E[ 456 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 66 ]), &(acadoWorkspace.E[ 462 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 432 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 66 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.d[ 72 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.evGx[ 432 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.E[ 468 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.E[ 474 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.E[ 480 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.E[ 486 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.E[ 492 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.E[ 498 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.E[ 504 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.E[ 510 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.E[ 516 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.E[ 522 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.E[ 528 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.E[ 534 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 72 ]), &(acadoWorkspace.E[ 540 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 468 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 72 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.d[ 78 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.evGx[ 468 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.E[ 546 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.E[ 552 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.E[ 558 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.E[ 564 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.E[ 570 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.E[ 576 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.E[ 582 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.E[ 588 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.E[ 594 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.E[ 600 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.E[ 606 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.E[ 612 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.E[ 618 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 78 ]), &(acadoWorkspace.E[ 624 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 504 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 78 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.d[ 84 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.evGx[ 504 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.E[ 630 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.E[ 636 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.E[ 642 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.E[ 648 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.E[ 654 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.E[ 660 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.E[ 666 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.E[ 672 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.E[ 678 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.E[ 684 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.E[ 690 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.E[ 696 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.E[ 702 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.E[ 708 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 84 ]), &(acadoWorkspace.E[ 714 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 540 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 84 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.d[ 90 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.evGx[ 540 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.E[ 720 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.E[ 726 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.E[ 732 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.E[ 738 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.E[ 744 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.E[ 750 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.E[ 756 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.E[ 762 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.E[ 768 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.E[ 774 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.E[ 780 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.E[ 786 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.E[ 792 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 708 ]), &(acadoWorkspace.E[ 798 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 714 ]), &(acadoWorkspace.E[ 804 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 90 ]), &(acadoWorkspace.E[ 810 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 576 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 90 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.d[ 96 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.evGx[ 576 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.E[ 816 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.E[ 822 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.E[ 828 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.E[ 834 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.E[ 840 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.E[ 846 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.E[ 852 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.E[ 858 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.E[ 864 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.E[ 870 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.E[ 876 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.E[ 882 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.E[ 888 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.E[ 894 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 804 ]), &(acadoWorkspace.E[ 900 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 810 ]), &(acadoWorkspace.E[ 906 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 96 ]), &(acadoWorkspace.E[ 912 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 612 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 96 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.d[ 102 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.evGx[ 612 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.E[ 918 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.E[ 924 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.E[ 930 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.E[ 936 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.E[ 942 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.E[ 948 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.E[ 954 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.E[ 960 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.E[ 966 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.E[ 972 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.E[ 978 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.E[ 984 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.E[ 990 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.E[ 996 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.E[ 1002 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 906 ]), &(acadoWorkspace.E[ 1008 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 912 ]), &(acadoWorkspace.E[ 1014 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 102 ]), &(acadoWorkspace.E[ 1020 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 648 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 102 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.d[ 108 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.evGx[ 648 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.E[ 1026 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.E[ 1032 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.E[ 1038 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.E[ 1044 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.E[ 1050 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.E[ 1056 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.E[ 1062 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.E[ 1068 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.E[ 1074 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.E[ 1080 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.E[ 1086 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.E[ 1092 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.E[ 1098 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.E[ 1104 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.E[ 1110 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.E[ 1116 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1014 ]), &(acadoWorkspace.E[ 1122 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1020 ]), &(acadoWorkspace.E[ 1128 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 108 ]), &(acadoWorkspace.E[ 1134 ]) ); - -acado_moveGxT( &(acadoWorkspace.evGx[ 684 ]), acadoWorkspace.T ); -acado_multGxd( &(acadoWorkspace.d[ 108 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.d[ 114 ]) ); -acado_multGxGx( acadoWorkspace.T, &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.evGx[ 684 ]) ); - -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.E[ 1140 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.E[ 1146 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.E[ 1152 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.E[ 1158 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.E[ 1164 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.E[ 1170 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.E[ 1176 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.E[ 1182 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.E[ 1188 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.E[ 1194 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.E[ 1200 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.E[ 1206 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.E[ 1212 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.E[ 1218 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.E[ 1224 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.E[ 1230 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.E[ 1236 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1128 ]), &(acadoWorkspace.E[ 1242 ]) ); -acado_multGxGu( acadoWorkspace.T, &(acadoWorkspace.E[ 1134 ]), &(acadoWorkspace.E[ 1248 ]) ); - -acado_moveGuE( &(acadoWorkspace.evGu[ 114 ]), &(acadoWorkspace.E[ 1254 ]) ); - -acado_multGxGx( &(acadoWorkspace.Q1[ 36 ]), acadoWorkspace.evGx, acadoWorkspace.QGx ); -acado_multGxGx( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.QGx[ 36 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.QGx[ 72 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.QGx[ 108 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.QGx[ 144 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.QGx[ 180 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.QGx[ 216 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.QGx[ 252 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.QGx[ 288 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.QGx[ 324 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.QGx[ 360 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.QGx[ 396 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.QGx[ 432 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.QGx[ 468 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.QGx[ 504 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.QGx[ 540 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.QGx[ 576 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.QGx[ 612 ]) ); -acado_multGxGx( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.QGx[ 648 ]) ); -acado_multGxGx( acadoWorkspace.QN1, &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.QGx[ 684 ]) ); - -acado_multGxGu( &(acadoWorkspace.Q1[ 36 ]), acadoWorkspace.E, acadoWorkspace.QE ); -acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QE[ 6 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.QE[ 12 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 18 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QE[ 24 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 30 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 36 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QE[ 42 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 48 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QE[ 54 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 60 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 66 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 72 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QE[ 78 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 84 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 90 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 96 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 102 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 108 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 114 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 126 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 132 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 138 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 144 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 150 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 168 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 174 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 180 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 186 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 192 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 216 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 222 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 228 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 234 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 240 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 270 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 276 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 282 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 288 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 294 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 330 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 336 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 342 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 348 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 354 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 396 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 402 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 408 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 414 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 420 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 468 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 474 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 480 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 486 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 492 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 546 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 552 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 558 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 564 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 570 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 630 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 636 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 642 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 648 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 654 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 708 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.E[ 714 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 720 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 726 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 732 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 738 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 744 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 804 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.E[ 810 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 816 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 822 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 828 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 834 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 840 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 906 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.E[ 912 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 918 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 924 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 930 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 936 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 942 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 1014 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.E[ 1020 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1026 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1032 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1038 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1044 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1050 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1128 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_multGxGu( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.E[ 1134 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1140 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1146 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1152 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1158 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1164 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1170 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1176 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1182 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1188 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1194 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1200 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1206 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1212 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1218 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1224 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QE[ 1230 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.QE[ 1236 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1242 ]), &(acadoWorkspace.QE[ 1242 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1248 ]), &(acadoWorkspace.QE[ 1248 ]) ); -acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 1254 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 9 ]), acadoWorkspace.E, acadoWorkspace.QE ); +acado_multGxGu( &(acadoWorkspace.Q1[ 18 ]), &(acadoWorkspace.E[ 3 ]), &(acadoWorkspace.QE[ 3 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 18 ]), &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QE[ 6 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 27 ]), &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.QE[ 9 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 27 ]), &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.QE[ 12 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 27 ]), &(acadoWorkspace.E[ 15 ]), &(acadoWorkspace.QE[ 15 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 36 ]), &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 18 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 36 ]), &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.QE[ 21 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 36 ]), &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QE[ 24 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 36 ]), &(acadoWorkspace.E[ 27 ]), &(acadoWorkspace.QE[ 27 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 30 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.QE[ 33 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 36 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.E[ 39 ]), &(acadoWorkspace.QE[ 39 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 45 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 48 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.QE[ 51 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QE[ 54 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.E[ 57 ]), &(acadoWorkspace.QE[ 57 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 63 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 66 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QE[ 69 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 72 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.QE[ 75 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.E[ 81 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 84 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 87 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 90 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QE[ 93 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 96 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.E[ 105 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 108 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 111 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 114 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 117 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 120 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 129 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 135 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 138 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 141 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 144 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 147 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 159 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 165 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 168 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 171 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 174 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 177 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.E[ 195 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 198 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 201 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 204 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 207 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 210 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.E[ 231 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 234 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 237 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 240 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 243 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 246 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 267 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 273 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 276 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 279 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 282 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 285 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 309 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 315 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 318 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 321 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 324 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 327 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.E[ 357 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 360 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 363 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 366 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 369 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 372 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.E[ 405 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 408 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 411 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 414 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 417 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 420 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 453 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 459 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 462 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 465 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 468 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 471 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 507 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 513 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 516 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 519 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 522 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 525 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_multGxGu( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.E[ 567 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 570 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 573 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 576 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 579 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 582 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 585 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 588 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 591 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 594 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 597 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 600 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 603 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 606 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 609 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 612 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QE[ 615 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 618 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 621 ]), &(acadoWorkspace.QE[ 621 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QE[ 624 ]) ); +acado_multGxGu( acadoWorkspace.QN1, &(acadoWorkspace.E[ 627 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_zeroBlockH00( ); acado_multCTQC( acadoWorkspace.evGx, acadoWorkspace.QGx ); +acado_multCTQC( &(acadoWorkspace.evGx[ 9 ]), &(acadoWorkspace.QGx[ 9 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 18 ]), &(acadoWorkspace.QGx[ 18 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.QGx[ 27 ]) ); acado_multCTQC( &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.QGx[ 36 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.QGx[ 45 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.QGx[ 54 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.QGx[ 63 ]) ); acado_multCTQC( &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.QGx[ 72 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.QGx[ 81 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.QGx[ 90 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.QGx[ 99 ]) ); acado_multCTQC( &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.QGx[ 108 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.QGx[ 117 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.QGx[ 126 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.QGx[ 135 ]) ); acado_multCTQC( &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.QGx[ 144 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.QGx[ 180 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.QGx[ 216 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.QGx[ 252 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.QGx[ 288 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.QGx[ 324 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.QGx[ 360 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.QGx[ 396 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.QGx[ 432 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.QGx[ 468 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.QGx[ 504 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.QGx[ 540 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.QGx[ 576 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.QGx[ 612 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.QGx[ 648 ]) ); -acado_multCTQC( &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.QGx[ 684 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.QGx[ 153 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.QGx[ 162 ]) ); +acado_multCTQC( &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.QGx[ 171 ]) ); acado_zeroBlockH10( acadoWorkspace.H10 ); acado_multQETGx( acadoWorkspace.QE, acadoWorkspace.evGx, acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 6 ]), &(acadoWorkspace.evGx[ 36 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 18 ]), &(acadoWorkspace.evGx[ 72 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 36 ]), &(acadoWorkspace.evGx[ 108 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 60 ]), &(acadoWorkspace.evGx[ 144 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 90 ]), &(acadoWorkspace.evGx[ 180 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 126 ]), &(acadoWorkspace.evGx[ 216 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 168 ]), &(acadoWorkspace.evGx[ 252 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 216 ]), &(acadoWorkspace.evGx[ 288 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 270 ]), &(acadoWorkspace.evGx[ 324 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 330 ]), &(acadoWorkspace.evGx[ 360 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 396 ]), &(acadoWorkspace.evGx[ 396 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 468 ]), &(acadoWorkspace.evGx[ 432 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 546 ]), &(acadoWorkspace.evGx[ 468 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 630 ]), &(acadoWorkspace.evGx[ 504 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 720 ]), &(acadoWorkspace.evGx[ 540 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 816 ]), &(acadoWorkspace.evGx[ 576 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 918 ]), &(acadoWorkspace.evGx[ 612 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 1026 ]), &(acadoWorkspace.evGx[ 648 ]), acadoWorkspace.H10 ); -acado_multQETGx( &(acadoWorkspace.QE[ 1140 ]), &(acadoWorkspace.evGx[ 684 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 3 ]), &(acadoWorkspace.evGx[ 9 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 9 ]), &(acadoWorkspace.evGx[ 18 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 18 ]), &(acadoWorkspace.evGx[ 27 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 30 ]), &(acadoWorkspace.evGx[ 36 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 45 ]), &(acadoWorkspace.evGx[ 45 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 63 ]), &(acadoWorkspace.evGx[ 54 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 84 ]), &(acadoWorkspace.evGx[ 63 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 108 ]), &(acadoWorkspace.evGx[ 72 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 135 ]), &(acadoWorkspace.evGx[ 81 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 165 ]), &(acadoWorkspace.evGx[ 90 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 198 ]), &(acadoWorkspace.evGx[ 99 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 234 ]), &(acadoWorkspace.evGx[ 108 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 273 ]), &(acadoWorkspace.evGx[ 117 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 315 ]), &(acadoWorkspace.evGx[ 126 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 360 ]), &(acadoWorkspace.evGx[ 135 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 408 ]), &(acadoWorkspace.evGx[ 144 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 459 ]), &(acadoWorkspace.evGx[ 153 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 513 ]), &(acadoWorkspace.evGx[ 162 ]), acadoWorkspace.H10 ); +acado_multQETGx( &(acadoWorkspace.QE[ 570 ]), &(acadoWorkspace.evGx[ 171 ]), acadoWorkspace.H10 ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 6 ]), &(acadoWorkspace.evGx[ 9 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 12 ]), &(acadoWorkspace.evGx[ 18 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 21 ]), &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 33 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 48 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 66 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 87 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 111 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 138 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 168 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 201 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 237 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 276 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 318 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 363 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 411 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 462 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 516 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 3 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 573 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 3 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 12 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 24 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 42 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 66 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 96 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 132 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 174 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 222 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 276 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 336 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 402 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 474 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 552 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 636 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 726 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 822 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 924 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1032 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 6 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1146 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 15 ]), &(acadoWorkspace.evGx[ 18 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 24 ]), &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 36 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 51 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 69 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 90 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 114 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 141 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 171 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 204 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 240 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 279 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 321 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 366 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 414 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 465 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 519 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 576 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 6 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 27 ]), &(acadoWorkspace.evGx[ 27 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 39 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 54 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 72 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 93 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 117 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 144 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 174 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 207 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 243 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 282 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 324 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 369 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 417 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 468 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 522 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 9 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 579 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 9 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 30 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 48 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 72 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 102 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 138 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 180 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 228 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 282 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 342 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 408 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 480 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 558 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 642 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 732 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 828 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 930 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1038 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 12 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1152 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 42 ]), &(acadoWorkspace.evGx[ 36 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 57 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 75 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 96 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 120 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 147 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 177 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 210 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 246 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 285 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 327 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 372 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 420 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 471 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 525 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 582 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 12 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 60 ]), &(acadoWorkspace.evGx[ 45 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 78 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 99 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 123 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 150 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 180 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 213 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 249 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 288 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 330 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 375 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 423 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 474 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 528 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 15 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 585 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 15 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 54 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 78 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 108 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 144 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 186 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 234 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 288 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 348 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 414 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 486 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 564 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 648 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 738 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 834 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 936 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1044 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 18 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1158 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 81 ]), &(acadoWorkspace.evGx[ 54 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 102 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 126 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 153 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 183 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 216 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 252 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 291 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 333 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 378 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 426 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 477 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 531 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 588 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 18 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 105 ]), &(acadoWorkspace.evGx[ 63 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 129 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 156 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 186 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 219 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 255 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 294 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 336 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 381 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 429 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 480 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 534 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 21 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 591 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 21 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 84 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 114 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 150 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 192 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 240 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 294 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 354 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 420 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 492 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 570 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 654 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 744 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 840 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 942 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1050 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 24 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1164 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 132 ]), &(acadoWorkspace.evGx[ 72 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 159 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 189 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 222 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 258 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 297 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 339 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 384 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 432 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 483 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 537 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 594 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 24 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 162 ]), &(acadoWorkspace.evGx[ 81 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 192 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 225 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 261 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 300 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 342 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 387 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 435 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 486 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 540 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 27 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 597 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 27 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 120 ]), &(acadoWorkspace.evGx[ 180 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 156 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 198 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 246 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 300 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 360 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 426 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 498 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 576 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 660 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 750 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 846 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 948 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1056 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 30 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1170 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 195 ]), &(acadoWorkspace.evGx[ 90 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 228 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 264 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 303 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 345 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 390 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 438 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 489 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 543 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 600 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 30 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 231 ]), &(acadoWorkspace.evGx[ 99 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 267 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 306 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 348 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 393 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 441 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 492 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 546 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 33 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 603 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 33 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 162 ]), &(acadoWorkspace.evGx[ 216 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 204 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 252 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 306 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 366 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 432 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 504 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 582 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 666 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 756 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 852 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 954 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1062 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 36 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1176 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 270 ]), &(acadoWorkspace.evGx[ 108 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 309 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 351 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 396 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 444 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 495 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 549 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 606 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 36 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 312 ]), &(acadoWorkspace.evGx[ 117 ]), &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 354 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 399 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 447 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 498 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 552 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 39 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 609 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 39 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 210 ]), &(acadoWorkspace.evGx[ 252 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 258 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 312 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 372 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 438 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 510 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 588 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 672 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 762 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 858 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 960 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1068 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 42 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1182 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 357 ]), &(acadoWorkspace.evGx[ 126 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 402 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 450 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 501 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 555 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 612 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 42 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 45 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 405 ]), &(acadoWorkspace.evGx[ 135 ]), &(acadoWorkspace.H10[ 45 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 453 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 45 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 504 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 45 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 558 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 45 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 615 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 45 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 264 ]), &(acadoWorkspace.evGx[ 288 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 318 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 378 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 444 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 516 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 594 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 678 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 768 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 864 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 966 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1074 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 48 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1188 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 48 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 456 ]), &(acadoWorkspace.evGx[ 144 ]), &(acadoWorkspace.H10[ 48 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 507 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 48 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 561 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 48 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 618 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 48 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 51 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 510 ]), &(acadoWorkspace.evGx[ 153 ]), &(acadoWorkspace.H10[ 51 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 564 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 51 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 621 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 51 ]) ); acado_zeroBlockH10( &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 324 ]), &(acadoWorkspace.evGx[ 324 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 384 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 450 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 522 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 600 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 684 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 774 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 870 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 972 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1080 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1194 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 54 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 390 ]), &(acadoWorkspace.evGx[ 360 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 456 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 528 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 606 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 690 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 780 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 876 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 978 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1086 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1200 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 60 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 462 ]), &(acadoWorkspace.evGx[ 396 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 534 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 612 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 696 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 786 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 882 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 984 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1092 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1206 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 66 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 540 ]), &(acadoWorkspace.evGx[ 432 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 618 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 702 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 792 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 888 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 990 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1098 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1212 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 72 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 624 ]), &(acadoWorkspace.evGx[ 468 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 708 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 798 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 894 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 996 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1104 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1218 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 78 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 84 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 714 ]), &(acadoWorkspace.evGx[ 504 ]), &(acadoWorkspace.H10[ 84 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 804 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 84 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 900 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 84 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1002 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 84 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1110 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 84 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1224 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 84 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 90 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 810 ]), &(acadoWorkspace.evGx[ 540 ]), &(acadoWorkspace.H10[ 90 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 906 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 90 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1008 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 90 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1116 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 90 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1230 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 90 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 96 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 912 ]), &(acadoWorkspace.evGx[ 576 ]), &(acadoWorkspace.H10[ 96 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1014 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 96 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1122 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 96 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1236 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 96 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 102 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1020 ]), &(acadoWorkspace.evGx[ 612 ]), &(acadoWorkspace.H10[ 102 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1128 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 102 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1242 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 102 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 108 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1134 ]), &(acadoWorkspace.evGx[ 648 ]), &(acadoWorkspace.H10[ 108 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1248 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 108 ]) ); -acado_zeroBlockH10( &(acadoWorkspace.H10[ 114 ]) ); -acado_multQETGx( &(acadoWorkspace.QE[ 1254 ]), &(acadoWorkspace.evGx[ 684 ]), &(acadoWorkspace.H10[ 114 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 567 ]), &(acadoWorkspace.evGx[ 162 ]), &(acadoWorkspace.H10[ 54 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 624 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 54 ]) ); +acado_zeroBlockH10( &(acadoWorkspace.H10[ 57 ]) ); +acado_multQETGx( &(acadoWorkspace.QE[ 627 ]), &(acadoWorkspace.evGx[ 171 ]), &(acadoWorkspace.H10[ 57 ]) ); -acadoWorkspace.H[6] = acadoWorkspace.H10[0]; -acadoWorkspace.H[7] = acadoWorkspace.H10[6]; -acadoWorkspace.H[8] = acadoWorkspace.H10[12]; +acadoWorkspace.H[3] = acadoWorkspace.H10[0]; +acadoWorkspace.H[4] = acadoWorkspace.H10[3]; +acadoWorkspace.H[5] = acadoWorkspace.H10[6]; +acadoWorkspace.H[6] = acadoWorkspace.H10[9]; +acadoWorkspace.H[7] = acadoWorkspace.H10[12]; +acadoWorkspace.H[8] = acadoWorkspace.H10[15]; acadoWorkspace.H[9] = acadoWorkspace.H10[18]; -acadoWorkspace.H[10] = acadoWorkspace.H10[24]; -acadoWorkspace.H[11] = acadoWorkspace.H10[30]; -acadoWorkspace.H[12] = acadoWorkspace.H10[36]; -acadoWorkspace.H[13] = acadoWorkspace.H10[42]; -acadoWorkspace.H[14] = acadoWorkspace.H10[48]; -acadoWorkspace.H[15] = acadoWorkspace.H10[54]; -acadoWorkspace.H[16] = acadoWorkspace.H10[60]; -acadoWorkspace.H[17] = acadoWorkspace.H10[66]; -acadoWorkspace.H[18] = acadoWorkspace.H10[72]; -acadoWorkspace.H[19] = acadoWorkspace.H10[78]; -acadoWorkspace.H[20] = acadoWorkspace.H10[84]; -acadoWorkspace.H[21] = acadoWorkspace.H10[90]; -acadoWorkspace.H[22] = acadoWorkspace.H10[96]; -acadoWorkspace.H[23] = acadoWorkspace.H10[102]; -acadoWorkspace.H[24] = acadoWorkspace.H10[108]; -acadoWorkspace.H[25] = acadoWorkspace.H10[114]; -acadoWorkspace.H[32] = acadoWorkspace.H10[1]; -acadoWorkspace.H[33] = acadoWorkspace.H10[7]; -acadoWorkspace.H[34] = acadoWorkspace.H10[13]; -acadoWorkspace.H[35] = acadoWorkspace.H10[19]; -acadoWorkspace.H[36] = acadoWorkspace.H10[25]; -acadoWorkspace.H[37] = acadoWorkspace.H10[31]; +acadoWorkspace.H[10] = acadoWorkspace.H10[21]; +acadoWorkspace.H[11] = acadoWorkspace.H10[24]; +acadoWorkspace.H[12] = acadoWorkspace.H10[27]; +acadoWorkspace.H[13] = acadoWorkspace.H10[30]; +acadoWorkspace.H[14] = acadoWorkspace.H10[33]; +acadoWorkspace.H[15] = acadoWorkspace.H10[36]; +acadoWorkspace.H[16] = acadoWorkspace.H10[39]; +acadoWorkspace.H[17] = acadoWorkspace.H10[42]; +acadoWorkspace.H[18] = acadoWorkspace.H10[45]; +acadoWorkspace.H[19] = acadoWorkspace.H10[48]; +acadoWorkspace.H[20] = acadoWorkspace.H10[51]; +acadoWorkspace.H[21] = acadoWorkspace.H10[54]; +acadoWorkspace.H[22] = acadoWorkspace.H10[57]; +acadoWorkspace.H[26] = acadoWorkspace.H10[1]; +acadoWorkspace.H[27] = acadoWorkspace.H10[4]; +acadoWorkspace.H[28] = acadoWorkspace.H10[7]; +acadoWorkspace.H[29] = acadoWorkspace.H10[10]; +acadoWorkspace.H[30] = acadoWorkspace.H10[13]; +acadoWorkspace.H[31] = acadoWorkspace.H10[16]; +acadoWorkspace.H[32] = acadoWorkspace.H10[19]; +acadoWorkspace.H[33] = acadoWorkspace.H10[22]; +acadoWorkspace.H[34] = acadoWorkspace.H10[25]; +acadoWorkspace.H[35] = acadoWorkspace.H10[28]; +acadoWorkspace.H[36] = acadoWorkspace.H10[31]; +acadoWorkspace.H[37] = acadoWorkspace.H10[34]; acadoWorkspace.H[38] = acadoWorkspace.H10[37]; -acadoWorkspace.H[39] = acadoWorkspace.H10[43]; -acadoWorkspace.H[40] = acadoWorkspace.H10[49]; -acadoWorkspace.H[41] = acadoWorkspace.H10[55]; -acadoWorkspace.H[42] = acadoWorkspace.H10[61]; -acadoWorkspace.H[43] = acadoWorkspace.H10[67]; -acadoWorkspace.H[44] = acadoWorkspace.H10[73]; -acadoWorkspace.H[45] = acadoWorkspace.H10[79]; -acadoWorkspace.H[46] = acadoWorkspace.H10[85]; -acadoWorkspace.H[47] = acadoWorkspace.H10[91]; -acadoWorkspace.H[48] = acadoWorkspace.H10[97]; -acadoWorkspace.H[49] = acadoWorkspace.H10[103]; -acadoWorkspace.H[50] = acadoWorkspace.H10[109]; -acadoWorkspace.H[51] = acadoWorkspace.H10[115]; -acadoWorkspace.H[58] = acadoWorkspace.H10[2]; -acadoWorkspace.H[59] = acadoWorkspace.H10[8]; -acadoWorkspace.H[60] = acadoWorkspace.H10[14]; -acadoWorkspace.H[61] = acadoWorkspace.H10[20]; -acadoWorkspace.H[62] = acadoWorkspace.H10[26]; -acadoWorkspace.H[63] = acadoWorkspace.H10[32]; -acadoWorkspace.H[64] = acadoWorkspace.H10[38]; -acadoWorkspace.H[65] = acadoWorkspace.H10[44]; -acadoWorkspace.H[66] = acadoWorkspace.H10[50]; +acadoWorkspace.H[39] = acadoWorkspace.H10[40]; +acadoWorkspace.H[40] = acadoWorkspace.H10[43]; +acadoWorkspace.H[41] = acadoWorkspace.H10[46]; +acadoWorkspace.H[42] = acadoWorkspace.H10[49]; +acadoWorkspace.H[43] = acadoWorkspace.H10[52]; +acadoWorkspace.H[44] = acadoWorkspace.H10[55]; +acadoWorkspace.H[45] = acadoWorkspace.H10[58]; +acadoWorkspace.H[49] = acadoWorkspace.H10[2]; +acadoWorkspace.H[50] = acadoWorkspace.H10[5]; +acadoWorkspace.H[51] = acadoWorkspace.H10[8]; +acadoWorkspace.H[52] = acadoWorkspace.H10[11]; +acadoWorkspace.H[53] = acadoWorkspace.H10[14]; +acadoWorkspace.H[54] = acadoWorkspace.H10[17]; +acadoWorkspace.H[55] = acadoWorkspace.H10[20]; +acadoWorkspace.H[56] = acadoWorkspace.H10[23]; +acadoWorkspace.H[57] = acadoWorkspace.H10[26]; +acadoWorkspace.H[58] = acadoWorkspace.H10[29]; +acadoWorkspace.H[59] = acadoWorkspace.H10[32]; +acadoWorkspace.H[60] = acadoWorkspace.H10[35]; +acadoWorkspace.H[61] = acadoWorkspace.H10[38]; +acadoWorkspace.H[62] = acadoWorkspace.H10[41]; +acadoWorkspace.H[63] = acadoWorkspace.H10[44]; +acadoWorkspace.H[64] = acadoWorkspace.H10[47]; +acadoWorkspace.H[65] = acadoWorkspace.H10[50]; +acadoWorkspace.H[66] = acadoWorkspace.H10[53]; acadoWorkspace.H[67] = acadoWorkspace.H10[56]; -acadoWorkspace.H[68] = acadoWorkspace.H10[62]; -acadoWorkspace.H[69] = acadoWorkspace.H10[68]; -acadoWorkspace.H[70] = acadoWorkspace.H10[74]; -acadoWorkspace.H[71] = acadoWorkspace.H10[80]; -acadoWorkspace.H[72] = acadoWorkspace.H10[86]; -acadoWorkspace.H[73] = acadoWorkspace.H10[92]; -acadoWorkspace.H[74] = acadoWorkspace.H10[98]; -acadoWorkspace.H[75] = acadoWorkspace.H10[104]; -acadoWorkspace.H[76] = acadoWorkspace.H10[110]; -acadoWorkspace.H[77] = acadoWorkspace.H10[116]; -acadoWorkspace.H[84] = acadoWorkspace.H10[3]; -acadoWorkspace.H[85] = acadoWorkspace.H10[9]; -acadoWorkspace.H[86] = acadoWorkspace.H10[15]; -acadoWorkspace.H[87] = acadoWorkspace.H10[21]; -acadoWorkspace.H[88] = acadoWorkspace.H10[27]; -acadoWorkspace.H[89] = acadoWorkspace.H10[33]; -acadoWorkspace.H[90] = acadoWorkspace.H10[39]; -acadoWorkspace.H[91] = acadoWorkspace.H10[45]; -acadoWorkspace.H[92] = acadoWorkspace.H10[51]; -acadoWorkspace.H[93] = acadoWorkspace.H10[57]; -acadoWorkspace.H[94] = acadoWorkspace.H10[63]; -acadoWorkspace.H[95] = acadoWorkspace.H10[69]; -acadoWorkspace.H[96] = acadoWorkspace.H10[75]; -acadoWorkspace.H[97] = acadoWorkspace.H10[81]; -acadoWorkspace.H[98] = acadoWorkspace.H10[87]; -acadoWorkspace.H[99] = acadoWorkspace.H10[93]; -acadoWorkspace.H[100] = acadoWorkspace.H10[99]; -acadoWorkspace.H[101] = acadoWorkspace.H10[105]; -acadoWorkspace.H[102] = acadoWorkspace.H10[111]; -acadoWorkspace.H[103] = acadoWorkspace.H10[117]; -acadoWorkspace.H[110] = acadoWorkspace.H10[4]; -acadoWorkspace.H[111] = acadoWorkspace.H10[10]; -acadoWorkspace.H[112] = acadoWorkspace.H10[16]; -acadoWorkspace.H[113] = acadoWorkspace.H10[22]; -acadoWorkspace.H[114] = acadoWorkspace.H10[28]; -acadoWorkspace.H[115] = acadoWorkspace.H10[34]; -acadoWorkspace.H[116] = acadoWorkspace.H10[40]; -acadoWorkspace.H[117] = acadoWorkspace.H10[46]; -acadoWorkspace.H[118] = acadoWorkspace.H10[52]; -acadoWorkspace.H[119] = acadoWorkspace.H10[58]; -acadoWorkspace.H[120] = acadoWorkspace.H10[64]; -acadoWorkspace.H[121] = acadoWorkspace.H10[70]; -acadoWorkspace.H[122] = acadoWorkspace.H10[76]; -acadoWorkspace.H[123] = acadoWorkspace.H10[82]; -acadoWorkspace.H[124] = acadoWorkspace.H10[88]; -acadoWorkspace.H[125] = acadoWorkspace.H10[94]; -acadoWorkspace.H[126] = acadoWorkspace.H10[100]; -acadoWorkspace.H[127] = acadoWorkspace.H10[106]; -acadoWorkspace.H[128] = acadoWorkspace.H10[112]; -acadoWorkspace.H[129] = acadoWorkspace.H10[118]; -acadoWorkspace.H[136] = acadoWorkspace.H10[5]; -acadoWorkspace.H[137] = acadoWorkspace.H10[11]; -acadoWorkspace.H[138] = acadoWorkspace.H10[17]; -acadoWorkspace.H[139] = acadoWorkspace.H10[23]; -acadoWorkspace.H[140] = acadoWorkspace.H10[29]; -acadoWorkspace.H[141] = acadoWorkspace.H10[35]; -acadoWorkspace.H[142] = acadoWorkspace.H10[41]; -acadoWorkspace.H[143] = acadoWorkspace.H10[47]; -acadoWorkspace.H[144] = acadoWorkspace.H10[53]; -acadoWorkspace.H[145] = acadoWorkspace.H10[59]; -acadoWorkspace.H[146] = acadoWorkspace.H10[65]; -acadoWorkspace.H[147] = acadoWorkspace.H10[71]; -acadoWorkspace.H[148] = acadoWorkspace.H10[77]; -acadoWorkspace.H[149] = acadoWorkspace.H10[83]; -acadoWorkspace.H[150] = acadoWorkspace.H10[89]; -acadoWorkspace.H[151] = acadoWorkspace.H10[95]; -acadoWorkspace.H[152] = acadoWorkspace.H10[101]; -acadoWorkspace.H[153] = acadoWorkspace.H10[107]; -acadoWorkspace.H[154] = acadoWorkspace.H10[113]; -acadoWorkspace.H[155] = acadoWorkspace.H10[119]; +acadoWorkspace.H[68] = acadoWorkspace.H10[59]; acado_setBlockH11_R1( 0, 0, acadoWorkspace.R1 ); acado_setBlockH11( 0, 0, acadoWorkspace.E, acadoWorkspace.QE ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QE[ 6 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 3 ]), &(acadoWorkspace.QE[ 3 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.QE[ 9 ]) ); acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 18 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 36 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 60 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 90 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 126 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 168 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 216 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 270 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 330 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 396 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 468 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 546 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 630 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 720 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 816 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 918 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1026 ]) ); -acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1140 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 30 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 45 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 63 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 84 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 108 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 135 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 165 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 198 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 234 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 273 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 315 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 360 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 408 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 459 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 513 ]) ); +acado_setBlockH11( 0, 0, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 570 ]) ); acado_zeroBlockH11( 0, 1 ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QE[ 12 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 24 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 42 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 66 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 96 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 132 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 174 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 222 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 276 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 336 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 402 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 474 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 552 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 636 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 726 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 822 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 924 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1032 ]) ); -acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1146 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 3 ]), &(acadoWorkspace.QE[ 6 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.QE[ 12 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 21 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 33 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 48 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 66 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 87 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 111 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 138 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 168 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 201 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 237 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 276 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 318 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 363 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 411 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 462 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 516 ]) ); +acado_setBlockH11( 0, 1, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 573 ]) ); acado_zeroBlockH11( 0, 2 ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 30 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 48 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 72 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 102 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 138 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 180 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 228 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 282 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 342 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 408 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 480 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 558 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 642 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 732 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 828 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 930 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1038 ]) ); -acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1152 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.QE[ 15 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 24 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 36 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 51 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 69 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 90 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 114 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 141 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 171 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 204 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 240 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 279 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 321 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 366 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 414 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 465 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 519 ]) ); +acado_setBlockH11( 0, 2, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 576 ]) ); acado_zeroBlockH11( 0, 3 ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 54 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 78 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 108 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 144 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 186 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 234 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 288 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 348 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 414 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 486 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 564 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 648 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 738 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 834 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 936 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1044 ]) ); -acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1158 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QE[ 27 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 39 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 54 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 72 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 93 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 117 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 144 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 174 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 207 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 243 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 282 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 324 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 369 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 417 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 468 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 522 ]) ); +acado_setBlockH11( 0, 3, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 579 ]) ); acado_zeroBlockH11( 0, 4 ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 84 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 114 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 150 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 192 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 240 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 294 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 354 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 420 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 492 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 570 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 654 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 744 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 840 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 942 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1050 ]) ); -acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1164 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 57 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 75 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 96 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 120 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 147 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 177 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 210 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 246 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 285 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 327 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 372 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 420 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 471 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 525 ]) ); +acado_setBlockH11( 0, 4, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 582 ]) ); acado_zeroBlockH11( 0, 5 ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1170 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_setBlockH11( 0, 5, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 585 ]) ); acado_zeroBlockH11( 0, 6 ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 0, 6, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 0, 7 ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 0, 7, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 0, 8 ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 0, 8, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 0, 9 ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 0, 9, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 0, 10 ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 0, 10, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 0, 11 ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 0, 11, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 0, 12 ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 0, 12, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 0, 13 ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 0, 13, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 0, 14 ); -acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 0, 14, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 0, 15 ); -acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 0, 15, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 0, 16 ); -acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 0, 16, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 0, 17 ); -acado_setBlockH11( 0, 17, &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 0, 17, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 0, 17, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 0, 17, &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 0, 17, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 0, 17, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 0, 18 ); -acado_setBlockH11( 0, 18, &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 0, 18, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 0, 18, &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 0, 18, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 0, 19 ); -acado_setBlockH11( 0, 19, &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 0, 19, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 1, 1, &(acadoWorkspace.R1[ 1 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QE[ 6 ]) ); acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.QE[ 12 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QE[ 24 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.QE[ 21 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.QE[ 33 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 48 ]) ); acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 66 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 96 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 132 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 174 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 87 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 111 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 138 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 168 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 201 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 237 ]) ); acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 276 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 336 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 402 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 474 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 552 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 636 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 726 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 822 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 924 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1032 ]) ); -acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1146 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 318 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 363 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 411 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 462 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 516 ]) ); +acado_setBlockH11( 1, 1, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 573 ]) ); acado_zeroBlockH11( 1, 2 ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QE[ 30 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QE[ 48 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 72 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 102 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 138 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 180 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 228 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 282 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 342 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 408 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 480 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 558 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 642 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 732 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 828 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 930 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1038 ]) ); -acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1152 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.QE[ 15 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.QE[ 24 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.QE[ 36 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 51 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 69 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 90 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 114 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 141 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 171 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 204 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 240 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 279 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 321 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 366 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 414 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 465 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 519 ]) ); +acado_setBlockH11( 1, 2, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 576 ]) ); acado_zeroBlockH11( 1, 3 ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QE[ 54 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 78 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 108 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 144 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 186 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 234 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 288 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 348 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 414 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 486 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 564 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 648 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 738 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 834 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 936 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1044 ]) ); -acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1158 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.QE[ 27 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.QE[ 39 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 54 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 72 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 93 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 117 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 144 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 174 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 207 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 243 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 282 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 324 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 369 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 417 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 468 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 522 ]) ); +acado_setBlockH11( 1, 3, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 579 ]) ); acado_zeroBlockH11( 1, 4 ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 84 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 114 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 150 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 192 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 240 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 294 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 354 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 420 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 492 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 570 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 654 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 744 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 840 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 942 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1050 ]) ); -acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1164 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 57 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 75 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 96 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 120 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 147 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 177 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 210 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 246 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 285 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 327 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 372 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 420 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 471 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 525 ]) ); +acado_setBlockH11( 1, 4, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 582 ]) ); acado_zeroBlockH11( 1, 5 ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1170 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_setBlockH11( 1, 5, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 585 ]) ); acado_zeroBlockH11( 1, 6 ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 1, 6, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 1, 7 ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 1, 7, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 1, 8 ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 1, 8, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 1, 9 ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 1, 9, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 1, 10 ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 1, 10, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 1, 11 ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 1, 11, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 1, 12 ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 1, 12, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 1, 13 ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 1, 13, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 1, 14 ); -acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 1, 14, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 1, 15 ); -acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 1, 15, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 1, 16 ); -acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 1, 16, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 1, 17 ); -acado_setBlockH11( 1, 17, &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 1, 17, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 1, 17, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 1, 17, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 1, 17, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 1, 17, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 1, 18 ); -acado_setBlockH11( 1, 18, &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 1, 18, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 1, 18, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 1, 18, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 1, 19 ); -acado_setBlockH11( 1, 19, &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 1, 19, &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 2, 2, &(acadoWorkspace.R1[ 2 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QE[ 30 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 48 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 72 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 102 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 138 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 180 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 228 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 282 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 342 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 408 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 480 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 558 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 642 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 732 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 828 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 930 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1038 ]) ); -acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1152 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 15 ]), &(acadoWorkspace.QE[ 15 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QE[ 24 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 36 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.QE[ 51 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QE[ 69 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 90 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 114 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 141 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 171 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 204 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 240 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 279 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 321 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 366 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 414 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 465 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 519 ]) ); +acado_setBlockH11( 2, 2, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 576 ]) ); acado_zeroBlockH11( 2, 3 ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QE[ 54 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 78 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 108 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 144 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 186 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 234 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 288 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 348 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 414 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 486 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 564 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 648 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 738 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 834 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 936 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1044 ]) ); -acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1158 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QE[ 27 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 39 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.QE[ 54 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QE[ 72 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 93 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 117 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 144 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 174 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 207 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 243 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 282 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 324 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 369 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 417 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 468 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 522 ]) ); +acado_setBlockH11( 2, 3, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 579 ]) ); acado_zeroBlockH11( 2, 4 ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 84 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 114 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 150 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 192 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 240 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 294 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 354 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 420 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 492 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 570 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 654 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 744 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 840 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 942 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1050 ]) ); -acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1164 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.QE[ 57 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QE[ 75 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 96 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 120 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 147 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 177 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 210 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 246 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 285 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 327 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 372 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 420 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 471 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 525 ]) ); +acado_setBlockH11( 2, 4, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 582 ]) ); acado_zeroBlockH11( 2, 5 ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1170 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_setBlockH11( 2, 5, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 585 ]) ); acado_zeroBlockH11( 2, 6 ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 2, 6, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 2, 7 ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 2, 7, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 2, 8 ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 2, 8, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 2, 9 ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 2, 9, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 2, 10 ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 2, 10, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 2, 11 ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 2, 11, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 2, 12 ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 2, 12, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 2, 13 ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 2, 13, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 2, 14 ); -acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 2, 14, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 2, 15 ); -acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 2, 15, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 2, 16 ); -acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 2, 16, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 2, 17 ); -acado_setBlockH11( 2, 17, &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 2, 17, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 2, 17, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 2, 17, &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 2, 17, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 2, 17, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 2, 18 ); -acado_setBlockH11( 2, 18, &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 2, 18, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 2, 18, &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 2, 18, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 2, 19 ); -acado_setBlockH11( 2, 19, &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 2, 19, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 3, 3, &(acadoWorkspace.R1[ 3 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 27 ]), &(acadoWorkspace.QE[ 27 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 39 ]), &(acadoWorkspace.QE[ 39 ]) ); acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QE[ 54 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QE[ 78 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 108 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 72 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QE[ 93 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 117 ]) ); acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 144 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 186 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 234 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 288 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 348 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 414 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 486 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 564 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 648 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 738 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 834 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 936 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1044 ]) ); -acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1158 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 174 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 207 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 243 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 282 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 324 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 369 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 417 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 468 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 522 ]) ); +acado_setBlockH11( 3, 3, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 579 ]) ); acado_zeroBlockH11( 3, 4 ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QE[ 84 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 114 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 150 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 192 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 240 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 294 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 354 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 420 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 492 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 570 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 654 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 744 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 840 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 942 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1050 ]) ); -acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1164 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 39 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QE[ 57 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 75 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QE[ 96 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 120 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 147 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 177 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 210 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 246 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 285 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 327 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 372 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 420 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 471 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 525 ]) ); +acado_setBlockH11( 3, 4, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 582 ]) ); acado_zeroBlockH11( 3, 5 ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1170 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_setBlockH11( 3, 5, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 585 ]) ); acado_zeroBlockH11( 3, 6 ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 3, 6, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 3, 7 ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 3, 7, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 3, 8 ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 3, 8, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 3, 9 ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 3, 9, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 3, 10 ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 3, 10, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 3, 11 ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 3, 11, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 3, 12 ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 3, 12, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 3, 13 ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 3, 13, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 3, 14 ); -acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 3, 14, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 3, 15 ); -acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 3, 15, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 3, 16 ); -acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 3, 16, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 3, 17 ); -acado_setBlockH11( 3, 17, &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 3, 17, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 3, 17, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 3, 17, &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 3, 17, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 3, 17, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 3, 18 ); -acado_setBlockH11( 3, 18, &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 3, 18, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 3, 18, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 3, 18, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 3, 19 ); -acado_setBlockH11( 3, 19, &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 3, 19, &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 4, 4, &(acadoWorkspace.R1[ 4 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QE[ 84 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 114 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 150 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 192 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 240 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 294 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QE[ 42 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 57 ]), &(acadoWorkspace.QE[ 57 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.QE[ 75 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 96 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 120 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 147 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 177 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 210 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 246 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 285 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 327 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 372 ]) ); acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 420 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 492 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 570 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 654 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 744 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 840 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 942 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1050 ]) ); -acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1164 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 471 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 525 ]) ); +acado_setBlockH11( 4, 4, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 582 ]) ); acado_zeroBlockH11( 4, 5 ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1170 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 57 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_setBlockH11( 4, 5, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 585 ]) ); acado_zeroBlockH11( 4, 6 ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 4, 6, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 4, 7 ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 4, 7, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 4, 8 ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 4, 8, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 4, 9 ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 4, 9, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 4, 10 ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 4, 10, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 4, 11 ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 4, 11, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 4, 12 ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 4, 12, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 4, 13 ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 4, 13, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 4, 14 ); -acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 4, 14, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 4, 15 ); -acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 4, 15, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 4, 16 ); -acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 4, 16, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 4, 17 ); -acado_setBlockH11( 4, 17, &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 4, 17, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 4, 17, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 4, 17, &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 4, 17, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 4, 17, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 4, 18 ); -acado_setBlockH11( 4, 18, &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 4, 18, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 4, 18, &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 4, 18, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 4, 19 ); -acado_setBlockH11( 4, 19, &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 4, 19, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 5, 5, &(acadoWorkspace.R1[ 5 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QE[ 120 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 156 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 198 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 246 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 300 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 360 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 426 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 498 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 576 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 660 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 750 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 846 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 948 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1056 ]) ); -acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1170 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QE[ 60 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QE[ 78 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.QE[ 99 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.QE[ 123 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 150 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 180 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 213 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 249 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 288 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 330 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 375 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 423 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 474 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 528 ]) ); +acado_setBlockH11( 5, 5, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 585 ]) ); acado_zeroBlockH11( 5, 6 ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 204 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 216 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 252 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 5, 6, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 5, 7 ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 5, 7, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 5, 8 ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 5, 8, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 5, 9 ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 5, 9, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 5, 10 ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 5, 10, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 5, 11 ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 5, 11, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 5, 12 ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 5, 12, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 5, 13 ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 5, 13, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 5, 14 ); -acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 5, 14, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 5, 15 ); -acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 5, 15, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 5, 16 ); -acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 5, 16, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 5, 17 ); -acado_setBlockH11( 5, 17, &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 5, 17, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 5, 17, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 5, 17, &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 5, 17, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 5, 17, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 5, 18 ); -acado_setBlockH11( 5, 18, &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 5, 18, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 5, 18, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 5, 18, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 5, 19 ); -acado_setBlockH11( 5, 19, &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 5, 19, &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 6, 6, &(acadoWorkspace.R1[ 6 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.QE[ 162 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 204 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 81 ]), &(acadoWorkspace.QE[ 81 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 102 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 126 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.QE[ 153 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QE[ 183 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 216 ]) ); acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 252 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 306 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 366 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 432 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 504 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 582 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 666 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 756 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 852 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 954 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1062 ]) ); -acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1176 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 291 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 333 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 378 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 426 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 477 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 531 ]) ); +acado_setBlockH11( 6, 6, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 588 ]) ); acado_zeroBlockH11( 6, 7 ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 6, 7, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 6, 8 ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 6, 8, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 6, 9 ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 6, 9, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 6, 10 ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 6, 10, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 6, 11 ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 6, 11, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 6, 12 ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 6, 12, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 6, 13 ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 6, 13, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 6, 14 ); -acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 6, 14, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 6, 15 ); -acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 6, 15, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 6, 16 ); -acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 6, 16, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 6, 17 ); -acado_setBlockH11( 6, 17, &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 6, 17, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 6, 17, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 6, 17, &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 6, 17, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 6, 17, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 6, 18 ); -acado_setBlockH11( 6, 18, &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 6, 18, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 6, 18, &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 6, 18, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 6, 19 ); -acado_setBlockH11( 6, 19, &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 6, 19, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 7, 7, &(acadoWorkspace.R1[ 7 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QE[ 210 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 258 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QE[ 312 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 372 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 438 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 510 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 588 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 672 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 762 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 858 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 960 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1068 ]) ); -acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1182 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 105 ]), &(acadoWorkspace.QE[ 105 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 129 ]), &(acadoWorkspace.QE[ 129 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 156 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 186 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QE[ 219 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 255 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 294 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 336 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 381 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 429 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 480 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 534 ]) ); +acado_setBlockH11( 7, 7, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 591 ]) ); acado_zeroBlockH11( 7, 8 ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 516 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1188 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 129 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 537 ]) ); +acado_setBlockH11( 7, 8, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 594 ]) ); acado_zeroBlockH11( 7, 9 ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 7, 9, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 7, 10 ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 7, 10, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 7, 11 ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 7, 11, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 7, 12 ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 7, 12, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 7, 13 ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 7, 13, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 7, 14 ); -acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 7, 14, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 7, 15 ); -acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 7, 15, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 7, 16 ); -acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 7, 16, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 7, 17 ); -acado_setBlockH11( 7, 17, &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 7, 17, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 7, 17, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 7, 17, &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 7, 17, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 7, 17, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 7, 18 ); -acado_setBlockH11( 7, 18, &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 7, 18, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 7, 18, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 7, 18, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 7, 19 ); -acado_setBlockH11( 7, 19, &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 7, 19, &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 8, 8, &(acadoWorkspace.R1[ 8 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QE[ 264 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 318 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 378 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 444 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 516 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QE[ 132 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 159 ]), &(acadoWorkspace.QE[ 159 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.QE[ 189 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 222 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 258 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 297 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 339 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 384 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 432 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 483 ]) ); +acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 537 ]) ); acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 594 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 678 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 768 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 864 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 966 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1074 ]) ); -acado_setBlockH11( 8, 8, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1188 ]) ); acado_zeroBlockH11( 8, 9 ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 159 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 8, 9, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 8, 10 ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 8, 10, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 8, 11 ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 8, 11, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 8, 12 ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 8, 12, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 8, 13 ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 8, 13, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 8, 14 ); -acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 8, 14, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 8, 15 ); -acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 8, 15, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 8, 16 ); -acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 8, 16, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 8, 17 ); -acado_setBlockH11( 8, 17, &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 8, 17, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 8, 17, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 8, 17, &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 8, 17, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 8, 17, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 8, 18 ); -acado_setBlockH11( 8, 18, &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 8, 18, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 8, 18, &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 8, 18, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 8, 19 ); -acado_setBlockH11( 8, 19, &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 8, 19, &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 9, 9, &(acadoWorkspace.R1[ 9 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QE[ 324 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 384 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 450 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 522 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 600 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 684 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 774 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 870 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 972 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1080 ]) ); -acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1194 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.QE[ 162 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 192 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.QE[ 225 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.QE[ 261 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 300 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 342 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 387 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 435 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 486 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 540 ]) ); +acado_setBlockH11( 9, 9, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 597 ]) ); acado_zeroBlockH11( 9, 10 ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 345 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 390 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 9, 10, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 9, 11 ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 9, 11, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 9, 12 ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 9, 12, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 9, 13 ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 9, 13, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 9, 14 ); -acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 9, 14, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 9, 15 ); -acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 9, 15, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 9, 16 ); -acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 9, 16, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 9, 17 ); -acado_setBlockH11( 9, 17, &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 9, 17, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 9, 17, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 9, 17, &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 9, 17, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 9, 17, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 9, 18 ); -acado_setBlockH11( 9, 18, &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 9, 18, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 9, 18, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 9, 18, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 9, 19 ); -acado_setBlockH11( 9, 19, &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 9, 19, &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 10, 10, &(acadoWorkspace.R1[ 10 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 195 ]), &(acadoWorkspace.QE[ 195 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 228 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QE[ 264 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.QE[ 303 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QE[ 345 ]) ); acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 390 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QE[ 456 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 528 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 606 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QE[ 690 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 780 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 876 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 978 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1086 ]) ); -acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1200 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 438 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 489 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 543 ]) ); +acado_setBlockH11( 10, 10, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 600 ]) ); acado_zeroBlockH11( 10, 11 ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 10, 11, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 10, 12 ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 10, 12, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 10, 13 ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 10, 13, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 10, 14 ); -acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 10, 14, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 10, 15 ); -acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 10, 15, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 10, 16 ); -acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 10, 16, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 10, 17 ); -acado_setBlockH11( 10, 17, &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 10, 17, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 10, 17, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 10, 17, &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 10, 17, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 10, 17, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 10, 18 ); -acado_setBlockH11( 10, 18, &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 10, 18, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 10, 18, &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 10, 18, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 10, 19 ); -acado_setBlockH11( 10, 19, &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 10, 19, &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 11, 11, &(acadoWorkspace.R1[ 11 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QE[ 462 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 534 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 612 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.QE[ 696 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QE[ 786 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 882 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 984 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1092 ]) ); -acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1206 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 231 ]), &(acadoWorkspace.QE[ 231 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 267 ]), &(acadoWorkspace.QE[ 267 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 306 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 348 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QE[ 393 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 441 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 492 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 546 ]) ); +acado_setBlockH11( 11, 11, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 603 ]) ); acado_zeroBlockH11( 11, 12 ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 267 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 11, 12, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 11, 13 ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 11, 13, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 11, 14 ); -acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 11, 14, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 11, 15 ); -acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 11, 15, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 11, 16 ); -acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 11, 16, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 11, 17 ); -acado_setBlockH11( 11, 17, &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 11, 17, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 11, 17, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 11, 17, &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 11, 17, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 11, 17, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 11, 18 ); -acado_setBlockH11( 11, 18, &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 11, 18, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 11, 18, &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 11, 18, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 11, 19 ); -acado_setBlockH11( 11, 19, &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 11, 19, &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 12, 12, &(acadoWorkspace.R1[ 12 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QE[ 540 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 618 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.QE[ 702 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.QE[ 792 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QE[ 888 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 990 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1098 ]) ); -acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1212 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QE[ 270 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 309 ]), &(acadoWorkspace.QE[ 309 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.QE[ 351 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 396 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 444 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 495 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 549 ]) ); +acado_setBlockH11( 12, 12, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 606 ]) ); acado_zeroBlockH11( 12, 13 ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 309 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 12, 13, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 12, 14 ); -acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 12, 14, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 12, 15 ); -acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 12, 15, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 12, 16 ); -acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 12, 16, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 12, 17 ); -acado_setBlockH11( 12, 17, &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 12, 17, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 12, 17, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 12, 17, &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 12, 17, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 12, 17, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 12, 18 ); -acado_setBlockH11( 12, 18, &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 12, 18, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 12, 18, &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 12, 18, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 12, 19 ); -acado_setBlockH11( 12, 19, &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 12, 19, &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 13, 13, &(acadoWorkspace.R1[ 13 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QE[ 624 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 708 ]), &(acadoWorkspace.QE[ 708 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.QE[ 798 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.QE[ 894 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QE[ 996 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1104 ]) ); -acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1218 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QE[ 312 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 354 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.QE[ 399 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.QE[ 447 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 498 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 552 ]) ); +acado_setBlockH11( 13, 13, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 609 ]) ); acado_zeroBlockH11( 13, 14 ); -acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 708 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 13, 14, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 13, 15 ); -acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 13, 15, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 13, 16 ); -acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 13, 16, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 13, 17 ); -acado_setBlockH11( 13, 17, &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 13, 17, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 13, 17, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 13, 17, &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 13, 17, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 13, 17, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 13, 18 ); -acado_setBlockH11( 13, 18, &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 13, 18, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 13, 18, &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 13, 18, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 13, 19 ); -acado_setBlockH11( 13, 19, &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 13, 19, &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 14, 14, &(acadoWorkspace.R1[ 14 ]) ); -acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 714 ]), &(acadoWorkspace.QE[ 714 ]) ); -acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 804 ]), &(acadoWorkspace.QE[ 804 ]) ); -acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.QE[ 900 ]) ); -acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.QE[ 1002 ]) ); -acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QE[ 1110 ]) ); -acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1224 ]) ); +acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 357 ]), &(acadoWorkspace.QE[ 357 ]) ); +acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 402 ]) ); +acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 450 ]) ); +acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.QE[ 501 ]) ); +acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QE[ 555 ]) ); +acado_setBlockH11( 14, 14, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 612 ]) ); acado_zeroBlockH11( 14, 15 ); -acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 804 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 14, 15, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 14, 16 ); -acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 14, 16, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 14, 17 ); -acado_setBlockH11( 14, 17, &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 14, 17, &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 14, 17, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 14, 17, &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 14, 17, &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 14, 17, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 14, 18 ); -acado_setBlockH11( 14, 18, &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 14, 18, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 14, 18, &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 14, 18, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 14, 19 ); -acado_setBlockH11( 14, 19, &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 14, 19, &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 15, 15, &(acadoWorkspace.R1[ 15 ]) ); -acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 810 ]), &(acadoWorkspace.QE[ 810 ]) ); -acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 906 ]), &(acadoWorkspace.QE[ 906 ]) ); -acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.QE[ 1008 ]) ); -acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.QE[ 1116 ]) ); -acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QE[ 1230 ]) ); +acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 405 ]), &(acadoWorkspace.QE[ 405 ]) ); +acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 453 ]), &(acadoWorkspace.QE[ 453 ]) ); +acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 504 ]) ); +acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 558 ]) ); +acado_setBlockH11( 15, 15, &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QE[ 615 ]) ); acado_zeroBlockH11( 15, 16 ); -acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 906 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 453 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 15, 16, &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 15, 17 ); -acado_setBlockH11( 15, 17, &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 15, 17, &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 15, 17, &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 15, 17, &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 15, 17, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 15, 17, &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 15, 18 ); -acado_setBlockH11( 15, 18, &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 15, 18, &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 15, 18, &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 15, 18, &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 15, 19 ); -acado_setBlockH11( 15, 19, &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 15, 19, &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 16, 16, &(acadoWorkspace.R1[ 16 ]) ); -acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 912 ]), &(acadoWorkspace.QE[ 912 ]) ); -acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 1014 ]), &(acadoWorkspace.QE[ 1014 ]) ); -acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.QE[ 1122 ]) ); -acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.QE[ 1236 ]) ); +acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QE[ 456 ]) ); +acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 507 ]), &(acadoWorkspace.QE[ 507 ]) ); +acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.QE[ 561 ]) ); +acado_setBlockH11( 16, 16, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 618 ]) ); acado_zeroBlockH11( 16, 17 ); -acado_setBlockH11( 16, 17, &(acadoWorkspace.E[ 1014 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 16, 17, &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 16, 17, &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 16, 17, &(acadoWorkspace.E[ 507 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 16, 17, &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 16, 17, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 16, 18 ); -acado_setBlockH11( 16, 18, &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 16, 18, &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 16, 18, &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 16, 18, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 16, 19 ); -acado_setBlockH11( 16, 19, &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 16, 19, &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 17, 17, &(acadoWorkspace.R1[ 17 ]) ); -acado_setBlockH11( 17, 17, &(acadoWorkspace.E[ 1020 ]), &(acadoWorkspace.QE[ 1020 ]) ); -acado_setBlockH11( 17, 17, &(acadoWorkspace.E[ 1128 ]), &(acadoWorkspace.QE[ 1128 ]) ); -acado_setBlockH11( 17, 17, &(acadoWorkspace.E[ 1242 ]), &(acadoWorkspace.QE[ 1242 ]) ); +acado_setBlockH11( 17, 17, &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QE[ 510 ]) ); +acado_setBlockH11( 17, 17, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 564 ]) ); +acado_setBlockH11( 17, 17, &(acadoWorkspace.E[ 621 ]), &(acadoWorkspace.QE[ 621 ]) ); acado_zeroBlockH11( 17, 18 ); -acado_setBlockH11( 17, 18, &(acadoWorkspace.E[ 1128 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 17, 18, &(acadoWorkspace.E[ 1242 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 17, 18, &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 17, 18, &(acadoWorkspace.E[ 621 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 17, 19 ); -acado_setBlockH11( 17, 19, &(acadoWorkspace.E[ 1242 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 17, 19, &(acadoWorkspace.E[ 621 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 18, 18, &(acadoWorkspace.R1[ 18 ]) ); -acado_setBlockH11( 18, 18, &(acadoWorkspace.E[ 1134 ]), &(acadoWorkspace.QE[ 1134 ]) ); -acado_setBlockH11( 18, 18, &(acadoWorkspace.E[ 1248 ]), &(acadoWorkspace.QE[ 1248 ]) ); +acado_setBlockH11( 18, 18, &(acadoWorkspace.E[ 567 ]), &(acadoWorkspace.QE[ 567 ]) ); +acado_setBlockH11( 18, 18, &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QE[ 624 ]) ); acado_zeroBlockH11( 18, 19 ); -acado_setBlockH11( 18, 19, &(acadoWorkspace.E[ 1248 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 18, 19, &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_setBlockH11_R1( 19, 19, &(acadoWorkspace.R1[ 19 ]) ); -acado_setBlockH11( 19, 19, &(acadoWorkspace.E[ 1254 ]), &(acadoWorkspace.QE[ 1254 ]) ); +acado_setBlockH11( 19, 19, &(acadoWorkspace.E[ 627 ]), &(acadoWorkspace.QE[ 627 ]) ); acado_copyHTH( 1, 0 ); @@ -3804,433 +3439,370 @@ acado_copyHTH( 19, 16 ); acado_copyHTH( 19, 17 ); acado_copyHTH( 19, 18 ); -acadoWorkspace.H[156] = acadoWorkspace.H10[0]; -acadoWorkspace.H[157] = acadoWorkspace.H10[1]; -acadoWorkspace.H[158] = acadoWorkspace.H10[2]; -acadoWorkspace.H[159] = acadoWorkspace.H10[3]; -acadoWorkspace.H[160] = acadoWorkspace.H10[4]; -acadoWorkspace.H[161] = acadoWorkspace.H10[5]; -acadoWorkspace.H[182] = acadoWorkspace.H10[6]; -acadoWorkspace.H[183] = acadoWorkspace.H10[7]; -acadoWorkspace.H[184] = acadoWorkspace.H10[8]; -acadoWorkspace.H[185] = acadoWorkspace.H10[9]; -acadoWorkspace.H[186] = acadoWorkspace.H10[10]; -acadoWorkspace.H[187] = acadoWorkspace.H10[11]; -acadoWorkspace.H[208] = acadoWorkspace.H10[12]; -acadoWorkspace.H[209] = acadoWorkspace.H10[13]; -acadoWorkspace.H[210] = acadoWorkspace.H10[14]; -acadoWorkspace.H[211] = acadoWorkspace.H10[15]; -acadoWorkspace.H[212] = acadoWorkspace.H10[16]; -acadoWorkspace.H[213] = acadoWorkspace.H10[17]; -acadoWorkspace.H[234] = acadoWorkspace.H10[18]; -acadoWorkspace.H[235] = acadoWorkspace.H10[19]; -acadoWorkspace.H[236] = acadoWorkspace.H10[20]; -acadoWorkspace.H[237] = acadoWorkspace.H10[21]; -acadoWorkspace.H[238] = acadoWorkspace.H10[22]; -acadoWorkspace.H[239] = acadoWorkspace.H10[23]; -acadoWorkspace.H[260] = acadoWorkspace.H10[24]; -acadoWorkspace.H[261] = acadoWorkspace.H10[25]; -acadoWorkspace.H[262] = acadoWorkspace.H10[26]; -acadoWorkspace.H[263] = acadoWorkspace.H10[27]; -acadoWorkspace.H[264] = acadoWorkspace.H10[28]; -acadoWorkspace.H[265] = acadoWorkspace.H10[29]; -acadoWorkspace.H[286] = acadoWorkspace.H10[30]; -acadoWorkspace.H[287] = acadoWorkspace.H10[31]; -acadoWorkspace.H[288] = acadoWorkspace.H10[32]; -acadoWorkspace.H[289] = acadoWorkspace.H10[33]; -acadoWorkspace.H[290] = acadoWorkspace.H10[34]; -acadoWorkspace.H[291] = acadoWorkspace.H10[35]; -acadoWorkspace.H[312] = acadoWorkspace.H10[36]; -acadoWorkspace.H[313] = acadoWorkspace.H10[37]; -acadoWorkspace.H[314] = acadoWorkspace.H10[38]; -acadoWorkspace.H[315] = acadoWorkspace.H10[39]; -acadoWorkspace.H[316] = acadoWorkspace.H10[40]; -acadoWorkspace.H[317] = acadoWorkspace.H10[41]; -acadoWorkspace.H[338] = acadoWorkspace.H10[42]; -acadoWorkspace.H[339] = acadoWorkspace.H10[43]; -acadoWorkspace.H[340] = acadoWorkspace.H10[44]; -acadoWorkspace.H[341] = acadoWorkspace.H10[45]; -acadoWorkspace.H[342] = acadoWorkspace.H10[46]; -acadoWorkspace.H[343] = acadoWorkspace.H10[47]; -acadoWorkspace.H[364] = acadoWorkspace.H10[48]; -acadoWorkspace.H[365] = acadoWorkspace.H10[49]; -acadoWorkspace.H[366] = acadoWorkspace.H10[50]; -acadoWorkspace.H[367] = acadoWorkspace.H10[51]; -acadoWorkspace.H[368] = acadoWorkspace.H10[52]; -acadoWorkspace.H[369] = acadoWorkspace.H10[53]; -acadoWorkspace.H[390] = acadoWorkspace.H10[54]; -acadoWorkspace.H[391] = acadoWorkspace.H10[55]; -acadoWorkspace.H[392] = acadoWorkspace.H10[56]; -acadoWorkspace.H[393] = acadoWorkspace.H10[57]; -acadoWorkspace.H[394] = acadoWorkspace.H10[58]; -acadoWorkspace.H[395] = acadoWorkspace.H10[59]; -acadoWorkspace.H[416] = acadoWorkspace.H10[60]; -acadoWorkspace.H[417] = acadoWorkspace.H10[61]; -acadoWorkspace.H[418] = acadoWorkspace.H10[62]; -acadoWorkspace.H[419] = acadoWorkspace.H10[63]; -acadoWorkspace.H[420] = acadoWorkspace.H10[64]; -acadoWorkspace.H[421] = acadoWorkspace.H10[65]; -acadoWorkspace.H[442] = acadoWorkspace.H10[66]; -acadoWorkspace.H[443] = acadoWorkspace.H10[67]; -acadoWorkspace.H[444] = acadoWorkspace.H10[68]; -acadoWorkspace.H[445] = acadoWorkspace.H10[69]; -acadoWorkspace.H[446] = acadoWorkspace.H10[70]; -acadoWorkspace.H[447] = acadoWorkspace.H10[71]; -acadoWorkspace.H[468] = acadoWorkspace.H10[72]; -acadoWorkspace.H[469] = acadoWorkspace.H10[73]; -acadoWorkspace.H[470] = acadoWorkspace.H10[74]; -acadoWorkspace.H[471] = acadoWorkspace.H10[75]; -acadoWorkspace.H[472] = acadoWorkspace.H10[76]; -acadoWorkspace.H[473] = acadoWorkspace.H10[77]; -acadoWorkspace.H[494] = acadoWorkspace.H10[78]; -acadoWorkspace.H[495] = acadoWorkspace.H10[79]; -acadoWorkspace.H[496] = acadoWorkspace.H10[80]; -acadoWorkspace.H[497] = acadoWorkspace.H10[81]; -acadoWorkspace.H[498] = acadoWorkspace.H10[82]; -acadoWorkspace.H[499] = acadoWorkspace.H10[83]; -acadoWorkspace.H[520] = acadoWorkspace.H10[84]; -acadoWorkspace.H[521] = acadoWorkspace.H10[85]; -acadoWorkspace.H[522] = acadoWorkspace.H10[86]; -acadoWorkspace.H[523] = acadoWorkspace.H10[87]; -acadoWorkspace.H[524] = acadoWorkspace.H10[88]; -acadoWorkspace.H[525] = acadoWorkspace.H10[89]; -acadoWorkspace.H[546] = acadoWorkspace.H10[90]; -acadoWorkspace.H[547] = acadoWorkspace.H10[91]; -acadoWorkspace.H[548] = acadoWorkspace.H10[92]; -acadoWorkspace.H[549] = acadoWorkspace.H10[93]; -acadoWorkspace.H[550] = acadoWorkspace.H10[94]; -acadoWorkspace.H[551] = acadoWorkspace.H10[95]; -acadoWorkspace.H[572] = acadoWorkspace.H10[96]; -acadoWorkspace.H[573] = acadoWorkspace.H10[97]; -acadoWorkspace.H[574] = acadoWorkspace.H10[98]; -acadoWorkspace.H[575] = acadoWorkspace.H10[99]; -acadoWorkspace.H[576] = acadoWorkspace.H10[100]; -acadoWorkspace.H[577] = acadoWorkspace.H10[101]; -acadoWorkspace.H[598] = acadoWorkspace.H10[102]; -acadoWorkspace.H[599] = acadoWorkspace.H10[103]; -acadoWorkspace.H[600] = acadoWorkspace.H10[104]; -acadoWorkspace.H[601] = acadoWorkspace.H10[105]; -acadoWorkspace.H[602] = acadoWorkspace.H10[106]; -acadoWorkspace.H[603] = acadoWorkspace.H10[107]; -acadoWorkspace.H[624] = acadoWorkspace.H10[108]; -acadoWorkspace.H[625] = acadoWorkspace.H10[109]; -acadoWorkspace.H[626] = acadoWorkspace.H10[110]; -acadoWorkspace.H[627] = acadoWorkspace.H10[111]; -acadoWorkspace.H[628] = acadoWorkspace.H10[112]; -acadoWorkspace.H[629] = acadoWorkspace.H10[113]; -acadoWorkspace.H[650] = acadoWorkspace.H10[114]; -acadoWorkspace.H[651] = acadoWorkspace.H10[115]; -acadoWorkspace.H[652] = acadoWorkspace.H10[116]; -acadoWorkspace.H[653] = acadoWorkspace.H10[117]; -acadoWorkspace.H[654] = acadoWorkspace.H10[118]; -acadoWorkspace.H[655] = acadoWorkspace.H10[119]; +acadoWorkspace.H[69] = acadoWorkspace.H10[0]; +acadoWorkspace.H[70] = acadoWorkspace.H10[1]; +acadoWorkspace.H[71] = acadoWorkspace.H10[2]; +acadoWorkspace.H[92] = acadoWorkspace.H10[3]; +acadoWorkspace.H[93] = acadoWorkspace.H10[4]; +acadoWorkspace.H[94] = acadoWorkspace.H10[5]; +acadoWorkspace.H[115] = acadoWorkspace.H10[6]; +acadoWorkspace.H[116] = acadoWorkspace.H10[7]; +acadoWorkspace.H[117] = acadoWorkspace.H10[8]; +acadoWorkspace.H[138] = acadoWorkspace.H10[9]; +acadoWorkspace.H[139] = acadoWorkspace.H10[10]; +acadoWorkspace.H[140] = acadoWorkspace.H10[11]; +acadoWorkspace.H[161] = acadoWorkspace.H10[12]; +acadoWorkspace.H[162] = acadoWorkspace.H10[13]; +acadoWorkspace.H[163] = acadoWorkspace.H10[14]; +acadoWorkspace.H[184] = acadoWorkspace.H10[15]; +acadoWorkspace.H[185] = acadoWorkspace.H10[16]; +acadoWorkspace.H[186] = acadoWorkspace.H10[17]; +acadoWorkspace.H[207] = acadoWorkspace.H10[18]; +acadoWorkspace.H[208] = acadoWorkspace.H10[19]; +acadoWorkspace.H[209] = acadoWorkspace.H10[20]; +acadoWorkspace.H[230] = acadoWorkspace.H10[21]; +acadoWorkspace.H[231] = acadoWorkspace.H10[22]; +acadoWorkspace.H[232] = acadoWorkspace.H10[23]; +acadoWorkspace.H[253] = acadoWorkspace.H10[24]; +acadoWorkspace.H[254] = acadoWorkspace.H10[25]; +acadoWorkspace.H[255] = acadoWorkspace.H10[26]; +acadoWorkspace.H[276] = acadoWorkspace.H10[27]; +acadoWorkspace.H[277] = acadoWorkspace.H10[28]; +acadoWorkspace.H[278] = acadoWorkspace.H10[29]; +acadoWorkspace.H[299] = acadoWorkspace.H10[30]; +acadoWorkspace.H[300] = acadoWorkspace.H10[31]; +acadoWorkspace.H[301] = acadoWorkspace.H10[32]; +acadoWorkspace.H[322] = acadoWorkspace.H10[33]; +acadoWorkspace.H[323] = acadoWorkspace.H10[34]; +acadoWorkspace.H[324] = acadoWorkspace.H10[35]; +acadoWorkspace.H[345] = acadoWorkspace.H10[36]; +acadoWorkspace.H[346] = acadoWorkspace.H10[37]; +acadoWorkspace.H[347] = acadoWorkspace.H10[38]; +acadoWorkspace.H[368] = acadoWorkspace.H10[39]; +acadoWorkspace.H[369] = acadoWorkspace.H10[40]; +acadoWorkspace.H[370] = acadoWorkspace.H10[41]; +acadoWorkspace.H[391] = acadoWorkspace.H10[42]; +acadoWorkspace.H[392] = acadoWorkspace.H10[43]; +acadoWorkspace.H[393] = acadoWorkspace.H10[44]; +acadoWorkspace.H[414] = acadoWorkspace.H10[45]; +acadoWorkspace.H[415] = acadoWorkspace.H10[46]; +acadoWorkspace.H[416] = acadoWorkspace.H10[47]; +acadoWorkspace.H[437] = acadoWorkspace.H10[48]; +acadoWorkspace.H[438] = acadoWorkspace.H10[49]; +acadoWorkspace.H[439] = acadoWorkspace.H10[50]; +acadoWorkspace.H[460] = acadoWorkspace.H10[51]; +acadoWorkspace.H[461] = acadoWorkspace.H10[52]; +acadoWorkspace.H[462] = acadoWorkspace.H10[53]; +acadoWorkspace.H[483] = acadoWorkspace.H10[54]; +acadoWorkspace.H[484] = acadoWorkspace.H10[55]; +acadoWorkspace.H[485] = acadoWorkspace.H10[56]; +acadoWorkspace.H[506] = acadoWorkspace.H10[57]; +acadoWorkspace.H[507] = acadoWorkspace.H10[58]; +acadoWorkspace.H[508] = acadoWorkspace.H10[59]; -acado_multQ1d( &(acadoWorkspace.Q1[ 36 ]), acadoWorkspace.d, acadoWorkspace.Qd ); -acado_multQ1d( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.d[ 6 ]), &(acadoWorkspace.Qd[ 6 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.d[ 12 ]), &(acadoWorkspace.Qd[ 12 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.d[ 18 ]), &(acadoWorkspace.Qd[ 18 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 180 ]), &(acadoWorkspace.d[ 24 ]), &(acadoWorkspace.Qd[ 24 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 216 ]), &(acadoWorkspace.d[ 30 ]), &(acadoWorkspace.Qd[ 30 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 252 ]), &(acadoWorkspace.d[ 36 ]), &(acadoWorkspace.Qd[ 36 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 288 ]), &(acadoWorkspace.d[ 42 ]), &(acadoWorkspace.Qd[ 42 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 324 ]), &(acadoWorkspace.d[ 48 ]), &(acadoWorkspace.Qd[ 48 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 360 ]), &(acadoWorkspace.d[ 54 ]), &(acadoWorkspace.Qd[ 54 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 396 ]), &(acadoWorkspace.d[ 60 ]), &(acadoWorkspace.Qd[ 60 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 432 ]), &(acadoWorkspace.d[ 66 ]), &(acadoWorkspace.Qd[ 66 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 468 ]), &(acadoWorkspace.d[ 72 ]), &(acadoWorkspace.Qd[ 72 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 504 ]), &(acadoWorkspace.d[ 78 ]), &(acadoWorkspace.Qd[ 78 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 540 ]), &(acadoWorkspace.d[ 84 ]), &(acadoWorkspace.Qd[ 84 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 576 ]), &(acadoWorkspace.d[ 90 ]), &(acadoWorkspace.Qd[ 90 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 612 ]), &(acadoWorkspace.d[ 96 ]), &(acadoWorkspace.Qd[ 96 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 648 ]), &(acadoWorkspace.d[ 102 ]), &(acadoWorkspace.Qd[ 102 ]) ); -acado_multQ1d( &(acadoWorkspace.Q1[ 684 ]), &(acadoWorkspace.d[ 108 ]), &(acadoWorkspace.Qd[ 108 ]) ); -acado_multQN1d( acadoWorkspace.QN1, &(acadoWorkspace.d[ 114 ]), &(acadoWorkspace.Qd[ 114 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 9 ]), acadoWorkspace.d, acadoWorkspace.Qd ); +acado_multQ1d( &(acadoWorkspace.Q1[ 18 ]), &(acadoWorkspace.d[ 3 ]), &(acadoWorkspace.Qd[ 3 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 27 ]), &(acadoWorkspace.d[ 6 ]), &(acadoWorkspace.Qd[ 6 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 36 ]), &(acadoWorkspace.d[ 9 ]), &(acadoWorkspace.Qd[ 9 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 45 ]), &(acadoWorkspace.d[ 12 ]), &(acadoWorkspace.Qd[ 12 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 54 ]), &(acadoWorkspace.d[ 15 ]), &(acadoWorkspace.Qd[ 15 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 63 ]), &(acadoWorkspace.d[ 18 ]), &(acadoWorkspace.Qd[ 18 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 72 ]), &(acadoWorkspace.d[ 21 ]), &(acadoWorkspace.Qd[ 21 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 81 ]), &(acadoWorkspace.d[ 24 ]), &(acadoWorkspace.Qd[ 24 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 90 ]), &(acadoWorkspace.d[ 27 ]), &(acadoWorkspace.Qd[ 27 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 99 ]), &(acadoWorkspace.d[ 30 ]), &(acadoWorkspace.Qd[ 30 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 108 ]), &(acadoWorkspace.d[ 33 ]), &(acadoWorkspace.Qd[ 33 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 117 ]), &(acadoWorkspace.d[ 36 ]), &(acadoWorkspace.Qd[ 36 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 126 ]), &(acadoWorkspace.d[ 39 ]), &(acadoWorkspace.Qd[ 39 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 135 ]), &(acadoWorkspace.d[ 42 ]), &(acadoWorkspace.Qd[ 42 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 144 ]), &(acadoWorkspace.d[ 45 ]), &(acadoWorkspace.Qd[ 45 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 153 ]), &(acadoWorkspace.d[ 48 ]), &(acadoWorkspace.Qd[ 48 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 162 ]), &(acadoWorkspace.d[ 51 ]), &(acadoWorkspace.Qd[ 51 ]) ); +acado_multQ1d( &(acadoWorkspace.Q1[ 171 ]), &(acadoWorkspace.d[ 54 ]), &(acadoWorkspace.Qd[ 54 ]) ); +acado_multQN1d( acadoWorkspace.QN1, &(acadoWorkspace.d[ 57 ]), &(acadoWorkspace.Qd[ 57 ]) ); acado_macCTSlx( acadoWorkspace.evGx, acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 9 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 18 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 27 ]), acadoWorkspace.g ); acado_macCTSlx( &(acadoWorkspace.evGx[ 36 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 45 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 54 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 63 ]), acadoWorkspace.g ); acado_macCTSlx( &(acadoWorkspace.evGx[ 72 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 81 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 90 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 99 ]), acadoWorkspace.g ); acado_macCTSlx( &(acadoWorkspace.evGx[ 108 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 117 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 126 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 135 ]), acadoWorkspace.g ); acado_macCTSlx( &(acadoWorkspace.evGx[ 144 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 180 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 216 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 252 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 288 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 324 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 360 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 396 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 432 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 468 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 504 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 540 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 576 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 612 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 648 ]), acadoWorkspace.g ); -acado_macCTSlx( &(acadoWorkspace.evGx[ 684 ]), acadoWorkspace.g ); -acado_macETSlu( acadoWorkspace.QE, &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 6 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 18 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 36 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 60 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 90 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 126 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 168 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 216 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 270 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 330 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 396 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 153 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 162 ]), acadoWorkspace.g ); +acado_macCTSlx( &(acadoWorkspace.evGx[ 171 ]), acadoWorkspace.g ); +acado_macETSlu( acadoWorkspace.QE, &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 3 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 9 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 18 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 30 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 45 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 63 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 84 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 108 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 135 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 165 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 198 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 234 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 273 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 315 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 360 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 408 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 459 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 513 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 570 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 6 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 12 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 21 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 33 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 48 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 66 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 87 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 111 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 138 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 168 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 201 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 237 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 276 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 318 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 363 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 411 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 462 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 516 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 573 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 15 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 24 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 36 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 51 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 69 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 90 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 114 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 141 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 171 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 204 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 240 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 279 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 321 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 366 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 414 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 465 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 519 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 576 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 27 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 39 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 54 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 72 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 93 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 117 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 144 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 174 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 207 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 243 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 282 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 324 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 369 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 417 ]), &(acadoWorkspace.g[ 6 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 468 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 546 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 630 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 720 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 816 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 918 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1026 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1140 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 12 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 24 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 522 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 579 ]), &(acadoWorkspace.g[ 6 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 42 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 66 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 57 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 75 ]), &(acadoWorkspace.g[ 7 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 96 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 132 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 174 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 222 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 276 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 336 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 402 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 474 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 552 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 636 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 726 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 822 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 924 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1032 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1146 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 30 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 48 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 72 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 102 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 138 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 120 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 147 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 177 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 210 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 246 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 285 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 327 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 372 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 420 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 471 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 525 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 582 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 60 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 78 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 99 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 123 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 150 ]), &(acadoWorkspace.g[ 8 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 180 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 228 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 282 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 342 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 408 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 480 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 558 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 642 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 732 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 828 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 930 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1038 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1152 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 54 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 78 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 108 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 144 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 186 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 234 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 288 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 348 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 414 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 486 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 564 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 648 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 738 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 834 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 936 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1044 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1158 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 84 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 114 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 150 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 192 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 240 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 213 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 249 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 288 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 330 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 375 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 423 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 474 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 528 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 585 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 81 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 102 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 126 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 153 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 183 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 216 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 252 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 291 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 333 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 378 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 426 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 477 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 531 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 588 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 105 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 129 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 156 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 186 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 219 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 255 ]), &(acadoWorkspace.g[ 10 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 294 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 354 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 420 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 492 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 570 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 654 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 744 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 840 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 942 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1050 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1164 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 120 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 156 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 198 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 246 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 300 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 360 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 426 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 498 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 576 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 660 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 750 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 846 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 948 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1056 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1170 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 336 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 381 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 429 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 480 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 534 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 591 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 132 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 159 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 189 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 222 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 258 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 297 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 339 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 384 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 432 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 483 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 537 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 594 ]), &(acadoWorkspace.g[ 11 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 162 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 204 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 252 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 306 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 366 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 432 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 504 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 582 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 666 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 756 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 852 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 954 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1062 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1176 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 210 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 258 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 312 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 372 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 192 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 225 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 261 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 300 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 342 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 387 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 435 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 486 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 540 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 597 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 195 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 228 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 264 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 303 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 345 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 390 ]), &(acadoWorkspace.g[ 13 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 438 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 510 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 588 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 672 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 762 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 858 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 960 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1068 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1182 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 264 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 318 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 378 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 444 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 516 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 594 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 678 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 768 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 864 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 966 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1074 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1188 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 324 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 384 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 450 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 522 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 600 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 684 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 774 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 870 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 972 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1080 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1194 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 390 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 456 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 528 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 606 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 690 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 780 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 876 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 978 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1086 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1200 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 462 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 534 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 489 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 543 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 600 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 231 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 267 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 306 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 348 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 393 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 441 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 492 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 546 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 603 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 270 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 309 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 351 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 396 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 444 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 495 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 549 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 606 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 312 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 354 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 399 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 447 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 498 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 552 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 609 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 357 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 402 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 450 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 501 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 555 ]), &(acadoWorkspace.g[ 17 ]) ); acado_macETSlu( &(acadoWorkspace.QE[ 612 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 696 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 786 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 882 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 984 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1092 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1206 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 540 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 618 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 702 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 792 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 888 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 990 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1098 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1212 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 624 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 708 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 798 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 894 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 996 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1104 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1218 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 714 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 804 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 900 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1002 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1110 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1224 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 810 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 906 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1008 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1116 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1230 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 912 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1014 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1122 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1236 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1020 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1128 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1242 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1134 ]), &(acadoWorkspace.g[ 24 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1248 ]), &(acadoWorkspace.g[ 24 ]) ); -acado_macETSlu( &(acadoWorkspace.QE[ 1254 ]), &(acadoWorkspace.g[ 25 ]) ); -acadoWorkspace.lb[6] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[0]; -acadoWorkspace.lb[7] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[1]; -acadoWorkspace.lb[8] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[2]; -acadoWorkspace.lb[9] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[3]; -acadoWorkspace.lb[10] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[4]; -acadoWorkspace.lb[11] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[5]; -acadoWorkspace.lb[12] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[6]; -acadoWorkspace.lb[13] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[7]; -acadoWorkspace.lb[14] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[8]; -acadoWorkspace.lb[15] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[9]; -acadoWorkspace.lb[16] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[10]; -acadoWorkspace.lb[17] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[11]; -acadoWorkspace.lb[18] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[12]; -acadoWorkspace.lb[19] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[13]; -acadoWorkspace.lb[20] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[14]; -acadoWorkspace.lb[21] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[15]; -acadoWorkspace.lb[22] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[16]; -acadoWorkspace.lb[23] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[17]; -acadoWorkspace.lb[24] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[18]; -acadoWorkspace.lb[25] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[19]; -acadoWorkspace.ub[6] = (real_t)1.0000000000000000e+12 - acadoVariables.u[0]; -acadoWorkspace.ub[7] = (real_t)1.0000000000000000e+12 - acadoVariables.u[1]; -acadoWorkspace.ub[8] = (real_t)1.0000000000000000e+12 - acadoVariables.u[2]; -acadoWorkspace.ub[9] = (real_t)1.0000000000000000e+12 - acadoVariables.u[3]; -acadoWorkspace.ub[10] = (real_t)1.0000000000000000e+12 - acadoVariables.u[4]; -acadoWorkspace.ub[11] = (real_t)1.0000000000000000e+12 - acadoVariables.u[5]; -acadoWorkspace.ub[12] = (real_t)1.0000000000000000e+12 - acadoVariables.u[6]; -acadoWorkspace.ub[13] = (real_t)1.0000000000000000e+12 - acadoVariables.u[7]; -acadoWorkspace.ub[14] = (real_t)1.0000000000000000e+12 - acadoVariables.u[8]; -acadoWorkspace.ub[15] = (real_t)1.0000000000000000e+12 - acadoVariables.u[9]; -acadoWorkspace.ub[16] = (real_t)1.0000000000000000e+12 - acadoVariables.u[10]; -acadoWorkspace.ub[17] = (real_t)1.0000000000000000e+12 - acadoVariables.u[11]; -acadoWorkspace.ub[18] = (real_t)1.0000000000000000e+12 - acadoVariables.u[12]; -acadoWorkspace.ub[19] = (real_t)1.0000000000000000e+12 - acadoVariables.u[13]; -acadoWorkspace.ub[20] = (real_t)1.0000000000000000e+12 - acadoVariables.u[14]; -acadoWorkspace.ub[21] = (real_t)1.0000000000000000e+12 - acadoVariables.u[15]; -acadoWorkspace.ub[22] = (real_t)1.0000000000000000e+12 - acadoVariables.u[16]; -acadoWorkspace.ub[23] = (real_t)1.0000000000000000e+12 - acadoVariables.u[17]; -acadoWorkspace.ub[24] = (real_t)1.0000000000000000e+12 - acadoVariables.u[18]; -acadoWorkspace.ub[25] = (real_t)1.0000000000000000e+12 - acadoVariables.u[19]; +acado_macETSlu( &(acadoWorkspace.QE[ 405 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 453 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 504 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 558 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 615 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 456 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 507 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 561 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 618 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 510 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 564 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 621 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 567 ]), &(acadoWorkspace.g[ 21 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 624 ]), &(acadoWorkspace.g[ 21 ]) ); +acado_macETSlu( &(acadoWorkspace.QE[ 627 ]), &(acadoWorkspace.g[ 22 ]) ); +acadoWorkspace.lb[3] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[0]; +acadoWorkspace.lb[4] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[1]; +acadoWorkspace.lb[5] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[2]; +acadoWorkspace.lb[6] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[3]; +acadoWorkspace.lb[7] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[4]; +acadoWorkspace.lb[8] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[5]; +acadoWorkspace.lb[9] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[6]; +acadoWorkspace.lb[10] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[7]; +acadoWorkspace.lb[11] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[8]; +acadoWorkspace.lb[12] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[9]; +acadoWorkspace.lb[13] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[10]; +acadoWorkspace.lb[14] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[11]; +acadoWorkspace.lb[15] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[12]; +acadoWorkspace.lb[16] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[13]; +acadoWorkspace.lb[17] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[14]; +acadoWorkspace.lb[18] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[15]; +acadoWorkspace.lb[19] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[16]; +acadoWorkspace.lb[20] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[17]; +acadoWorkspace.lb[21] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[18]; +acadoWorkspace.lb[22] = (real_t)-1.0000000000000000e+12 - acadoVariables.u[19]; +acadoWorkspace.ub[3] = (real_t)1.0000000000000000e+12 - acadoVariables.u[0]; +acadoWorkspace.ub[4] = (real_t)1.0000000000000000e+12 - acadoVariables.u[1]; +acadoWorkspace.ub[5] = (real_t)1.0000000000000000e+12 - acadoVariables.u[2]; +acadoWorkspace.ub[6] = (real_t)1.0000000000000000e+12 - acadoVariables.u[3]; +acadoWorkspace.ub[7] = (real_t)1.0000000000000000e+12 - acadoVariables.u[4]; +acadoWorkspace.ub[8] = (real_t)1.0000000000000000e+12 - acadoVariables.u[5]; +acadoWorkspace.ub[9] = (real_t)1.0000000000000000e+12 - acadoVariables.u[6]; +acadoWorkspace.ub[10] = (real_t)1.0000000000000000e+12 - acadoVariables.u[7]; +acadoWorkspace.ub[11] = (real_t)1.0000000000000000e+12 - acadoVariables.u[8]; +acadoWorkspace.ub[12] = (real_t)1.0000000000000000e+12 - acadoVariables.u[9]; +acadoWorkspace.ub[13] = (real_t)1.0000000000000000e+12 - acadoVariables.u[10]; +acadoWorkspace.ub[14] = (real_t)1.0000000000000000e+12 - acadoVariables.u[11]; +acadoWorkspace.ub[15] = (real_t)1.0000000000000000e+12 - acadoVariables.u[12]; +acadoWorkspace.ub[16] = (real_t)1.0000000000000000e+12 - acadoVariables.u[13]; +acadoWorkspace.ub[17] = (real_t)1.0000000000000000e+12 - acadoVariables.u[14]; +acadoWorkspace.ub[18] = (real_t)1.0000000000000000e+12 - acadoVariables.u[15]; +acadoWorkspace.ub[19] = (real_t)1.0000000000000000e+12 - acadoVariables.u[16]; +acadoWorkspace.ub[20] = (real_t)1.0000000000000000e+12 - acadoVariables.u[17]; +acadoWorkspace.ub[21] = (real_t)1.0000000000000000e+12 - acadoVariables.u[18]; +acadoWorkspace.ub[22] = (real_t)1.0000000000000000e+12 - acadoVariables.u[19]; for (lRun1 = 0; lRun1 < 20; ++lRun1) { -lRun3 = xBoundIndices[ lRun1 ] - 6; -lRun4 = ((lRun3) / (6)) + (1); -acadoWorkspace.A[lRun1 * 26] = acadoWorkspace.evGx[lRun3 * 6]; -acadoWorkspace.A[lRun1 * 26 + 1] = acadoWorkspace.evGx[lRun3 * 6 + 1]; -acadoWorkspace.A[lRun1 * 26 + 2] = acadoWorkspace.evGx[lRun3 * 6 + 2]; -acadoWorkspace.A[lRun1 * 26 + 3] = acadoWorkspace.evGx[lRun3 * 6 + 3]; -acadoWorkspace.A[lRun1 * 26 + 4] = acadoWorkspace.evGx[lRun3 * 6 + 4]; -acadoWorkspace.A[lRun1 * 26 + 5] = acadoWorkspace.evGx[lRun3 * 6 + 5]; +lRun3 = xBoundIndices[ lRun1 ] - 3; +lRun4 = ((lRun3) / (3)) + (1); +acadoWorkspace.A[lRun1 * 23] = acadoWorkspace.evGx[lRun3 * 3]; +acadoWorkspace.A[lRun1 * 23 + 1] = acadoWorkspace.evGx[lRun3 * 3 + 1]; +acadoWorkspace.A[lRun1 * 23 + 2] = acadoWorkspace.evGx[lRun3 * 3 + 2]; for (lRun2 = 0; lRun2 < lRun4; ++lRun2) { -lRun5 = (((((lRun4) * (lRun4-1)) / (2)) + (lRun2)) * (6)) + ((lRun3) % (6)); -acadoWorkspace.A[(lRun1 * 26) + (lRun2 + 6)] = acadoWorkspace.E[lRun5]; +lRun5 = (((((lRun4) * (lRun4-1)) / (2)) + (lRun2)) * (3)) + ((lRun3) % (3)); +acadoWorkspace.A[(lRun1 * 23) + (lRun2 + 3)] = acadoWorkspace.E[lRun5]; } } @@ -4243,9 +3815,6 @@ real_t tmp; acadoWorkspace.Dx0[0] = acadoVariables.x0[0] - acadoVariables.x[0]; acadoWorkspace.Dx0[1] = acadoVariables.x0[1] - acadoVariables.x[1]; acadoWorkspace.Dx0[2] = acadoVariables.x0[2] - acadoVariables.x[2]; -acadoWorkspace.Dx0[3] = acadoVariables.x0[3] - acadoVariables.x[3]; -acadoWorkspace.Dx0[4] = acadoVariables.x0[4] - acadoVariables.x[4]; -acadoWorkspace.Dx0[5] = acadoVariables.x0[5] - acadoVariables.x[5]; acadoWorkspace.Dy[0] -= acadoVariables.y[0]; acadoWorkspace.Dy[1] -= acadoVariables.y[1]; @@ -4331,465 +3900,393 @@ acadoWorkspace.DyN[0] -= acadoVariables.yN[0]; acadoWorkspace.DyN[1] -= acadoVariables.yN[1]; acadoWorkspace.DyN[2] -= acadoVariables.yN[2]; -acado_multRDy( acadoWorkspace.R2, acadoWorkspace.Dy, &(acadoWorkspace.g[ 6 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 4 ]), &(acadoWorkspace.Dy[ 4 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 8 ]), &(acadoWorkspace.Dy[ 8 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 12 ]), &(acadoWorkspace.Dy[ 12 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 16 ]), &(acadoWorkspace.Dy[ 16 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 20 ]), &(acadoWorkspace.Dy[ 20 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 24 ]), &(acadoWorkspace.Dy[ 24 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 28 ]), &(acadoWorkspace.Dy[ 28 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 32 ]), &(acadoWorkspace.Dy[ 32 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 36 ]), &(acadoWorkspace.Dy[ 36 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 40 ]), &(acadoWorkspace.Dy[ 40 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 44 ]), &(acadoWorkspace.Dy[ 44 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 48 ]), &(acadoWorkspace.Dy[ 48 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 52 ]), &(acadoWorkspace.Dy[ 52 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 56 ]), &(acadoWorkspace.Dy[ 56 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 60 ]), &(acadoWorkspace.Dy[ 60 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 64 ]), &(acadoWorkspace.Dy[ 64 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 68 ]), &(acadoWorkspace.Dy[ 68 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 72 ]), &(acadoWorkspace.Dy[ 72 ]), &(acadoWorkspace.g[ 24 ]) ); -acado_multRDy( &(acadoWorkspace.R2[ 76 ]), &(acadoWorkspace.Dy[ 76 ]), &(acadoWorkspace.g[ 25 ]) ); +acado_multRDy( acadoWorkspace.R2, acadoWorkspace.Dy, &(acadoWorkspace.g[ 3 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 4 ]), &(acadoWorkspace.Dy[ 4 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 8 ]), &(acadoWorkspace.Dy[ 8 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 12 ]), &(acadoWorkspace.Dy[ 12 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 16 ]), &(acadoWorkspace.Dy[ 16 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 20 ]), &(acadoWorkspace.Dy[ 20 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 24 ]), &(acadoWorkspace.Dy[ 24 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 28 ]), &(acadoWorkspace.Dy[ 28 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 32 ]), &(acadoWorkspace.Dy[ 32 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 36 ]), &(acadoWorkspace.Dy[ 36 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 40 ]), &(acadoWorkspace.Dy[ 40 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 44 ]), &(acadoWorkspace.Dy[ 44 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 48 ]), &(acadoWorkspace.Dy[ 48 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 52 ]), &(acadoWorkspace.Dy[ 52 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 56 ]), &(acadoWorkspace.Dy[ 56 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 60 ]), &(acadoWorkspace.Dy[ 60 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 64 ]), &(acadoWorkspace.Dy[ 64 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 68 ]), &(acadoWorkspace.Dy[ 68 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 72 ]), &(acadoWorkspace.Dy[ 72 ]), &(acadoWorkspace.g[ 21 ]) ); +acado_multRDy( &(acadoWorkspace.R2[ 76 ]), &(acadoWorkspace.Dy[ 76 ]), &(acadoWorkspace.g[ 22 ]) ); acado_multQDy( acadoWorkspace.Q2, acadoWorkspace.Dy, acadoWorkspace.QDy ); -acado_multQDy( &(acadoWorkspace.Q2[ 24 ]), &(acadoWorkspace.Dy[ 4 ]), &(acadoWorkspace.QDy[ 6 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 48 ]), &(acadoWorkspace.Dy[ 8 ]), &(acadoWorkspace.QDy[ 12 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 72 ]), &(acadoWorkspace.Dy[ 12 ]), &(acadoWorkspace.QDy[ 18 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 96 ]), &(acadoWorkspace.Dy[ 16 ]), &(acadoWorkspace.QDy[ 24 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 120 ]), &(acadoWorkspace.Dy[ 20 ]), &(acadoWorkspace.QDy[ 30 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 144 ]), &(acadoWorkspace.Dy[ 24 ]), &(acadoWorkspace.QDy[ 36 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 168 ]), &(acadoWorkspace.Dy[ 28 ]), &(acadoWorkspace.QDy[ 42 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 192 ]), &(acadoWorkspace.Dy[ 32 ]), &(acadoWorkspace.QDy[ 48 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 216 ]), &(acadoWorkspace.Dy[ 36 ]), &(acadoWorkspace.QDy[ 54 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 240 ]), &(acadoWorkspace.Dy[ 40 ]), &(acadoWorkspace.QDy[ 60 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 264 ]), &(acadoWorkspace.Dy[ 44 ]), &(acadoWorkspace.QDy[ 66 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 288 ]), &(acadoWorkspace.Dy[ 48 ]), &(acadoWorkspace.QDy[ 72 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 312 ]), &(acadoWorkspace.Dy[ 52 ]), &(acadoWorkspace.QDy[ 78 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 336 ]), &(acadoWorkspace.Dy[ 56 ]), &(acadoWorkspace.QDy[ 84 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 360 ]), &(acadoWorkspace.Dy[ 60 ]), &(acadoWorkspace.QDy[ 90 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 384 ]), &(acadoWorkspace.Dy[ 64 ]), &(acadoWorkspace.QDy[ 96 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 408 ]), &(acadoWorkspace.Dy[ 68 ]), &(acadoWorkspace.QDy[ 102 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 432 ]), &(acadoWorkspace.Dy[ 72 ]), &(acadoWorkspace.QDy[ 108 ]) ); -acado_multQDy( &(acadoWorkspace.Q2[ 456 ]), &(acadoWorkspace.Dy[ 76 ]), &(acadoWorkspace.QDy[ 114 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 12 ]), &(acadoWorkspace.Dy[ 4 ]), &(acadoWorkspace.QDy[ 3 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 24 ]), &(acadoWorkspace.Dy[ 8 ]), &(acadoWorkspace.QDy[ 6 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 36 ]), &(acadoWorkspace.Dy[ 12 ]), &(acadoWorkspace.QDy[ 9 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 48 ]), &(acadoWorkspace.Dy[ 16 ]), &(acadoWorkspace.QDy[ 12 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 60 ]), &(acadoWorkspace.Dy[ 20 ]), &(acadoWorkspace.QDy[ 15 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 72 ]), &(acadoWorkspace.Dy[ 24 ]), &(acadoWorkspace.QDy[ 18 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 84 ]), &(acadoWorkspace.Dy[ 28 ]), &(acadoWorkspace.QDy[ 21 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 96 ]), &(acadoWorkspace.Dy[ 32 ]), &(acadoWorkspace.QDy[ 24 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 108 ]), &(acadoWorkspace.Dy[ 36 ]), &(acadoWorkspace.QDy[ 27 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 120 ]), &(acadoWorkspace.Dy[ 40 ]), &(acadoWorkspace.QDy[ 30 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 132 ]), &(acadoWorkspace.Dy[ 44 ]), &(acadoWorkspace.QDy[ 33 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 144 ]), &(acadoWorkspace.Dy[ 48 ]), &(acadoWorkspace.QDy[ 36 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 156 ]), &(acadoWorkspace.Dy[ 52 ]), &(acadoWorkspace.QDy[ 39 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 168 ]), &(acadoWorkspace.Dy[ 56 ]), &(acadoWorkspace.QDy[ 42 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 180 ]), &(acadoWorkspace.Dy[ 60 ]), &(acadoWorkspace.QDy[ 45 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 192 ]), &(acadoWorkspace.Dy[ 64 ]), &(acadoWorkspace.QDy[ 48 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 204 ]), &(acadoWorkspace.Dy[ 68 ]), &(acadoWorkspace.QDy[ 51 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 216 ]), &(acadoWorkspace.Dy[ 72 ]), &(acadoWorkspace.QDy[ 54 ]) ); +acado_multQDy( &(acadoWorkspace.Q2[ 228 ]), &(acadoWorkspace.Dy[ 76 ]), &(acadoWorkspace.QDy[ 57 ]) ); -acadoWorkspace.QDy[120] = + acadoWorkspace.QN2[0]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[1]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[2]*acadoWorkspace.DyN[2]; -acadoWorkspace.QDy[121] = + acadoWorkspace.QN2[3]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[4]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[5]*acadoWorkspace.DyN[2]; -acadoWorkspace.QDy[122] = + acadoWorkspace.QN2[6]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[7]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[8]*acadoWorkspace.DyN[2]; -acadoWorkspace.QDy[123] = + acadoWorkspace.QN2[9]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[10]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[11]*acadoWorkspace.DyN[2]; -acadoWorkspace.QDy[124] = + acadoWorkspace.QN2[12]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[13]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[14]*acadoWorkspace.DyN[2]; -acadoWorkspace.QDy[125] = + acadoWorkspace.QN2[15]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[16]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[17]*acadoWorkspace.DyN[2]; +acadoWorkspace.QDy[60] = + acadoWorkspace.QN2[0]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[1]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[2]*acadoWorkspace.DyN[2]; +acadoWorkspace.QDy[61] = + acadoWorkspace.QN2[3]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[4]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[5]*acadoWorkspace.DyN[2]; +acadoWorkspace.QDy[62] = + acadoWorkspace.QN2[6]*acadoWorkspace.DyN[0] + acadoWorkspace.QN2[7]*acadoWorkspace.DyN[1] + acadoWorkspace.QN2[8]*acadoWorkspace.DyN[2]; -acadoWorkspace.QDy[6] += acadoWorkspace.Qd[0]; -acadoWorkspace.QDy[7] += acadoWorkspace.Qd[1]; -acadoWorkspace.QDy[8] += acadoWorkspace.Qd[2]; -acadoWorkspace.QDy[9] += acadoWorkspace.Qd[3]; -acadoWorkspace.QDy[10] += acadoWorkspace.Qd[4]; -acadoWorkspace.QDy[11] += acadoWorkspace.Qd[5]; -acadoWorkspace.QDy[12] += acadoWorkspace.Qd[6]; -acadoWorkspace.QDy[13] += acadoWorkspace.Qd[7]; -acadoWorkspace.QDy[14] += acadoWorkspace.Qd[8]; -acadoWorkspace.QDy[15] += acadoWorkspace.Qd[9]; -acadoWorkspace.QDy[16] += acadoWorkspace.Qd[10]; -acadoWorkspace.QDy[17] += acadoWorkspace.Qd[11]; -acadoWorkspace.QDy[18] += acadoWorkspace.Qd[12]; -acadoWorkspace.QDy[19] += acadoWorkspace.Qd[13]; -acadoWorkspace.QDy[20] += acadoWorkspace.Qd[14]; -acadoWorkspace.QDy[21] += acadoWorkspace.Qd[15]; -acadoWorkspace.QDy[22] += acadoWorkspace.Qd[16]; -acadoWorkspace.QDy[23] += acadoWorkspace.Qd[17]; -acadoWorkspace.QDy[24] += acadoWorkspace.Qd[18]; -acadoWorkspace.QDy[25] += acadoWorkspace.Qd[19]; -acadoWorkspace.QDy[26] += acadoWorkspace.Qd[20]; -acadoWorkspace.QDy[27] += acadoWorkspace.Qd[21]; -acadoWorkspace.QDy[28] += acadoWorkspace.Qd[22]; -acadoWorkspace.QDy[29] += acadoWorkspace.Qd[23]; -acadoWorkspace.QDy[30] += acadoWorkspace.Qd[24]; -acadoWorkspace.QDy[31] += acadoWorkspace.Qd[25]; -acadoWorkspace.QDy[32] += acadoWorkspace.Qd[26]; -acadoWorkspace.QDy[33] += acadoWorkspace.Qd[27]; -acadoWorkspace.QDy[34] += acadoWorkspace.Qd[28]; -acadoWorkspace.QDy[35] += acadoWorkspace.Qd[29]; -acadoWorkspace.QDy[36] += acadoWorkspace.Qd[30]; -acadoWorkspace.QDy[37] += acadoWorkspace.Qd[31]; -acadoWorkspace.QDy[38] += acadoWorkspace.Qd[32]; -acadoWorkspace.QDy[39] += acadoWorkspace.Qd[33]; -acadoWorkspace.QDy[40] += acadoWorkspace.Qd[34]; -acadoWorkspace.QDy[41] += acadoWorkspace.Qd[35]; -acadoWorkspace.QDy[42] += acadoWorkspace.Qd[36]; -acadoWorkspace.QDy[43] += acadoWorkspace.Qd[37]; -acadoWorkspace.QDy[44] += acadoWorkspace.Qd[38]; -acadoWorkspace.QDy[45] += acadoWorkspace.Qd[39]; -acadoWorkspace.QDy[46] += acadoWorkspace.Qd[40]; -acadoWorkspace.QDy[47] += acadoWorkspace.Qd[41]; -acadoWorkspace.QDy[48] += acadoWorkspace.Qd[42]; -acadoWorkspace.QDy[49] += acadoWorkspace.Qd[43]; -acadoWorkspace.QDy[50] += acadoWorkspace.Qd[44]; -acadoWorkspace.QDy[51] += acadoWorkspace.Qd[45]; -acadoWorkspace.QDy[52] += acadoWorkspace.Qd[46]; -acadoWorkspace.QDy[53] += acadoWorkspace.Qd[47]; -acadoWorkspace.QDy[54] += acadoWorkspace.Qd[48]; -acadoWorkspace.QDy[55] += acadoWorkspace.Qd[49]; -acadoWorkspace.QDy[56] += acadoWorkspace.Qd[50]; -acadoWorkspace.QDy[57] += acadoWorkspace.Qd[51]; -acadoWorkspace.QDy[58] += acadoWorkspace.Qd[52]; -acadoWorkspace.QDy[59] += acadoWorkspace.Qd[53]; -acadoWorkspace.QDy[60] += acadoWorkspace.Qd[54]; -acadoWorkspace.QDy[61] += acadoWorkspace.Qd[55]; -acadoWorkspace.QDy[62] += acadoWorkspace.Qd[56]; -acadoWorkspace.QDy[63] += acadoWorkspace.Qd[57]; -acadoWorkspace.QDy[64] += acadoWorkspace.Qd[58]; -acadoWorkspace.QDy[65] += acadoWorkspace.Qd[59]; -acadoWorkspace.QDy[66] += acadoWorkspace.Qd[60]; -acadoWorkspace.QDy[67] += acadoWorkspace.Qd[61]; -acadoWorkspace.QDy[68] += acadoWorkspace.Qd[62]; -acadoWorkspace.QDy[69] += acadoWorkspace.Qd[63]; -acadoWorkspace.QDy[70] += acadoWorkspace.Qd[64]; -acadoWorkspace.QDy[71] += acadoWorkspace.Qd[65]; -acadoWorkspace.QDy[72] += acadoWorkspace.Qd[66]; -acadoWorkspace.QDy[73] += acadoWorkspace.Qd[67]; -acadoWorkspace.QDy[74] += acadoWorkspace.Qd[68]; -acadoWorkspace.QDy[75] += acadoWorkspace.Qd[69]; -acadoWorkspace.QDy[76] += acadoWorkspace.Qd[70]; -acadoWorkspace.QDy[77] += acadoWorkspace.Qd[71]; -acadoWorkspace.QDy[78] += acadoWorkspace.Qd[72]; -acadoWorkspace.QDy[79] += acadoWorkspace.Qd[73]; -acadoWorkspace.QDy[80] += acadoWorkspace.Qd[74]; -acadoWorkspace.QDy[81] += acadoWorkspace.Qd[75]; -acadoWorkspace.QDy[82] += acadoWorkspace.Qd[76]; -acadoWorkspace.QDy[83] += acadoWorkspace.Qd[77]; -acadoWorkspace.QDy[84] += acadoWorkspace.Qd[78]; -acadoWorkspace.QDy[85] += acadoWorkspace.Qd[79]; -acadoWorkspace.QDy[86] += acadoWorkspace.Qd[80]; -acadoWorkspace.QDy[87] += acadoWorkspace.Qd[81]; -acadoWorkspace.QDy[88] += acadoWorkspace.Qd[82]; -acadoWorkspace.QDy[89] += acadoWorkspace.Qd[83]; -acadoWorkspace.QDy[90] += acadoWorkspace.Qd[84]; -acadoWorkspace.QDy[91] += acadoWorkspace.Qd[85]; -acadoWorkspace.QDy[92] += acadoWorkspace.Qd[86]; -acadoWorkspace.QDy[93] += acadoWorkspace.Qd[87]; -acadoWorkspace.QDy[94] += acadoWorkspace.Qd[88]; -acadoWorkspace.QDy[95] += acadoWorkspace.Qd[89]; -acadoWorkspace.QDy[96] += acadoWorkspace.Qd[90]; -acadoWorkspace.QDy[97] += acadoWorkspace.Qd[91]; -acadoWorkspace.QDy[98] += acadoWorkspace.Qd[92]; -acadoWorkspace.QDy[99] += acadoWorkspace.Qd[93]; -acadoWorkspace.QDy[100] += acadoWorkspace.Qd[94]; -acadoWorkspace.QDy[101] += acadoWorkspace.Qd[95]; -acadoWorkspace.QDy[102] += acadoWorkspace.Qd[96]; -acadoWorkspace.QDy[103] += acadoWorkspace.Qd[97]; -acadoWorkspace.QDy[104] += acadoWorkspace.Qd[98]; -acadoWorkspace.QDy[105] += acadoWorkspace.Qd[99]; -acadoWorkspace.QDy[106] += acadoWorkspace.Qd[100]; -acadoWorkspace.QDy[107] += acadoWorkspace.Qd[101]; -acadoWorkspace.QDy[108] += acadoWorkspace.Qd[102]; -acadoWorkspace.QDy[109] += acadoWorkspace.Qd[103]; -acadoWorkspace.QDy[110] += acadoWorkspace.Qd[104]; -acadoWorkspace.QDy[111] += acadoWorkspace.Qd[105]; -acadoWorkspace.QDy[112] += acadoWorkspace.Qd[106]; -acadoWorkspace.QDy[113] += acadoWorkspace.Qd[107]; -acadoWorkspace.QDy[114] += acadoWorkspace.Qd[108]; -acadoWorkspace.QDy[115] += acadoWorkspace.Qd[109]; -acadoWorkspace.QDy[116] += acadoWorkspace.Qd[110]; -acadoWorkspace.QDy[117] += acadoWorkspace.Qd[111]; -acadoWorkspace.QDy[118] += acadoWorkspace.Qd[112]; -acadoWorkspace.QDy[119] += acadoWorkspace.Qd[113]; -acadoWorkspace.QDy[120] += acadoWorkspace.Qd[114]; -acadoWorkspace.QDy[121] += acadoWorkspace.Qd[115]; -acadoWorkspace.QDy[122] += acadoWorkspace.Qd[116]; -acadoWorkspace.QDy[123] += acadoWorkspace.Qd[117]; -acadoWorkspace.QDy[124] += acadoWorkspace.Qd[118]; -acadoWorkspace.QDy[125] += acadoWorkspace.Qd[119]; +acadoWorkspace.QDy[3] += acadoWorkspace.Qd[0]; +acadoWorkspace.QDy[4] += acadoWorkspace.Qd[1]; +acadoWorkspace.QDy[5] += acadoWorkspace.Qd[2]; +acadoWorkspace.QDy[6] += acadoWorkspace.Qd[3]; +acadoWorkspace.QDy[7] += acadoWorkspace.Qd[4]; +acadoWorkspace.QDy[8] += acadoWorkspace.Qd[5]; +acadoWorkspace.QDy[9] += acadoWorkspace.Qd[6]; +acadoWorkspace.QDy[10] += acadoWorkspace.Qd[7]; +acadoWorkspace.QDy[11] += acadoWorkspace.Qd[8]; +acadoWorkspace.QDy[12] += acadoWorkspace.Qd[9]; +acadoWorkspace.QDy[13] += acadoWorkspace.Qd[10]; +acadoWorkspace.QDy[14] += acadoWorkspace.Qd[11]; +acadoWorkspace.QDy[15] += acadoWorkspace.Qd[12]; +acadoWorkspace.QDy[16] += acadoWorkspace.Qd[13]; +acadoWorkspace.QDy[17] += acadoWorkspace.Qd[14]; +acadoWorkspace.QDy[18] += acadoWorkspace.Qd[15]; +acadoWorkspace.QDy[19] += acadoWorkspace.Qd[16]; +acadoWorkspace.QDy[20] += acadoWorkspace.Qd[17]; +acadoWorkspace.QDy[21] += acadoWorkspace.Qd[18]; +acadoWorkspace.QDy[22] += acadoWorkspace.Qd[19]; +acadoWorkspace.QDy[23] += acadoWorkspace.Qd[20]; +acadoWorkspace.QDy[24] += acadoWorkspace.Qd[21]; +acadoWorkspace.QDy[25] += acadoWorkspace.Qd[22]; +acadoWorkspace.QDy[26] += acadoWorkspace.Qd[23]; +acadoWorkspace.QDy[27] += acadoWorkspace.Qd[24]; +acadoWorkspace.QDy[28] += acadoWorkspace.Qd[25]; +acadoWorkspace.QDy[29] += acadoWorkspace.Qd[26]; +acadoWorkspace.QDy[30] += acadoWorkspace.Qd[27]; +acadoWorkspace.QDy[31] += acadoWorkspace.Qd[28]; +acadoWorkspace.QDy[32] += acadoWorkspace.Qd[29]; +acadoWorkspace.QDy[33] += acadoWorkspace.Qd[30]; +acadoWorkspace.QDy[34] += acadoWorkspace.Qd[31]; +acadoWorkspace.QDy[35] += acadoWorkspace.Qd[32]; +acadoWorkspace.QDy[36] += acadoWorkspace.Qd[33]; +acadoWorkspace.QDy[37] += acadoWorkspace.Qd[34]; +acadoWorkspace.QDy[38] += acadoWorkspace.Qd[35]; +acadoWorkspace.QDy[39] += acadoWorkspace.Qd[36]; +acadoWorkspace.QDy[40] += acadoWorkspace.Qd[37]; +acadoWorkspace.QDy[41] += acadoWorkspace.Qd[38]; +acadoWorkspace.QDy[42] += acadoWorkspace.Qd[39]; +acadoWorkspace.QDy[43] += acadoWorkspace.Qd[40]; +acadoWorkspace.QDy[44] += acadoWorkspace.Qd[41]; +acadoWorkspace.QDy[45] += acadoWorkspace.Qd[42]; +acadoWorkspace.QDy[46] += acadoWorkspace.Qd[43]; +acadoWorkspace.QDy[47] += acadoWorkspace.Qd[44]; +acadoWorkspace.QDy[48] += acadoWorkspace.Qd[45]; +acadoWorkspace.QDy[49] += acadoWorkspace.Qd[46]; +acadoWorkspace.QDy[50] += acadoWorkspace.Qd[47]; +acadoWorkspace.QDy[51] += acadoWorkspace.Qd[48]; +acadoWorkspace.QDy[52] += acadoWorkspace.Qd[49]; +acadoWorkspace.QDy[53] += acadoWorkspace.Qd[50]; +acadoWorkspace.QDy[54] += acadoWorkspace.Qd[51]; +acadoWorkspace.QDy[55] += acadoWorkspace.Qd[52]; +acadoWorkspace.QDy[56] += acadoWorkspace.Qd[53]; +acadoWorkspace.QDy[57] += acadoWorkspace.Qd[54]; +acadoWorkspace.QDy[58] += acadoWorkspace.Qd[55]; +acadoWorkspace.QDy[59] += acadoWorkspace.Qd[56]; +acadoWorkspace.QDy[60] += acadoWorkspace.Qd[57]; +acadoWorkspace.QDy[61] += acadoWorkspace.Qd[58]; +acadoWorkspace.QDy[62] += acadoWorkspace.Qd[59]; -acadoWorkspace.g[0] = + acadoWorkspace.evGx[0]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[6]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[12]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[18]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[24]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[30]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[36]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[42]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[48]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[54]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[60]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[66]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[72]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[78]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[84]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[90]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[96]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[102]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[108]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[114]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[120]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[126]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[132]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[138]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[144]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[150]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[156]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[162]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[168]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[174]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[180]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[186]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[192]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[198]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[204]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[210]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[216]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[222]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[228]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[234]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[240]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[246]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[252]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[258]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[264]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[270]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[276]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[282]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[288]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[294]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[300]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[306]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[312]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[318]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[324]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[330]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[336]*acadoWorkspace.QDy[62] + acadoWorkspace.evGx[342]*acadoWorkspace.QDy[63] + acadoWorkspace.evGx[348]*acadoWorkspace.QDy[64] + acadoWorkspace.evGx[354]*acadoWorkspace.QDy[65] + acadoWorkspace.evGx[360]*acadoWorkspace.QDy[66] + acadoWorkspace.evGx[366]*acadoWorkspace.QDy[67] + acadoWorkspace.evGx[372]*acadoWorkspace.QDy[68] + acadoWorkspace.evGx[378]*acadoWorkspace.QDy[69] + acadoWorkspace.evGx[384]*acadoWorkspace.QDy[70] + acadoWorkspace.evGx[390]*acadoWorkspace.QDy[71] + acadoWorkspace.evGx[396]*acadoWorkspace.QDy[72] + acadoWorkspace.evGx[402]*acadoWorkspace.QDy[73] + acadoWorkspace.evGx[408]*acadoWorkspace.QDy[74] + acadoWorkspace.evGx[414]*acadoWorkspace.QDy[75] + acadoWorkspace.evGx[420]*acadoWorkspace.QDy[76] + acadoWorkspace.evGx[426]*acadoWorkspace.QDy[77] + acadoWorkspace.evGx[432]*acadoWorkspace.QDy[78] + acadoWorkspace.evGx[438]*acadoWorkspace.QDy[79] + acadoWorkspace.evGx[444]*acadoWorkspace.QDy[80] + acadoWorkspace.evGx[450]*acadoWorkspace.QDy[81] + acadoWorkspace.evGx[456]*acadoWorkspace.QDy[82] + acadoWorkspace.evGx[462]*acadoWorkspace.QDy[83] + acadoWorkspace.evGx[468]*acadoWorkspace.QDy[84] + acadoWorkspace.evGx[474]*acadoWorkspace.QDy[85] + acadoWorkspace.evGx[480]*acadoWorkspace.QDy[86] + acadoWorkspace.evGx[486]*acadoWorkspace.QDy[87] + acadoWorkspace.evGx[492]*acadoWorkspace.QDy[88] + acadoWorkspace.evGx[498]*acadoWorkspace.QDy[89] + acadoWorkspace.evGx[504]*acadoWorkspace.QDy[90] + acadoWorkspace.evGx[510]*acadoWorkspace.QDy[91] + acadoWorkspace.evGx[516]*acadoWorkspace.QDy[92] + acadoWorkspace.evGx[522]*acadoWorkspace.QDy[93] + acadoWorkspace.evGx[528]*acadoWorkspace.QDy[94] + acadoWorkspace.evGx[534]*acadoWorkspace.QDy[95] + acadoWorkspace.evGx[540]*acadoWorkspace.QDy[96] + acadoWorkspace.evGx[546]*acadoWorkspace.QDy[97] + acadoWorkspace.evGx[552]*acadoWorkspace.QDy[98] + acadoWorkspace.evGx[558]*acadoWorkspace.QDy[99] + acadoWorkspace.evGx[564]*acadoWorkspace.QDy[100] + acadoWorkspace.evGx[570]*acadoWorkspace.QDy[101] + acadoWorkspace.evGx[576]*acadoWorkspace.QDy[102] + acadoWorkspace.evGx[582]*acadoWorkspace.QDy[103] + acadoWorkspace.evGx[588]*acadoWorkspace.QDy[104] + acadoWorkspace.evGx[594]*acadoWorkspace.QDy[105] + acadoWorkspace.evGx[600]*acadoWorkspace.QDy[106] + acadoWorkspace.evGx[606]*acadoWorkspace.QDy[107] + acadoWorkspace.evGx[612]*acadoWorkspace.QDy[108] + acadoWorkspace.evGx[618]*acadoWorkspace.QDy[109] + acadoWorkspace.evGx[624]*acadoWorkspace.QDy[110] + acadoWorkspace.evGx[630]*acadoWorkspace.QDy[111] + acadoWorkspace.evGx[636]*acadoWorkspace.QDy[112] + acadoWorkspace.evGx[642]*acadoWorkspace.QDy[113] + acadoWorkspace.evGx[648]*acadoWorkspace.QDy[114] + acadoWorkspace.evGx[654]*acadoWorkspace.QDy[115] + acadoWorkspace.evGx[660]*acadoWorkspace.QDy[116] + acadoWorkspace.evGx[666]*acadoWorkspace.QDy[117] + acadoWorkspace.evGx[672]*acadoWorkspace.QDy[118] + acadoWorkspace.evGx[678]*acadoWorkspace.QDy[119] + acadoWorkspace.evGx[684]*acadoWorkspace.QDy[120] + acadoWorkspace.evGx[690]*acadoWorkspace.QDy[121] + acadoWorkspace.evGx[696]*acadoWorkspace.QDy[122] + acadoWorkspace.evGx[702]*acadoWorkspace.QDy[123] + acadoWorkspace.evGx[708]*acadoWorkspace.QDy[124] + acadoWorkspace.evGx[714]*acadoWorkspace.QDy[125]; -acadoWorkspace.g[1] = + acadoWorkspace.evGx[1]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[7]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[13]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[19]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[25]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[31]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[37]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[43]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[49]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[55]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[61]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[67]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[73]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[79]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[85]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[91]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[97]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[103]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[109]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[115]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[121]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[127]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[133]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[139]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[145]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[151]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[157]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[163]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[169]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[175]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[181]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[187]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[193]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[199]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[205]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[211]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[217]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[223]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[229]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[235]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[241]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[247]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[253]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[259]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[265]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[271]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[277]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[283]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[289]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[295]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[301]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[307]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[313]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[319]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[325]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[331]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[337]*acadoWorkspace.QDy[62] + acadoWorkspace.evGx[343]*acadoWorkspace.QDy[63] + acadoWorkspace.evGx[349]*acadoWorkspace.QDy[64] + acadoWorkspace.evGx[355]*acadoWorkspace.QDy[65] + acadoWorkspace.evGx[361]*acadoWorkspace.QDy[66] + acadoWorkspace.evGx[367]*acadoWorkspace.QDy[67] + acadoWorkspace.evGx[373]*acadoWorkspace.QDy[68] + acadoWorkspace.evGx[379]*acadoWorkspace.QDy[69] + acadoWorkspace.evGx[385]*acadoWorkspace.QDy[70] + acadoWorkspace.evGx[391]*acadoWorkspace.QDy[71] + acadoWorkspace.evGx[397]*acadoWorkspace.QDy[72] + acadoWorkspace.evGx[403]*acadoWorkspace.QDy[73] + acadoWorkspace.evGx[409]*acadoWorkspace.QDy[74] + acadoWorkspace.evGx[415]*acadoWorkspace.QDy[75] + acadoWorkspace.evGx[421]*acadoWorkspace.QDy[76] + acadoWorkspace.evGx[427]*acadoWorkspace.QDy[77] + acadoWorkspace.evGx[433]*acadoWorkspace.QDy[78] + acadoWorkspace.evGx[439]*acadoWorkspace.QDy[79] + acadoWorkspace.evGx[445]*acadoWorkspace.QDy[80] + acadoWorkspace.evGx[451]*acadoWorkspace.QDy[81] + acadoWorkspace.evGx[457]*acadoWorkspace.QDy[82] + acadoWorkspace.evGx[463]*acadoWorkspace.QDy[83] + acadoWorkspace.evGx[469]*acadoWorkspace.QDy[84] + acadoWorkspace.evGx[475]*acadoWorkspace.QDy[85] + acadoWorkspace.evGx[481]*acadoWorkspace.QDy[86] + acadoWorkspace.evGx[487]*acadoWorkspace.QDy[87] + acadoWorkspace.evGx[493]*acadoWorkspace.QDy[88] + acadoWorkspace.evGx[499]*acadoWorkspace.QDy[89] + acadoWorkspace.evGx[505]*acadoWorkspace.QDy[90] + acadoWorkspace.evGx[511]*acadoWorkspace.QDy[91] + acadoWorkspace.evGx[517]*acadoWorkspace.QDy[92] + acadoWorkspace.evGx[523]*acadoWorkspace.QDy[93] + acadoWorkspace.evGx[529]*acadoWorkspace.QDy[94] + acadoWorkspace.evGx[535]*acadoWorkspace.QDy[95] + acadoWorkspace.evGx[541]*acadoWorkspace.QDy[96] + acadoWorkspace.evGx[547]*acadoWorkspace.QDy[97] + acadoWorkspace.evGx[553]*acadoWorkspace.QDy[98] + acadoWorkspace.evGx[559]*acadoWorkspace.QDy[99] + acadoWorkspace.evGx[565]*acadoWorkspace.QDy[100] + acadoWorkspace.evGx[571]*acadoWorkspace.QDy[101] + acadoWorkspace.evGx[577]*acadoWorkspace.QDy[102] + acadoWorkspace.evGx[583]*acadoWorkspace.QDy[103] + acadoWorkspace.evGx[589]*acadoWorkspace.QDy[104] + acadoWorkspace.evGx[595]*acadoWorkspace.QDy[105] + acadoWorkspace.evGx[601]*acadoWorkspace.QDy[106] + acadoWorkspace.evGx[607]*acadoWorkspace.QDy[107] + acadoWorkspace.evGx[613]*acadoWorkspace.QDy[108] + acadoWorkspace.evGx[619]*acadoWorkspace.QDy[109] + acadoWorkspace.evGx[625]*acadoWorkspace.QDy[110] + acadoWorkspace.evGx[631]*acadoWorkspace.QDy[111] + acadoWorkspace.evGx[637]*acadoWorkspace.QDy[112] + acadoWorkspace.evGx[643]*acadoWorkspace.QDy[113] + acadoWorkspace.evGx[649]*acadoWorkspace.QDy[114] + acadoWorkspace.evGx[655]*acadoWorkspace.QDy[115] + acadoWorkspace.evGx[661]*acadoWorkspace.QDy[116] + acadoWorkspace.evGx[667]*acadoWorkspace.QDy[117] + acadoWorkspace.evGx[673]*acadoWorkspace.QDy[118] + acadoWorkspace.evGx[679]*acadoWorkspace.QDy[119] + acadoWorkspace.evGx[685]*acadoWorkspace.QDy[120] + acadoWorkspace.evGx[691]*acadoWorkspace.QDy[121] + acadoWorkspace.evGx[697]*acadoWorkspace.QDy[122] + acadoWorkspace.evGx[703]*acadoWorkspace.QDy[123] + acadoWorkspace.evGx[709]*acadoWorkspace.QDy[124] + acadoWorkspace.evGx[715]*acadoWorkspace.QDy[125]; -acadoWorkspace.g[2] = + acadoWorkspace.evGx[2]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[8]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[14]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[20]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[26]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[32]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[38]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[44]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[50]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[56]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[62]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[68]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[74]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[80]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[86]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[92]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[98]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[104]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[110]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[116]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[122]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[128]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[134]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[140]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[146]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[152]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[158]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[164]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[170]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[176]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[182]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[188]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[194]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[200]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[206]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[212]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[218]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[224]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[230]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[236]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[242]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[248]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[254]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[260]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[266]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[272]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[278]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[284]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[290]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[296]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[302]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[308]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[314]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[320]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[326]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[332]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[338]*acadoWorkspace.QDy[62] + acadoWorkspace.evGx[344]*acadoWorkspace.QDy[63] + acadoWorkspace.evGx[350]*acadoWorkspace.QDy[64] + acadoWorkspace.evGx[356]*acadoWorkspace.QDy[65] + acadoWorkspace.evGx[362]*acadoWorkspace.QDy[66] + acadoWorkspace.evGx[368]*acadoWorkspace.QDy[67] + acadoWorkspace.evGx[374]*acadoWorkspace.QDy[68] + acadoWorkspace.evGx[380]*acadoWorkspace.QDy[69] + acadoWorkspace.evGx[386]*acadoWorkspace.QDy[70] + acadoWorkspace.evGx[392]*acadoWorkspace.QDy[71] + acadoWorkspace.evGx[398]*acadoWorkspace.QDy[72] + acadoWorkspace.evGx[404]*acadoWorkspace.QDy[73] + acadoWorkspace.evGx[410]*acadoWorkspace.QDy[74] + acadoWorkspace.evGx[416]*acadoWorkspace.QDy[75] + acadoWorkspace.evGx[422]*acadoWorkspace.QDy[76] + acadoWorkspace.evGx[428]*acadoWorkspace.QDy[77] + acadoWorkspace.evGx[434]*acadoWorkspace.QDy[78] + acadoWorkspace.evGx[440]*acadoWorkspace.QDy[79] + acadoWorkspace.evGx[446]*acadoWorkspace.QDy[80] + acadoWorkspace.evGx[452]*acadoWorkspace.QDy[81] + acadoWorkspace.evGx[458]*acadoWorkspace.QDy[82] + acadoWorkspace.evGx[464]*acadoWorkspace.QDy[83] + acadoWorkspace.evGx[470]*acadoWorkspace.QDy[84] + acadoWorkspace.evGx[476]*acadoWorkspace.QDy[85] + acadoWorkspace.evGx[482]*acadoWorkspace.QDy[86] + acadoWorkspace.evGx[488]*acadoWorkspace.QDy[87] + acadoWorkspace.evGx[494]*acadoWorkspace.QDy[88] + acadoWorkspace.evGx[500]*acadoWorkspace.QDy[89] + acadoWorkspace.evGx[506]*acadoWorkspace.QDy[90] + acadoWorkspace.evGx[512]*acadoWorkspace.QDy[91] + acadoWorkspace.evGx[518]*acadoWorkspace.QDy[92] + acadoWorkspace.evGx[524]*acadoWorkspace.QDy[93] + acadoWorkspace.evGx[530]*acadoWorkspace.QDy[94] + acadoWorkspace.evGx[536]*acadoWorkspace.QDy[95] + acadoWorkspace.evGx[542]*acadoWorkspace.QDy[96] + acadoWorkspace.evGx[548]*acadoWorkspace.QDy[97] + acadoWorkspace.evGx[554]*acadoWorkspace.QDy[98] + acadoWorkspace.evGx[560]*acadoWorkspace.QDy[99] + acadoWorkspace.evGx[566]*acadoWorkspace.QDy[100] + acadoWorkspace.evGx[572]*acadoWorkspace.QDy[101] + acadoWorkspace.evGx[578]*acadoWorkspace.QDy[102] + acadoWorkspace.evGx[584]*acadoWorkspace.QDy[103] + acadoWorkspace.evGx[590]*acadoWorkspace.QDy[104] + acadoWorkspace.evGx[596]*acadoWorkspace.QDy[105] + acadoWorkspace.evGx[602]*acadoWorkspace.QDy[106] + acadoWorkspace.evGx[608]*acadoWorkspace.QDy[107] + acadoWorkspace.evGx[614]*acadoWorkspace.QDy[108] + acadoWorkspace.evGx[620]*acadoWorkspace.QDy[109] + acadoWorkspace.evGx[626]*acadoWorkspace.QDy[110] + acadoWorkspace.evGx[632]*acadoWorkspace.QDy[111] + acadoWorkspace.evGx[638]*acadoWorkspace.QDy[112] + acadoWorkspace.evGx[644]*acadoWorkspace.QDy[113] + acadoWorkspace.evGx[650]*acadoWorkspace.QDy[114] + acadoWorkspace.evGx[656]*acadoWorkspace.QDy[115] + acadoWorkspace.evGx[662]*acadoWorkspace.QDy[116] + acadoWorkspace.evGx[668]*acadoWorkspace.QDy[117] + acadoWorkspace.evGx[674]*acadoWorkspace.QDy[118] + acadoWorkspace.evGx[680]*acadoWorkspace.QDy[119] + acadoWorkspace.evGx[686]*acadoWorkspace.QDy[120] + acadoWorkspace.evGx[692]*acadoWorkspace.QDy[121] + acadoWorkspace.evGx[698]*acadoWorkspace.QDy[122] + acadoWorkspace.evGx[704]*acadoWorkspace.QDy[123] + acadoWorkspace.evGx[710]*acadoWorkspace.QDy[124] + acadoWorkspace.evGx[716]*acadoWorkspace.QDy[125]; -acadoWorkspace.g[3] = + acadoWorkspace.evGx[3]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[9]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[15]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[21]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[27]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[33]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[39]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[45]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[51]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[57]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[63]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[69]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[75]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[81]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[87]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[93]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[99]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[105]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[111]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[117]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[123]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[129]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[135]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[141]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[147]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[153]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[159]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[165]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[171]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[177]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[183]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[189]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[195]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[201]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[207]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[213]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[219]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[225]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[231]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[237]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[243]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[249]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[255]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[261]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[267]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[273]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[279]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[285]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[291]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[297]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[303]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[309]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[315]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[321]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[327]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[333]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[339]*acadoWorkspace.QDy[62] + acadoWorkspace.evGx[345]*acadoWorkspace.QDy[63] + acadoWorkspace.evGx[351]*acadoWorkspace.QDy[64] + acadoWorkspace.evGx[357]*acadoWorkspace.QDy[65] + acadoWorkspace.evGx[363]*acadoWorkspace.QDy[66] + acadoWorkspace.evGx[369]*acadoWorkspace.QDy[67] + acadoWorkspace.evGx[375]*acadoWorkspace.QDy[68] + acadoWorkspace.evGx[381]*acadoWorkspace.QDy[69] + acadoWorkspace.evGx[387]*acadoWorkspace.QDy[70] + acadoWorkspace.evGx[393]*acadoWorkspace.QDy[71] + acadoWorkspace.evGx[399]*acadoWorkspace.QDy[72] + acadoWorkspace.evGx[405]*acadoWorkspace.QDy[73] + acadoWorkspace.evGx[411]*acadoWorkspace.QDy[74] + acadoWorkspace.evGx[417]*acadoWorkspace.QDy[75] + acadoWorkspace.evGx[423]*acadoWorkspace.QDy[76] + acadoWorkspace.evGx[429]*acadoWorkspace.QDy[77] + acadoWorkspace.evGx[435]*acadoWorkspace.QDy[78] + acadoWorkspace.evGx[441]*acadoWorkspace.QDy[79] + acadoWorkspace.evGx[447]*acadoWorkspace.QDy[80] + acadoWorkspace.evGx[453]*acadoWorkspace.QDy[81] + acadoWorkspace.evGx[459]*acadoWorkspace.QDy[82] + acadoWorkspace.evGx[465]*acadoWorkspace.QDy[83] + acadoWorkspace.evGx[471]*acadoWorkspace.QDy[84] + acadoWorkspace.evGx[477]*acadoWorkspace.QDy[85] + acadoWorkspace.evGx[483]*acadoWorkspace.QDy[86] + acadoWorkspace.evGx[489]*acadoWorkspace.QDy[87] + acadoWorkspace.evGx[495]*acadoWorkspace.QDy[88] + acadoWorkspace.evGx[501]*acadoWorkspace.QDy[89] + acadoWorkspace.evGx[507]*acadoWorkspace.QDy[90] + acadoWorkspace.evGx[513]*acadoWorkspace.QDy[91] + acadoWorkspace.evGx[519]*acadoWorkspace.QDy[92] + acadoWorkspace.evGx[525]*acadoWorkspace.QDy[93] + acadoWorkspace.evGx[531]*acadoWorkspace.QDy[94] + acadoWorkspace.evGx[537]*acadoWorkspace.QDy[95] + acadoWorkspace.evGx[543]*acadoWorkspace.QDy[96] + acadoWorkspace.evGx[549]*acadoWorkspace.QDy[97] + acadoWorkspace.evGx[555]*acadoWorkspace.QDy[98] + acadoWorkspace.evGx[561]*acadoWorkspace.QDy[99] + acadoWorkspace.evGx[567]*acadoWorkspace.QDy[100] + acadoWorkspace.evGx[573]*acadoWorkspace.QDy[101] + acadoWorkspace.evGx[579]*acadoWorkspace.QDy[102] + acadoWorkspace.evGx[585]*acadoWorkspace.QDy[103] + acadoWorkspace.evGx[591]*acadoWorkspace.QDy[104] + acadoWorkspace.evGx[597]*acadoWorkspace.QDy[105] + acadoWorkspace.evGx[603]*acadoWorkspace.QDy[106] + acadoWorkspace.evGx[609]*acadoWorkspace.QDy[107] + acadoWorkspace.evGx[615]*acadoWorkspace.QDy[108] + acadoWorkspace.evGx[621]*acadoWorkspace.QDy[109] + acadoWorkspace.evGx[627]*acadoWorkspace.QDy[110] + acadoWorkspace.evGx[633]*acadoWorkspace.QDy[111] + acadoWorkspace.evGx[639]*acadoWorkspace.QDy[112] + acadoWorkspace.evGx[645]*acadoWorkspace.QDy[113] + acadoWorkspace.evGx[651]*acadoWorkspace.QDy[114] + acadoWorkspace.evGx[657]*acadoWorkspace.QDy[115] + acadoWorkspace.evGx[663]*acadoWorkspace.QDy[116] + acadoWorkspace.evGx[669]*acadoWorkspace.QDy[117] + acadoWorkspace.evGx[675]*acadoWorkspace.QDy[118] + acadoWorkspace.evGx[681]*acadoWorkspace.QDy[119] + acadoWorkspace.evGx[687]*acadoWorkspace.QDy[120] + acadoWorkspace.evGx[693]*acadoWorkspace.QDy[121] + acadoWorkspace.evGx[699]*acadoWorkspace.QDy[122] + acadoWorkspace.evGx[705]*acadoWorkspace.QDy[123] + acadoWorkspace.evGx[711]*acadoWorkspace.QDy[124] + acadoWorkspace.evGx[717]*acadoWorkspace.QDy[125]; -acadoWorkspace.g[4] = + acadoWorkspace.evGx[4]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[10]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[16]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[22]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[28]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[34]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[40]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[46]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[52]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[58]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[64]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[70]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[76]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[82]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[88]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[94]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[100]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[106]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[112]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[118]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[124]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[130]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[136]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[142]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[148]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[154]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[160]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[166]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[172]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[178]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[184]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[190]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[196]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[202]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[208]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[214]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[220]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[226]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[232]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[238]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[244]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[250]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[256]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[262]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[268]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[274]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[280]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[286]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[292]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[298]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[304]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[310]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[316]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[322]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[328]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[334]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[340]*acadoWorkspace.QDy[62] + acadoWorkspace.evGx[346]*acadoWorkspace.QDy[63] + acadoWorkspace.evGx[352]*acadoWorkspace.QDy[64] + acadoWorkspace.evGx[358]*acadoWorkspace.QDy[65] + acadoWorkspace.evGx[364]*acadoWorkspace.QDy[66] + acadoWorkspace.evGx[370]*acadoWorkspace.QDy[67] + acadoWorkspace.evGx[376]*acadoWorkspace.QDy[68] + acadoWorkspace.evGx[382]*acadoWorkspace.QDy[69] + acadoWorkspace.evGx[388]*acadoWorkspace.QDy[70] + acadoWorkspace.evGx[394]*acadoWorkspace.QDy[71] + acadoWorkspace.evGx[400]*acadoWorkspace.QDy[72] + acadoWorkspace.evGx[406]*acadoWorkspace.QDy[73] + acadoWorkspace.evGx[412]*acadoWorkspace.QDy[74] + acadoWorkspace.evGx[418]*acadoWorkspace.QDy[75] + acadoWorkspace.evGx[424]*acadoWorkspace.QDy[76] + acadoWorkspace.evGx[430]*acadoWorkspace.QDy[77] + acadoWorkspace.evGx[436]*acadoWorkspace.QDy[78] + acadoWorkspace.evGx[442]*acadoWorkspace.QDy[79] + acadoWorkspace.evGx[448]*acadoWorkspace.QDy[80] + acadoWorkspace.evGx[454]*acadoWorkspace.QDy[81] + acadoWorkspace.evGx[460]*acadoWorkspace.QDy[82] + acadoWorkspace.evGx[466]*acadoWorkspace.QDy[83] + acadoWorkspace.evGx[472]*acadoWorkspace.QDy[84] + acadoWorkspace.evGx[478]*acadoWorkspace.QDy[85] + acadoWorkspace.evGx[484]*acadoWorkspace.QDy[86] + acadoWorkspace.evGx[490]*acadoWorkspace.QDy[87] + acadoWorkspace.evGx[496]*acadoWorkspace.QDy[88] + acadoWorkspace.evGx[502]*acadoWorkspace.QDy[89] + acadoWorkspace.evGx[508]*acadoWorkspace.QDy[90] + acadoWorkspace.evGx[514]*acadoWorkspace.QDy[91] + acadoWorkspace.evGx[520]*acadoWorkspace.QDy[92] + acadoWorkspace.evGx[526]*acadoWorkspace.QDy[93] + acadoWorkspace.evGx[532]*acadoWorkspace.QDy[94] + acadoWorkspace.evGx[538]*acadoWorkspace.QDy[95] + acadoWorkspace.evGx[544]*acadoWorkspace.QDy[96] + acadoWorkspace.evGx[550]*acadoWorkspace.QDy[97] + acadoWorkspace.evGx[556]*acadoWorkspace.QDy[98] + acadoWorkspace.evGx[562]*acadoWorkspace.QDy[99] + acadoWorkspace.evGx[568]*acadoWorkspace.QDy[100] + acadoWorkspace.evGx[574]*acadoWorkspace.QDy[101] + acadoWorkspace.evGx[580]*acadoWorkspace.QDy[102] + acadoWorkspace.evGx[586]*acadoWorkspace.QDy[103] + acadoWorkspace.evGx[592]*acadoWorkspace.QDy[104] + acadoWorkspace.evGx[598]*acadoWorkspace.QDy[105] + acadoWorkspace.evGx[604]*acadoWorkspace.QDy[106] + acadoWorkspace.evGx[610]*acadoWorkspace.QDy[107] + acadoWorkspace.evGx[616]*acadoWorkspace.QDy[108] + acadoWorkspace.evGx[622]*acadoWorkspace.QDy[109] + acadoWorkspace.evGx[628]*acadoWorkspace.QDy[110] + acadoWorkspace.evGx[634]*acadoWorkspace.QDy[111] + acadoWorkspace.evGx[640]*acadoWorkspace.QDy[112] + acadoWorkspace.evGx[646]*acadoWorkspace.QDy[113] + acadoWorkspace.evGx[652]*acadoWorkspace.QDy[114] + acadoWorkspace.evGx[658]*acadoWorkspace.QDy[115] + acadoWorkspace.evGx[664]*acadoWorkspace.QDy[116] + acadoWorkspace.evGx[670]*acadoWorkspace.QDy[117] + acadoWorkspace.evGx[676]*acadoWorkspace.QDy[118] + acadoWorkspace.evGx[682]*acadoWorkspace.QDy[119] + acadoWorkspace.evGx[688]*acadoWorkspace.QDy[120] + acadoWorkspace.evGx[694]*acadoWorkspace.QDy[121] + acadoWorkspace.evGx[700]*acadoWorkspace.QDy[122] + acadoWorkspace.evGx[706]*acadoWorkspace.QDy[123] + acadoWorkspace.evGx[712]*acadoWorkspace.QDy[124] + acadoWorkspace.evGx[718]*acadoWorkspace.QDy[125]; -acadoWorkspace.g[5] = + acadoWorkspace.evGx[5]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[11]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[17]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[23]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[29]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[35]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[41]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[47]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[53]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[59]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[65]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[71]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[77]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[83]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[89]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[95]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[101]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[107]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[113]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[119]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[125]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[131]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[137]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[143]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[149]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[155]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[161]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[167]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[173]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[179]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[185]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[191]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[197]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[203]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[209]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[215]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[221]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[227]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[233]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[239]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[245]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[251]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[257]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[263]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[269]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[275]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[281]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[287]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[293]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[299]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[305]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[311]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[317]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[323]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[329]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[335]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[341]*acadoWorkspace.QDy[62] + acadoWorkspace.evGx[347]*acadoWorkspace.QDy[63] + acadoWorkspace.evGx[353]*acadoWorkspace.QDy[64] + acadoWorkspace.evGx[359]*acadoWorkspace.QDy[65] + acadoWorkspace.evGx[365]*acadoWorkspace.QDy[66] + acadoWorkspace.evGx[371]*acadoWorkspace.QDy[67] + acadoWorkspace.evGx[377]*acadoWorkspace.QDy[68] + acadoWorkspace.evGx[383]*acadoWorkspace.QDy[69] + acadoWorkspace.evGx[389]*acadoWorkspace.QDy[70] + acadoWorkspace.evGx[395]*acadoWorkspace.QDy[71] + acadoWorkspace.evGx[401]*acadoWorkspace.QDy[72] + acadoWorkspace.evGx[407]*acadoWorkspace.QDy[73] + acadoWorkspace.evGx[413]*acadoWorkspace.QDy[74] + acadoWorkspace.evGx[419]*acadoWorkspace.QDy[75] + acadoWorkspace.evGx[425]*acadoWorkspace.QDy[76] + acadoWorkspace.evGx[431]*acadoWorkspace.QDy[77] + acadoWorkspace.evGx[437]*acadoWorkspace.QDy[78] + acadoWorkspace.evGx[443]*acadoWorkspace.QDy[79] + acadoWorkspace.evGx[449]*acadoWorkspace.QDy[80] + acadoWorkspace.evGx[455]*acadoWorkspace.QDy[81] + acadoWorkspace.evGx[461]*acadoWorkspace.QDy[82] + acadoWorkspace.evGx[467]*acadoWorkspace.QDy[83] + acadoWorkspace.evGx[473]*acadoWorkspace.QDy[84] + acadoWorkspace.evGx[479]*acadoWorkspace.QDy[85] + acadoWorkspace.evGx[485]*acadoWorkspace.QDy[86] + acadoWorkspace.evGx[491]*acadoWorkspace.QDy[87] + acadoWorkspace.evGx[497]*acadoWorkspace.QDy[88] + acadoWorkspace.evGx[503]*acadoWorkspace.QDy[89] + acadoWorkspace.evGx[509]*acadoWorkspace.QDy[90] + acadoWorkspace.evGx[515]*acadoWorkspace.QDy[91] + acadoWorkspace.evGx[521]*acadoWorkspace.QDy[92] + acadoWorkspace.evGx[527]*acadoWorkspace.QDy[93] + acadoWorkspace.evGx[533]*acadoWorkspace.QDy[94] + acadoWorkspace.evGx[539]*acadoWorkspace.QDy[95] + acadoWorkspace.evGx[545]*acadoWorkspace.QDy[96] + acadoWorkspace.evGx[551]*acadoWorkspace.QDy[97] + acadoWorkspace.evGx[557]*acadoWorkspace.QDy[98] + acadoWorkspace.evGx[563]*acadoWorkspace.QDy[99] + acadoWorkspace.evGx[569]*acadoWorkspace.QDy[100] + acadoWorkspace.evGx[575]*acadoWorkspace.QDy[101] + acadoWorkspace.evGx[581]*acadoWorkspace.QDy[102] + acadoWorkspace.evGx[587]*acadoWorkspace.QDy[103] + acadoWorkspace.evGx[593]*acadoWorkspace.QDy[104] + acadoWorkspace.evGx[599]*acadoWorkspace.QDy[105] + acadoWorkspace.evGx[605]*acadoWorkspace.QDy[106] + acadoWorkspace.evGx[611]*acadoWorkspace.QDy[107] + acadoWorkspace.evGx[617]*acadoWorkspace.QDy[108] + acadoWorkspace.evGx[623]*acadoWorkspace.QDy[109] + acadoWorkspace.evGx[629]*acadoWorkspace.QDy[110] + acadoWorkspace.evGx[635]*acadoWorkspace.QDy[111] + acadoWorkspace.evGx[641]*acadoWorkspace.QDy[112] + acadoWorkspace.evGx[647]*acadoWorkspace.QDy[113] + acadoWorkspace.evGx[653]*acadoWorkspace.QDy[114] + acadoWorkspace.evGx[659]*acadoWorkspace.QDy[115] + acadoWorkspace.evGx[665]*acadoWorkspace.QDy[116] + acadoWorkspace.evGx[671]*acadoWorkspace.QDy[117] + acadoWorkspace.evGx[677]*acadoWorkspace.QDy[118] + acadoWorkspace.evGx[683]*acadoWorkspace.QDy[119] + acadoWorkspace.evGx[689]*acadoWorkspace.QDy[120] + acadoWorkspace.evGx[695]*acadoWorkspace.QDy[121] + acadoWorkspace.evGx[701]*acadoWorkspace.QDy[122] + acadoWorkspace.evGx[707]*acadoWorkspace.QDy[123] + acadoWorkspace.evGx[713]*acadoWorkspace.QDy[124] + acadoWorkspace.evGx[719]*acadoWorkspace.QDy[125]; +acadoWorkspace.g[0] = + acadoWorkspace.evGx[0]*acadoWorkspace.QDy[3] + acadoWorkspace.evGx[3]*acadoWorkspace.QDy[4] + acadoWorkspace.evGx[6]*acadoWorkspace.QDy[5] + acadoWorkspace.evGx[9]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[12]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[15]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[18]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[21]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[24]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[27]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[30]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[33]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[36]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[39]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[42]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[45]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[48]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[51]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[54]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[57]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[60]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[63]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[66]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[69]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[72]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[75]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[78]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[81]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[84]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[87]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[90]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[93]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[96]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[99]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[102]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[105]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[108]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[111]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[114]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[117]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[120]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[123]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[126]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[129]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[132]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[135]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[138]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[141]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[144]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[147]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[150]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[153]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[156]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[159]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[162]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[165]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[168]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[171]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[174]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[177]*acadoWorkspace.QDy[62]; +acadoWorkspace.g[1] = + acadoWorkspace.evGx[1]*acadoWorkspace.QDy[3] + acadoWorkspace.evGx[4]*acadoWorkspace.QDy[4] + acadoWorkspace.evGx[7]*acadoWorkspace.QDy[5] + acadoWorkspace.evGx[10]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[13]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[16]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[19]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[22]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[25]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[28]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[31]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[34]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[37]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[40]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[43]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[46]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[49]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[52]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[55]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[58]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[61]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[64]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[67]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[70]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[73]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[76]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[79]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[82]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[85]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[88]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[91]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[94]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[97]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[100]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[103]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[106]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[109]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[112]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[115]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[118]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[121]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[124]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[127]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[130]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[133]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[136]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[139]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[142]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[145]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[148]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[151]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[154]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[157]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[160]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[163]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[166]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[169]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[172]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[175]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[178]*acadoWorkspace.QDy[62]; +acadoWorkspace.g[2] = + acadoWorkspace.evGx[2]*acadoWorkspace.QDy[3] + acadoWorkspace.evGx[5]*acadoWorkspace.QDy[4] + acadoWorkspace.evGx[8]*acadoWorkspace.QDy[5] + acadoWorkspace.evGx[11]*acadoWorkspace.QDy[6] + acadoWorkspace.evGx[14]*acadoWorkspace.QDy[7] + acadoWorkspace.evGx[17]*acadoWorkspace.QDy[8] + acadoWorkspace.evGx[20]*acadoWorkspace.QDy[9] + acadoWorkspace.evGx[23]*acadoWorkspace.QDy[10] + acadoWorkspace.evGx[26]*acadoWorkspace.QDy[11] + acadoWorkspace.evGx[29]*acadoWorkspace.QDy[12] + acadoWorkspace.evGx[32]*acadoWorkspace.QDy[13] + acadoWorkspace.evGx[35]*acadoWorkspace.QDy[14] + acadoWorkspace.evGx[38]*acadoWorkspace.QDy[15] + acadoWorkspace.evGx[41]*acadoWorkspace.QDy[16] + acadoWorkspace.evGx[44]*acadoWorkspace.QDy[17] + acadoWorkspace.evGx[47]*acadoWorkspace.QDy[18] + acadoWorkspace.evGx[50]*acadoWorkspace.QDy[19] + acadoWorkspace.evGx[53]*acadoWorkspace.QDy[20] + acadoWorkspace.evGx[56]*acadoWorkspace.QDy[21] + acadoWorkspace.evGx[59]*acadoWorkspace.QDy[22] + acadoWorkspace.evGx[62]*acadoWorkspace.QDy[23] + acadoWorkspace.evGx[65]*acadoWorkspace.QDy[24] + acadoWorkspace.evGx[68]*acadoWorkspace.QDy[25] + acadoWorkspace.evGx[71]*acadoWorkspace.QDy[26] + acadoWorkspace.evGx[74]*acadoWorkspace.QDy[27] + acadoWorkspace.evGx[77]*acadoWorkspace.QDy[28] + acadoWorkspace.evGx[80]*acadoWorkspace.QDy[29] + acadoWorkspace.evGx[83]*acadoWorkspace.QDy[30] + acadoWorkspace.evGx[86]*acadoWorkspace.QDy[31] + acadoWorkspace.evGx[89]*acadoWorkspace.QDy[32] + acadoWorkspace.evGx[92]*acadoWorkspace.QDy[33] + acadoWorkspace.evGx[95]*acadoWorkspace.QDy[34] + acadoWorkspace.evGx[98]*acadoWorkspace.QDy[35] + acadoWorkspace.evGx[101]*acadoWorkspace.QDy[36] + acadoWorkspace.evGx[104]*acadoWorkspace.QDy[37] + acadoWorkspace.evGx[107]*acadoWorkspace.QDy[38] + acadoWorkspace.evGx[110]*acadoWorkspace.QDy[39] + acadoWorkspace.evGx[113]*acadoWorkspace.QDy[40] + acadoWorkspace.evGx[116]*acadoWorkspace.QDy[41] + acadoWorkspace.evGx[119]*acadoWorkspace.QDy[42] + acadoWorkspace.evGx[122]*acadoWorkspace.QDy[43] + acadoWorkspace.evGx[125]*acadoWorkspace.QDy[44] + acadoWorkspace.evGx[128]*acadoWorkspace.QDy[45] + acadoWorkspace.evGx[131]*acadoWorkspace.QDy[46] + acadoWorkspace.evGx[134]*acadoWorkspace.QDy[47] + acadoWorkspace.evGx[137]*acadoWorkspace.QDy[48] + acadoWorkspace.evGx[140]*acadoWorkspace.QDy[49] + acadoWorkspace.evGx[143]*acadoWorkspace.QDy[50] + acadoWorkspace.evGx[146]*acadoWorkspace.QDy[51] + acadoWorkspace.evGx[149]*acadoWorkspace.QDy[52] + acadoWorkspace.evGx[152]*acadoWorkspace.QDy[53] + acadoWorkspace.evGx[155]*acadoWorkspace.QDy[54] + acadoWorkspace.evGx[158]*acadoWorkspace.QDy[55] + acadoWorkspace.evGx[161]*acadoWorkspace.QDy[56] + acadoWorkspace.evGx[164]*acadoWorkspace.QDy[57] + acadoWorkspace.evGx[167]*acadoWorkspace.QDy[58] + acadoWorkspace.evGx[170]*acadoWorkspace.QDy[59] + acadoWorkspace.evGx[173]*acadoWorkspace.QDy[60] + acadoWorkspace.evGx[176]*acadoWorkspace.QDy[61] + acadoWorkspace.evGx[179]*acadoWorkspace.QDy[62]; -acado_multEQDy( acadoWorkspace.E, &(acadoWorkspace.QDy[ 6 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QDy[ 12 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 6 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.QDy[ 12 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 7 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 8 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 9 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 10 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 11 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 12 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 13 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 14 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 15 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QDy[ 66 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 16 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QDy[ 72 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 17 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QDy[ 78 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 18 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QDy[ 84 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 708 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 19 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 714 ]), &(acadoWorkspace.QDy[ 90 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 804 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 20 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 810 ]), &(acadoWorkspace.QDy[ 96 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 906 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 21 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 912 ]), &(acadoWorkspace.QDy[ 102 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1014 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 22 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1020 ]), &(acadoWorkspace.QDy[ 108 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1128 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1242 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 23 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1134 ]), &(acadoWorkspace.QDy[ 114 ]), &(acadoWorkspace.g[ 24 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1248 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 24 ]) ); -acado_multEQDy( &(acadoWorkspace.E[ 1254 ]), &(acadoWorkspace.QDy[ 120 ]), &(acadoWorkspace.g[ 25 ]) ); +acado_multEQDy( acadoWorkspace.E, &(acadoWorkspace.QDy[ 3 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 3 ]), &(acadoWorkspace.QDy[ 6 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.QDy[ 9 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.QDy[ 12 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.QDy[ 15 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 3 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.QDy[ 6 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.QDy[ 9 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.QDy[ 12 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.QDy[ 15 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 4 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 15 ]), &(acadoWorkspace.QDy[ 9 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.QDy[ 12 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.QDy[ 15 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 5 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 27 ]), &(acadoWorkspace.QDy[ 12 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 39 ]), &(acadoWorkspace.QDy[ 15 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 6 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.QDy[ 15 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 57 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 7 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.QDy[ 18 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 8 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 81 ]), &(acadoWorkspace.QDy[ 21 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 9 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 105 ]), &(acadoWorkspace.QDy[ 24 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 129 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 10 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.QDy[ 27 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 159 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 11 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.QDy[ 30 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 12 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 195 ]), &(acadoWorkspace.QDy[ 33 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 13 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 231 ]), &(acadoWorkspace.QDy[ 36 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 267 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 14 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.QDy[ 39 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 309 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 15 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.QDy[ 42 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 16 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 357 ]), &(acadoWorkspace.QDy[ 45 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 17 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 405 ]), &(acadoWorkspace.QDy[ 48 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 453 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 18 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.QDy[ 51 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 507 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 19 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.QDy[ 54 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 621 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 20 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 567 ]), &(acadoWorkspace.QDy[ 57 ]), &(acadoWorkspace.g[ 21 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 21 ]) ); +acado_multEQDy( &(acadoWorkspace.E[ 627 ]), &(acadoWorkspace.QDy[ 60 ]), &(acadoWorkspace.g[ 22 ]) ); acadoWorkspace.lb[0] = acadoWorkspace.Dx0[0]; acadoWorkspace.lb[1] = acadoWorkspace.Dx0[1]; acadoWorkspace.lb[2] = acadoWorkspace.Dx0[2]; -acadoWorkspace.lb[3] = acadoWorkspace.Dx0[3]; -acadoWorkspace.lb[4] = acadoWorkspace.Dx0[4]; -acadoWorkspace.lb[5] = acadoWorkspace.Dx0[5]; acadoWorkspace.ub[0] = acadoWorkspace.Dx0[0]; acadoWorkspace.ub[1] = acadoWorkspace.Dx0[1]; acadoWorkspace.ub[2] = acadoWorkspace.Dx0[2]; -acadoWorkspace.ub[3] = acadoWorkspace.Dx0[3]; -acadoWorkspace.ub[4] = acadoWorkspace.Dx0[4]; -acadoWorkspace.ub[5] = acadoWorkspace.Dx0[5]; -tmp = acadoVariables.x[7] + acadoWorkspace.d[1]; +tmp = acadoVariables.x[4] + acadoWorkspace.d[1]; acadoWorkspace.lbA[0] = - tmp; acadoWorkspace.ubA[0] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[13] + acadoWorkspace.d[7]; +tmp = acadoVariables.x[7] + acadoWorkspace.d[4]; acadoWorkspace.lbA[1] = - tmp; acadoWorkspace.ubA[1] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[19] + acadoWorkspace.d[13]; +tmp = acadoVariables.x[10] + acadoWorkspace.d[7]; acadoWorkspace.lbA[2] = - tmp; acadoWorkspace.ubA[2] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[25] + acadoWorkspace.d[19]; +tmp = acadoVariables.x[13] + acadoWorkspace.d[10]; acadoWorkspace.lbA[3] = - tmp; acadoWorkspace.ubA[3] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[31] + acadoWorkspace.d[25]; +tmp = acadoVariables.x[16] + acadoWorkspace.d[13]; acadoWorkspace.lbA[4] = - tmp; acadoWorkspace.ubA[4] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[37] + acadoWorkspace.d[31]; +tmp = acadoVariables.x[19] + acadoWorkspace.d[16]; acadoWorkspace.lbA[5] = - tmp; acadoWorkspace.ubA[5] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[43] + acadoWorkspace.d[37]; +tmp = acadoVariables.x[22] + acadoWorkspace.d[19]; acadoWorkspace.lbA[6] = - tmp; acadoWorkspace.ubA[6] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[49] + acadoWorkspace.d[43]; +tmp = acadoVariables.x[25] + acadoWorkspace.d[22]; acadoWorkspace.lbA[7] = - tmp; acadoWorkspace.ubA[7] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[55] + acadoWorkspace.d[49]; +tmp = acadoVariables.x[28] + acadoWorkspace.d[25]; acadoWorkspace.lbA[8] = - tmp; acadoWorkspace.ubA[8] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[61] + acadoWorkspace.d[55]; +tmp = acadoVariables.x[31] + acadoWorkspace.d[28]; acadoWorkspace.lbA[9] = - tmp; acadoWorkspace.ubA[9] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[67] + acadoWorkspace.d[61]; +tmp = acadoVariables.x[34] + acadoWorkspace.d[31]; acadoWorkspace.lbA[10] = - tmp; acadoWorkspace.ubA[10] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[73] + acadoWorkspace.d[67]; +tmp = acadoVariables.x[37] + acadoWorkspace.d[34]; acadoWorkspace.lbA[11] = - tmp; acadoWorkspace.ubA[11] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[79] + acadoWorkspace.d[73]; +tmp = acadoVariables.x[40] + acadoWorkspace.d[37]; acadoWorkspace.lbA[12] = - tmp; acadoWorkspace.ubA[12] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[85] + acadoWorkspace.d[79]; +tmp = acadoVariables.x[43] + acadoWorkspace.d[40]; acadoWorkspace.lbA[13] = - tmp; acadoWorkspace.ubA[13] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[91] + acadoWorkspace.d[85]; +tmp = acadoVariables.x[46] + acadoWorkspace.d[43]; acadoWorkspace.lbA[14] = - tmp; acadoWorkspace.ubA[14] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[97] + acadoWorkspace.d[91]; +tmp = acadoVariables.x[49] + acadoWorkspace.d[46]; acadoWorkspace.lbA[15] = - tmp; acadoWorkspace.ubA[15] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[103] + acadoWorkspace.d[97]; +tmp = acadoVariables.x[52] + acadoWorkspace.d[49]; acadoWorkspace.lbA[16] = - tmp; acadoWorkspace.ubA[16] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[109] + acadoWorkspace.d[103]; +tmp = acadoVariables.x[55] + acadoWorkspace.d[52]; acadoWorkspace.lbA[17] = - tmp; acadoWorkspace.ubA[17] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[115] + acadoWorkspace.d[109]; +tmp = acadoVariables.x[58] + acadoWorkspace.d[55]; acadoWorkspace.lbA[18] = - tmp; acadoWorkspace.ubA[18] = (real_t)1.0000000000000000e+12 - tmp; -tmp = acadoVariables.x[121] + acadoWorkspace.d[115]; +tmp = acadoVariables.x[61] + acadoWorkspace.d[58]; acadoWorkspace.lbA[19] = - tmp; acadoWorkspace.ubA[19] = (real_t)1.0000000000000000e+12 - tmp; @@ -4800,362 +4297,299 @@ void acado_expand( ) acadoVariables.x[0] += acadoWorkspace.x[0]; acadoVariables.x[1] += acadoWorkspace.x[1]; acadoVariables.x[2] += acadoWorkspace.x[2]; -acadoVariables.x[3] += acadoWorkspace.x[3]; -acadoVariables.x[4] += acadoWorkspace.x[4]; -acadoVariables.x[5] += acadoWorkspace.x[5]; -acadoVariables.u[0] += acadoWorkspace.x[6]; -acadoVariables.u[1] += acadoWorkspace.x[7]; -acadoVariables.u[2] += acadoWorkspace.x[8]; -acadoVariables.u[3] += acadoWorkspace.x[9]; -acadoVariables.u[4] += acadoWorkspace.x[10]; -acadoVariables.u[5] += acadoWorkspace.x[11]; -acadoVariables.u[6] += acadoWorkspace.x[12]; -acadoVariables.u[7] += acadoWorkspace.x[13]; -acadoVariables.u[8] += acadoWorkspace.x[14]; -acadoVariables.u[9] += acadoWorkspace.x[15]; -acadoVariables.u[10] += acadoWorkspace.x[16]; -acadoVariables.u[11] += acadoWorkspace.x[17]; -acadoVariables.u[12] += acadoWorkspace.x[18]; -acadoVariables.u[13] += acadoWorkspace.x[19]; -acadoVariables.u[14] += acadoWorkspace.x[20]; -acadoVariables.u[15] += acadoWorkspace.x[21]; -acadoVariables.u[16] += acadoWorkspace.x[22]; -acadoVariables.u[17] += acadoWorkspace.x[23]; -acadoVariables.u[18] += acadoWorkspace.x[24]; -acadoVariables.u[19] += acadoWorkspace.x[25]; +acadoVariables.u[0] += acadoWorkspace.x[3]; +acadoVariables.u[1] += acadoWorkspace.x[4]; +acadoVariables.u[2] += acadoWorkspace.x[5]; +acadoVariables.u[3] += acadoWorkspace.x[6]; +acadoVariables.u[4] += acadoWorkspace.x[7]; +acadoVariables.u[5] += acadoWorkspace.x[8]; +acadoVariables.u[6] += acadoWorkspace.x[9]; +acadoVariables.u[7] += acadoWorkspace.x[10]; +acadoVariables.u[8] += acadoWorkspace.x[11]; +acadoVariables.u[9] += acadoWorkspace.x[12]; +acadoVariables.u[10] += acadoWorkspace.x[13]; +acadoVariables.u[11] += acadoWorkspace.x[14]; +acadoVariables.u[12] += acadoWorkspace.x[15]; +acadoVariables.u[13] += acadoWorkspace.x[16]; +acadoVariables.u[14] += acadoWorkspace.x[17]; +acadoVariables.u[15] += acadoWorkspace.x[18]; +acadoVariables.u[16] += acadoWorkspace.x[19]; +acadoVariables.u[17] += acadoWorkspace.x[20]; +acadoVariables.u[18] += acadoWorkspace.x[21]; +acadoVariables.u[19] += acadoWorkspace.x[22]; -acadoVariables.x[6] += + acadoWorkspace.evGx[0]*acadoWorkspace.x[0] + acadoWorkspace.evGx[1]*acadoWorkspace.x[1] + acadoWorkspace.evGx[2]*acadoWorkspace.x[2] + acadoWorkspace.evGx[3]*acadoWorkspace.x[3] + acadoWorkspace.evGx[4]*acadoWorkspace.x[4] + acadoWorkspace.evGx[5]*acadoWorkspace.x[5] + acadoWorkspace.d[0]; -acadoVariables.x[7] += + acadoWorkspace.evGx[6]*acadoWorkspace.x[0] + acadoWorkspace.evGx[7]*acadoWorkspace.x[1] + acadoWorkspace.evGx[8]*acadoWorkspace.x[2] + acadoWorkspace.evGx[9]*acadoWorkspace.x[3] + acadoWorkspace.evGx[10]*acadoWorkspace.x[4] + acadoWorkspace.evGx[11]*acadoWorkspace.x[5] + acadoWorkspace.d[1]; -acadoVariables.x[8] += + acadoWorkspace.evGx[12]*acadoWorkspace.x[0] + acadoWorkspace.evGx[13]*acadoWorkspace.x[1] + acadoWorkspace.evGx[14]*acadoWorkspace.x[2] + acadoWorkspace.evGx[15]*acadoWorkspace.x[3] + acadoWorkspace.evGx[16]*acadoWorkspace.x[4] + acadoWorkspace.evGx[17]*acadoWorkspace.x[5] + acadoWorkspace.d[2]; -acadoVariables.x[9] += + acadoWorkspace.evGx[18]*acadoWorkspace.x[0] + acadoWorkspace.evGx[19]*acadoWorkspace.x[1] + acadoWorkspace.evGx[20]*acadoWorkspace.x[2] + acadoWorkspace.evGx[21]*acadoWorkspace.x[3] + acadoWorkspace.evGx[22]*acadoWorkspace.x[4] + acadoWorkspace.evGx[23]*acadoWorkspace.x[5] + acadoWorkspace.d[3]; -acadoVariables.x[10] += + acadoWorkspace.evGx[24]*acadoWorkspace.x[0] + acadoWorkspace.evGx[25]*acadoWorkspace.x[1] + acadoWorkspace.evGx[26]*acadoWorkspace.x[2] + acadoWorkspace.evGx[27]*acadoWorkspace.x[3] + acadoWorkspace.evGx[28]*acadoWorkspace.x[4] + acadoWorkspace.evGx[29]*acadoWorkspace.x[5] + acadoWorkspace.d[4]; -acadoVariables.x[11] += + acadoWorkspace.evGx[30]*acadoWorkspace.x[0] + acadoWorkspace.evGx[31]*acadoWorkspace.x[1] + acadoWorkspace.evGx[32]*acadoWorkspace.x[2] + acadoWorkspace.evGx[33]*acadoWorkspace.x[3] + acadoWorkspace.evGx[34]*acadoWorkspace.x[4] + acadoWorkspace.evGx[35]*acadoWorkspace.x[5] + acadoWorkspace.d[5]; -acadoVariables.x[12] += + acadoWorkspace.evGx[36]*acadoWorkspace.x[0] + acadoWorkspace.evGx[37]*acadoWorkspace.x[1] + acadoWorkspace.evGx[38]*acadoWorkspace.x[2] + acadoWorkspace.evGx[39]*acadoWorkspace.x[3] + acadoWorkspace.evGx[40]*acadoWorkspace.x[4] + acadoWorkspace.evGx[41]*acadoWorkspace.x[5] + acadoWorkspace.d[6]; -acadoVariables.x[13] += + acadoWorkspace.evGx[42]*acadoWorkspace.x[0] + acadoWorkspace.evGx[43]*acadoWorkspace.x[1] + acadoWorkspace.evGx[44]*acadoWorkspace.x[2] + acadoWorkspace.evGx[45]*acadoWorkspace.x[3] + acadoWorkspace.evGx[46]*acadoWorkspace.x[4] + acadoWorkspace.evGx[47]*acadoWorkspace.x[5] + acadoWorkspace.d[7]; -acadoVariables.x[14] += + acadoWorkspace.evGx[48]*acadoWorkspace.x[0] + acadoWorkspace.evGx[49]*acadoWorkspace.x[1] + acadoWorkspace.evGx[50]*acadoWorkspace.x[2] + acadoWorkspace.evGx[51]*acadoWorkspace.x[3] + acadoWorkspace.evGx[52]*acadoWorkspace.x[4] + acadoWorkspace.evGx[53]*acadoWorkspace.x[5] + acadoWorkspace.d[8]; -acadoVariables.x[15] += + acadoWorkspace.evGx[54]*acadoWorkspace.x[0] + acadoWorkspace.evGx[55]*acadoWorkspace.x[1] + acadoWorkspace.evGx[56]*acadoWorkspace.x[2] + acadoWorkspace.evGx[57]*acadoWorkspace.x[3] + acadoWorkspace.evGx[58]*acadoWorkspace.x[4] + acadoWorkspace.evGx[59]*acadoWorkspace.x[5] + acadoWorkspace.d[9]; -acadoVariables.x[16] += + acadoWorkspace.evGx[60]*acadoWorkspace.x[0] + acadoWorkspace.evGx[61]*acadoWorkspace.x[1] + acadoWorkspace.evGx[62]*acadoWorkspace.x[2] + acadoWorkspace.evGx[63]*acadoWorkspace.x[3] + acadoWorkspace.evGx[64]*acadoWorkspace.x[4] + acadoWorkspace.evGx[65]*acadoWorkspace.x[5] + acadoWorkspace.d[10]; -acadoVariables.x[17] += + acadoWorkspace.evGx[66]*acadoWorkspace.x[0] + acadoWorkspace.evGx[67]*acadoWorkspace.x[1] + acadoWorkspace.evGx[68]*acadoWorkspace.x[2] + acadoWorkspace.evGx[69]*acadoWorkspace.x[3] + acadoWorkspace.evGx[70]*acadoWorkspace.x[4] + acadoWorkspace.evGx[71]*acadoWorkspace.x[5] + acadoWorkspace.d[11]; -acadoVariables.x[18] += + acadoWorkspace.evGx[72]*acadoWorkspace.x[0] + acadoWorkspace.evGx[73]*acadoWorkspace.x[1] + acadoWorkspace.evGx[74]*acadoWorkspace.x[2] + acadoWorkspace.evGx[75]*acadoWorkspace.x[3] + acadoWorkspace.evGx[76]*acadoWorkspace.x[4] + acadoWorkspace.evGx[77]*acadoWorkspace.x[5] + acadoWorkspace.d[12]; -acadoVariables.x[19] += + acadoWorkspace.evGx[78]*acadoWorkspace.x[0] + acadoWorkspace.evGx[79]*acadoWorkspace.x[1] + acadoWorkspace.evGx[80]*acadoWorkspace.x[2] + acadoWorkspace.evGx[81]*acadoWorkspace.x[3] + acadoWorkspace.evGx[82]*acadoWorkspace.x[4] + acadoWorkspace.evGx[83]*acadoWorkspace.x[5] + acadoWorkspace.d[13]; -acadoVariables.x[20] += + acadoWorkspace.evGx[84]*acadoWorkspace.x[0] + acadoWorkspace.evGx[85]*acadoWorkspace.x[1] + acadoWorkspace.evGx[86]*acadoWorkspace.x[2] + acadoWorkspace.evGx[87]*acadoWorkspace.x[3] + acadoWorkspace.evGx[88]*acadoWorkspace.x[4] + acadoWorkspace.evGx[89]*acadoWorkspace.x[5] + acadoWorkspace.d[14]; -acadoVariables.x[21] += + acadoWorkspace.evGx[90]*acadoWorkspace.x[0] + acadoWorkspace.evGx[91]*acadoWorkspace.x[1] + acadoWorkspace.evGx[92]*acadoWorkspace.x[2] + acadoWorkspace.evGx[93]*acadoWorkspace.x[3] + acadoWorkspace.evGx[94]*acadoWorkspace.x[4] + acadoWorkspace.evGx[95]*acadoWorkspace.x[5] + acadoWorkspace.d[15]; -acadoVariables.x[22] += + acadoWorkspace.evGx[96]*acadoWorkspace.x[0] + acadoWorkspace.evGx[97]*acadoWorkspace.x[1] + acadoWorkspace.evGx[98]*acadoWorkspace.x[2] + acadoWorkspace.evGx[99]*acadoWorkspace.x[3] + acadoWorkspace.evGx[100]*acadoWorkspace.x[4] + acadoWorkspace.evGx[101]*acadoWorkspace.x[5] + acadoWorkspace.d[16]; -acadoVariables.x[23] += + acadoWorkspace.evGx[102]*acadoWorkspace.x[0] + acadoWorkspace.evGx[103]*acadoWorkspace.x[1] + acadoWorkspace.evGx[104]*acadoWorkspace.x[2] + acadoWorkspace.evGx[105]*acadoWorkspace.x[3] + acadoWorkspace.evGx[106]*acadoWorkspace.x[4] + acadoWorkspace.evGx[107]*acadoWorkspace.x[5] + acadoWorkspace.d[17]; -acadoVariables.x[24] += + acadoWorkspace.evGx[108]*acadoWorkspace.x[0] + acadoWorkspace.evGx[109]*acadoWorkspace.x[1] + acadoWorkspace.evGx[110]*acadoWorkspace.x[2] + acadoWorkspace.evGx[111]*acadoWorkspace.x[3] + acadoWorkspace.evGx[112]*acadoWorkspace.x[4] + acadoWorkspace.evGx[113]*acadoWorkspace.x[5] + acadoWorkspace.d[18]; -acadoVariables.x[25] += + acadoWorkspace.evGx[114]*acadoWorkspace.x[0] + acadoWorkspace.evGx[115]*acadoWorkspace.x[1] + acadoWorkspace.evGx[116]*acadoWorkspace.x[2] + acadoWorkspace.evGx[117]*acadoWorkspace.x[3] + acadoWorkspace.evGx[118]*acadoWorkspace.x[4] + acadoWorkspace.evGx[119]*acadoWorkspace.x[5] + acadoWorkspace.d[19]; -acadoVariables.x[26] += + acadoWorkspace.evGx[120]*acadoWorkspace.x[0] + acadoWorkspace.evGx[121]*acadoWorkspace.x[1] + acadoWorkspace.evGx[122]*acadoWorkspace.x[2] + acadoWorkspace.evGx[123]*acadoWorkspace.x[3] + acadoWorkspace.evGx[124]*acadoWorkspace.x[4] + acadoWorkspace.evGx[125]*acadoWorkspace.x[5] + acadoWorkspace.d[20]; -acadoVariables.x[27] += + acadoWorkspace.evGx[126]*acadoWorkspace.x[0] + acadoWorkspace.evGx[127]*acadoWorkspace.x[1] + acadoWorkspace.evGx[128]*acadoWorkspace.x[2] + acadoWorkspace.evGx[129]*acadoWorkspace.x[3] + acadoWorkspace.evGx[130]*acadoWorkspace.x[4] + acadoWorkspace.evGx[131]*acadoWorkspace.x[5] + acadoWorkspace.d[21]; -acadoVariables.x[28] += + acadoWorkspace.evGx[132]*acadoWorkspace.x[0] + acadoWorkspace.evGx[133]*acadoWorkspace.x[1] + acadoWorkspace.evGx[134]*acadoWorkspace.x[2] + acadoWorkspace.evGx[135]*acadoWorkspace.x[3] + acadoWorkspace.evGx[136]*acadoWorkspace.x[4] + acadoWorkspace.evGx[137]*acadoWorkspace.x[5] + acadoWorkspace.d[22]; -acadoVariables.x[29] += + acadoWorkspace.evGx[138]*acadoWorkspace.x[0] + acadoWorkspace.evGx[139]*acadoWorkspace.x[1] + acadoWorkspace.evGx[140]*acadoWorkspace.x[2] + acadoWorkspace.evGx[141]*acadoWorkspace.x[3] + acadoWorkspace.evGx[142]*acadoWorkspace.x[4] + acadoWorkspace.evGx[143]*acadoWorkspace.x[5] + acadoWorkspace.d[23]; -acadoVariables.x[30] += + acadoWorkspace.evGx[144]*acadoWorkspace.x[0] + acadoWorkspace.evGx[145]*acadoWorkspace.x[1] + acadoWorkspace.evGx[146]*acadoWorkspace.x[2] + acadoWorkspace.evGx[147]*acadoWorkspace.x[3] + acadoWorkspace.evGx[148]*acadoWorkspace.x[4] + acadoWorkspace.evGx[149]*acadoWorkspace.x[5] + acadoWorkspace.d[24]; -acadoVariables.x[31] += + acadoWorkspace.evGx[150]*acadoWorkspace.x[0] + acadoWorkspace.evGx[151]*acadoWorkspace.x[1] + acadoWorkspace.evGx[152]*acadoWorkspace.x[2] + acadoWorkspace.evGx[153]*acadoWorkspace.x[3] + acadoWorkspace.evGx[154]*acadoWorkspace.x[4] + acadoWorkspace.evGx[155]*acadoWorkspace.x[5] + acadoWorkspace.d[25]; -acadoVariables.x[32] += + acadoWorkspace.evGx[156]*acadoWorkspace.x[0] + acadoWorkspace.evGx[157]*acadoWorkspace.x[1] + acadoWorkspace.evGx[158]*acadoWorkspace.x[2] + acadoWorkspace.evGx[159]*acadoWorkspace.x[3] + acadoWorkspace.evGx[160]*acadoWorkspace.x[4] + acadoWorkspace.evGx[161]*acadoWorkspace.x[5] + acadoWorkspace.d[26]; -acadoVariables.x[33] += + acadoWorkspace.evGx[162]*acadoWorkspace.x[0] + acadoWorkspace.evGx[163]*acadoWorkspace.x[1] + acadoWorkspace.evGx[164]*acadoWorkspace.x[2] + acadoWorkspace.evGx[165]*acadoWorkspace.x[3] + acadoWorkspace.evGx[166]*acadoWorkspace.x[4] + acadoWorkspace.evGx[167]*acadoWorkspace.x[5] + acadoWorkspace.d[27]; -acadoVariables.x[34] += + acadoWorkspace.evGx[168]*acadoWorkspace.x[0] + acadoWorkspace.evGx[169]*acadoWorkspace.x[1] + acadoWorkspace.evGx[170]*acadoWorkspace.x[2] + acadoWorkspace.evGx[171]*acadoWorkspace.x[3] + acadoWorkspace.evGx[172]*acadoWorkspace.x[4] + acadoWorkspace.evGx[173]*acadoWorkspace.x[5] + acadoWorkspace.d[28]; -acadoVariables.x[35] += + acadoWorkspace.evGx[174]*acadoWorkspace.x[0] + acadoWorkspace.evGx[175]*acadoWorkspace.x[1] + acadoWorkspace.evGx[176]*acadoWorkspace.x[2] + acadoWorkspace.evGx[177]*acadoWorkspace.x[3] + acadoWorkspace.evGx[178]*acadoWorkspace.x[4] + acadoWorkspace.evGx[179]*acadoWorkspace.x[5] + acadoWorkspace.d[29]; -acadoVariables.x[36] += + acadoWorkspace.evGx[180]*acadoWorkspace.x[0] + acadoWorkspace.evGx[181]*acadoWorkspace.x[1] + acadoWorkspace.evGx[182]*acadoWorkspace.x[2] + acadoWorkspace.evGx[183]*acadoWorkspace.x[3] + acadoWorkspace.evGx[184]*acadoWorkspace.x[4] + acadoWorkspace.evGx[185]*acadoWorkspace.x[5] + acadoWorkspace.d[30]; -acadoVariables.x[37] += + acadoWorkspace.evGx[186]*acadoWorkspace.x[0] + acadoWorkspace.evGx[187]*acadoWorkspace.x[1] + acadoWorkspace.evGx[188]*acadoWorkspace.x[2] + acadoWorkspace.evGx[189]*acadoWorkspace.x[3] + acadoWorkspace.evGx[190]*acadoWorkspace.x[4] + acadoWorkspace.evGx[191]*acadoWorkspace.x[5] + acadoWorkspace.d[31]; -acadoVariables.x[38] += + acadoWorkspace.evGx[192]*acadoWorkspace.x[0] + acadoWorkspace.evGx[193]*acadoWorkspace.x[1] + acadoWorkspace.evGx[194]*acadoWorkspace.x[2] + acadoWorkspace.evGx[195]*acadoWorkspace.x[3] + acadoWorkspace.evGx[196]*acadoWorkspace.x[4] + acadoWorkspace.evGx[197]*acadoWorkspace.x[5] + acadoWorkspace.d[32]; -acadoVariables.x[39] += + acadoWorkspace.evGx[198]*acadoWorkspace.x[0] + acadoWorkspace.evGx[199]*acadoWorkspace.x[1] + acadoWorkspace.evGx[200]*acadoWorkspace.x[2] + acadoWorkspace.evGx[201]*acadoWorkspace.x[3] + acadoWorkspace.evGx[202]*acadoWorkspace.x[4] + acadoWorkspace.evGx[203]*acadoWorkspace.x[5] + acadoWorkspace.d[33]; -acadoVariables.x[40] += + acadoWorkspace.evGx[204]*acadoWorkspace.x[0] + acadoWorkspace.evGx[205]*acadoWorkspace.x[1] + acadoWorkspace.evGx[206]*acadoWorkspace.x[2] + acadoWorkspace.evGx[207]*acadoWorkspace.x[3] + acadoWorkspace.evGx[208]*acadoWorkspace.x[4] + acadoWorkspace.evGx[209]*acadoWorkspace.x[5] + acadoWorkspace.d[34]; -acadoVariables.x[41] += + acadoWorkspace.evGx[210]*acadoWorkspace.x[0] + acadoWorkspace.evGx[211]*acadoWorkspace.x[1] + acadoWorkspace.evGx[212]*acadoWorkspace.x[2] + acadoWorkspace.evGx[213]*acadoWorkspace.x[3] + acadoWorkspace.evGx[214]*acadoWorkspace.x[4] + acadoWorkspace.evGx[215]*acadoWorkspace.x[5] + acadoWorkspace.d[35]; -acadoVariables.x[42] += + acadoWorkspace.evGx[216]*acadoWorkspace.x[0] + acadoWorkspace.evGx[217]*acadoWorkspace.x[1] + acadoWorkspace.evGx[218]*acadoWorkspace.x[2] + acadoWorkspace.evGx[219]*acadoWorkspace.x[3] + acadoWorkspace.evGx[220]*acadoWorkspace.x[4] + acadoWorkspace.evGx[221]*acadoWorkspace.x[5] + acadoWorkspace.d[36]; -acadoVariables.x[43] += + acadoWorkspace.evGx[222]*acadoWorkspace.x[0] + acadoWorkspace.evGx[223]*acadoWorkspace.x[1] + acadoWorkspace.evGx[224]*acadoWorkspace.x[2] + acadoWorkspace.evGx[225]*acadoWorkspace.x[3] + acadoWorkspace.evGx[226]*acadoWorkspace.x[4] + acadoWorkspace.evGx[227]*acadoWorkspace.x[5] + acadoWorkspace.d[37]; -acadoVariables.x[44] += + acadoWorkspace.evGx[228]*acadoWorkspace.x[0] + acadoWorkspace.evGx[229]*acadoWorkspace.x[1] + acadoWorkspace.evGx[230]*acadoWorkspace.x[2] + acadoWorkspace.evGx[231]*acadoWorkspace.x[3] + acadoWorkspace.evGx[232]*acadoWorkspace.x[4] + acadoWorkspace.evGx[233]*acadoWorkspace.x[5] + acadoWorkspace.d[38]; -acadoVariables.x[45] += + acadoWorkspace.evGx[234]*acadoWorkspace.x[0] + acadoWorkspace.evGx[235]*acadoWorkspace.x[1] + acadoWorkspace.evGx[236]*acadoWorkspace.x[2] + acadoWorkspace.evGx[237]*acadoWorkspace.x[3] + acadoWorkspace.evGx[238]*acadoWorkspace.x[4] + acadoWorkspace.evGx[239]*acadoWorkspace.x[5] + acadoWorkspace.d[39]; -acadoVariables.x[46] += + acadoWorkspace.evGx[240]*acadoWorkspace.x[0] + acadoWorkspace.evGx[241]*acadoWorkspace.x[1] + acadoWorkspace.evGx[242]*acadoWorkspace.x[2] + acadoWorkspace.evGx[243]*acadoWorkspace.x[3] + acadoWorkspace.evGx[244]*acadoWorkspace.x[4] + acadoWorkspace.evGx[245]*acadoWorkspace.x[5] + acadoWorkspace.d[40]; -acadoVariables.x[47] += + acadoWorkspace.evGx[246]*acadoWorkspace.x[0] + acadoWorkspace.evGx[247]*acadoWorkspace.x[1] + acadoWorkspace.evGx[248]*acadoWorkspace.x[2] + acadoWorkspace.evGx[249]*acadoWorkspace.x[3] + acadoWorkspace.evGx[250]*acadoWorkspace.x[4] + acadoWorkspace.evGx[251]*acadoWorkspace.x[5] + acadoWorkspace.d[41]; -acadoVariables.x[48] += + acadoWorkspace.evGx[252]*acadoWorkspace.x[0] + acadoWorkspace.evGx[253]*acadoWorkspace.x[1] + acadoWorkspace.evGx[254]*acadoWorkspace.x[2] + acadoWorkspace.evGx[255]*acadoWorkspace.x[3] + acadoWorkspace.evGx[256]*acadoWorkspace.x[4] + acadoWorkspace.evGx[257]*acadoWorkspace.x[5] + acadoWorkspace.d[42]; -acadoVariables.x[49] += + acadoWorkspace.evGx[258]*acadoWorkspace.x[0] + acadoWorkspace.evGx[259]*acadoWorkspace.x[1] + acadoWorkspace.evGx[260]*acadoWorkspace.x[2] + acadoWorkspace.evGx[261]*acadoWorkspace.x[3] + acadoWorkspace.evGx[262]*acadoWorkspace.x[4] + acadoWorkspace.evGx[263]*acadoWorkspace.x[5] + acadoWorkspace.d[43]; -acadoVariables.x[50] += + acadoWorkspace.evGx[264]*acadoWorkspace.x[0] + acadoWorkspace.evGx[265]*acadoWorkspace.x[1] + acadoWorkspace.evGx[266]*acadoWorkspace.x[2] + acadoWorkspace.evGx[267]*acadoWorkspace.x[3] + acadoWorkspace.evGx[268]*acadoWorkspace.x[4] + acadoWorkspace.evGx[269]*acadoWorkspace.x[5] + acadoWorkspace.d[44]; -acadoVariables.x[51] += + acadoWorkspace.evGx[270]*acadoWorkspace.x[0] + acadoWorkspace.evGx[271]*acadoWorkspace.x[1] + acadoWorkspace.evGx[272]*acadoWorkspace.x[2] + acadoWorkspace.evGx[273]*acadoWorkspace.x[3] + acadoWorkspace.evGx[274]*acadoWorkspace.x[4] + acadoWorkspace.evGx[275]*acadoWorkspace.x[5] + acadoWorkspace.d[45]; -acadoVariables.x[52] += + acadoWorkspace.evGx[276]*acadoWorkspace.x[0] + acadoWorkspace.evGx[277]*acadoWorkspace.x[1] + acadoWorkspace.evGx[278]*acadoWorkspace.x[2] + acadoWorkspace.evGx[279]*acadoWorkspace.x[3] + acadoWorkspace.evGx[280]*acadoWorkspace.x[4] + acadoWorkspace.evGx[281]*acadoWorkspace.x[5] + acadoWorkspace.d[46]; -acadoVariables.x[53] += + acadoWorkspace.evGx[282]*acadoWorkspace.x[0] + acadoWorkspace.evGx[283]*acadoWorkspace.x[1] + acadoWorkspace.evGx[284]*acadoWorkspace.x[2] + acadoWorkspace.evGx[285]*acadoWorkspace.x[3] + acadoWorkspace.evGx[286]*acadoWorkspace.x[4] + acadoWorkspace.evGx[287]*acadoWorkspace.x[5] + acadoWorkspace.d[47]; -acadoVariables.x[54] += + acadoWorkspace.evGx[288]*acadoWorkspace.x[0] + acadoWorkspace.evGx[289]*acadoWorkspace.x[1] + acadoWorkspace.evGx[290]*acadoWorkspace.x[2] + acadoWorkspace.evGx[291]*acadoWorkspace.x[3] + acadoWorkspace.evGx[292]*acadoWorkspace.x[4] + acadoWorkspace.evGx[293]*acadoWorkspace.x[5] + acadoWorkspace.d[48]; -acadoVariables.x[55] += + acadoWorkspace.evGx[294]*acadoWorkspace.x[0] + acadoWorkspace.evGx[295]*acadoWorkspace.x[1] + acadoWorkspace.evGx[296]*acadoWorkspace.x[2] + acadoWorkspace.evGx[297]*acadoWorkspace.x[3] + acadoWorkspace.evGx[298]*acadoWorkspace.x[4] + acadoWorkspace.evGx[299]*acadoWorkspace.x[5] + acadoWorkspace.d[49]; -acadoVariables.x[56] += + acadoWorkspace.evGx[300]*acadoWorkspace.x[0] + acadoWorkspace.evGx[301]*acadoWorkspace.x[1] + acadoWorkspace.evGx[302]*acadoWorkspace.x[2] + acadoWorkspace.evGx[303]*acadoWorkspace.x[3] + acadoWorkspace.evGx[304]*acadoWorkspace.x[4] + acadoWorkspace.evGx[305]*acadoWorkspace.x[5] + acadoWorkspace.d[50]; -acadoVariables.x[57] += + acadoWorkspace.evGx[306]*acadoWorkspace.x[0] + acadoWorkspace.evGx[307]*acadoWorkspace.x[1] + acadoWorkspace.evGx[308]*acadoWorkspace.x[2] + acadoWorkspace.evGx[309]*acadoWorkspace.x[3] + acadoWorkspace.evGx[310]*acadoWorkspace.x[4] + acadoWorkspace.evGx[311]*acadoWorkspace.x[5] + acadoWorkspace.d[51]; -acadoVariables.x[58] += + acadoWorkspace.evGx[312]*acadoWorkspace.x[0] + acadoWorkspace.evGx[313]*acadoWorkspace.x[1] + acadoWorkspace.evGx[314]*acadoWorkspace.x[2] + acadoWorkspace.evGx[315]*acadoWorkspace.x[3] + acadoWorkspace.evGx[316]*acadoWorkspace.x[4] + acadoWorkspace.evGx[317]*acadoWorkspace.x[5] + acadoWorkspace.d[52]; -acadoVariables.x[59] += + acadoWorkspace.evGx[318]*acadoWorkspace.x[0] + acadoWorkspace.evGx[319]*acadoWorkspace.x[1] + acadoWorkspace.evGx[320]*acadoWorkspace.x[2] + acadoWorkspace.evGx[321]*acadoWorkspace.x[3] + acadoWorkspace.evGx[322]*acadoWorkspace.x[4] + acadoWorkspace.evGx[323]*acadoWorkspace.x[5] + acadoWorkspace.d[53]; -acadoVariables.x[60] += + acadoWorkspace.evGx[324]*acadoWorkspace.x[0] + acadoWorkspace.evGx[325]*acadoWorkspace.x[1] + acadoWorkspace.evGx[326]*acadoWorkspace.x[2] + acadoWorkspace.evGx[327]*acadoWorkspace.x[3] + acadoWorkspace.evGx[328]*acadoWorkspace.x[4] + acadoWorkspace.evGx[329]*acadoWorkspace.x[5] + acadoWorkspace.d[54]; -acadoVariables.x[61] += + acadoWorkspace.evGx[330]*acadoWorkspace.x[0] + acadoWorkspace.evGx[331]*acadoWorkspace.x[1] + acadoWorkspace.evGx[332]*acadoWorkspace.x[2] + acadoWorkspace.evGx[333]*acadoWorkspace.x[3] + acadoWorkspace.evGx[334]*acadoWorkspace.x[4] + acadoWorkspace.evGx[335]*acadoWorkspace.x[5] + acadoWorkspace.d[55]; -acadoVariables.x[62] += + acadoWorkspace.evGx[336]*acadoWorkspace.x[0] + acadoWorkspace.evGx[337]*acadoWorkspace.x[1] + acadoWorkspace.evGx[338]*acadoWorkspace.x[2] + acadoWorkspace.evGx[339]*acadoWorkspace.x[3] + acadoWorkspace.evGx[340]*acadoWorkspace.x[4] + acadoWorkspace.evGx[341]*acadoWorkspace.x[5] + acadoWorkspace.d[56]; -acadoVariables.x[63] += + acadoWorkspace.evGx[342]*acadoWorkspace.x[0] + acadoWorkspace.evGx[343]*acadoWorkspace.x[1] + acadoWorkspace.evGx[344]*acadoWorkspace.x[2] + acadoWorkspace.evGx[345]*acadoWorkspace.x[3] + acadoWorkspace.evGx[346]*acadoWorkspace.x[4] + acadoWorkspace.evGx[347]*acadoWorkspace.x[5] + acadoWorkspace.d[57]; -acadoVariables.x[64] += + acadoWorkspace.evGx[348]*acadoWorkspace.x[0] + acadoWorkspace.evGx[349]*acadoWorkspace.x[1] + acadoWorkspace.evGx[350]*acadoWorkspace.x[2] + acadoWorkspace.evGx[351]*acadoWorkspace.x[3] + acadoWorkspace.evGx[352]*acadoWorkspace.x[4] + acadoWorkspace.evGx[353]*acadoWorkspace.x[5] + acadoWorkspace.d[58]; -acadoVariables.x[65] += + acadoWorkspace.evGx[354]*acadoWorkspace.x[0] + acadoWorkspace.evGx[355]*acadoWorkspace.x[1] + acadoWorkspace.evGx[356]*acadoWorkspace.x[2] + acadoWorkspace.evGx[357]*acadoWorkspace.x[3] + acadoWorkspace.evGx[358]*acadoWorkspace.x[4] + acadoWorkspace.evGx[359]*acadoWorkspace.x[5] + acadoWorkspace.d[59]; -acadoVariables.x[66] += + acadoWorkspace.evGx[360]*acadoWorkspace.x[0] + acadoWorkspace.evGx[361]*acadoWorkspace.x[1] + acadoWorkspace.evGx[362]*acadoWorkspace.x[2] + acadoWorkspace.evGx[363]*acadoWorkspace.x[3] + acadoWorkspace.evGx[364]*acadoWorkspace.x[4] + acadoWorkspace.evGx[365]*acadoWorkspace.x[5] + acadoWorkspace.d[60]; -acadoVariables.x[67] += + acadoWorkspace.evGx[366]*acadoWorkspace.x[0] + acadoWorkspace.evGx[367]*acadoWorkspace.x[1] + acadoWorkspace.evGx[368]*acadoWorkspace.x[2] + acadoWorkspace.evGx[369]*acadoWorkspace.x[3] + acadoWorkspace.evGx[370]*acadoWorkspace.x[4] + acadoWorkspace.evGx[371]*acadoWorkspace.x[5] + acadoWorkspace.d[61]; -acadoVariables.x[68] += + acadoWorkspace.evGx[372]*acadoWorkspace.x[0] + acadoWorkspace.evGx[373]*acadoWorkspace.x[1] + acadoWorkspace.evGx[374]*acadoWorkspace.x[2] + acadoWorkspace.evGx[375]*acadoWorkspace.x[3] + acadoWorkspace.evGx[376]*acadoWorkspace.x[4] + acadoWorkspace.evGx[377]*acadoWorkspace.x[5] + acadoWorkspace.d[62]; -acadoVariables.x[69] += + acadoWorkspace.evGx[378]*acadoWorkspace.x[0] + acadoWorkspace.evGx[379]*acadoWorkspace.x[1] + acadoWorkspace.evGx[380]*acadoWorkspace.x[2] + acadoWorkspace.evGx[381]*acadoWorkspace.x[3] + acadoWorkspace.evGx[382]*acadoWorkspace.x[4] + acadoWorkspace.evGx[383]*acadoWorkspace.x[5] + acadoWorkspace.d[63]; -acadoVariables.x[70] += + acadoWorkspace.evGx[384]*acadoWorkspace.x[0] + acadoWorkspace.evGx[385]*acadoWorkspace.x[1] + acadoWorkspace.evGx[386]*acadoWorkspace.x[2] + acadoWorkspace.evGx[387]*acadoWorkspace.x[3] + acadoWorkspace.evGx[388]*acadoWorkspace.x[4] + acadoWorkspace.evGx[389]*acadoWorkspace.x[5] + acadoWorkspace.d[64]; -acadoVariables.x[71] += + acadoWorkspace.evGx[390]*acadoWorkspace.x[0] + acadoWorkspace.evGx[391]*acadoWorkspace.x[1] + acadoWorkspace.evGx[392]*acadoWorkspace.x[2] + acadoWorkspace.evGx[393]*acadoWorkspace.x[3] + acadoWorkspace.evGx[394]*acadoWorkspace.x[4] + acadoWorkspace.evGx[395]*acadoWorkspace.x[5] + acadoWorkspace.d[65]; -acadoVariables.x[72] += + acadoWorkspace.evGx[396]*acadoWorkspace.x[0] + acadoWorkspace.evGx[397]*acadoWorkspace.x[1] + acadoWorkspace.evGx[398]*acadoWorkspace.x[2] + acadoWorkspace.evGx[399]*acadoWorkspace.x[3] + acadoWorkspace.evGx[400]*acadoWorkspace.x[4] + acadoWorkspace.evGx[401]*acadoWorkspace.x[5] + acadoWorkspace.d[66]; -acadoVariables.x[73] += + acadoWorkspace.evGx[402]*acadoWorkspace.x[0] + acadoWorkspace.evGx[403]*acadoWorkspace.x[1] + acadoWorkspace.evGx[404]*acadoWorkspace.x[2] + acadoWorkspace.evGx[405]*acadoWorkspace.x[3] + acadoWorkspace.evGx[406]*acadoWorkspace.x[4] + acadoWorkspace.evGx[407]*acadoWorkspace.x[5] + acadoWorkspace.d[67]; -acadoVariables.x[74] += + acadoWorkspace.evGx[408]*acadoWorkspace.x[0] + acadoWorkspace.evGx[409]*acadoWorkspace.x[1] + acadoWorkspace.evGx[410]*acadoWorkspace.x[2] + acadoWorkspace.evGx[411]*acadoWorkspace.x[3] + acadoWorkspace.evGx[412]*acadoWorkspace.x[4] + acadoWorkspace.evGx[413]*acadoWorkspace.x[5] + acadoWorkspace.d[68]; -acadoVariables.x[75] += + acadoWorkspace.evGx[414]*acadoWorkspace.x[0] + acadoWorkspace.evGx[415]*acadoWorkspace.x[1] + acadoWorkspace.evGx[416]*acadoWorkspace.x[2] + acadoWorkspace.evGx[417]*acadoWorkspace.x[3] + acadoWorkspace.evGx[418]*acadoWorkspace.x[4] + acadoWorkspace.evGx[419]*acadoWorkspace.x[5] + acadoWorkspace.d[69]; -acadoVariables.x[76] += + acadoWorkspace.evGx[420]*acadoWorkspace.x[0] + acadoWorkspace.evGx[421]*acadoWorkspace.x[1] + acadoWorkspace.evGx[422]*acadoWorkspace.x[2] + acadoWorkspace.evGx[423]*acadoWorkspace.x[3] + acadoWorkspace.evGx[424]*acadoWorkspace.x[4] + acadoWorkspace.evGx[425]*acadoWorkspace.x[5] + acadoWorkspace.d[70]; -acadoVariables.x[77] += + acadoWorkspace.evGx[426]*acadoWorkspace.x[0] + acadoWorkspace.evGx[427]*acadoWorkspace.x[1] + acadoWorkspace.evGx[428]*acadoWorkspace.x[2] + acadoWorkspace.evGx[429]*acadoWorkspace.x[3] + acadoWorkspace.evGx[430]*acadoWorkspace.x[4] + acadoWorkspace.evGx[431]*acadoWorkspace.x[5] + acadoWorkspace.d[71]; -acadoVariables.x[78] += + acadoWorkspace.evGx[432]*acadoWorkspace.x[0] + acadoWorkspace.evGx[433]*acadoWorkspace.x[1] + acadoWorkspace.evGx[434]*acadoWorkspace.x[2] + acadoWorkspace.evGx[435]*acadoWorkspace.x[3] + acadoWorkspace.evGx[436]*acadoWorkspace.x[4] + acadoWorkspace.evGx[437]*acadoWorkspace.x[5] + acadoWorkspace.d[72]; -acadoVariables.x[79] += + acadoWorkspace.evGx[438]*acadoWorkspace.x[0] + acadoWorkspace.evGx[439]*acadoWorkspace.x[1] + acadoWorkspace.evGx[440]*acadoWorkspace.x[2] + acadoWorkspace.evGx[441]*acadoWorkspace.x[3] + acadoWorkspace.evGx[442]*acadoWorkspace.x[4] + acadoWorkspace.evGx[443]*acadoWorkspace.x[5] + acadoWorkspace.d[73]; -acadoVariables.x[80] += + acadoWorkspace.evGx[444]*acadoWorkspace.x[0] + acadoWorkspace.evGx[445]*acadoWorkspace.x[1] + acadoWorkspace.evGx[446]*acadoWorkspace.x[2] + acadoWorkspace.evGx[447]*acadoWorkspace.x[3] + acadoWorkspace.evGx[448]*acadoWorkspace.x[4] + acadoWorkspace.evGx[449]*acadoWorkspace.x[5] + acadoWorkspace.d[74]; -acadoVariables.x[81] += + acadoWorkspace.evGx[450]*acadoWorkspace.x[0] + acadoWorkspace.evGx[451]*acadoWorkspace.x[1] + acadoWorkspace.evGx[452]*acadoWorkspace.x[2] + acadoWorkspace.evGx[453]*acadoWorkspace.x[3] + acadoWorkspace.evGx[454]*acadoWorkspace.x[4] + acadoWorkspace.evGx[455]*acadoWorkspace.x[5] + acadoWorkspace.d[75]; -acadoVariables.x[82] += + acadoWorkspace.evGx[456]*acadoWorkspace.x[0] + acadoWorkspace.evGx[457]*acadoWorkspace.x[1] + acadoWorkspace.evGx[458]*acadoWorkspace.x[2] + acadoWorkspace.evGx[459]*acadoWorkspace.x[3] + acadoWorkspace.evGx[460]*acadoWorkspace.x[4] + acadoWorkspace.evGx[461]*acadoWorkspace.x[5] + acadoWorkspace.d[76]; -acadoVariables.x[83] += + acadoWorkspace.evGx[462]*acadoWorkspace.x[0] + acadoWorkspace.evGx[463]*acadoWorkspace.x[1] + acadoWorkspace.evGx[464]*acadoWorkspace.x[2] + acadoWorkspace.evGx[465]*acadoWorkspace.x[3] + acadoWorkspace.evGx[466]*acadoWorkspace.x[4] + acadoWorkspace.evGx[467]*acadoWorkspace.x[5] + acadoWorkspace.d[77]; -acadoVariables.x[84] += + acadoWorkspace.evGx[468]*acadoWorkspace.x[0] + acadoWorkspace.evGx[469]*acadoWorkspace.x[1] + acadoWorkspace.evGx[470]*acadoWorkspace.x[2] + acadoWorkspace.evGx[471]*acadoWorkspace.x[3] + acadoWorkspace.evGx[472]*acadoWorkspace.x[4] + acadoWorkspace.evGx[473]*acadoWorkspace.x[5] + acadoWorkspace.d[78]; -acadoVariables.x[85] += + acadoWorkspace.evGx[474]*acadoWorkspace.x[0] + acadoWorkspace.evGx[475]*acadoWorkspace.x[1] + acadoWorkspace.evGx[476]*acadoWorkspace.x[2] + acadoWorkspace.evGx[477]*acadoWorkspace.x[3] + acadoWorkspace.evGx[478]*acadoWorkspace.x[4] + acadoWorkspace.evGx[479]*acadoWorkspace.x[5] + acadoWorkspace.d[79]; -acadoVariables.x[86] += + acadoWorkspace.evGx[480]*acadoWorkspace.x[0] + acadoWorkspace.evGx[481]*acadoWorkspace.x[1] + acadoWorkspace.evGx[482]*acadoWorkspace.x[2] + acadoWorkspace.evGx[483]*acadoWorkspace.x[3] + acadoWorkspace.evGx[484]*acadoWorkspace.x[4] + acadoWorkspace.evGx[485]*acadoWorkspace.x[5] + acadoWorkspace.d[80]; -acadoVariables.x[87] += + acadoWorkspace.evGx[486]*acadoWorkspace.x[0] + acadoWorkspace.evGx[487]*acadoWorkspace.x[1] + acadoWorkspace.evGx[488]*acadoWorkspace.x[2] + acadoWorkspace.evGx[489]*acadoWorkspace.x[3] + acadoWorkspace.evGx[490]*acadoWorkspace.x[4] + acadoWorkspace.evGx[491]*acadoWorkspace.x[5] + acadoWorkspace.d[81]; -acadoVariables.x[88] += + acadoWorkspace.evGx[492]*acadoWorkspace.x[0] + acadoWorkspace.evGx[493]*acadoWorkspace.x[1] + acadoWorkspace.evGx[494]*acadoWorkspace.x[2] + acadoWorkspace.evGx[495]*acadoWorkspace.x[3] + acadoWorkspace.evGx[496]*acadoWorkspace.x[4] + acadoWorkspace.evGx[497]*acadoWorkspace.x[5] + acadoWorkspace.d[82]; -acadoVariables.x[89] += + acadoWorkspace.evGx[498]*acadoWorkspace.x[0] + acadoWorkspace.evGx[499]*acadoWorkspace.x[1] + acadoWorkspace.evGx[500]*acadoWorkspace.x[2] + acadoWorkspace.evGx[501]*acadoWorkspace.x[3] + acadoWorkspace.evGx[502]*acadoWorkspace.x[4] + acadoWorkspace.evGx[503]*acadoWorkspace.x[5] + acadoWorkspace.d[83]; -acadoVariables.x[90] += + acadoWorkspace.evGx[504]*acadoWorkspace.x[0] + acadoWorkspace.evGx[505]*acadoWorkspace.x[1] + acadoWorkspace.evGx[506]*acadoWorkspace.x[2] + acadoWorkspace.evGx[507]*acadoWorkspace.x[3] + acadoWorkspace.evGx[508]*acadoWorkspace.x[4] + acadoWorkspace.evGx[509]*acadoWorkspace.x[5] + acadoWorkspace.d[84]; -acadoVariables.x[91] += + acadoWorkspace.evGx[510]*acadoWorkspace.x[0] + acadoWorkspace.evGx[511]*acadoWorkspace.x[1] + acadoWorkspace.evGx[512]*acadoWorkspace.x[2] + acadoWorkspace.evGx[513]*acadoWorkspace.x[3] + acadoWorkspace.evGx[514]*acadoWorkspace.x[4] + acadoWorkspace.evGx[515]*acadoWorkspace.x[5] + acadoWorkspace.d[85]; -acadoVariables.x[92] += + acadoWorkspace.evGx[516]*acadoWorkspace.x[0] + acadoWorkspace.evGx[517]*acadoWorkspace.x[1] + acadoWorkspace.evGx[518]*acadoWorkspace.x[2] + acadoWorkspace.evGx[519]*acadoWorkspace.x[3] + acadoWorkspace.evGx[520]*acadoWorkspace.x[4] + acadoWorkspace.evGx[521]*acadoWorkspace.x[5] + acadoWorkspace.d[86]; -acadoVariables.x[93] += + acadoWorkspace.evGx[522]*acadoWorkspace.x[0] + acadoWorkspace.evGx[523]*acadoWorkspace.x[1] + acadoWorkspace.evGx[524]*acadoWorkspace.x[2] + acadoWorkspace.evGx[525]*acadoWorkspace.x[3] + acadoWorkspace.evGx[526]*acadoWorkspace.x[4] + acadoWorkspace.evGx[527]*acadoWorkspace.x[5] + acadoWorkspace.d[87]; -acadoVariables.x[94] += + acadoWorkspace.evGx[528]*acadoWorkspace.x[0] + acadoWorkspace.evGx[529]*acadoWorkspace.x[1] + acadoWorkspace.evGx[530]*acadoWorkspace.x[2] + acadoWorkspace.evGx[531]*acadoWorkspace.x[3] + acadoWorkspace.evGx[532]*acadoWorkspace.x[4] + acadoWorkspace.evGx[533]*acadoWorkspace.x[5] + acadoWorkspace.d[88]; -acadoVariables.x[95] += + acadoWorkspace.evGx[534]*acadoWorkspace.x[0] + acadoWorkspace.evGx[535]*acadoWorkspace.x[1] + acadoWorkspace.evGx[536]*acadoWorkspace.x[2] + acadoWorkspace.evGx[537]*acadoWorkspace.x[3] + acadoWorkspace.evGx[538]*acadoWorkspace.x[4] + acadoWorkspace.evGx[539]*acadoWorkspace.x[5] + acadoWorkspace.d[89]; -acadoVariables.x[96] += + acadoWorkspace.evGx[540]*acadoWorkspace.x[0] + acadoWorkspace.evGx[541]*acadoWorkspace.x[1] + acadoWorkspace.evGx[542]*acadoWorkspace.x[2] + acadoWorkspace.evGx[543]*acadoWorkspace.x[3] + acadoWorkspace.evGx[544]*acadoWorkspace.x[4] + acadoWorkspace.evGx[545]*acadoWorkspace.x[5] + acadoWorkspace.d[90]; -acadoVariables.x[97] += + acadoWorkspace.evGx[546]*acadoWorkspace.x[0] + acadoWorkspace.evGx[547]*acadoWorkspace.x[1] + acadoWorkspace.evGx[548]*acadoWorkspace.x[2] + acadoWorkspace.evGx[549]*acadoWorkspace.x[3] + acadoWorkspace.evGx[550]*acadoWorkspace.x[4] + acadoWorkspace.evGx[551]*acadoWorkspace.x[5] + acadoWorkspace.d[91]; -acadoVariables.x[98] += + acadoWorkspace.evGx[552]*acadoWorkspace.x[0] + acadoWorkspace.evGx[553]*acadoWorkspace.x[1] + acadoWorkspace.evGx[554]*acadoWorkspace.x[2] + acadoWorkspace.evGx[555]*acadoWorkspace.x[3] + acadoWorkspace.evGx[556]*acadoWorkspace.x[4] + acadoWorkspace.evGx[557]*acadoWorkspace.x[5] + acadoWorkspace.d[92]; -acadoVariables.x[99] += + acadoWorkspace.evGx[558]*acadoWorkspace.x[0] + acadoWorkspace.evGx[559]*acadoWorkspace.x[1] + acadoWorkspace.evGx[560]*acadoWorkspace.x[2] + acadoWorkspace.evGx[561]*acadoWorkspace.x[3] + acadoWorkspace.evGx[562]*acadoWorkspace.x[4] + acadoWorkspace.evGx[563]*acadoWorkspace.x[5] + acadoWorkspace.d[93]; -acadoVariables.x[100] += + acadoWorkspace.evGx[564]*acadoWorkspace.x[0] + acadoWorkspace.evGx[565]*acadoWorkspace.x[1] + acadoWorkspace.evGx[566]*acadoWorkspace.x[2] + acadoWorkspace.evGx[567]*acadoWorkspace.x[3] + acadoWorkspace.evGx[568]*acadoWorkspace.x[4] + acadoWorkspace.evGx[569]*acadoWorkspace.x[5] + acadoWorkspace.d[94]; -acadoVariables.x[101] += + acadoWorkspace.evGx[570]*acadoWorkspace.x[0] + acadoWorkspace.evGx[571]*acadoWorkspace.x[1] + acadoWorkspace.evGx[572]*acadoWorkspace.x[2] + acadoWorkspace.evGx[573]*acadoWorkspace.x[3] + acadoWorkspace.evGx[574]*acadoWorkspace.x[4] + acadoWorkspace.evGx[575]*acadoWorkspace.x[5] + acadoWorkspace.d[95]; -acadoVariables.x[102] += + acadoWorkspace.evGx[576]*acadoWorkspace.x[0] + acadoWorkspace.evGx[577]*acadoWorkspace.x[1] + acadoWorkspace.evGx[578]*acadoWorkspace.x[2] + acadoWorkspace.evGx[579]*acadoWorkspace.x[3] + acadoWorkspace.evGx[580]*acadoWorkspace.x[4] + acadoWorkspace.evGx[581]*acadoWorkspace.x[5] + acadoWorkspace.d[96]; -acadoVariables.x[103] += + acadoWorkspace.evGx[582]*acadoWorkspace.x[0] + acadoWorkspace.evGx[583]*acadoWorkspace.x[1] + acadoWorkspace.evGx[584]*acadoWorkspace.x[2] + acadoWorkspace.evGx[585]*acadoWorkspace.x[3] + acadoWorkspace.evGx[586]*acadoWorkspace.x[4] + acadoWorkspace.evGx[587]*acadoWorkspace.x[5] + acadoWorkspace.d[97]; -acadoVariables.x[104] += + acadoWorkspace.evGx[588]*acadoWorkspace.x[0] + acadoWorkspace.evGx[589]*acadoWorkspace.x[1] + acadoWorkspace.evGx[590]*acadoWorkspace.x[2] + acadoWorkspace.evGx[591]*acadoWorkspace.x[3] + acadoWorkspace.evGx[592]*acadoWorkspace.x[4] + acadoWorkspace.evGx[593]*acadoWorkspace.x[5] + acadoWorkspace.d[98]; -acadoVariables.x[105] += + acadoWorkspace.evGx[594]*acadoWorkspace.x[0] + acadoWorkspace.evGx[595]*acadoWorkspace.x[1] + acadoWorkspace.evGx[596]*acadoWorkspace.x[2] + acadoWorkspace.evGx[597]*acadoWorkspace.x[3] + acadoWorkspace.evGx[598]*acadoWorkspace.x[4] + acadoWorkspace.evGx[599]*acadoWorkspace.x[5] + acadoWorkspace.d[99]; -acadoVariables.x[106] += + acadoWorkspace.evGx[600]*acadoWorkspace.x[0] + acadoWorkspace.evGx[601]*acadoWorkspace.x[1] + acadoWorkspace.evGx[602]*acadoWorkspace.x[2] + acadoWorkspace.evGx[603]*acadoWorkspace.x[3] + acadoWorkspace.evGx[604]*acadoWorkspace.x[4] + acadoWorkspace.evGx[605]*acadoWorkspace.x[5] + acadoWorkspace.d[100]; -acadoVariables.x[107] += + acadoWorkspace.evGx[606]*acadoWorkspace.x[0] + acadoWorkspace.evGx[607]*acadoWorkspace.x[1] + acadoWorkspace.evGx[608]*acadoWorkspace.x[2] + acadoWorkspace.evGx[609]*acadoWorkspace.x[3] + acadoWorkspace.evGx[610]*acadoWorkspace.x[4] + acadoWorkspace.evGx[611]*acadoWorkspace.x[5] + acadoWorkspace.d[101]; -acadoVariables.x[108] += + acadoWorkspace.evGx[612]*acadoWorkspace.x[0] + acadoWorkspace.evGx[613]*acadoWorkspace.x[1] + acadoWorkspace.evGx[614]*acadoWorkspace.x[2] + acadoWorkspace.evGx[615]*acadoWorkspace.x[3] + acadoWorkspace.evGx[616]*acadoWorkspace.x[4] + acadoWorkspace.evGx[617]*acadoWorkspace.x[5] + acadoWorkspace.d[102]; -acadoVariables.x[109] += + acadoWorkspace.evGx[618]*acadoWorkspace.x[0] + acadoWorkspace.evGx[619]*acadoWorkspace.x[1] + acadoWorkspace.evGx[620]*acadoWorkspace.x[2] + acadoWorkspace.evGx[621]*acadoWorkspace.x[3] + acadoWorkspace.evGx[622]*acadoWorkspace.x[4] + acadoWorkspace.evGx[623]*acadoWorkspace.x[5] + acadoWorkspace.d[103]; -acadoVariables.x[110] += + acadoWorkspace.evGx[624]*acadoWorkspace.x[0] + acadoWorkspace.evGx[625]*acadoWorkspace.x[1] + acadoWorkspace.evGx[626]*acadoWorkspace.x[2] + acadoWorkspace.evGx[627]*acadoWorkspace.x[3] + acadoWorkspace.evGx[628]*acadoWorkspace.x[4] + acadoWorkspace.evGx[629]*acadoWorkspace.x[5] + acadoWorkspace.d[104]; -acadoVariables.x[111] += + acadoWorkspace.evGx[630]*acadoWorkspace.x[0] + acadoWorkspace.evGx[631]*acadoWorkspace.x[1] + acadoWorkspace.evGx[632]*acadoWorkspace.x[2] + acadoWorkspace.evGx[633]*acadoWorkspace.x[3] + acadoWorkspace.evGx[634]*acadoWorkspace.x[4] + acadoWorkspace.evGx[635]*acadoWorkspace.x[5] + acadoWorkspace.d[105]; -acadoVariables.x[112] += + acadoWorkspace.evGx[636]*acadoWorkspace.x[0] + acadoWorkspace.evGx[637]*acadoWorkspace.x[1] + acadoWorkspace.evGx[638]*acadoWorkspace.x[2] + acadoWorkspace.evGx[639]*acadoWorkspace.x[3] + acadoWorkspace.evGx[640]*acadoWorkspace.x[4] + acadoWorkspace.evGx[641]*acadoWorkspace.x[5] + acadoWorkspace.d[106]; -acadoVariables.x[113] += + acadoWorkspace.evGx[642]*acadoWorkspace.x[0] + acadoWorkspace.evGx[643]*acadoWorkspace.x[1] + acadoWorkspace.evGx[644]*acadoWorkspace.x[2] + acadoWorkspace.evGx[645]*acadoWorkspace.x[3] + acadoWorkspace.evGx[646]*acadoWorkspace.x[4] + acadoWorkspace.evGx[647]*acadoWorkspace.x[5] + acadoWorkspace.d[107]; -acadoVariables.x[114] += + acadoWorkspace.evGx[648]*acadoWorkspace.x[0] + acadoWorkspace.evGx[649]*acadoWorkspace.x[1] + acadoWorkspace.evGx[650]*acadoWorkspace.x[2] + acadoWorkspace.evGx[651]*acadoWorkspace.x[3] + acadoWorkspace.evGx[652]*acadoWorkspace.x[4] + acadoWorkspace.evGx[653]*acadoWorkspace.x[5] + acadoWorkspace.d[108]; -acadoVariables.x[115] += + acadoWorkspace.evGx[654]*acadoWorkspace.x[0] + acadoWorkspace.evGx[655]*acadoWorkspace.x[1] + acadoWorkspace.evGx[656]*acadoWorkspace.x[2] + acadoWorkspace.evGx[657]*acadoWorkspace.x[3] + acadoWorkspace.evGx[658]*acadoWorkspace.x[4] + acadoWorkspace.evGx[659]*acadoWorkspace.x[5] + acadoWorkspace.d[109]; -acadoVariables.x[116] += + acadoWorkspace.evGx[660]*acadoWorkspace.x[0] + acadoWorkspace.evGx[661]*acadoWorkspace.x[1] + acadoWorkspace.evGx[662]*acadoWorkspace.x[2] + acadoWorkspace.evGx[663]*acadoWorkspace.x[3] + acadoWorkspace.evGx[664]*acadoWorkspace.x[4] + acadoWorkspace.evGx[665]*acadoWorkspace.x[5] + acadoWorkspace.d[110]; -acadoVariables.x[117] += + acadoWorkspace.evGx[666]*acadoWorkspace.x[0] + acadoWorkspace.evGx[667]*acadoWorkspace.x[1] + acadoWorkspace.evGx[668]*acadoWorkspace.x[2] + acadoWorkspace.evGx[669]*acadoWorkspace.x[3] + acadoWorkspace.evGx[670]*acadoWorkspace.x[4] + acadoWorkspace.evGx[671]*acadoWorkspace.x[5] + acadoWorkspace.d[111]; -acadoVariables.x[118] += + acadoWorkspace.evGx[672]*acadoWorkspace.x[0] + acadoWorkspace.evGx[673]*acadoWorkspace.x[1] + acadoWorkspace.evGx[674]*acadoWorkspace.x[2] + acadoWorkspace.evGx[675]*acadoWorkspace.x[3] + acadoWorkspace.evGx[676]*acadoWorkspace.x[4] + acadoWorkspace.evGx[677]*acadoWorkspace.x[5] + acadoWorkspace.d[112]; -acadoVariables.x[119] += + acadoWorkspace.evGx[678]*acadoWorkspace.x[0] + acadoWorkspace.evGx[679]*acadoWorkspace.x[1] + acadoWorkspace.evGx[680]*acadoWorkspace.x[2] + acadoWorkspace.evGx[681]*acadoWorkspace.x[3] + acadoWorkspace.evGx[682]*acadoWorkspace.x[4] + acadoWorkspace.evGx[683]*acadoWorkspace.x[5] + acadoWorkspace.d[113]; -acadoVariables.x[120] += + acadoWorkspace.evGx[684]*acadoWorkspace.x[0] + acadoWorkspace.evGx[685]*acadoWorkspace.x[1] + acadoWorkspace.evGx[686]*acadoWorkspace.x[2] + acadoWorkspace.evGx[687]*acadoWorkspace.x[3] + acadoWorkspace.evGx[688]*acadoWorkspace.x[4] + acadoWorkspace.evGx[689]*acadoWorkspace.x[5] + acadoWorkspace.d[114]; -acadoVariables.x[121] += + acadoWorkspace.evGx[690]*acadoWorkspace.x[0] + acadoWorkspace.evGx[691]*acadoWorkspace.x[1] + acadoWorkspace.evGx[692]*acadoWorkspace.x[2] + acadoWorkspace.evGx[693]*acadoWorkspace.x[3] + acadoWorkspace.evGx[694]*acadoWorkspace.x[4] + acadoWorkspace.evGx[695]*acadoWorkspace.x[5] + acadoWorkspace.d[115]; -acadoVariables.x[122] += + acadoWorkspace.evGx[696]*acadoWorkspace.x[0] + acadoWorkspace.evGx[697]*acadoWorkspace.x[1] + acadoWorkspace.evGx[698]*acadoWorkspace.x[2] + acadoWorkspace.evGx[699]*acadoWorkspace.x[3] + acadoWorkspace.evGx[700]*acadoWorkspace.x[4] + acadoWorkspace.evGx[701]*acadoWorkspace.x[5] + acadoWorkspace.d[116]; -acadoVariables.x[123] += + acadoWorkspace.evGx[702]*acadoWorkspace.x[0] + acadoWorkspace.evGx[703]*acadoWorkspace.x[1] + acadoWorkspace.evGx[704]*acadoWorkspace.x[2] + acadoWorkspace.evGx[705]*acadoWorkspace.x[3] + acadoWorkspace.evGx[706]*acadoWorkspace.x[4] + acadoWorkspace.evGx[707]*acadoWorkspace.x[5] + acadoWorkspace.d[117]; -acadoVariables.x[124] += + acadoWorkspace.evGx[708]*acadoWorkspace.x[0] + acadoWorkspace.evGx[709]*acadoWorkspace.x[1] + acadoWorkspace.evGx[710]*acadoWorkspace.x[2] + acadoWorkspace.evGx[711]*acadoWorkspace.x[3] + acadoWorkspace.evGx[712]*acadoWorkspace.x[4] + acadoWorkspace.evGx[713]*acadoWorkspace.x[5] + acadoWorkspace.d[118]; -acadoVariables.x[125] += + acadoWorkspace.evGx[714]*acadoWorkspace.x[0] + acadoWorkspace.evGx[715]*acadoWorkspace.x[1] + acadoWorkspace.evGx[716]*acadoWorkspace.x[2] + acadoWorkspace.evGx[717]*acadoWorkspace.x[3] + acadoWorkspace.evGx[718]*acadoWorkspace.x[4] + acadoWorkspace.evGx[719]*acadoWorkspace.x[5] + acadoWorkspace.d[119]; +acadoVariables.x[3] += + acadoWorkspace.evGx[0]*acadoWorkspace.x[0] + acadoWorkspace.evGx[1]*acadoWorkspace.x[1] + acadoWorkspace.evGx[2]*acadoWorkspace.x[2] + acadoWorkspace.d[0]; +acadoVariables.x[4] += + acadoWorkspace.evGx[3]*acadoWorkspace.x[0] + acadoWorkspace.evGx[4]*acadoWorkspace.x[1] + acadoWorkspace.evGx[5]*acadoWorkspace.x[2] + acadoWorkspace.d[1]; +acadoVariables.x[5] += + acadoWorkspace.evGx[6]*acadoWorkspace.x[0] + acadoWorkspace.evGx[7]*acadoWorkspace.x[1] + acadoWorkspace.evGx[8]*acadoWorkspace.x[2] + acadoWorkspace.d[2]; +acadoVariables.x[6] += + acadoWorkspace.evGx[9]*acadoWorkspace.x[0] + acadoWorkspace.evGx[10]*acadoWorkspace.x[1] + acadoWorkspace.evGx[11]*acadoWorkspace.x[2] + acadoWorkspace.d[3]; +acadoVariables.x[7] += + acadoWorkspace.evGx[12]*acadoWorkspace.x[0] + acadoWorkspace.evGx[13]*acadoWorkspace.x[1] + acadoWorkspace.evGx[14]*acadoWorkspace.x[2] + acadoWorkspace.d[4]; +acadoVariables.x[8] += + acadoWorkspace.evGx[15]*acadoWorkspace.x[0] + acadoWorkspace.evGx[16]*acadoWorkspace.x[1] + acadoWorkspace.evGx[17]*acadoWorkspace.x[2] + acadoWorkspace.d[5]; +acadoVariables.x[9] += + acadoWorkspace.evGx[18]*acadoWorkspace.x[0] + acadoWorkspace.evGx[19]*acadoWorkspace.x[1] + acadoWorkspace.evGx[20]*acadoWorkspace.x[2] + acadoWorkspace.d[6]; +acadoVariables.x[10] += + acadoWorkspace.evGx[21]*acadoWorkspace.x[0] + acadoWorkspace.evGx[22]*acadoWorkspace.x[1] + acadoWorkspace.evGx[23]*acadoWorkspace.x[2] + acadoWorkspace.d[7]; +acadoVariables.x[11] += + acadoWorkspace.evGx[24]*acadoWorkspace.x[0] + acadoWorkspace.evGx[25]*acadoWorkspace.x[1] + acadoWorkspace.evGx[26]*acadoWorkspace.x[2] + acadoWorkspace.d[8]; +acadoVariables.x[12] += + acadoWorkspace.evGx[27]*acadoWorkspace.x[0] + acadoWorkspace.evGx[28]*acadoWorkspace.x[1] + acadoWorkspace.evGx[29]*acadoWorkspace.x[2] + acadoWorkspace.d[9]; +acadoVariables.x[13] += + acadoWorkspace.evGx[30]*acadoWorkspace.x[0] + acadoWorkspace.evGx[31]*acadoWorkspace.x[1] + acadoWorkspace.evGx[32]*acadoWorkspace.x[2] + acadoWorkspace.d[10]; +acadoVariables.x[14] += + acadoWorkspace.evGx[33]*acadoWorkspace.x[0] + acadoWorkspace.evGx[34]*acadoWorkspace.x[1] + acadoWorkspace.evGx[35]*acadoWorkspace.x[2] + acadoWorkspace.d[11]; +acadoVariables.x[15] += + acadoWorkspace.evGx[36]*acadoWorkspace.x[0] + acadoWorkspace.evGx[37]*acadoWorkspace.x[1] + acadoWorkspace.evGx[38]*acadoWorkspace.x[2] + acadoWorkspace.d[12]; +acadoVariables.x[16] += + acadoWorkspace.evGx[39]*acadoWorkspace.x[0] + acadoWorkspace.evGx[40]*acadoWorkspace.x[1] + acadoWorkspace.evGx[41]*acadoWorkspace.x[2] + acadoWorkspace.d[13]; +acadoVariables.x[17] += + acadoWorkspace.evGx[42]*acadoWorkspace.x[0] + acadoWorkspace.evGx[43]*acadoWorkspace.x[1] + acadoWorkspace.evGx[44]*acadoWorkspace.x[2] + acadoWorkspace.d[14]; +acadoVariables.x[18] += + acadoWorkspace.evGx[45]*acadoWorkspace.x[0] + acadoWorkspace.evGx[46]*acadoWorkspace.x[1] + acadoWorkspace.evGx[47]*acadoWorkspace.x[2] + acadoWorkspace.d[15]; +acadoVariables.x[19] += + acadoWorkspace.evGx[48]*acadoWorkspace.x[0] + acadoWorkspace.evGx[49]*acadoWorkspace.x[1] + acadoWorkspace.evGx[50]*acadoWorkspace.x[2] + acadoWorkspace.d[16]; +acadoVariables.x[20] += + acadoWorkspace.evGx[51]*acadoWorkspace.x[0] + acadoWorkspace.evGx[52]*acadoWorkspace.x[1] + acadoWorkspace.evGx[53]*acadoWorkspace.x[2] + acadoWorkspace.d[17]; +acadoVariables.x[21] += + acadoWorkspace.evGx[54]*acadoWorkspace.x[0] + acadoWorkspace.evGx[55]*acadoWorkspace.x[1] + acadoWorkspace.evGx[56]*acadoWorkspace.x[2] + acadoWorkspace.d[18]; +acadoVariables.x[22] += + acadoWorkspace.evGx[57]*acadoWorkspace.x[0] + acadoWorkspace.evGx[58]*acadoWorkspace.x[1] + acadoWorkspace.evGx[59]*acadoWorkspace.x[2] + acadoWorkspace.d[19]; +acadoVariables.x[23] += + acadoWorkspace.evGx[60]*acadoWorkspace.x[0] + acadoWorkspace.evGx[61]*acadoWorkspace.x[1] + acadoWorkspace.evGx[62]*acadoWorkspace.x[2] + acadoWorkspace.d[20]; +acadoVariables.x[24] += + acadoWorkspace.evGx[63]*acadoWorkspace.x[0] + acadoWorkspace.evGx[64]*acadoWorkspace.x[1] + acadoWorkspace.evGx[65]*acadoWorkspace.x[2] + acadoWorkspace.d[21]; +acadoVariables.x[25] += + acadoWorkspace.evGx[66]*acadoWorkspace.x[0] + acadoWorkspace.evGx[67]*acadoWorkspace.x[1] + acadoWorkspace.evGx[68]*acadoWorkspace.x[2] + acadoWorkspace.d[22]; +acadoVariables.x[26] += + acadoWorkspace.evGx[69]*acadoWorkspace.x[0] + acadoWorkspace.evGx[70]*acadoWorkspace.x[1] + acadoWorkspace.evGx[71]*acadoWorkspace.x[2] + acadoWorkspace.d[23]; +acadoVariables.x[27] += + acadoWorkspace.evGx[72]*acadoWorkspace.x[0] + acadoWorkspace.evGx[73]*acadoWorkspace.x[1] + acadoWorkspace.evGx[74]*acadoWorkspace.x[2] + acadoWorkspace.d[24]; +acadoVariables.x[28] += + acadoWorkspace.evGx[75]*acadoWorkspace.x[0] + acadoWorkspace.evGx[76]*acadoWorkspace.x[1] + acadoWorkspace.evGx[77]*acadoWorkspace.x[2] + acadoWorkspace.d[25]; +acadoVariables.x[29] += + acadoWorkspace.evGx[78]*acadoWorkspace.x[0] + acadoWorkspace.evGx[79]*acadoWorkspace.x[1] + acadoWorkspace.evGx[80]*acadoWorkspace.x[2] + acadoWorkspace.d[26]; +acadoVariables.x[30] += + acadoWorkspace.evGx[81]*acadoWorkspace.x[0] + acadoWorkspace.evGx[82]*acadoWorkspace.x[1] + acadoWorkspace.evGx[83]*acadoWorkspace.x[2] + acadoWorkspace.d[27]; +acadoVariables.x[31] += + acadoWorkspace.evGx[84]*acadoWorkspace.x[0] + acadoWorkspace.evGx[85]*acadoWorkspace.x[1] + acadoWorkspace.evGx[86]*acadoWorkspace.x[2] + acadoWorkspace.d[28]; +acadoVariables.x[32] += + acadoWorkspace.evGx[87]*acadoWorkspace.x[0] + acadoWorkspace.evGx[88]*acadoWorkspace.x[1] + acadoWorkspace.evGx[89]*acadoWorkspace.x[2] + acadoWorkspace.d[29]; +acadoVariables.x[33] += + acadoWorkspace.evGx[90]*acadoWorkspace.x[0] + acadoWorkspace.evGx[91]*acadoWorkspace.x[1] + acadoWorkspace.evGx[92]*acadoWorkspace.x[2] + acadoWorkspace.d[30]; +acadoVariables.x[34] += + acadoWorkspace.evGx[93]*acadoWorkspace.x[0] + acadoWorkspace.evGx[94]*acadoWorkspace.x[1] + acadoWorkspace.evGx[95]*acadoWorkspace.x[2] + acadoWorkspace.d[31]; +acadoVariables.x[35] += + acadoWorkspace.evGx[96]*acadoWorkspace.x[0] + acadoWorkspace.evGx[97]*acadoWorkspace.x[1] + acadoWorkspace.evGx[98]*acadoWorkspace.x[2] + acadoWorkspace.d[32]; +acadoVariables.x[36] += + acadoWorkspace.evGx[99]*acadoWorkspace.x[0] + acadoWorkspace.evGx[100]*acadoWorkspace.x[1] + acadoWorkspace.evGx[101]*acadoWorkspace.x[2] + acadoWorkspace.d[33]; +acadoVariables.x[37] += + acadoWorkspace.evGx[102]*acadoWorkspace.x[0] + acadoWorkspace.evGx[103]*acadoWorkspace.x[1] + acadoWorkspace.evGx[104]*acadoWorkspace.x[2] + acadoWorkspace.d[34]; +acadoVariables.x[38] += + acadoWorkspace.evGx[105]*acadoWorkspace.x[0] + acadoWorkspace.evGx[106]*acadoWorkspace.x[1] + acadoWorkspace.evGx[107]*acadoWorkspace.x[2] + acadoWorkspace.d[35]; +acadoVariables.x[39] += + acadoWorkspace.evGx[108]*acadoWorkspace.x[0] + acadoWorkspace.evGx[109]*acadoWorkspace.x[1] + acadoWorkspace.evGx[110]*acadoWorkspace.x[2] + acadoWorkspace.d[36]; +acadoVariables.x[40] += + acadoWorkspace.evGx[111]*acadoWorkspace.x[0] + acadoWorkspace.evGx[112]*acadoWorkspace.x[1] + acadoWorkspace.evGx[113]*acadoWorkspace.x[2] + acadoWorkspace.d[37]; +acadoVariables.x[41] += + acadoWorkspace.evGx[114]*acadoWorkspace.x[0] + acadoWorkspace.evGx[115]*acadoWorkspace.x[1] + acadoWorkspace.evGx[116]*acadoWorkspace.x[2] + acadoWorkspace.d[38]; +acadoVariables.x[42] += + acadoWorkspace.evGx[117]*acadoWorkspace.x[0] + acadoWorkspace.evGx[118]*acadoWorkspace.x[1] + acadoWorkspace.evGx[119]*acadoWorkspace.x[2] + acadoWorkspace.d[39]; +acadoVariables.x[43] += + acadoWorkspace.evGx[120]*acadoWorkspace.x[0] + acadoWorkspace.evGx[121]*acadoWorkspace.x[1] + acadoWorkspace.evGx[122]*acadoWorkspace.x[2] + acadoWorkspace.d[40]; +acadoVariables.x[44] += + acadoWorkspace.evGx[123]*acadoWorkspace.x[0] + acadoWorkspace.evGx[124]*acadoWorkspace.x[1] + acadoWorkspace.evGx[125]*acadoWorkspace.x[2] + acadoWorkspace.d[41]; +acadoVariables.x[45] += + acadoWorkspace.evGx[126]*acadoWorkspace.x[0] + acadoWorkspace.evGx[127]*acadoWorkspace.x[1] + acadoWorkspace.evGx[128]*acadoWorkspace.x[2] + acadoWorkspace.d[42]; +acadoVariables.x[46] += + acadoWorkspace.evGx[129]*acadoWorkspace.x[0] + acadoWorkspace.evGx[130]*acadoWorkspace.x[1] + acadoWorkspace.evGx[131]*acadoWorkspace.x[2] + acadoWorkspace.d[43]; +acadoVariables.x[47] += + acadoWorkspace.evGx[132]*acadoWorkspace.x[0] + acadoWorkspace.evGx[133]*acadoWorkspace.x[1] + acadoWorkspace.evGx[134]*acadoWorkspace.x[2] + acadoWorkspace.d[44]; +acadoVariables.x[48] += + acadoWorkspace.evGx[135]*acadoWorkspace.x[0] + acadoWorkspace.evGx[136]*acadoWorkspace.x[1] + acadoWorkspace.evGx[137]*acadoWorkspace.x[2] + acadoWorkspace.d[45]; +acadoVariables.x[49] += + acadoWorkspace.evGx[138]*acadoWorkspace.x[0] + acadoWorkspace.evGx[139]*acadoWorkspace.x[1] + acadoWorkspace.evGx[140]*acadoWorkspace.x[2] + acadoWorkspace.d[46]; +acadoVariables.x[50] += + acadoWorkspace.evGx[141]*acadoWorkspace.x[0] + acadoWorkspace.evGx[142]*acadoWorkspace.x[1] + acadoWorkspace.evGx[143]*acadoWorkspace.x[2] + acadoWorkspace.d[47]; +acadoVariables.x[51] += + acadoWorkspace.evGx[144]*acadoWorkspace.x[0] + acadoWorkspace.evGx[145]*acadoWorkspace.x[1] + acadoWorkspace.evGx[146]*acadoWorkspace.x[2] + acadoWorkspace.d[48]; +acadoVariables.x[52] += + acadoWorkspace.evGx[147]*acadoWorkspace.x[0] + acadoWorkspace.evGx[148]*acadoWorkspace.x[1] + acadoWorkspace.evGx[149]*acadoWorkspace.x[2] + acadoWorkspace.d[49]; +acadoVariables.x[53] += + acadoWorkspace.evGx[150]*acadoWorkspace.x[0] + acadoWorkspace.evGx[151]*acadoWorkspace.x[1] + acadoWorkspace.evGx[152]*acadoWorkspace.x[2] + acadoWorkspace.d[50]; +acadoVariables.x[54] += + acadoWorkspace.evGx[153]*acadoWorkspace.x[0] + acadoWorkspace.evGx[154]*acadoWorkspace.x[1] + acadoWorkspace.evGx[155]*acadoWorkspace.x[2] + acadoWorkspace.d[51]; +acadoVariables.x[55] += + acadoWorkspace.evGx[156]*acadoWorkspace.x[0] + acadoWorkspace.evGx[157]*acadoWorkspace.x[1] + acadoWorkspace.evGx[158]*acadoWorkspace.x[2] + acadoWorkspace.d[52]; +acadoVariables.x[56] += + acadoWorkspace.evGx[159]*acadoWorkspace.x[0] + acadoWorkspace.evGx[160]*acadoWorkspace.x[1] + acadoWorkspace.evGx[161]*acadoWorkspace.x[2] + acadoWorkspace.d[53]; +acadoVariables.x[57] += + acadoWorkspace.evGx[162]*acadoWorkspace.x[0] + acadoWorkspace.evGx[163]*acadoWorkspace.x[1] + acadoWorkspace.evGx[164]*acadoWorkspace.x[2] + acadoWorkspace.d[54]; +acadoVariables.x[58] += + acadoWorkspace.evGx[165]*acadoWorkspace.x[0] + acadoWorkspace.evGx[166]*acadoWorkspace.x[1] + acadoWorkspace.evGx[167]*acadoWorkspace.x[2] + acadoWorkspace.d[55]; +acadoVariables.x[59] += + acadoWorkspace.evGx[168]*acadoWorkspace.x[0] + acadoWorkspace.evGx[169]*acadoWorkspace.x[1] + acadoWorkspace.evGx[170]*acadoWorkspace.x[2] + acadoWorkspace.d[56]; +acadoVariables.x[60] += + acadoWorkspace.evGx[171]*acadoWorkspace.x[0] + acadoWorkspace.evGx[172]*acadoWorkspace.x[1] + acadoWorkspace.evGx[173]*acadoWorkspace.x[2] + acadoWorkspace.d[57]; +acadoVariables.x[61] += + acadoWorkspace.evGx[174]*acadoWorkspace.x[0] + acadoWorkspace.evGx[175]*acadoWorkspace.x[1] + acadoWorkspace.evGx[176]*acadoWorkspace.x[2] + acadoWorkspace.d[58]; +acadoVariables.x[62] += + acadoWorkspace.evGx[177]*acadoWorkspace.x[0] + acadoWorkspace.evGx[178]*acadoWorkspace.x[1] + acadoWorkspace.evGx[179]*acadoWorkspace.x[2] + acadoWorkspace.d[59]; -acado_multEDu( acadoWorkspace.E, &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 6 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 12 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 12 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 18 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 18 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 18 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 24 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 24 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 24 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 24 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 30 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 30 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 30 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 30 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 30 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 36 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 36 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 36 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 36 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 36 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 36 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 42 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 48 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 54 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 60 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 66 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 72 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 78 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 84 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 630 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 636 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 642 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 648 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 654 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 660 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 666 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 672 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 678 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 684 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 690 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 696 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 702 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 708 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 714 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 90 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 720 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 726 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 732 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 738 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 744 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 750 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 756 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 762 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 768 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 774 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 780 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 786 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 792 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 798 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 804 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 810 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 96 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 816 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 822 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 828 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 834 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 840 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 846 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 852 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 858 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 864 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 870 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 876 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 882 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 888 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 894 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 900 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 906 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 912 ]), &(acadoWorkspace.x[ 22 ]), &(acadoVariables.x[ 102 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 918 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 924 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 930 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 936 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 942 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 948 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 954 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 960 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 966 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 972 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 978 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 984 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 990 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 996 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1002 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1008 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1014 ]), &(acadoWorkspace.x[ 22 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1020 ]), &(acadoWorkspace.x[ 23 ]), &(acadoVariables.x[ 108 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1026 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1032 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1038 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1044 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1050 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1056 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1062 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1068 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1074 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1080 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1086 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1092 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1098 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1104 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1110 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1116 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1122 ]), &(acadoWorkspace.x[ 22 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1128 ]), &(acadoWorkspace.x[ 23 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1134 ]), &(acadoWorkspace.x[ 24 ]), &(acadoVariables.x[ 114 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1140 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1146 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1152 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1158 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1164 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1170 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1176 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1182 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1188 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1194 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1200 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1206 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1212 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1218 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1224 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1230 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1236 ]), &(acadoWorkspace.x[ 22 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1242 ]), &(acadoWorkspace.x[ 23 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1248 ]), &(acadoWorkspace.x[ 24 ]), &(acadoVariables.x[ 120 ]) ); -acado_multEDu( &(acadoWorkspace.E[ 1254 ]), &(acadoWorkspace.x[ 25 ]), &(acadoVariables.x[ 120 ]) ); +acado_multEDu( acadoWorkspace.E, &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 3 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 3 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 6 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 6 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 6 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 9 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 9 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 12 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 9 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 15 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 9 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 18 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 12 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 21 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 12 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 24 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 12 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 27 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 12 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 30 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 15 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 33 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 15 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 36 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 15 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 39 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 15 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 42 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 15 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 45 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 18 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 48 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 18 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 51 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 18 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 54 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 18 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 57 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 18 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 60 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 18 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 63 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 66 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 69 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 72 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 75 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 78 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 81 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 21 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 84 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 87 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 90 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 93 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 96 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 99 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 102 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 105 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 24 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 108 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 111 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 114 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 117 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 120 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 123 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 126 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 129 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 132 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 27 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 135 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 138 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 141 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 144 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 147 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 150 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 153 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 156 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 159 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 162 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 30 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 165 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 168 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 171 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 174 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 177 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 180 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 183 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 186 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 189 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 192 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 195 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 33 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 198 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 201 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 204 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 207 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 210 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 213 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 216 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 219 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 222 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 225 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 228 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 231 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 36 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 234 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 237 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 240 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 243 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 246 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 249 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 252 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 255 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 258 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 261 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 264 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 267 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 270 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 39 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 273 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 276 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 279 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 282 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 285 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 288 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 291 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 294 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 297 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 300 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 303 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 306 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 309 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 312 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 42 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 315 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 318 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 321 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 324 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 327 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 330 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 333 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 336 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 339 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 342 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 345 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 348 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 351 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 354 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 357 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 45 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 360 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 363 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 366 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 369 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 372 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 375 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 378 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 381 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 384 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 387 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 390 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 393 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 396 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 399 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 402 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 405 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 48 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 408 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 411 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 414 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 417 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 420 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 423 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 426 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 429 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 432 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 435 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 438 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 441 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 444 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 447 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 450 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 453 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 456 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 51 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 459 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 462 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 465 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 468 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 471 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 474 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 477 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 480 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 483 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 486 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 489 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 492 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 495 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 498 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 501 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 504 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 507 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 510 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 54 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 513 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 516 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 519 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 522 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 525 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 528 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 531 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 534 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 537 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 540 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 543 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 546 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 549 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 552 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 555 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 558 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 561 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 564 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 567 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 57 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 570 ]), &(acadoWorkspace.x[ 3 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 573 ]), &(acadoWorkspace.x[ 4 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 576 ]), &(acadoWorkspace.x[ 5 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 579 ]), &(acadoWorkspace.x[ 6 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 582 ]), &(acadoWorkspace.x[ 7 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 585 ]), &(acadoWorkspace.x[ 8 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 588 ]), &(acadoWorkspace.x[ 9 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 591 ]), &(acadoWorkspace.x[ 10 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 594 ]), &(acadoWorkspace.x[ 11 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 597 ]), &(acadoWorkspace.x[ 12 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 600 ]), &(acadoWorkspace.x[ 13 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 603 ]), &(acadoWorkspace.x[ 14 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 606 ]), &(acadoWorkspace.x[ 15 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 609 ]), &(acadoWorkspace.x[ 16 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 612 ]), &(acadoWorkspace.x[ 17 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 615 ]), &(acadoWorkspace.x[ 18 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 618 ]), &(acadoWorkspace.x[ 19 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 621 ]), &(acadoWorkspace.x[ 20 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 624 ]), &(acadoWorkspace.x[ 21 ]), &(acadoVariables.x[ 60 ]) ); +acado_multEDu( &(acadoWorkspace.E[ 627 ]), &(acadoWorkspace.x[ 22 ]), &(acadoVariables.x[ 60 ]) ); } int acado_preparationStep( ) @@ -5198,24 +4632,18 @@ void acado_initializeNodesByForwardSimulation( ) int index; for (index = 0; index < 20; ++index) { -acadoWorkspace.state[0] = acadoVariables.x[index * 6]; -acadoWorkspace.state[1] = acadoVariables.x[index * 6 + 1]; -acadoWorkspace.state[2] = acadoVariables.x[index * 6 + 2]; -acadoWorkspace.state[3] = acadoVariables.x[index * 6 + 3]; -acadoWorkspace.state[4] = acadoVariables.x[index * 6 + 4]; -acadoWorkspace.state[5] = acadoVariables.x[index * 6 + 5]; -acadoWorkspace.state[48] = acadoVariables.u[index]; -acadoWorkspace.state[49] = acadoVariables.od[index * 2]; -acadoWorkspace.state[50] = acadoVariables.od[index * 2 + 1]; +acadoWorkspace.state[0] = acadoVariables.x[index * 3]; +acadoWorkspace.state[1] = acadoVariables.x[index * 3 + 1]; +acadoWorkspace.state[2] = acadoVariables.x[index * 3 + 2]; +acadoWorkspace.state[15] = acadoVariables.u[index]; +acadoWorkspace.state[16] = acadoVariables.od[index * 2]; +acadoWorkspace.state[17] = acadoVariables.od[index * 2 + 1]; acado_integrate(acadoWorkspace.state, index == 0, index); -acadoVariables.x[index * 6 + 6] = acadoWorkspace.state[0]; -acadoVariables.x[index * 6 + 7] = acadoWorkspace.state[1]; -acadoVariables.x[index * 6 + 8] = acadoWorkspace.state[2]; -acadoVariables.x[index * 6 + 9] = acadoWorkspace.state[3]; -acadoVariables.x[index * 6 + 10] = acadoWorkspace.state[4]; -acadoVariables.x[index * 6 + 11] = acadoWorkspace.state[5]; +acadoVariables.x[index * 3 + 3] = acadoWorkspace.state[0]; +acadoVariables.x[index * 3 + 4] = acadoWorkspace.state[1]; +acadoVariables.x[index * 3 + 5] = acadoWorkspace.state[2]; } } @@ -5224,50 +4652,38 @@ void acado_shiftStates( int strategy, real_t* const xEnd, real_t* const uEnd ) int index; for (index = 0; index < 20; ++index) { -acadoVariables.x[index * 6] = acadoVariables.x[index * 6 + 6]; -acadoVariables.x[index * 6 + 1] = acadoVariables.x[index * 6 + 7]; -acadoVariables.x[index * 6 + 2] = acadoVariables.x[index * 6 + 8]; -acadoVariables.x[index * 6 + 3] = acadoVariables.x[index * 6 + 9]; -acadoVariables.x[index * 6 + 4] = acadoVariables.x[index * 6 + 10]; -acadoVariables.x[index * 6 + 5] = acadoVariables.x[index * 6 + 11]; +acadoVariables.x[index * 3] = acadoVariables.x[index * 3 + 3]; +acadoVariables.x[index * 3 + 1] = acadoVariables.x[index * 3 + 4]; +acadoVariables.x[index * 3 + 2] = acadoVariables.x[index * 3 + 5]; } if (strategy == 1 && xEnd != 0) { -acadoVariables.x[120] = xEnd[0]; -acadoVariables.x[121] = xEnd[1]; -acadoVariables.x[122] = xEnd[2]; -acadoVariables.x[123] = xEnd[3]; -acadoVariables.x[124] = xEnd[4]; -acadoVariables.x[125] = xEnd[5]; +acadoVariables.x[60] = xEnd[0]; +acadoVariables.x[61] = xEnd[1]; +acadoVariables.x[62] = xEnd[2]; } else if (strategy == 2) { -acadoWorkspace.state[0] = acadoVariables.x[120]; -acadoWorkspace.state[1] = acadoVariables.x[121]; -acadoWorkspace.state[2] = acadoVariables.x[122]; -acadoWorkspace.state[3] = acadoVariables.x[123]; -acadoWorkspace.state[4] = acadoVariables.x[124]; -acadoWorkspace.state[5] = acadoVariables.x[125]; +acadoWorkspace.state[0] = acadoVariables.x[60]; +acadoWorkspace.state[1] = acadoVariables.x[61]; +acadoWorkspace.state[2] = acadoVariables.x[62]; if (uEnd != 0) { -acadoWorkspace.state[48] = uEnd[0]; +acadoWorkspace.state[15] = uEnd[0]; } else { -acadoWorkspace.state[48] = acadoVariables.u[19]; +acadoWorkspace.state[15] = acadoVariables.u[19]; } -acadoWorkspace.state[49] = acadoVariables.od[40]; -acadoWorkspace.state[50] = acadoVariables.od[41]; +acadoWorkspace.state[16] = acadoVariables.od[40]; +acadoWorkspace.state[17] = acadoVariables.od[41]; acado_integrate(acadoWorkspace.state, 1, 19); -acadoVariables.x[120] = acadoWorkspace.state[0]; -acadoVariables.x[121] = acadoWorkspace.state[1]; -acadoVariables.x[122] = acadoWorkspace.state[2]; -acadoVariables.x[123] = acadoWorkspace.state[3]; -acadoVariables.x[124] = acadoWorkspace.state[4]; -acadoVariables.x[125] = acadoWorkspace.state[5]; +acadoVariables.x[60] = acadoWorkspace.state[0]; +acadoVariables.x[61] = acadoWorkspace.state[1]; +acadoVariables.x[62] = acadoWorkspace.state[2]; } } @@ -5292,9 +4708,9 @@ real_t kkt; int index; real_t prd; -kkt = + acadoWorkspace.g[0]*acadoWorkspace.x[0] + acadoWorkspace.g[1]*acadoWorkspace.x[1] + acadoWorkspace.g[2]*acadoWorkspace.x[2] + acadoWorkspace.g[3]*acadoWorkspace.x[3] + acadoWorkspace.g[4]*acadoWorkspace.x[4] + acadoWorkspace.g[5]*acadoWorkspace.x[5] + acadoWorkspace.g[6]*acadoWorkspace.x[6] + acadoWorkspace.g[7]*acadoWorkspace.x[7] + acadoWorkspace.g[8]*acadoWorkspace.x[8] + acadoWorkspace.g[9]*acadoWorkspace.x[9] + acadoWorkspace.g[10]*acadoWorkspace.x[10] + acadoWorkspace.g[11]*acadoWorkspace.x[11] + acadoWorkspace.g[12]*acadoWorkspace.x[12] + acadoWorkspace.g[13]*acadoWorkspace.x[13] + acadoWorkspace.g[14]*acadoWorkspace.x[14] + acadoWorkspace.g[15]*acadoWorkspace.x[15] + acadoWorkspace.g[16]*acadoWorkspace.x[16] + acadoWorkspace.g[17]*acadoWorkspace.x[17] + acadoWorkspace.g[18]*acadoWorkspace.x[18] + acadoWorkspace.g[19]*acadoWorkspace.x[19] + acadoWorkspace.g[20]*acadoWorkspace.x[20] + acadoWorkspace.g[21]*acadoWorkspace.x[21] + acadoWorkspace.g[22]*acadoWorkspace.x[22] + acadoWorkspace.g[23]*acadoWorkspace.x[23] + acadoWorkspace.g[24]*acadoWorkspace.x[24] + acadoWorkspace.g[25]*acadoWorkspace.x[25]; +kkt = + acadoWorkspace.g[0]*acadoWorkspace.x[0] + acadoWorkspace.g[1]*acadoWorkspace.x[1] + acadoWorkspace.g[2]*acadoWorkspace.x[2] + acadoWorkspace.g[3]*acadoWorkspace.x[3] + acadoWorkspace.g[4]*acadoWorkspace.x[4] + acadoWorkspace.g[5]*acadoWorkspace.x[5] + acadoWorkspace.g[6]*acadoWorkspace.x[6] + acadoWorkspace.g[7]*acadoWorkspace.x[7] + acadoWorkspace.g[8]*acadoWorkspace.x[8] + acadoWorkspace.g[9]*acadoWorkspace.x[9] + acadoWorkspace.g[10]*acadoWorkspace.x[10] + acadoWorkspace.g[11]*acadoWorkspace.x[11] + acadoWorkspace.g[12]*acadoWorkspace.x[12] + acadoWorkspace.g[13]*acadoWorkspace.x[13] + acadoWorkspace.g[14]*acadoWorkspace.x[14] + acadoWorkspace.g[15]*acadoWorkspace.x[15] + acadoWorkspace.g[16]*acadoWorkspace.x[16] + acadoWorkspace.g[17]*acadoWorkspace.x[17] + acadoWorkspace.g[18]*acadoWorkspace.x[18] + acadoWorkspace.g[19]*acadoWorkspace.x[19] + acadoWorkspace.g[20]*acadoWorkspace.x[20] + acadoWorkspace.g[21]*acadoWorkspace.x[21] + acadoWorkspace.g[22]*acadoWorkspace.x[22]; kkt = fabs( kkt ); -for (index = 0; index < 26; ++index) +for (index = 0; index < 23; ++index) { prd = acadoWorkspace.y[index]; if (prd > 1e-12) @@ -5304,7 +4720,7 @@ kkt += fabs(acadoWorkspace.ub[index] * prd); } for (index = 0; index < 20; ++index) { -prd = acadoWorkspace.y[index + 26]; +prd = acadoWorkspace.y[index + 23]; if (prd > 1e-12) kkt += fabs(acadoWorkspace.lbA[index] * prd); else if (prd < -1e-12) @@ -5326,15 +4742,12 @@ real_t tmpDyN[ 3 ]; for (lRun1 = 0; lRun1 < 20; ++lRun1) { -acadoWorkspace.objValueIn[0] = acadoVariables.x[lRun1 * 6]; -acadoWorkspace.objValueIn[1] = acadoVariables.x[lRun1 * 6 + 1]; -acadoWorkspace.objValueIn[2] = acadoVariables.x[lRun1 * 6 + 2]; -acadoWorkspace.objValueIn[3] = acadoVariables.x[lRun1 * 6 + 3]; -acadoWorkspace.objValueIn[4] = acadoVariables.x[lRun1 * 6 + 4]; -acadoWorkspace.objValueIn[5] = acadoVariables.x[lRun1 * 6 + 5]; -acadoWorkspace.objValueIn[6] = acadoVariables.u[lRun1]; -acadoWorkspace.objValueIn[7] = acadoVariables.od[lRun1 * 2]; -acadoWorkspace.objValueIn[8] = acadoVariables.od[lRun1 * 2 + 1]; +acadoWorkspace.objValueIn[0] = acadoVariables.x[lRun1 * 3]; +acadoWorkspace.objValueIn[1] = acadoVariables.x[lRun1 * 3 + 1]; +acadoWorkspace.objValueIn[2] = acadoVariables.x[lRun1 * 3 + 2]; +acadoWorkspace.objValueIn[3] = acadoVariables.u[lRun1]; +acadoWorkspace.objValueIn[4] = acadoVariables.od[lRun1 * 2]; +acadoWorkspace.objValueIn[5] = acadoVariables.od[lRun1 * 2 + 1]; acado_evaluateLSQ( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut ); acadoWorkspace.Dy[lRun1 * 4] = acadoWorkspace.objValueOut[0] - acadoVariables.y[lRun1 * 4]; @@ -5342,14 +4755,11 @@ acadoWorkspace.Dy[lRun1 * 4 + 1] = acadoWorkspace.objValueOut[1] - acadoVariable acadoWorkspace.Dy[lRun1 * 4 + 2] = acadoWorkspace.objValueOut[2] - acadoVariables.y[lRun1 * 4 + 2]; acadoWorkspace.Dy[lRun1 * 4 + 3] = acadoWorkspace.objValueOut[3] - acadoVariables.y[lRun1 * 4 + 3]; } -acadoWorkspace.objValueIn[0] = acadoVariables.x[120]; -acadoWorkspace.objValueIn[1] = acadoVariables.x[121]; -acadoWorkspace.objValueIn[2] = acadoVariables.x[122]; -acadoWorkspace.objValueIn[3] = acadoVariables.x[123]; -acadoWorkspace.objValueIn[4] = acadoVariables.x[124]; -acadoWorkspace.objValueIn[5] = acadoVariables.x[125]; -acadoWorkspace.objValueIn[6] = acadoVariables.od[40]; -acadoWorkspace.objValueIn[7] = acadoVariables.od[41]; +acadoWorkspace.objValueIn[0] = acadoVariables.x[60]; +acadoWorkspace.objValueIn[1] = acadoVariables.x[61]; +acadoWorkspace.objValueIn[2] = acadoVariables.x[62]; +acadoWorkspace.objValueIn[3] = acadoVariables.od[40]; +acadoWorkspace.objValueIn[4] = acadoVariables.od[41]; acado_evaluateLSQEndTerm( acadoWorkspace.objValueIn, acadoWorkspace.objValueOut ); acadoWorkspace.DyN[0] = acadoWorkspace.objValueOut[0] - acadoVariables.yN[0]; acadoWorkspace.DyN[1] = acadoWorkspace.objValueOut[1] - acadoVariables.yN[1]; diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_solver.o b/selfdrive/controls/lib/longitudinal_mpc/lib_mpc_export/acado_solver.o index 8f2fcfbdf156ea49e5a8526461ab0dcbbb6a1577..435fd9f8382e6887c3eb89eba3d1ad9475d0e9c5 100644 GIT binary patch literal 274768 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

(BxI7wl`r zXo{U_PQJ(Zug^Qp=SMuM*U5W)(#ih{-x=|Z z+k9jAKExLm->A(uf-i*cg7^k(zCL`H@%4+Z*XHZN*NyL*__}Pq4tzuSIxXKPcL=vz z-gui{#&I>)r5vhii&yCOcf&F92-9iK~lDK?)2UoyU1;!CpmmQu+_;af?yj&Cv5Jihos zsw(C<^>Ib#QO zQd!42@3GSKWgYIu*M)Dh_&ROAc6{6Mb%?Lc=4-{*f^V1jnr*&De5LrB#22*r8t~QQ zJ1D+@%~y->5WYI`)!2M~eAW1liO*;AdGMXY=M`VM<%^ebZaBs>oQIhbyl2>^*ybz5 z_aV!Q#8+VX^gAFr&h^{FHMzhuDkqh455^76=6dY6zE^L)Nxq+DvD{Sie>HTOZ{f^T z^*j6zVs5Q(lgCV@jVRB$yi}fjq`{fWe@ou)DXD7O!TyI1THk)jdYzOpt$dL-qWF@; zxAev5zQr%9>4h&+rYpXAy-s`yd~tkpU$piYwR|&^n%|*4A88nWzWwwB@jNEoWB8U2 zs)^ffb&PFN`28-wp*3Dri|_y9r{~HYPN)3zj$3`5buaTP(%WQt)hX8LxlsO4Z?ny- zetgxf?p<@M@#}8&(;II3p19ThTW)od?bq@91MS=CRrPGI=MLGSeS5s>?q#OA^b&kYrmJW8kQ%e(QcG={kqOpm*21~nPn*~ z>#MTZ0XyJcVHfQ?lHnd!a=wdP7!W^TVRK9J=_c@3kTpP zI7zq;ZiH7Vtn}5wL3l|xO8r{{yeK>g*TW0K6L0{Y7aoV};5p$iTni_J$KV<`Dm)7N z;Yr~Un0ks>G2hJkeh9(TF~y362jEe-P`Dos!3Dy7@Bo}I+za=^dBQz#ADk=P4fn!1 z!d-9=oGsi5cf*;&9dH-y7H)?-VV7_lOkG&aDclOT!zscoa2xCpZiZXoWZ@>b1x^xf zgqz`&H>~p!gqz?c;Rd)7UKFl}gYbfI0B(Tih3nvYcuu$$4!{ZF8n_OQ3j5(&cv83; zu7M|neXt)M7xu!{a9G#_``|I*a@Y%x3YWnictp4aE{8+H#c&xsAY25O!2QC7a53B` zTmY}oM%J&}rgHz}!%J|ra2~t}`-F4h1=uT`1JA=A;cR#gE*H*(qi~t98=izqXrr2% z`|HUg{Ep@R+T6E`brY;BX5CSi5AnM#>zu3`XI&BNZppF~mW5eXC~-UBF}OfD86Ji6 zg_GbBI8S(mI@u7ME4%~`z&XN;a6gbHY7v z1Dp`hfoh-{9UBZiai{ zkZ=>+4G#!6!d-B`a1ic<`-B_d4!Bpi9&U$wgadFJ+$~%Ox58b*wQvjEDO>|L!yUqY zxCw3-u7(@oHenwegjT?12Mtvv4_F2R8|q!L@Lsa0%>(gTlpdHQex&*YfOu z>xGM84;&CKgv;SN;R3h}t`*LQOW+#eJh&M43+KW`aJ6s_Tmbuov*CQ$E1U`E!5(2Z zoC}u=yWkwSOxOu$!zIEga0*;3?0}tck#I8Xf(wO{U^iSKyu!C-CY&$41lPcM!i#Vr zoGZKld*K}6dAJ_V7M_C_$+KrZ^|QYPUFQ4L56{D{r+#=2c0TpP2{=VK0Y_nna1@?| zlZ7YY2{=i30v?A~Ubp`L<8T;W5)Q*-@S^Y-JPI!ekHR5%UN{5~z;nU_a6g<7?uYx} zsBj)i@t>kMyWlRO&x&vytKyw4_o8emho$-M& zRZF-;hfmU8iExhnYY?i#r9fEqfX^HQ`eYJ@uusL*lE@6o0R9y!2VPN^69`!OmPJn!1!0Ze29n$&fWEy_znkLd{V|(1}qYxXX4Dh&D zg->`HBipLSdYyHt{B$3hTO9AFVeO-=Y%J~hen#2PDfV+(`>g!)|FORj*+*Tw!WvcF6J%KkcKe;u~{wX?q~?CXDIC%lHQ>GxtlT8ziAwlb)QyqE;4=UN%9*?d%_RBl)Yw< z4*EYmVjf!VrB7~UFjk>;UgD%p&$07e)|=>s7TmS2GL})U@zaO&^;}({{#Gw5VHsr`KYK*q$2Aq|BfYGcWt4B+ zf1IK2zfz&v^|B(CQN}UxB!hN$73%NwvO<ELP{{Sx-4mf0eqx z^Djm@$AeV{^M6#R4xW#(3C4?BZK%vOCyf7_=V^>`j_W zFTwNhnD8Pz2agIbzzKLncpe_9Q1OuP96SLJ2vb%T8;ARaDJzQ=!F|G$a3S0)JOLNL zJ;LK~KHM!FhV$Sq;W0QD?i3z{bKnkP%F1HdaJw*NWwA`SO?Uuy!>z*ounTSx?t`6h zvv4n*0yhcwzz(=kxEoG}gTj=R#ggC#Vam#4w3Ut53wOY@m5m34+hN+u#_NRJVA{&Y zYlT~3+RDajgj-?uz~gYaa6LQ# zmk9^pFkB*B2amzU!nN=yTqIlrkHCe(emDdd2v@^F>H+eFeQ*PuC+vmm;ap)49Ds9# z%i%gWTeu9ag)@aq;2PL1TnzhRmv9kW4LgMkVK1B_TmXAuhj2bz4krue!DVoga4uW| zuh8yQzaMhoVt7e78!m(wg)`v-ctO|==fm^DE;tFE6L!MMa6&i*cEC|#2b=;=3Ma!( zI4qn5XToE`E9<%6;Zflw*bRq-7vXGpKzISpf%}E$;as>+cn;2kdxaBl5!@pjg?(_h z@Fd&}cL`6xjc}*%INStx2#4VoxLtS*ZiU-~N8vWORd@t$hg*b0a5nc}v+w|%2{#G% z!)~}yxDR&1LE&CF1#S@TfgNzYa5tO`2ZX!eB)Cqv6J8-bwZa|nB3vWf4llrd;Wl_4 zt`=^E=U|_33!H$x!p(3L_6Rq@lW@6kBRm0@2?ybExJ0-C?tqJh>)}q#y>OmzHQWd13j5#zI7iqEhu~~s4?F^A3YWv9uv@qc z9)n%NC2$ya3KzpUT#pptB6x}Q4&g%B#rkC70yq~=63&P7;1%mzHI@hG!%M=sZ~?q1 zoC6oa3&PoO5j-!P2^Yh2!ftquZ^}j4-yHAj1$aSt0iK8Fh3DY}JSUuhqi{kv3QxjO z;YoNLo)jL3!|;S~7#@Sig~#9#I4nE@hu|^c5Ig{n3J<`2a7efh?u7@0d*L3qU$_VE zg8PKK;7+(#xD)PxdxSgS63$n*u#59m26qWN;c~cBI0g2=?ZOV&3%3a;!+y9`I0^Q_ zEy647ct60+!b@-s+$6jR*TO;J1-K4w5T1tvaJ}#xTn`6?6L14uCme;F;9B8HI0%;r zPr!|EneaH=43`Us;TG5x10j_sc)(5!W_3)%{J=_RS2sgqF@VGE- zvtvOxEF6TJ;4$GQxEUT5ZiZXn5#biN6%Glv!fo(?a2wnX_Y1efqi~<_DBKPA3U|Z( zaF1|5JOOtLPr!?Cm+&II1a}HA!7Ffw@Cr=7jCi{+ZR2C~*NC?X)Baue`-ry+(^fu4 zzm9l|Fm3F0e~);xFm3N+^aY7G3DY(|M&FTmqcCmuW4ixHP?)y)G5VUs8-!`+AEVDn zyk400|1tWd!~?>#@sH8>B3>sgj5{SspI|A<%1`eK;=A@NLEUjoyAB<_>-Wib6r;$C47On;NO=MDOb@II^csav-< zsau~@=I|hc|E^D^yrkQyzi<2pbaE1D-fHl?U|-wNYIHm5LwBHFbSLUT zccJCzZnO;DgO;GBXfe7EEkgIBh3G-F0Ifpv(KpdN^bneh9zk=^qi8mI40WN$Q73u= zO+inh4)he7jGji5&@<=?dB(Ho5_%3@L_b6q(DUd#`Vl&ZUO*G*MKp?DLMPG7=mdHN z9Y?RCVe}e0hF(WU(HrOpI)sMMTj&6K8|_E$pnd3Fv=_aH_MrFCZu9}#g-)ZLXdLZ8 zAENE(BeV^DjJBdr&=&M_v>9DSo6uF6JTK7IXb@e4HlVMd^=K*@K-1AWbOTz88fXog zh5FIWXf?VO^`YBPFS;G|pgYiVbSGMd?m|n@-Doko2Q5NN(L!_|T7d3H^U;H79$JOw zqHm%(=pi&4J%VPUM^QI=40WN$Q73u=O+inh4)he7jGji5&@<=?d6cv05_%3@L_b6q z(DUd#`Vl&ZUO*G*MKp?DLMPG7=mdHN9Y?RCVe}e0hF(WU(HrOpI)sMMTj&6K8|_E$ zpnd3Fv=_aH_MrFCZu9}#g-)ZLXdLZ8AENE(BeV^DjJBdr&=&M_v>9DSo6uEX;`*bj z(IC18Z9rc^>(Nv+fTp8$=mxYFHP9L~3-zO$(Q0%n>O;4oUUWO^L3g0#=uWf@-G!E* zyU}8F4_btlqJ`)_v;f_Y=A#GEJhTeUMc+ho&_if8dIZfxkD_k$7&^!Q`Z&6PoG47&E=sk21y^k)S572pZ8l6MqXaaqR zM$t#;B>EVgK%b!F=;vq{T}H>yRhzgU(beb(x&{rQub=~HD%y{xqkZTGv==qd9yAN> zMmM8f=vK57-G&A@?(Jwjx&v)QccKmGE;NYlMw`$*Xfs-hwxIjaR&+nwh8{%Q(JFKl zeG~0Q525|&5p)7QiY}tZ&?WRZx`LiS`7RhfiSj)#d*k5HFI6XG@@U2Z;Z!g=ye82oTy6q)B9xr2O^L;b8 zt3plj9q~2B_?zN;=xwchCw&{8=6gZUk94z?KKgpxBEGK1dTl-J6s*NFa`d=JI=HhYnK;6HKRi-{*1VqOi2 zZ>oO-=b!q_z73rJL+1I_V`P1saAbsZq|#S>fPMC`&yVOIc!@p*e7g-B6>2-z!bu;U zG}?0yZmm$S(ogftq(S!|&|_)Ex;F5CtFYQ&cj~cv-!k6f7ilNn-4)85cSrXZZL`Ms zHGQr4TJY@?U$f2Eh_4D?6U($OX!AATtH*ald;y!U7TgeB`TY2*@tqQ%&*t;s zJB!aNzH*zd3||Sp^WrPE`3mt}#8)J~0-G-%Umm_I;>)%9vhiKVmm|JRo6n8Uh3}U5 zoHm~W-`xteS@)Ao)?=Jl*I?*F`XZ!kP#>prFRZLL+g)#ZdJPsB=k@~a<`)@z^)lCV zX}#HZE|kT#fcR={z8ZXfd`HDsZS#5YoxtZ4 zUy03EjIRjaY4H`>eEIm!;VTedp3RqwF9+X8;>))A-1six%M_o>=5yjp!FN@B4$G&< z&inXAg;~!VOVaalF)q={2I@Pd&)T9MgNA+)3wj)E`ll>$y>IjXo7ZF1uzZg3ZSGM= zkz|c+qsIZ#{abWjy9nhMUqU}V?IRBaQ+_dc@O5)v)0B1GyudhKyO?jR^mX1#dMtJN zHRv*u`SpA&RMEGG{t$mxO@x}4=iLb}z>&DlG@3HtgZN7GV%lJCP*Jksz z;%mXT#u^tO-fZ(V;!7vL-Xy-D&DVgh9$%LD0ybYQzHRvG#8++e`S5x1?G&HK<}1Uu z2Vc4PN^HJjd`0;7i?7h;%g6Vok9Ho6HJP`b`grM6o}>S-{5P}LQ>QNH-ffMarN`0I z{lDS`%rSe^r}Q{lH&0N{p1YoSs9Vll&pq-s^9YuzkC}gN+PR+ofY!JPFR)&Z$NVN;z03-YDf?A?Bwu`)E@3^{fvENuRfY7tbd+J4 zKFX?|`6#EFrfh16dFf1Fht1c9PtQx&F1}WquLWN-KIWw}eN8rB5TBlxu2FmqHeWry z06ylWGktY7UkyGzFI}zp{5D@TJ|8~jr89kAo39+7o|n!ezA~Gy1Ya>e=A|=zMK)gn zKIWy^GXd&g?g;=SujPIqIe}iH~{dK6R{Df2Hr6yme;3 zozS&Xb!(dUfomPl5o=xx-483`(9fE~#?2x6ygBjS(fth9@vYBTRopjvz5#Pwo)yLj zz&Ep`#~WbmD*fzO)Z+rkm~->=%U?|$^@1Kdf&I=|V+QDcZt(&3TQd_6W_7e3~0k9Ui&)8^~I*N(4B zd~G&g3%(=xTE*9F^EKgX#CKeLL7T50-zj_z;tSY(b@*!WofTh=%~y@@JU+kpe3mcn z)#Dc&HuU+Q@!-A4HszKtUdH$b%-jBH$~vAW?-=i~T_l-z#})mZM|}4y7{k(~zQS@p z*LD*>9apq~c?a@c>TB@Ob-oL4@vTuv-0=$YofLPtWSltqnI^l)^AOi#y^d?UV)g4k zOn7FI{`bqg)0SlXfdy+k0R1f(pJ)7mIr{FeskD4in{NVNI>#|7zHyr`jBgBImiR_& zz5#sO@P)+JZ}aux>&3TId_6W_7rs6Cy2aOF^R?q^!?$02tu|jXzBlo;h_A`!Ys44C zcT{}!HeVgS6Zit+tF`%R@cHqb7N5`N^WZy&&nvz%%csX|(C6MfuZ7n3v0~!*h;0iP zFX0mRK#|LwXI5Vq{T_&9rqj=o_dy=>OI+pp<`egW3KemutGD!e7vm$`puJ*ly7_(@ zx^4A84n5?Vk*&wP;2VZ^r{=e0msa`$(#~}F3E!~#T|gVjFQB?VXq5J)p;f#KXm_gf z5HqwV{Q|1*N!>R-)`ahsO3N3t`DiB^+JKMtqo$8`q0fA@3yslEb9l4(Xy5s4f3)um zZO2zFKH7vn^U+o`M%&ThUE(XT`HJwB;wu(kq0Lu-FCX7Q@#WckIrt9Y%N1Xy&F9AF z!gox3PMgnx?`QN%&UMC^Hb>V%qcLn`c~x5AiMN{^gv*IlT@|q?!M7eg0!n zycgJJ!sZL(yIg5Lqjg(Q{e8KKZS^nhH>Hzp53+5JHQrXtrPs-vAc=Ionfd-0WqgiOwsGrmYUF#UA)S5EHn%$692+^7 z!ZTbLarJjMdqj;GW5k90mwM~WUtgl{Vc|BubAFHe6SXOfPS^slV7#(H$> z@mYv-aV>GOd||D+`3jz79jD)Tmd?qwRyrrRo~u~Dq>o$D8P?~7^o;2^^>yK1cv7XN zMs%Dk4-w}>zH!Ib66ZUNuPNuNf320yKDK|r`cYe)J#wB~C7lE8_bzb;B%NO3yoIM% z$7xIFQks>{N$!K|tZ%f%*_&pivnS0==TujknZ8&y`@cfmo%EBxh^NmQr$DDue`iKJ zi0gJGc@D<4X-hN5n|^`iHy`r-(8|5k!o731R1H1gd-N>+ZhhbI-YBw-Gm@WX<$;=s z>lE7*=zYjINsam*=e)IZ-yP?>DX7O*kozOR_D9&h$r>v`kGJsepPs*3-G&xl4ZbS2 zY0zB;wtT$8X)^dfb^W@S7>I(lS%b_B&Yb zwZ)ky$B?Vz&Q_Pd%m zSDaQlm*}7WInVf%|1F&hj6=Y&&dk%l{}JnxY;h)>*13*4t#mFj9>O%={1ZA((m76? z_wdZ=F#+B&o~3ilX`RneJ+6Xv9%sVDe-&>C&kf!&IqAG(_y(ACGL8uO)PAR#Z;cE% z&GBJkBkb!Q-<{VOo4(gcTY1W%y0vn@OmmMs(qoMrVGcK*Tb;zs@|g~;d}p?!cPjbr z;NEGo#w*b8mUt`U6tuAa`+6PwZr1B$yn#kMagL?QY59USUjx2+e2>K!u=#57E#s>b zUyaS@$5)MSjs6yAe?FVfgD+j*7vd|o`O5H>;L8$UvCUVAZyUZM@fFy7`S|ki?G#_G z&6kaDkG^Nbmud64@wxEr7oXGSbKrXuUyAsWZN4OYEA;(8D!wH>R)d_+1;!9Kfp1Zd z7r?onmvJ2CtZ^Uo`G_X)o@Se<%{PJX9C?r)CwUOR@hM{qd1@-R5h>cMo5i_*!hfW_(Tf zrp4E2^EKdmq@PvdtGD?A`0DU|F1}iu&yR04<3rY1z7^`p2OK9DSLC^WrJOO@eZ=7< zj#Qs@tR7n&WyE3VF(zf-CC|Mx#rTTwZ53ak&6kgF2fhOF<=K3>_;T>=7GJi_=f<}W zU#9q+mTx9SGtZ!8+qOw;d&I}{gEB-1@m2X$2HOO11pfg~vRUduLm3U)Nmuc?%|YG&K3)FbMF=BX1}ZmMEjT$Z&}F(xkB zTE%#{XbWxdwKi8V4lYVP(k|vRTBaO-b^%{wmBrNc%u<)Q92BN5WtO_eG+ z% zi^An_54<2;=4M}B&e;LRc7E4bPHbRbaF=itPJ(HpXRe=wX%jn38#0q8VA^EP(q_-( zahNu;v$WYWISkWAc9u4JCXd0ik)5TDp2?#yZDePgghyc7#LfnVLojV(XKABnZa)Ci zCU%xKdM5Y7w27UiO`gepFl|U@X_IGiFH9TLS=z*z+ym1lb(S`DCU?WMS)HvG?t*F4 zI!hZnbA2aFo7h>}=$YIB(*|~yHhdN8xJWD4c+O!jteE z>=mAX=V6cVIJ^Lt3y0xFxJ-BqPU3h=gh${d))xzh;1#$?cmPgj`$FM<*Z~&^_rWP} zzHl$>g!6=ZU>BS#+zq?o9N{iF2hJAmfHUDt;dVG1b_=(`xv)#P70!d5!YyzioFd!| z7sC$WCb$Gn7H)*g;3VN7?1fkMTi2@|E{B(d1F#2P6t07P@PcqHTn*0)*T8;wPS_9E zzzJa=Tnk5qy>J~oDeQq8;0fU}H~^0em%#OKShyGt!ehdPa3ee_TmU!0Bf|M`GaM4m zg%k8K9}v!g=iz?gYkW*$dYT2jKu55N?25;W}Z;mX>?qT4BnZmV4nEVak@4`(VE?~+!(&O4wKKq%=%X}rwEkN1q zXPG+8`~sBWewMAn%rQXO?q@kV%sc~><9?Q_!^|~6Ik28zU@c?+N6P8lU><{Y~`0hH1;D+k5})!6tQGa~Ju< zYM;74y-7`I?xf7s$K0dwP3kwAJA5kP^{Jmf+@vzL!tFlw%MzdZ#iLDXm*zI=%Zq*L z!Q)M;T63#UJudR8$tRoC*EP5J)Iy<8egE@K>Mu1n`_w-dFn{XuCgweXn|$i_sx0z% zgd2TobafVaJifQvP*#>oB2OD3FB{sNrC!{^e97c#hqq>_FKnUw zgnaGC+p^SZ^1Bi8wYRossbuDlh>({Z*^#Awn>i#RF!{vD3gt?p!sHVpOS+s%n0#Vn5e^BHPmC-F!{vD9NZ^N zJ~2WY+NoY)@`(}J(oXdVlTVD$rgo}Zn0#V{wzX3pVe*L)+SpE&3zJWb(AIXUOqhIP zBnc+(YTh&C6C*2L&X+Lx#K;m%-ql=BJ~6TglXo?_3toW9yPDhy&%@+hP40l_VDhde zx5EjTysOD=a1@zz@5T%FnyP%I)rOs`Zi6q3)jH(eVS?$_QUjznraoUhP&Yw zVISNDHw$~=PPj?f19!lU!sT!~9272t+u#P_61Wwv7cPcd;DB%u+zi(V7s5?&t#AR{ z2-gVb!$H_DoCi0+)xx=OJ?s=5 z3t+c!0?vnB!cjO6b_!3zv}vD85uSi)+dkzG9*1e;K9wvShH2|Ql_Wd{)8>7OavJmg z9ffK8K1Df=$s;gr;HN03F*yX&7JiCy8j}ZL+Qd&eycYMvw2hxi7Vd*-BR`cS+zZoI zern~QwS5mvoB63F;cl3=^HYn$T`+Cvrxt`eVcOD9%?o$Hw5gw(6K;oTTR#;&sQw}8 z^$frG+@a4}pjTmTor0pWbO5Uvx>gA3qV;aoT$ zt`W|G^I*SlHk=FlgfrnB*emRYvtf_03(kbggq?5-Tq2wTJK$nr2b>HS3Ma!ZxIj1w zcEb6>lzl|paIP?AACb9A{`10=eMAy)wlHNMktm!gJO@w0Zs7zx0lS2w@Hk9<(7c}~ z;V?{o(Buht3?~0*@;E#ScMFH%5x7fu3=YAa!lUp2+#x&y_rvYNA-E526CQwj;TGY3 zxCd?)?t{DGCgEPV3no8jrmqL?goDD}a0lEV+y%G8On%N>?}N)>@^dD8;WBtd*aMfq zNpioG!^Lp2a2Z?#JA_N%LO4aZ7%qUF!bNaCTrOM)=fQcx1#m80B%BZDz}3Rk`$e+h z24U*_BAIZfFnvEFZg^CfJ{u7SoDimeO(Ypkk#`3DfFen-TbR10h!b`SQ`ZzpfnCDX zHAP%-rZ9C)ks3H#n7XEjAI=e`t|>AP=L%ET6roOSa6=Z~sy;PnpyW*k_o3uV2KS@n zNd^z1_{ zgQrpQ4})h=@(qJ$QSu9e=TPzqgCC;g4+hVpErLdg#dUO>qQ3|>U}{vW)A^4&jp z8RdI_@CwRz{@_)V@B6`PDBtyi*U>KY2HJ@Zp&jTgv>m;TwxM^>R`f2~g5E=$(feo< z`T%W2r_mr9M;p+GXg&G}4WN(FI`j!zi++yQpv$NqU6sxM1znB$&^4$ReFgQPsc1Qx zj+UVt&=S-@i_t8!2;GbpqFd1dbQ_wFZb$Rb9cV7P6U{+)q1oteG!xx}y3tb9h3-S0 z=zcT>J%~EcDl{2=6HP)7p(|Bfe{=~wiY}tZ&;|53I**<}=g^aA0zHLB(bMQ8dIp_9 z&!Xe#IW&xZh>oG>(NXjxbOgPChR}=X0D1}SM=zs&=oPdVy^8jr*U)bCI@*QaKs(VP zv;)0`wxhSvHuMhKirz(A(0gbzdLL~ttk2GB=n9r_rpMW3M6=;x>pT}Hj=sxO=GzrodLIlKlfLtjBl&{VV-O-GB+ z4QL^1pap0anvZV&vU(x*Lfzn*|M%ZTD90Pz%5uu_2DhP<;SFv_DZ3lofl_8SxD%zU zZg3Y$`QG4el(MbCJt*Z`gQX~CT7&yg%CiRdqm*S09z-d}8m#)Vdg&im+Wx-r;IICn z@jw3R3p$)cIO#wBYL&VCz_0#)uHHYY?&@0fjlqTlG$et91mZ@+J(3f~6^E#dC+`{? zOc+->zC+XbU!QknPXAZ$ zz3i^byK=>(^S?Il$|aMYdD&f)cV*h7^S?Up$~lvsaoJs!cjY^i&i~51D`!mlp3Clv zyemHbyUO#fxXbdcjOqUp{+II8|4yEcyenVp{~Z3?^RA5O|DfLMZmde$v)GEW;O4>OhzKTusS_QZIEKKQU)M9;E4^zNsxW%OKdAro~!^00jH z-!5PHCMf1jbI##@a3ULZ@8DU%bGOz3zH77_nXfzJVL4VEG1t93k9EU)KKZqjTfsXr zWB20CpuX7n>^9Yy5HkDN&0b~^E}_;iB8u2K2IO-UjRSD z^8?<|?Yh6>eU|qRc}ExQ{+jn%EysHq?$+|K1%uo&vxD~@a*7ujpqpIXL!c*yu`DU^ySQxVcw4e zpTKhk?_H$7!8^Kb_d4Etcz=`kINoi%V+ZRF;n`362A%^vxA4Rs*1ei%BITlZCh@$J zCw8&!sC>qY_iemaD<0lkfxDk~AMaauPv*IU_ZG_E#j}R@2YA-<+{Lq*^m};L@%|vs zdY+H)Y$E+N;IX%N@8-RM^y9oEOLxD)bBgyvq@xRTXJ~oeALp6Fdp6HT-ivrP^L&CQ zIz;zf4(2iQF@$FWbiTDmj)mfPh+ECv*h9MdAXamR{|TFmZzpxXw?{sHjXQv=b4eqQ zIK+aL`x-CYejl)$Zy>UFWWoE z-iP0n`jKn&JpK=fk2UnhpkvkmU!5nj1N&tXIc`aQDEU=+*!=d+ok7<7-giTO@Fwxb z?T4RnrZApgGpe2TY9q0n%{SnwBYz%v4|1qymU76ak420RYxapp?jD?8=%$2Z`qCV!CpA!438 zqon`q8}du3XNY=Ysb_e%CFmALG5s=1l+&S=x+Y zm8LW2_@1?S?_mzE{2A|+)_b$&m-7C&&07gv>wXKaNzHAN3 zudwMi>leOb?;6(hpOXF~tK5M0PZ{q|Tkrk){w(iLn)ee&cgo3o9C8ucXwM7qpq424 z&zoQ0eT@4kG^X3ojL-8JcNyrJ81s%Tq5IjLa^l6E;?2=B@eb+v*deEm1K%DcdUwS! zc*zeJ#v_coMu`0`T)?*-KJe;J`TUKY;u*YE#(TIE;Wg-Z6Zozu$`(-8Pj3?IAGktd z#kFp4*RA52L7qtDJ8(w}*#CA)&oc$^wVg870j_CqeZbuL5L~m+G9LvWRDAxq9uFTe z_&BEzK3AObq@AL70gT}nIdx~D^lmGZzB9n%_po4(SY;#ONh?cizo0D&JE4A`aNs>V zrSB|lX}wjvEw>`~(UuFqk3>@*e&H|g3RQR~@BX&n7xJjDD44cP6tXAolAbe#a$@x^ z8Lz)p#u{&xQ!92!@48*=(b3{AU7*L`miaYH+cLX`{b84!-mpt1Mx*6-)!}o$4O%yM z>YXC#zY{#~6-nPcyX08UJ%^XHYkJMnc9m>q?*iAhUD9{|F7Z^+u1eZ<*Dg8v0JJ!m z4~yI7Q~2xc8h1c@>8;2!YozxjCwt{CIrU4YoXFlKUi)Uz`&W8)gDV$Wg4WKxUcGki zdGNiyFh(P57;`7@RzJChp(TTM1LU5a;Hw%-G}?0D3+5??2`VY#nSUEbhSpC zx%2u;|9A}o2M)J?-g+8nS3hY-sr$KIGL}xe>Nhig=$jXmmi2Sp(BWRFw@2YQ??sHd znJZmu7;pG-Fzc<3yIjKVKiu=4T})mld7mKOhj~jm%RZy^FUl_=-@k|Xw%;mm+kU@$ zNq)|)fj#WhF535q;$K968hfmN4;vrk-0@K4()=m*NdF#oaXMFgGw{tN@Z__9>E6}z zOXz?32Kv*<_wQZaY3PsKw3Pl)@>76k@0#Fz**SaE(tHQ`>|45Lo$^5c#0~V1kni8K z#yL|zmZbO>wJ(Ky|DLrZeLLywQ@Tg>>^LANcO6(-FX!|Z_9$=KCh?@-KzA(p{yl0* zf5(u{zU0QHaq6uD()*6$T||!qnQ;|s5t+`+%aToUJMV5}KJ)G*AARt3^icEOzfqp& zy^!~wJM-n_wtQxI%xahDt|ez%B0}s9wLPsuc9xip{0fWhIGBNsQ1l$X!651 zGmp?Y-Tv~fChjPpj+?+~(FH8Hr_wkZ*T}eaa#zBG4skE!52{Y)kS!qxZRgXGA%Oi` zCbCD4e!qq_J+M(;M{e9g-QTq%Z*=(6(<6=S>LJ~fOO3S3L5s@2w*xyq#C-@~Az!CN z%B9X+V?R9Gl`CUa+^K}VyIki#<-EwyZsesCt4M>6-scL~BMao)*<6{N_t%Gv{5mim zV7|c~dJP+?sTUdg7qqX4zCVL~bRL_jNw=?&n@B$iJ?1@gjc6ZxcptCk`zQAl%BlMc zP1(!XT|L-xWyCIXqr}Ig0ULUVGn@x)v)FX6V&7F9W6crlJA8jBb&b4E{tJv}?}b9? zxl}0MJBf=b_1B%UMhX?4d{cMw8t#>X#)ZC00=_zP?s!nf+(aGUqOOk+8+&0zdi8pzE|mw*Os=+J-q?_ zi2OGA^8nw-9lW7GCdr3?d*I(o`iWR$jR*0-w|mb*?}Z!aP1?vlO+LED*c9|m-av06 z`S5K|km6m`&VfkLxDpS1yKnaaIhAqXhI)Z>knekY2?4SpV9VCvL!2?S;-&SMC_g=N*heh(IpVb^f;MnJK#5Ixx6*0a;0%L@ zFKUy6I{p0nlM8m~zr=pGm?pc{Y4Pv#BOAmws(rGE<{XQM&%+O9f^y{&>wigpCiwk) z_w=2_>lP`mSyX>I`F_58E+s-He9CJU<)@PG=ev6MuowQZIRBF^$p0xiZWjOT&(Gry z7hO+^HYpLd=7ET(h!lKfio{rp$pKeLAaEP}5g-_M6Xd4t&EH?<8V*T;1> zG{A@V$GpG$e2=zaQT`P9DXcyC@VWkVay3@luqfY4emME?^3%^*kOhAH z4LooXUblpP&W5-{pR|qRdr;nL#+mr}6U=M9U%L{&Cm;Sg4u3u0 zPCd;xz{imfpB;zKev;vk)7i>ruhZe~qJH@7cpAL4gEi5)lumaC`S9BDX7DFO$~n#j zEQTLXM+a%A41L;v)*%79sz}QOE(iX8!6Cn~y=&%aAitXYcJe!Ndz$`LpED z=gR5bg|uDy(;@oR&mU)Xp2Clj<3D+%P(ED^-(8%a13dD)kFzxAIDc}UGcbQgz8m>| z3c2+HXHM<}*Xvsk*;X)C8q4wn=AoW#|1zYAdv~yHt1O=xDVI4f6HJ+7@aw*II3e9I{pIj^JTT<~)(=N?|ow-ud~<7@{q`uCiVy5L(cmpP}i7CWO0zHZ75 zDK5$&r<-*6xu&0A#rHV}t-NFKa8tH_wS4|^u~j!b{j*n!NEcza`%5<%k?>Wn3 z(f8<_m6v7mj?hkb=W2^ic(}pY0iAc{Su`M%e|f({be>EP>RlyI(H9o1yKOanc#BmI z+1%t+XIpi)u9g$`SUB)U&)tJf^TLoH9zMH<_MB^8EuTHEWjITL-1|NEZJ7Q-&NXy2 zXEmEywOYvQ93Ht^*G?#|nR$ zNu{0qwp=Sc#h>o=r^9PMTXDe33(vLc9=!#gc)+478k>JLew!Mr?q#&eRUT^W6^8Cm z#f!aI+sYl%=heqt8Y=pJI^-$aKPfFv>-`9H?9un~2$TP5MxmU%iVc&yZo04Slq~vx z54eVHMbyo=Fu9BRDf}QOwlc4px$|Q~5wicihaci@23IS7=cpq2B5Ieoha=@>E%*2V z89H=8?nMUrB&33GU{W7+Y++n>DQ!*k4K@o`Po#7!PS!xls&d=iq|GEo$nY8>E2@p-Z$w8HkurJeFJWz1Qccz8z5W{C@V8rezvy4-f+WpwthcFOI1x6@SvTymaV zs@=>vrUTq35y>|x56BVPeKU9`8o1AdyF13}*U7`w-Hn{~Th`_8Ry||ux zj=D&EQ~0Dxz_%TJsE+dB@Fr~L+z)4c65-jOVjHhrhaMQty(iDuG#1B8nZ8Hh|L^TY z#w)iy&)(�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⋘zR*pHXUMv6ACgb14et(nkx$wrs&R40g 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 ReC7Fv;?aFe$+u#^{{i#)6zc#0 literal 307280 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

kK*-j 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 z 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 diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/Bounds.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/Bounds.o index b770e3240eec0553416ae4f27f38faace9b4115a..28794f8185f91d3a390468b9580f9d04c9e40dab 100644 GIT binary patch delta 379 zcmexh_rY#Lq}(Ldi6xg(gIQMnUZAF9CymIG8ATWGlYmSFiiNuEWfH0Xwo$%hKU(Tlk=GU8Pg{3 zW0vPch&^Kt28vm+Ad4ljfW)@3%;p1`$0(fL%g7J{bll{4)-WcZH@34zL1aY0GCA%0xGCx^O8z&+!@cvk!^DiL$$8BFjCGUu zG0Srz#GWw+1I4UZkj0W%Kw{fiX7ho}V-(KrWn>5eI&N}2YZw#I8{1i0TooUc}dkc?u=*T$mRv=dBO0*Jf4v=do2S)2%`bp=KE|DB>+{Qd0GGf diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/Constraints.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/Constraints.o index 4d47fe901918b4d885376008409ccbe8a226eaac..81352513fd913e9c5e19e1d46c6c5d475abc2ef3 100644 GIT binary patch delta 368 zcmdmBzrlV&q}(Ldi6xg!k zOhHT+SSKH5(gIQMnUZAF9CymIG8B6AGlYmSFiiNuEWfH0Xy`R2hKU(Tlk=GU8Pg{3 zW0vPch&^Kt28vm+Ad4ljfW)?;h}{E=8L@8W1KGhSoZZXF5CZhT{|fdK>@% delta 368 zcmdmBzrlV&q}(Ugi6usC6ElU_CfYMH{FDdc2h1X?7#J9)BrGzVSe|4CRKdV_z%~P_ zl7X?o7N(*MsNw;$7+Cc}peZo%g^LU)^D`z10j2*|Gp_vW%rFsbpb^{TW=1jDq zOhHTrY?BW&X@RKsOi8kJjyvU984A7m8A8Mu7$$sSmS0s0H1rx1!^DiL$$8BFjCGUu zG0Srz#GWw+1I4UZkj0W%Kw{fa#O{H`j954Gf$U%u&hBMo2myLv@@LjCCZNN-*`gpa VB48O%AZ%ufVlrae%+J110suMfc&-2d diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/CyclingManager.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/CyclingManager.o index ec3e83d112b8c5fb5ab67491ba92441035b3ffe3..321db37ef2508b0ed6b5311811aa298c40acbab1 100644 GIT binary patch delta 72 zcmZn=ZxEm0s=9??=K<#UYZ?p=J2@B_c51RX?Brx&*r~O}VW$Qo2e&*cLm}6ejal-H ctUwWtEtC5g?HRXhKF8?J$hd8@7;_c}05Yf+KmY&$ delta 72 zcmZn=ZxEm0s(OH7=K<#UYZ?p=J2@B_c51RX?Brx&*r|2EVW$Qo2e&*cLm}6Jjal-H ctUwWt1C#q0?HLbjKF8?J$arY87;_c}06W+glmGw# diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/EXTRAS/SolutionAnalysis.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/EXTRAS/SolutionAnalysis.o index 71cbd4ce3aa5afa17c4e24d735d7aacc2e248e97..1816ece0eddd64c27e120e93f960d7fc98ed27b0 100644 GIT binary patch delta 400 zcmeBB?oggk$>$WevnDHJXGd#O(9}h|lUFmVPF%ym-f^lqXqpiJ#NAqKU7bPGn*=7l z4sv?LH1WGU!_O7XQa?Hlu}*wp%wT}=`3!JZZDv=-ArnX zag!f0r2|PX=3q=O>B9Uo`95=y8qgar#DPu(c|jQJR9A#kX91l$8|c(<7EctXWMIDE<7dL0OSL5V&jQUK9Y?I}g)TFW) zJ|_SAAL7WsATpnsq3|pVL&$fa;@M4NljE5@g*}0qUjX?p>o}#exH-DLfZBF5sWE0v ze#DdxB)yn}F}Hp__xCNWsA=qit}qf=jKxcd6na4o;8v-tYT1 z{!@ONnwGL)#JiH;YNV)QILDTSpVg}Jq4xa>-zc?goYsbD@pw%#gLx{0>{={%qfHGA z*>VzgJ=Cgx{H6%ZNHVn+^P@PLWL_;E%#x--v2ccnlnQJFYNE`?6|odlOh1P!?KRWLzY z8?PwlPzk8i5IUgR9VGr99c+rbZfiv+^DZ)5?iOm*U9DajcNZ}h&}&kQx@B;cIlJVkrqimq0!?7kLO^%P%W#2${tDcc;iQbr zONpS?BgVq4ep}&~@se`TLyBs??|UY4M{5u!M6pEQ9_;k3#{Af6TRtu|ThaEYzl!tt zs(_%Fdz&5ezG#o0zJ#9G$>5@%PN69#K5xW%nB|}Q>QYkVAiASl5p3fN{Q{0xJNoPB EPw}-s=Kufz delta 983 zcmbVKO=uHA6rRm=b!XB1o4#gB6!Ihgx;)Cso=P!9>jyEVP?MfzMuC>@lw2$z8Xt< zpQ&D{^%kaMN+HEap_4bb;F{*96(Z74s7MbT7Q9guno2xf;mzd!erAQv)D6@UWhJEr zXCY-YETOC9rq=MDojCq@OqeJ(2QP_}M~PFc5Xf!U}RMnVKhN(u%F30nqi2QY0g>Cc1)@_;qrMgwe%YJr;l zCHiT1vc0^w7%A_KQSU1y6}w&(*-cCAQpIcyfH`J}Wb8T@^LLD@{I|L0>c~1H^jOCqa13)eMMzh-4X~~-=Q(r{LLTicUMcTRPWaulzi)|pc(B~uPEzYH7W*vAP;P%8=x3z1i}ri^fY z)2L?gCZqgiS>8?5%DY^>9PSQcOrzI`5_WRn%5iqil}*QGa|znSrUii3lIP$81s(Y{ zE^=^^L+06TpXHoZy^5E%9=!v}dht>E1nquNp+A0sS{BvI&N-`Wow^TEPZG54g L#qnxGeI5P@fI?gc diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/QProblem.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/QProblem.o index 81a50555553aa0c824744b3a2c655b8f873b91ad..0d79872a24f25ff23c2bbc9c625688cc378ab94e 100644 GIT binary patch literal 72200 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 a_stFxrL&tyrm+7;jo;pE-gX`##Jvds diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/QProblemB.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/QProblemB.o index a850439245f58ece16be232936b814c87d137aa3..9ad8900182e5091a0fe01fb22f71cef836fb7cb8 100644 GIT binary patch delta 15809 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 J4t{`V{x^6mgtPzv delta 15618 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�K9025rm0ng$mL8}l7N^n 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 YG2%&3ZJZ>A*77HCYk8ReW#gd#2U*^i$p8QV diff --git a/selfdrive/controls/lib/longitudinal_mpc/lib_qp/SubjectTo.o b/selfdrive/controls/lib/longitudinal_mpc/lib_qp/SubjectTo.o index 827237a682079f59cf69c6854b2793c5aa7e4ce9..f5b1695e756237f8b270ea403e31a236be826cc2 100644 GIT binary patch delta 341 zcmbOrH$iTKtLz$vzw!x;I}b3&U(;CQ@RMT=!%vL_$DQ)5422vC6O)uVH!@A!&&cqa zd&9&&amEc3mubs=V4BDc#BZ26S2;Ldv2k>~YSW|0@G-%0icO;9)QRua#DID@8MwN& zfY{qHbO#43!$)mL(aGA3a-5W!U60-D9p0`EJG5OHb|n7)9|H3T$Wsa|4E**i426t9 zPci^K>&?s%Vz0nZ_=1^HD~W+2Fi+$L;y28ks~j3H+c-8}vFTA{_?XZ**(R}Z%Eb3-Vn98d3|!q> zKX$nj!!W_+-@kGY8(03j22rT_o{ diff --git a/selfdrive/controls/lib/longitudinal_mpc/libmpc1.so b/selfdrive/controls/lib/longitudinal_mpc/libmpc1.so index 232e9a158b206c03d8b63330581123bd83cc9d5c..3e05e166d61fb9411f762a0ce680f2b2e0c2c000 100755 GIT binary patch literal 405136 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%0A?s_uEL+$I?2Y(0 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 TzUR&-+~%_UxD_wpf2;ax3s?n-;NrF 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⋘}h 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 U*J=JkugLr-BZ+aY_*d}%0gaw7`2YX_ diff --git a/selfdrive/controls/lib/longitudinal_mpc/libmpc_py.py b/selfdrive/controls/lib/longitudinal_mpc/libmpc_py.py index 36b6f8b7e..354a4a493 100644 --- a/selfdrive/controls/lib/longitudinal_mpc/libmpc_py.py +++ b/selfdrive/controls/lib/longitudinal_mpc/libmpc_py.py @@ -32,6 +32,7 @@ def _get_libmpc(mpc_id): double j_ego[21]; double x_l[21]; double v_l[21]; + double a_l[21]; double t[21]; double cost; } log_t; diff --git a/selfdrive/controls/lib/longitudinal_mpc/longitudinal_mpc.c b/selfdrive/controls/lib/longitudinal_mpc/longitudinal_mpc.c index c0b43e53c..e903ccc75 100644 --- a/selfdrive/controls/lib/longitudinal_mpc/longitudinal_mpc.c +++ b/selfdrive/controls/lib/longitudinal_mpc/longitudinal_mpc.c @@ -29,6 +29,7 @@ typedef struct { double j_ego[N+1]; double x_l[N+1]; double v_l[N+1]; + double a_l[N+1]; double t[N+1]; double cost; } log_t; @@ -68,17 +69,19 @@ void init(double ttcCost, double distanceCost, double accelerationCost, double j void init_with_simulation(double v_ego, double x_l_0, double v_l_0, double a_l_0, double l){ int i; - double x_ego = 0.0; - double a_ego = 0.0; double x_l = x_l_0; double v_l = v_l_0; double a_l = a_l_0; + double x_ego = 0.0; + double a_ego = -(v_ego - v_l) * (v_ego - v_l) / (2.0 * x_l + 0.01) + a_l; - if (v_ego > v_l){ - a_ego = -(v_ego - v_l) * (v_ego - v_l) / (2.0 * x_l + 0.01) + a_l; + if (a_ego > 0){ + a_ego = 0.0; } + + double dt = 0.2; double t = 0.; @@ -87,51 +90,66 @@ void init_with_simulation(double v_ego, double x_l_0, double v_l_0, double a_l_0 dt = 0.6; } - // Directly calculate a_l to prevent instabilites due to discretization - a_l = a_l_0 * exp(-l * t * t / 2); - - /* printf("x_e: %.2f\t v_e: %.2f\t a_e: %.2f\t", x_ego, v_ego, a_ego); */ - /* printf("x_l: %.2f\t v_l: %.2f\t a_l: %.2f\n", x_l, v_l, a_l); */ - + /* printf("%.2f\t%.2f\t%.2f\t%.2f\n", t, x_ego, v_ego, a_l); */ acadoVariables.x[i*NX] = x_ego; acadoVariables.x[i*NX+1] = v_ego; acadoVariables.x[i*NX+2] = a_ego; - acadoVariables.x[i*NX+3] = x_l; - acadoVariables.x[i*NX+4] = v_l; - acadoVariables.x[i*NX+5] = t; - - x_ego += v_ego * dt; v_ego += a_ego * dt; - x_l += v_l * dt; - v_l += a_l * dt; - t += dt; - if (v_ego <= 0.0) { v_ego = 0.0; a_ego = 0.0; } + + x_ego += v_ego * dt; + t += dt; } + for (i = 0; i < NU * N; ++i) acadoVariables.u[ i ] = 0.0; for (i = 0; i < NY * N; ++i) acadoVariables.y[ i ] = 0.0; for (i = 0; i < NYN; ++i) acadoVariables.yN[ i ] = 0.0; } int run_mpc(state_t * x0, log_t * solution, double l, double a_l_0){ + // Calculate lead vehicle predictions int i; + double t = 0.; + double dt = 0.2; + double x_l = x0->x_l; + double v_l = x0->v_l; + double a_l = a_l_0; - for (i = 0; i <= NOD * N; i+= NOD){ - acadoVariables.od[i] = l; - acadoVariables.od[i+1] = a_l_0; + /* printf("t\tx_l\t_v_l\t_al\n"); */ + for (i = 0; i < N + 1; ++i){ + if (i > 4){ + dt = 0.6; + } + + /* printf("%.2f\t%.2f\t%.2f\t%.2f\n", t, x_l, v_l, a_l); */ + + acadoVariables.od[i*NOD] = x_l; + acadoVariables.od[i*NOD+1] = v_l; + + solution->x_l[i] = x_l; + solution->v_l[i] = v_l; + solution->a_l[i] = a_l; + solution->t[i] = t; + + a_l = a_l_0 * exp(-l * t * t / 2); + x_l += v_l * dt; + v_l += a_l * dt; + if (v_l < 0.0){ + a_l = 0.0; + v_l = 0.0; + } + + t += dt; } acadoVariables.x[0] = acadoVariables.x0[0] = x0->x_ego; acadoVariables.x[1] = acadoVariables.x0[1] = x0->v_ego; acadoVariables.x[2] = acadoVariables.x0[2] = x0->a_ego; - acadoVariables.x[3] = acadoVariables.x0[3] = x0->x_l; - acadoVariables.x[4] = acadoVariables.x0[4] = x0->v_l; - acadoVariables.x[5] = acadoVariables.x0[5] = 0.0; acado_preparationStep(); acado_feedbackStep(); @@ -140,10 +158,6 @@ int run_mpc(state_t * x0, log_t * solution, double l, double a_l_0){ solution->x_ego[i] = acadoVariables.x[i*NX]; solution->v_ego[i] = acadoVariables.x[i*NX+1]; solution->a_ego[i] = acadoVariables.x[i*NX+2]; - solution->x_l[i] = acadoVariables.x[i*NX+3]; - solution->v_l[i] = acadoVariables.x[i*NX+4]; - solution->t[i] = acadoVariables.x[i*NX+5]; - solution->j_ego[i] = acadoVariables.u[i]; } solution->cost = acado_getObjective(); diff --git a/selfdrive/controls/lib/longitudinal_mpc/longitudinal_mpc.o b/selfdrive/controls/lib/longitudinal_mpc/longitudinal_mpc.o index e899d7b785a16fc3493732e4ba06fc5ececfd36d..3c0660d96d4a58b588737a596ee7f5591f8ae82b 100644 GIT binary patch literal 3136 zcmbVOT}%{L6h1Qx%j~L%KpUbs;DXJf?Yh;(k_ce|`H3Q?plJHg-I-;8ft}sW?x++@ z_=z@DwCyxa6K!HFO`BaxY}2GENqr#I2b=Vv4~>r%=ubp!3B_18VWsEJ-U-{$ed$eR z&%NLGopaB<_uLCZ4K0lJ767~-WjzVDeYkDTQnJVA0BtD3C5D3d^>PWK@qNEl zGk7w7U@4iD**X7`9=?u~`I6URxoo6pt(@7h zwtHmfnj@QA8+p2ZLa_PxI{W}Xp^;099bD4a#U+!2_3@PgPhz30R$1J8Cop62-dowq zui7xr-HZo$CZ1I(@(!oKliUeT@^5fTyaRbMzQA?z7mFmm9LIB(?(6vr)`Ld!9=$B`U7W~Uon8EHrbd}*POal^sgG~ue0(_vpP@#;+Qvg41BTjR;WocLo4Oum3Q zbNF4lS*v`5YuSu>lkpa`PCTm>3o~iM^Lm2&es0vRO;6ahzi|fR> zvy+gVwaNS}?kSUZp1+?D%fJczLl%;Y9gtjl3dyM}0iNUxcs?VxKK@9BfELdH?L8}K zPF(j=MSw5D{n^_b8O{14W}+}iqyG0ZQ9brG{dV$6zttdp1>`*!SO-NbT1 zuNg8&4D%dfxy5;a6Fr!B9AlI)wnZ7oZgXM~%a-&o#yl zw=LxC-2c#W{%c!>?c?5DZu|?@HXa!9u2u-3wJ?wfFrGxqNl5f%dlFN~lY2|*`)C{z z<4kShXc7`fc7axlwXWCq1dI2s32U|yYquf3>OCA^D67YsuEW}{RhACj4WO3YH#pxn1s3rz&(u_q8>&G}N{?cn`YW z`?}3Db`g$rn?Bn8mlKQiD~GvMwF_|Xh_QwAL09LR@__5O%s(p3BiZj5i~D8P2K z&&&Tisvpz$58x3ESx)_SAijzAiE+~YYlvIZ@Rw=7(u6ltoWx0=|8xfYCyE!KKK+z` zrZ{iHf1|iLp9iKm#yLNtxH-?qruc?_)fC5ALl)*invsuz_fXut-u?{u6vfT?e?@U) zABs}b!8FCq`QM_rk&mIDF~upRaqgJ(23}0hpX9%VYKb|YhHp;8htqIl&j{U2uN;Y! z_Ad^EDZU+X{9C`#ToEZCxKycM1(!dhC{j=bIVh{3NJ>;vLGTNmp$;J;3t~WuriNZ3 zkcEIeAhm}A_!fcGAEs0|B87#BpyKP)u1W^lB}tv4;P2BR;_W>rt3BSRtegqxT5ttJ zs^n^FJ^4yhMInvWEvd)FUdgY@XQdQ$DirC9h6TR_kuyQB681wN6zrDOGo9qgBY?{f zuBaMO1rhCA3bFbkycn$YRC^n^BB4$}6a+dnLO#Vbmnql8b>+1yl$xVNh(g?%PfPTRaU7`W$ SHjnxn_nY{UEiv*o*8eX&ZAeZ4 literal 3976 zcmbVOZERE589w*=+eu6av_mw#2~Ii@65OmzELCmc1VT`UE^89#)*r<8I@hs-KO);? zS+Whs=_mi3 z6JyAJ>`2GYxzByi``qV!kFR~A^Wc7-On#22f!Z_Tf!egVqxQ#QMeVeR@Kc)zc`e4fbL5{SV*W<5n}0pg?XeT} zLtWht&)`p;Cq^x~6T_HM%&;X#_juA@Q2CxjH;tj!pXln&1+on)R~;5ewItMSBn$kM zB$y3E-D^H3>@yDvoo2t#VGam&&yj_O@h!`Z++)j6j6c3?H<*{l@2&Jo7LU+@Nid}j zOJ44_Y<>4T!DBT!h!-GEr|M?=8%mCX)ZiHe@Y;WlHu8z=W&$Ne7N0rv|?uN&g77uZ#51-i#ucvSx@)Jb8qvOscL_R;>&F2$G zfG+@#0%f2NI0y^_qrhR{DDb<$B=9BRE5MV$*MUC-z6pE_mW<+J2cMv^n@-MQ2t)>f>| zSmW%bY*<%fjkBDp!MfU=JB{<5!ud|!<1@5Rbe`ZJnV%)3*Du$oFXOvV$64m-88o-@AS)6 z>i)LNV*AKtG1)dJPK?ZnXOVlF<~Al=QgYHMzmRZw&nH}Zn%iEjdie2TZo9dVJ0Ekcs5**iy{e~})vE@eKU<}~wCZP8Orv(IHM7A_@>OTQ4DCy-W@%_znPyt^ zMQcZM8;hEDQ&BT(ENa?~MNQdQ)U?~y*Q}wMC!PI1XuhlU37R&hnbmw!geGcBYnj5c z6n&bRPZRTLDr(CAL-SFp`F&^qAT-}&n)Z#Vr$+0a1zHKz(8_#Tm`^M7X<aGTm$i^IE~YRxqy>%&V1owKA_I zx&qV9K14SP-K$JD4c)C;Up2o~%x@+0TgCiVGQX9~Z)H&zXG=RvK0DL3Z+Ot}Fm$gm z-7Itkt+$$A8}n;per?RJjrpx&eyfVQILoWLUu3%SLv%->d!6apYgCV2>o4sq`pYM} zKQ+}pHE;UP#emH`Y29i4(Iju3403%-&t4{K3rBLn@xG;&!$8iRYsml&z~{JJ&;op$ z%N?t7=ccfi{_fTtCJW6uE;pHP&o$>su4x-l$MY+_^!?@$dHk++;CG=tbJw(Y3Ebwf z&F8y59DQ-mn{UwZ{+?Zh@sB;k8#ue~P>Ws4gz=`}}wv{*86`)^+%=uETe&!#@JPhOGJhJFe-7V^Utb z{#v0fglq->u;>3Zi*I46^hOXEjYS}jVSfc%Q`pYdUjffT3rq{++sgQ_GoI!t)%UN% z*CUROO~BGFH!@x*6*NghEOZ?NYQ{K2bEayvX2G?q+noF z>4^mKt{}?D5W6)LRfeRf6vx}6C$4C$Pf_}1$$P9o(cOLD48;9?u|Vi}unA3+jr2=#$>EK~+el--<0<;_CDJ(JXkDwz|GBz>eXKS2 zWf)=2t7hj#yIFQw`0i1z^gBpn-Sh*awY1r|E`I~kz2zL;=VynZnw>KfIJ(r*ZJ|LJ zivxFosy57N_yrehsNjy1%@VDHh<+HZr8KbZGc;$+~cZeO%H6O38=BegKYH Uyf5+{w*LYXqCjh`rPX}>7n_m4PXGV_ diff --git a/selfdrive/controls/lib/pathplanner.py b/selfdrive/controls/lib/pathplanner.py index 55fd2afae..0161d2f94 100644 --- a/selfdrive/controls/lib/pathplanner.py +++ b/selfdrive/controls/lib/pathplanner.py @@ -46,15 +46,18 @@ class PathPlanner(object): self.angle_steers_des_prev = 0.0 self.angle_steers_des_time = 0.0 - def update(self, CP, VM, CS, md, live100): + def update(self, CP, VM, CS, md, live100, live_parameters): v_ego = CS.carState.vEgo angle_steers = CS.carState.steeringAngle active = live100.live100.active - angle_offset = live100.live100.angleOffset + + angle_offset_bias = live100.live100.angleModelBias + live_parameters.liveParameters.angleOffsetAverage + self.MP.update(v_ego, md) # Run MPC self.angle_steers_des_prev = self.angle_steers_des_mpc + VM.update_params(live_parameters.liveParameters.stiffnessFactor, live_parameters.liveParameters.steerRatio) curvature_factor = VM.curvature_factor(v_ego) l_poly = libmpc_py.ffi.new("double[4]", list(self.MP.l_poly)) @@ -62,7 +65,7 @@ class PathPlanner(object): p_poly = libmpc_py.ffi.new("double[4]", list(self.MP.p_poly)) # account for actuation delay - self.cur_state = calc_states_after_delay(self.cur_state, v_ego, angle_steers, curvature_factor, CP.steerRatio, CP.steerActuatorDelay) + self.cur_state = calc_states_after_delay(self.cur_state, v_ego, angle_steers, curvature_factor, VM.sR, CP.steerActuatorDelay) v_ego_mpc = max(v_ego, 5.0) # avoid mpc roughness due to low speed self.libmpc.run_mpc(self.cur_state, self.mpc_solution, @@ -72,19 +75,22 @@ class PathPlanner(object): # reset to current steer angle if not active or overriding if active: delta_desired = self.mpc_solution[0].delta[1] + rate_desired = math.degrees(self.mpc_solution[0].rate[0] * VM.sR) else: - delta_desired = math.radians(angle_steers - angle_offset) / CP.steerRatio + delta_desired = math.radians(angle_steers - angle_offset_bias) / VM.sR + rate_desired = 0.0 self.cur_state[0].delta = delta_desired - self.angle_steers_des_mpc = float(math.degrees(delta_desired * CP.steerRatio) + angle_offset) + self.angle_steers_des_mpc = float(math.degrees(delta_desired * VM.sR) + angle_offset_bias) + # Check for infeasable MPC solution mpc_nans = np.any(np.isnan(list(self.mpc_solution[0].delta))) t = sec_since_boot() if mpc_nans: self.libmpc.init(MPC_COST_LAT.PATH, MPC_COST_LAT.LANE, MPC_COST_LAT.HEADING, CP.steerRateCost) - self.cur_state[0].delta = math.radians(angle_steers) / CP.steerRatio + self.cur_state[0].delta = math.radians(angle_steers) / VM.sR if t > self.last_cloudlog_t + 5.0: self.last_cloudlog_t = t @@ -108,7 +114,10 @@ class PathPlanner(object): plan_send.pathPlan.rPoly = map(float, r_poly) plan_send.pathPlan.rProb = float(self.MP.r_prob) plan_send.pathPlan.angleSteers = float(self.angle_steers_des_mpc) + plan_send.pathPlan.rateSteers = float(rate_desired) + plan_send.pathPlan.angleOffset = float(live_parameters.liveParameters.angleOffsetAverage) plan_send.pathPlan.valid = bool(plan_valid) + plan_send.pathPlan.paramsValid = bool(live_parameters.liveParameters.valid) self.plan.send(plan_send.to_bytes()) diff --git a/selfdrive/controls/lib/planner.py b/selfdrive/controls/lib/planner.py index e0a53e997..c26711f57 100755 --- a/selfdrive/controls/lib/planner.py +++ b/selfdrive/controls/lib/planner.py @@ -2,19 +2,18 @@ import zmq import math import numpy as np -from collections import defaultdict from common.params import Params -from common.realtime import sec_since_boot from common.numpy_fast import interp + import selfdrive.messaging as messaging from selfdrive.swaglog import cloudlog from selfdrive.config import Conversions as CV from selfdrive.services import service_list -from selfdrive.controls.lib.drive_helpers import create_event, MPC_COST_LONG, EventTypes as ET -from selfdrive.controls.lib.longitudinal_mpc import libmpc_py +from selfdrive.controls.lib.drive_helpers import create_event, EventTypes as ET from selfdrive.controls.lib.speed_smoother import speed_smoother from selfdrive.controls.lib.longcontrol import LongCtrlState, MIN_CAN_SPEED -from selfdrive.controls.lib.radar_helpers import _LEAD_ACCEL_TAU +from selfdrive.controls.lib.fcw import FCWChecker +from selfdrive.controls.lib.long_mpc import LongitudinalMpc NO_CURVATURE_SPEED = 200. * CV.MPH_TO_MS @@ -37,9 +36,6 @@ _A_CRUISE_MAX_BP = [0., 5., 10., 20., 40.] _A_TOTAL_MAX_V = [1.5, 1.9, 3.2] _A_TOTAL_MAX_BP = [0., 20., 40.] -_FCW_A_ACT_V = [-3., -2.] -_FCW_A_ACT_BP = [0., 30.] - def calc_cruise_accel_limits(v_ego, following): a_cruise_min = interp(v_ego, _A_CRUISE_MIN_BP, _A_CRUISE_MIN_V) @@ -65,182 +61,6 @@ def limit_accel_in_turns(v_ego, angle_steers, a_target, CP): return a_target -class FCWChecker(object): - def __init__(self): - self.reset_lead(0.0) - - def reset_lead(self, cur_time): - self.last_fcw_a = 0.0 - self.v_lead_max = 0.0 - self.lead_seen_t = cur_time - self.last_fcw_time = 0.0 - self.last_min_a = 0.0 - - self.counters = defaultdict(lambda: 0) - - @staticmethod - def calc_ttc(v_ego, a_ego, x_lead, v_lead, a_lead): - max_ttc = 5.0 - - v_rel = v_ego - v_lead - a_rel = a_ego - a_lead - - # assuming that closing gap ARel comes from lead vehicle decel, - # then limit ARel so that v_lead will get to zero in no sooner than t_decel. - # This helps underweighting ARel when v_lead is close to zero. - t_decel = 2. - a_rel = np.minimum(a_rel, v_lead / t_decel) - - # delta of the quadratic equation to solve for ttc - delta = v_rel**2 + 2 * x_lead * a_rel - - # assign an arbitrary high ttc value if there is no solution to ttc - if delta < 0.1 or (np.sqrt(delta) + v_rel < 0.1): - ttc = max_ttc - else: - ttc = np.minimum(2 * x_lead / (np.sqrt(delta) + v_rel), max_ttc) - return ttc - - def update(self, mpc_solution, cur_time, v_ego, a_ego, x_lead, v_lead, a_lead, y_lead, vlat_lead, fcw_lead, blinkers): - mpc_solution_a = list(mpc_solution[0].a_ego) - self.last_min_a = min(mpc_solution_a) - self.v_lead_max = max(self.v_lead_max, v_lead) - - if (fcw_lead > 0.99): - ttc = self.calc_ttc(v_ego, a_ego, x_lead, v_lead, a_lead) - self.counters['v_ego'] = self.counters['v_ego'] + 1 if v_ego > 5.0 else 0 - self.counters['ttc'] = self.counters['ttc'] + 1 if ttc < 2.5 else 0 - self.counters['v_lead_max'] = self.counters['v_lead_max'] + 1 if self.v_lead_max > 2.5 else 0 - self.counters['v_ego_lead'] = self.counters['v_ego_lead'] + 1 if v_ego > v_lead else 0 - self.counters['lead_seen'] = self.counters['lead_seen'] + 0.33 - self.counters['y_lead'] = self.counters['y_lead'] + 1 if abs(y_lead) < 1.0 else 0 - self.counters['vlat_lead'] = self.counters['vlat_lead'] + 1 if abs(vlat_lead) < 0.4 else 0 - self.counters['blinkers'] = self.counters['blinkers'] + 10.0 / (20 * 3.0) if not blinkers else 0 - - a_thr = interp(v_lead, _FCW_A_ACT_BP, _FCW_A_ACT_V) - a_delta = min(mpc_solution_a[:15]) - min(0.0, a_ego) - - fcw_allowed = all(c >= 10 for c in self.counters.values()) - if (self.last_min_a < -3.0 or a_delta < a_thr) and fcw_allowed and self.last_fcw_time + 5.0 < cur_time: - self.last_fcw_time = cur_time - self.last_fcw_a = self.last_min_a - return True - - return False - - -class LongitudinalMpc(object): - def __init__(self, mpc_id, live_longitudinal_mpc): - self.live_longitudinal_mpc = live_longitudinal_mpc - self.mpc_id = mpc_id - - self.setup_mpc() - self.v_mpc = 0.0 - self.v_mpc_future = 0.0 - self.a_mpc = 0.0 - self.v_cruise = 0.0 - self.prev_lead_status = False - self.prev_lead_x = 0.0 - self.new_lead = False - - self.last_cloudlog_t = 0.0 - - def send_mpc_solution(self, qp_iterations, calculation_time): - qp_iterations = max(0, qp_iterations) - dat = messaging.new_message() - dat.init('liveLongitudinalMpc') - dat.liveLongitudinalMpc.xEgo = list(self.mpc_solution[0].x_ego) - dat.liveLongitudinalMpc.vEgo = list(self.mpc_solution[0].v_ego) - dat.liveLongitudinalMpc.aEgo = list(self.mpc_solution[0].a_ego) - dat.liveLongitudinalMpc.xLead = list(self.mpc_solution[0].x_l) - dat.liveLongitudinalMpc.vLead = list(self.mpc_solution[0].v_l) - dat.liveLongitudinalMpc.cost = self.mpc_solution[0].cost - dat.liveLongitudinalMpc.aLeadTau = self.a_lead_tau - dat.liveLongitudinalMpc.qpIterations = qp_iterations - dat.liveLongitudinalMpc.mpcId = self.mpc_id - dat.liveLongitudinalMpc.calculationTime = calculation_time - self.live_longitudinal_mpc.send(dat.to_bytes()) - - def setup_mpc(self): - ffi, self.libmpc = libmpc_py.get_libmpc(self.mpc_id) - self.libmpc.init(MPC_COST_LONG.TTC, MPC_COST_LONG.DISTANCE, - MPC_COST_LONG.ACCELERATION, MPC_COST_LONG.JERK) - - self.mpc_solution = ffi.new("log_t *") - self.cur_state = ffi.new("state_t *") - self.cur_state[0].v_ego = 0 - self.cur_state[0].a_ego = 0 - self.a_lead_tau = _LEAD_ACCEL_TAU - - def set_cur_state(self, v, a): - self.cur_state[0].v_ego = v - self.cur_state[0].a_ego = a - - def update(self, CS, lead, v_cruise_setpoint): - v_ego = CS.carState.vEgo - - # Setup current mpc state - self.cur_state[0].x_ego = 0.0 - - if lead is not None and lead.status: - x_lead = lead.dRel - v_lead = max(0.0, lead.vLead) - a_lead = lead.aLeadK - - if (v_lead < 0.1 or -a_lead / 2.0 > v_lead): - v_lead = 0.0 - a_lead = 0.0 - - self.a_lead_tau = max(lead.aLeadTau, (a_lead**2 * math.pi) / (2 * (v_lead + 0.01)**2)) - self.new_lead = False - if not self.prev_lead_status or abs(x_lead - self.prev_lead_x) > 2.5: - self.libmpc.init_with_simulation(self.v_mpc, x_lead, v_lead, a_lead, self.a_lead_tau) - self.new_lead = True - - self.prev_lead_status = True - self.prev_lead_x = x_lead - self.cur_state[0].x_l = x_lead - self.cur_state[0].v_l = v_lead - else: - self.prev_lead_status = False - # Fake a fast lead car, so mpc keeps running - self.cur_state[0].x_l = 50.0 - self.cur_state[0].v_l = v_ego + 10.0 - a_lead = 0.0 - self.a_lead_tau = _LEAD_ACCEL_TAU - - # Calculate mpc - t = sec_since_boot() - n_its = self.libmpc.run_mpc(self.cur_state, self.mpc_solution, self.a_lead_tau, a_lead) - duration = int((sec_since_boot() - t) * 1e9) - self.send_mpc_solution(n_its, duration) - - # Get solution. MPC timestep is 0.2 s, so interpolation to 0.05 s is needed - self.v_mpc = self.mpc_solution[0].v_ego[1] - self.a_mpc = self.mpc_solution[0].a_ego[1] - self.v_mpc_future = self.mpc_solution[0].v_ego[10] - - # Reset if NaN or goes through lead car - dls = np.array(list(self.mpc_solution[0].x_l)) - np.array(list(self.mpc_solution[0].x_ego)) - crashing = min(dls) < -50.0 - nans = np.any(np.isnan(list(self.mpc_solution[0].v_ego))) - backwards = min(list(self.mpc_solution[0].v_ego)) < -0.01 - - if ((backwards or crashing) and self.prev_lead_status) or nans: - if t > self.last_cloudlog_t + 5.0: - self.last_cloudlog_t = t - cloudlog.warning("Longitudinal mpc %d reset - backwards: %s crashing: %s nan: %s" % ( - self.mpc_id, backwards, crashing, nans)) - - self.libmpc.init(MPC_COST_LONG.TTC, MPC_COST_LONG.DISTANCE, - MPC_COST_LONG.ACCELERATION, MPC_COST_LONG.JERK) - self.cur_state[0].v_ego = v_ego - self.cur_state[0].a_ego = 0.0 - self.v_mpc = v_ego - self.a_mpc = CS.carState.aEgo - self.prev_lead_status = False - - class Planner(object): def __init__(self, CP, fcw_enabled): context = zmq.Context() @@ -250,8 +70,6 @@ class Planner(object): self.plan = messaging.pub_sock(context, service_list['plan'].port) self.live_longitudinal_mpc = messaging.pub_sock(context, service_list['liveLongitudinalMpc'].port) - self.radar_errors = [] - self.mpc1 = LongitudinalMpc(1, self.live_longitudinal_mpc) self.mpc2 = LongitudinalMpc(2, self.live_longitudinal_mpc) @@ -264,19 +82,11 @@ class Planner(object): self.v_cruise = 0.0 self.a_cruise = 0.0 - self.lead_1 = None - self.lead_2 = None - self.longitudinalPlanSource = 'cruise' - self.fcw = False self.fcw_checker = FCWChecker() self.fcw_enabled = fcw_enabled self.params = Params() - self.v_curvature = NO_CURVATURE_SPEED - self.v_speedlimit = NO_CURVATURE_SPEED - self.decel_for_turn = False - self.map_valid = False def choose_solution(self, v_cruise_setpoint, enabled): if enabled: @@ -313,19 +123,15 @@ class Planner(object): force_slow_decel = live100.live100.forceDecel v_cruise_setpoint = v_cruise_kph * CV.KPH_TO_MS - self.last_md_ts = md.logMonoTime - - self.radar_errors = list(live20.live20.radarErrors) - - self.lead_1 = live20.live20.leadOne - self.lead_2 = live20.live20.leadTwo + lead_1 = live20.live20.leadOne + lead_2 = live20.live20.leadTwo enabled = (long_control_state == LongCtrlState.pid) or (long_control_state == LongCtrlState.stopping) - following = self.lead_1.status and self.lead_1.dRel < 45.0 and self.lead_1.vLeadK > v_ego and self.lead_1.aLeadK > 0.0 + following = lead_1.status and lead_1.dRel < 45.0 and lead_1.vLeadK > v_ego and lead_1.aLeadK > 0.0 - self.v_speedlimit = NO_CURVATURE_SPEED - self.v_curvature = NO_CURVATURE_SPEED - self.map_valid = live_map_data.liveMapData.mapValid + v_speedlimit = NO_CURVATURE_SPEED + v_curvature = NO_CURVATURE_SPEED + map_valid = live_map_data.liveMapData.mapValid # Speed limit and curvature set_speed_limit_active = self.params.get("LimitSetSpeed") == "1" and self.params.get("SpeedLimitOffset") is not None @@ -333,16 +139,16 @@ class Planner(object): if live_map_data.liveMapData.speedLimitValid: speed_limit = live_map_data.liveMapData.speedLimit offset = float(self.params.get("SpeedLimitOffset")) - self.v_speedlimit = speed_limit + offset + v_speedlimit = speed_limit + offset if live_map_data.liveMapData.curvatureValid: curvature = abs(live_map_data.liveMapData.curvature) a_y_max = 2.975 - v_ego * 0.0375 # ~1.85 @ 75mph, ~2.6 @ 25mph v_curvature = math.sqrt(a_y_max / max(1e-4, curvature)) - self.v_curvature = min(NO_CURVATURE_SPEED, v_curvature) + v_curvature = min(NO_CURVATURE_SPEED, v_curvature) - self.decel_for_turn = bool(self.v_curvature < min([v_cruise_setpoint, self.v_speedlimit, v_ego + 1.])) - v_cruise_setpoint = min([v_cruise_setpoint, self.v_curvature, self.v_speedlimit]) + decel_for_turn = bool(v_curvature < min([v_cruise_setpoint, v_speedlimit, v_ego + 1.])) + v_cruise_setpoint = min([v_cruise_setpoint, v_curvature, v_speedlimit]) # Calculate speed for normal cruise control if enabled: @@ -356,9 +162,9 @@ class Planner(object): accel_limits[0] = min(accel_limits[0], accel_limits[1]) # Change accel limits based on time remaining to turn - if self.decel_for_turn: + if decel_for_turn: time_to_turn = max(1.0, live_map_data.liveMapData.distToTurn / max(self.v_cruise, 1.)) - required_decel = min(0, (self.v_curvature - self.v_cruise) / time_to_turn) + required_decel = min(0, (v_curvature - self.v_cruise) / time_to_turn) accel_limits[0] = max(accel_limits[0], required_decel) self.v_cruise, self.a_cruise = speed_smoother(self.v_acc_start, self.a_acc_start, @@ -383,8 +189,8 @@ class Planner(object): self.mpc1.set_cur_state(self.v_acc_start, self.a_acc_start) self.mpc2.set_cur_state(self.v_acc_start, self.a_acc_start) - self.mpc1.update(CS, self.lead_1, v_cruise_setpoint) - self.mpc2.update(CS, self.lead_2, v_cruise_setpoint) + self.mpc1.update(CS, lead_1, v_cruise_setpoint) + self.mpc2.update(CS, lead_2, v_cruise_setpoint) self.choose_solution(v_cruise_setpoint, enabled) @@ -393,11 +199,11 @@ class Planner(object): self.fcw_checker.reset_lead(cur_time) blinkers = CS.carState.leftBlinker or CS.carState.rightBlinker - self.fcw = self.fcw_checker.update(self.mpc1.mpc_solution, cur_time, v_ego, CS.carState.aEgo, - self.lead_1.dRel, self.lead_1.vLead, self.lead_1.aLeadK, - self.lead_1.yRel, self.lead_1.vLat, - self.lead_1.fcw, blinkers) and not CS.carState.brakePressed - if self.fcw: + fcw = self.fcw_checker.update(self.mpc1.mpc_solution, cur_time, v_ego, CS.carState.aEgo, + lead_1.dRel, lead_1.vLead, lead_1.aLeadK, + lead_1.yRel, lead_1.vLat, + lead_1.fcw, blinkers) and not CS.carState.brakePressed + if fcw: cloudlog.info("FCW triggered %s", self.fcw_checker.counters) model_dead = cur_time - (md.logMonoTime / 1e9) > 0.5 @@ -409,8 +215,12 @@ class Planner(object): # TODO: Move all these events to controlsd. This has nothing to do with planning events = [] if model_dead: - events.append(create_event('modelCommIssue', [ET.NO_ENTRY, ET.IMMEDIATE_DISABLE])) - if 'fault' in self.radar_errors: + events.append(create_event('modelCommIssue', [ET.NO_ENTRY, ET.SOFT_DISABLE])) + + radar_errors = list(live20.live20.radarErrors) + if 'commIssue' in radar_errors: + events.append(create_event('radarCommIssue', [ET.NO_ENTRY, ET.SOFT_DISABLE])) + if 'fault' in radar_errors: events.append(create_event('radarFault', [ET.NO_ENTRY, ET.SOFT_DISABLE])) plan_send.plan.events = events @@ -428,12 +238,12 @@ class Planner(object): plan_send.plan.hasLead = self.mpc1.prev_lead_status plan_send.plan.longitudinalPlanSource = self.longitudinalPlanSource - plan_send.plan.vCurvature = self.v_curvature - plan_send.plan.decelForTurn = self.decel_for_turn - plan_send.plan.mapValid = self.map_valid + plan_send.plan.vCurvature = v_curvature + plan_send.plan.decelForTurn = decel_for_turn + plan_send.plan.mapValid = map_valid # Send out fcw - fcw = self.fcw and (self.fcw_enabled or long_control_state != LongCtrlState.off) + fcw = fcw and (self.fcw_enabled or long_control_state != LongCtrlState.off) plan_send.plan.fcw = fcw self.plan.send(plan_send.to_bytes()) diff --git a/selfdrive/controls/lib/vehicle_model.py b/selfdrive/controls/lib/vehicle_model.py index 95e3ef378..1dc77bf37 100755 --- a/selfdrive/controls/lib/vehicle_model.py +++ b/selfdrive/controls/lib/vehicle_model.py @@ -102,11 +102,18 @@ class VehicleModel(object): self.l = CP.wheelbase self.aF = CP.centerToFront self.aR = CP.wheelbase - CP.centerToFront - self.cF = CP.tireStiffnessFront - self.cR = CP.tireStiffnessRear - self.sR = CP.steerRatio self.chi = CP.steerRatioRear + self.cF_orig = CP.tireStiffnessFront + self.cR_orig = CP.tireStiffnessRear + self.update_params(1.0, CP.steerRatio) + + def update_params(self, stiffness_factor, steer_ratio): + """Update the vehicle model with a new stiffness factor and steer ratio""" + self.cF = stiffness_factor * self.cF_orig + self.cR = stiffness_factor * self.cR_orig + self.sR = steer_ratio + def steady_state_sol(self, sa, u): """Returns the steady state solution. diff --git a/selfdrive/controls/plannerd.py b/selfdrive/controls/plannerd.py index c6f9040b2..2a9537540 100755 --- a/selfdrive/controls/plannerd.py +++ b/selfdrive/controls/plannerd.py @@ -33,6 +33,7 @@ def plannerd_thread(): live20_sock = messaging.sub_sock(context, service_list['live20'].port, conflate=True, poller=poller) model_sock = messaging.sub_sock(context, service_list['model'].port, conflate=True, poller=poller) live_map_data_sock = messaging.sub_sock(context, service_list['liveMapData'].port, conflate=True, poller=poller) + live_parameters_sock = messaging.sub_sock(context, service_list['liveParameters'].port, conflate=True, poller=poller) car_state = messaging.new_message() car_state.init('carState') @@ -45,15 +46,23 @@ def plannerd_thread(): live_map_data = messaging.new_message() live_map_data.init('liveMapData') + live_parameters = messaging.new_message() + live_parameters.init('liveParameters') + live_parameters.liveParameters.valid = True + live_parameters.liveParameters.steerRatio = CP.steerRatio + live_parameters.liveParameters.stiffnessFactor = 1.0 + while True: for socket, event in poller.poll(): if socket is live100_sock: live100 = messaging.recv_one(socket) elif socket is car_state_sock: car_state = messaging.recv_one(socket) + elif socket is live_parameters_sock: + live_parameters = messaging.recv_one(socket) elif socket is model_sock: model = messaging.recv_one(socket) - PP.update(CP, VM, car_state, model, live100) + PP.update(CP, VM, car_state, model, live100, live_parameters) elif socket is live_map_data_sock: live_map_data = messaging.recv_one(socket) elif socket is live20_sock: diff --git a/selfdrive/controls/radard.py b/selfdrive/controls/radard.py index 3952a913a..4d44c96b9 100755 --- a/selfdrive/controls/radard.py +++ b/selfdrive/controls/radard.py @@ -3,8 +3,9 @@ import zmq import numpy as np import numpy.matlib import importlib -from collections import defaultdict +from collections import defaultdict, deque from fastcluster import linkage_vector + import selfdrive.messaging as messaging from selfdrive.services import service_list from selfdrive.controls.lib.latcontrol_helpers import calc_lookahead_offset @@ -65,6 +66,14 @@ def radard_thread(gctx=None): poller = zmq.Poller() model = messaging.sub_sock(context, service_list['model'].port, conflate=True, poller=poller) live100 = messaging.sub_sock(context, service_list['live100'].port, conflate=True, poller=poller) + live_parameters_sock = messaging.sub_sock(context, service_list['liveParameters'].port, conflate=True, poller=poller) + + # Default parameters + live_parameters = messaging.new_message() + live_parameters.init('liveParameters') + live_parameters.liveParameters.valid = True + live_parameters.liveParameters.steerRatio = CP.steerRatio + live_parameters.liveParameters.stiffnessFactor = 1.0 MP = ModelParser() RI = RadarInterface(CP) @@ -95,7 +104,8 @@ def radard_thread(gctx=None): # v_ego v_ego = None - v_ego_array = np.zeros([2, v_len]) + v_ego_hist_t = deque(maxlen=v_len) + v_ego_hist_v = deque(maxlen=v_len) v_ego_t_aligned = 0. rk = Ratekeeper(rate, print_delay_threshold=np.inf) @@ -115,6 +125,9 @@ def radard_thread(gctx=None): l100 = messaging.recv_one(socket) elif socket is model: md = messaging.recv_one(socket) + elif socket is live_parameters_sock: + live_parameters = messaging.recv_one(socket) + VM.update_params(live_parameters.liveParameters.stiffnessFactor, live_parameters.liveParameters.steerRatio) if l100 is not None: active = l100.live100.active @@ -122,8 +135,8 @@ def radard_thread(gctx=None): steer_angle = l100.live100.angleSteers steer_override = l100.live100.steerOverride - v_ego_array = np.append(v_ego_array, [[v_ego], [float(rk.frame)/rate]], 1) - v_ego_array = v_ego_array[:, 1:] + v_ego_hist_v.append(v_ego) + v_ego_hist_t.append(float(rk.frame)/rate) last_l100_ts = l100.logMonoTime @@ -165,7 +178,7 @@ def radard_thread(gctx=None): path_y = np.polyval(MP.d_poly, path_x) else: # use path from steer, set angle_offset to 0 it does not only report the physical offset - path_y = calc_lookahead_offset(v_ego, steer_angle, path_x, VM, angle_offset=0)[0] + path_y = calc_lookahead_offset(v_ego, steer_angle, path_x, VM, angle_offset=live_parameters.liveParameters.angleOffsetAverage)[0] # *** remove missing points from meta data *** for ids in tracks.keys(): @@ -181,7 +194,8 @@ def radard_thread(gctx=None): # align v_ego by a fixed time to align it with the radar measurement cur_time = float(rk.frame)/rate - v_ego_t_aligned = np.interp(cur_time - RI.delay, v_ego_array[1], v_ego_array[0]) + v_ego_t_aligned = np.interp(cur_time - RI.delay, v_ego_hist_t, v_ego_hist_v) + d_path = np.sqrt(np.amin((path_x - rpt[0]) ** 2 + (path_y - rpt[1]) ** 2)) # add sign d_path *= np.sign(rpt[1] - np.interp(rpt[0], path_x, path_y)) diff --git a/selfdrive/crash.py b/selfdrive/crash.py index 20003ee9f..94bdfd125 100644 --- a/selfdrive/crash.py +++ b/selfdrive/crash.py @@ -1,6 +1,7 @@ """Install exception handler for process crash.""" import os import sys +import threading from selfdrive.version import version, dirty from selfdrive.swaglog import cloudlog @@ -38,3 +39,25 @@ else: capture_exception(exc_info=exc_info) __excepthook__(*exc_info) sys.excepthook = handle_exception + + """ + Workaround for `sys.excepthook` thread bug from: + http://bugs.python.org/issue1230540 + Call once from the main thread before creating any threads. + Source: https://stackoverflow.com/a/31622038 + """ + init_original = threading.Thread.__init__ + + def init(self, *args, **kwargs): + init_original(self, *args, **kwargs) + run_original = self.run + + def run_with_except_hook(*args2, **kwargs2): + try: + run_original(*args2, **kwargs2) + except Exception: + sys.excepthook(*sys.exc_info()) + + self.run = run_with_except_hook + + threading.Thread.__init__ = init diff --git a/selfdrive/locationd/kalman/__init__.py b/selfdrive/locationd/kalman/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/selfdrive/locationd/kalman/ekf_c.c b/selfdrive/locationd/kalman/ekf_c.c new file mode 100644 index 000000000..1331036de --- /dev/null +++ b/selfdrive/locationd/kalman/ekf_c.c @@ -0,0 +1,124 @@ +#include +#include + +typedef Eigen::Matrix DDM; +typedef Eigen::Matrix EEM; +typedef Eigen::Matrix DEM; + +void predict(double *in_x, double *in_P, double *in_Q, double dt) { + typedef Eigen::Matrix RRM; + + double nx[DIM] = {0}; + double in_F[EDIM*EDIM] = {0}; + + // functions from sympy + f_fun(in_x, dt, nx); + F_fun(in_x, dt, in_F); + + + EEM F(in_F); + EEM P(in_P); + EEM Q(in_Q); + + RRM F_main = F.topLeftCorner(MEDIM, MEDIM); + P.topLeftCorner(MEDIM, MEDIM) = (F_main * P.topLeftCorner(MEDIM, MEDIM)) * F_main.transpose(); + P.topRightCorner(MEDIM, EDIM - MEDIM) = F_main * P.topRightCorner(MEDIM, EDIM - MEDIM); + P.bottomLeftCorner(EDIM - MEDIM, MEDIM) = P.bottomLeftCorner(EDIM - MEDIM, MEDIM) * F_main.transpose(); + + P = P + dt*Q; + + // copy out state + memcpy(in_x, nx, DIM * sizeof(double)); + memcpy(in_P, P.data(), EDIM * EDIM * sizeof(double)); +} + +// note: extra_args dim only correct when null space projecting +// otherwise 1 +template +void update(double *in_x, double *in_P, Hfun h_fun, Hfun H_fun, Hfun Hea_fun, double *in_z, double *in_R, double *in_ea, double MAHA_THRESHOLD) { + typedef Eigen::Matrix ZZM; + typedef Eigen::Matrix ZDM; + typedef Eigen::Matrix ZEM; + typedef Eigen::Matrix XEM; + typedef Eigen::Matrix EZM; + typedef Eigen::Matrix X1M; + typedef Eigen::Matrix XXM; + + double in_hx[ZDIM] = {0}; + double in_H[ZDIM * DIM] = {0}; + double in_H_mod[EDIM * DIM] = {0}; + double delta_x[EDIM] = {0}; + double x_new[DIM] = {0}; + + + // state x, P + Eigen::Matrix z(in_z); + EEM P(in_P); + ZZM pre_R(in_R); + + // functions from sympy + h_fun(in_x, in_ea, in_hx); + H_fun(in_x, in_ea, in_H); + ZDM pre_H(in_H); + + // get y (y = z - hx) + Eigen::Matrix pre_y(in_hx); pre_y = z - pre_y; + X1M y; XXM H; XXM R; + if (Hea_fun){ + typedef Eigen::Matrix ZAM; + double in_Hea[ZDIM * EADIM] = {0}; + Hea_fun(in_x, in_ea, in_Hea); + ZAM Hea(in_Hea); + XXM A = Hea.transpose().fullPivLu().kernel(); + + + y = A.transpose() * pre_y; + H = A.transpose() * pre_H; + R = A.transpose() * pre_R * A; + } else { + y = pre_y; + H = pre_H; + R = pre_R; + } + // get modified H + H_mod_fun(in_x, in_H_mod); + DEM H_mod(in_H_mod); + XEM H_err = H * H_mod; + + // Do mahalobis distance test + if (MAHA_TEST){ + XXM a = (H_err * P * H_err.transpose() + R).inverse(); + double maha_dist = y.transpose() * a * y; + if (maha_dist > MAHA_THRESHOLD){ + R = 1.0e16 * R; + } + } + + // Outlier resilient weighting + double weight = 1;//(1.5)/(1 + y.squaredNorm()/R.sum()); + + // kalman gains and I_KH + XXM S = ((H_err * P) * H_err.transpose()) + R/weight; + XEM KT = S.fullPivLu().solve(H_err * P.transpose()); + //EZM K = KT.transpose(); TODO: WHY DOES THIS NOT COMPILE? + //EZM K = S.fullPivLu().solve(H_err * P.transpose()).transpose(); + //std::cout << "Here is the matrix rot:\n" << K << std::endl; + EEM I_KH = Eigen::Matrix::Identity() - (KT.transpose() * H_err); + + // update state by injecting dx + Eigen::Matrix dx(delta_x); + dx = (KT.transpose() * y); + memcpy(delta_x, dx.data(), EDIM * sizeof(double)); + err_fun(in_x, delta_x, x_new); + Eigen::Matrix x(x_new); + + // update cov + P = ((I_KH * P) * I_KH.transpose()) + ((KT.transpose() * R) * KT); + + // copy out state + memcpy(in_x, x.data(), DIM * sizeof(double)); + memcpy(in_P, P.data(), EDIM * EDIM * sizeof(double)); + memcpy(in_z, y.data(), y.rows() * sizeof(double)); +} + + diff --git a/selfdrive/locationd/kalman/ekf_sym.py b/selfdrive/locationd/kalman/ekf_sym.py new file mode 100644 index 000000000..2dfefe92d --- /dev/null +++ b/selfdrive/locationd/kalman/ekf_sym.py @@ -0,0 +1,564 @@ +import os +from bisect import bisect_right +import sympy as sp +import numpy as np +from numpy import dot +from common.ffi_wrapper import compile_code, wrap_compiled +from common.sympy_helpers import sympy_into_c +import scipy +from scipy.stats import chi2 + + +EXTERNAL_PATH = os.path.dirname(os.path.abspath(__file__)) + +def solve(a, b): + if a.shape[0] == 1 and a.shape[1] == 1: + #assert np.allclose(b/a[0][0], np.linalg.solve(a, b)) + return b/a[0][0] + else: + return np.linalg.solve(a, b) + +def null(H, eps=1e-12): + from scipy import linalg + u, s, vh = linalg.svd(H) + padding = max(0,np.shape(H)[1]-np.shape(s)[0]) + null_mask = np.concatenate(((s <= eps), np.ones((padding,),dtype=bool)),axis=0) + null_space = scipy.compress(null_mask, vh, axis=0) + return scipy.transpose(null_space) + +def gen_code(name, f_sym, dt_sym, x_sym, obs_eqs, dim_x, dim_err, eskf_params=None, msckf_params=None, maha_test_kinds=[]): + # optional state transition matrix, H modifier + # and err_function if an error-state kalman filter (ESKF) + # is desired. Best described in "Quaternion kinematics + # for the error-state Kalman filter" by Joan Sola + + if eskf_params: + err_eqs = eskf_params[0] + inv_err_eqs = eskf_params[1] + H_mod_sym = eskf_params[2] + f_err_sym = eskf_params[3] + x_err_sym = eskf_params[4] + else: + nom_x = sp.MatrixSymbol('nom_x',dim_x,1) + true_x = sp.MatrixSymbol('true_x',dim_x,1) + delta_x = sp.MatrixSymbol('delta_x',dim_x,1) + err_function_sym = sp.Matrix(nom_x + delta_x) + inv_err_function_sym = sp.Matrix(true_x - nom_x) + err_eqs = [err_function_sym, nom_x, delta_x] + inv_err_eqs = [inv_err_function_sym, nom_x, true_x] + + H_mod_sym = sp.Matrix(np.eye(dim_x)) + f_err_sym = f_sym + x_err_sym = x_sym + + # This configures the multi-state augmentation + # needed for EKF-SLAM with MSCKF (Mourikis et al 2007) + if msckf_params: + msckf = True + dim_main = msckf_params[0] # size of the main state + dim_augment = msckf_params[1] # size of one augment state chunk + dim_main_err = msckf_params[2] + dim_augment_err = msckf_params[3] + N = msckf_params[4] + feature_track_kinds = msckf_params[5] + assert dim_main + dim_augment*N == dim_x + assert dim_main_err + dim_augment_err*N == dim_err + else: + msckf = False + dim_main = dim_x + dim_augment = 0 + dim_main_err = dim_err + dim_augment_err = 0 + N = 0 + + # linearize with jacobians + F_sym = f_err_sym.jacobian(x_err_sym) + for sym in x_err_sym: + F_sym = F_sym.subs(sym, 0) + for i in xrange(len(obs_eqs)): + obs_eqs[i].append(obs_eqs[i][0].jacobian(x_sym)) + if msckf and obs_eqs[i][1] in feature_track_kinds: + obs_eqs[i].append(obs_eqs[i][0].jacobian(obs_eqs[i][2])) + else: + obs_eqs[i].append(None) + + # collect sympy functions + sympy_functions = [] + + # error functions + sympy_functions.append(('err_fun', err_eqs[0], [err_eqs[1], err_eqs[2]])) + sympy_functions.append(('inv_err_fun', inv_err_eqs[0], [inv_err_eqs[1], inv_err_eqs[2]])) + + # H modifier for ESKF updates + sympy_functions.append(('H_mod_fun', H_mod_sym, [x_sym])) + + # state propagation function + sympy_functions.append(('f_fun', f_sym, [x_sym, dt_sym])) + sympy_functions.append(('F_fun', F_sym, [x_sym, dt_sym])) + + # observation functions + for h_sym, kind, ea_sym, H_sym, He_sym in obs_eqs: + sympy_functions.append(('h_%d' % kind, h_sym, [x_sym, ea_sym])) + sympy_functions.append(('H_%d' % kind, H_sym, [x_sym, ea_sym])) + if msckf and kind in feature_track_kinds: + sympy_functions.append(('He_%d' % kind, He_sym, [x_sym, ea_sym])) + + # Generate and wrap all th c code + header, code = sympy_into_c(sympy_functions) + extra_header = "#define DIM %d\n" % dim_x + extra_header += "#define EDIM %d\n" % dim_err + extra_header += "#define MEDIM %d\n" % dim_main_err + extra_header += "typedef void (*Hfun)(double *, double *, double *);\n" + + extra_header += "\nvoid predict(double *x, double *P, double *Q, double dt);" + + extra_post = "" + + for h_sym, kind, ea_sym, H_sym, He_sym in obs_eqs: + if msckf and kind in feature_track_kinds: + He_str = 'He_%d' % kind + # ea_dim = ea_sym.shape[0] + else: + He_str = 'NULL' + # ea_dim = 1 # not really dim of ea but makes c function work + maha_thresh = chi2.ppf(0.95, int(h_sym.shape[0])) # mahalanobis distance for outlier detection + maha_test = kind in maha_test_kinds + extra_post += """ + void update_%d(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) { + update<%d,%d,%d>(in_x, in_P, h_%d, H_%d, %s, in_z, in_R, in_ea, MAHA_THRESH_%d); + } + """ % (kind, h_sym.shape[0], 3, maha_test, kind, kind, He_str, kind) + extra_header += "\nconst static double MAHA_THRESH_%d = %f;" % (kind, maha_thresh) + extra_header += "\nvoid update_%d(double *, double *, double *, double *, double *);" % kind + + code += "\n" + extra_header + code += "\n" + open(os.path.join(EXTERNAL_PATH, "ekf_c.c")).read() + code += "\n" + extra_post + header += "\n" + extra_header + compile_code(name, code, header, EXTERNAL_PATH) + +class EKF_sym(object): + def __init__(self, name, Q, x_initial, P_initial, dim_main, dim_main_err, + N=0, dim_augment=0, dim_augment_err=0, maha_test_kinds=[]): + ''' + Generates process function and all + observation functions for the kalman + filter. + ''' + if N > 0: + self.msckf = True + else: + self.msckf = False + self.N = N + self.dim_augment = dim_augment + self.dim_augment_err = dim_augment_err + self.dim_main = dim_main + self.dim_main_err = dim_main_err + + # state + x_initial = x_initial.reshape((-1, 1)) + self.dim_x = x_initial.shape[0] + self.dim_err = P_initial.shape[0] + assert dim_main + dim_augment*N == self.dim_x + assert dim_main_err + dim_augment_err*N == self.dim_err + + # kinds that should get mahalanobis distance + # tested for outlier rejection + self.maha_test_kinds = maha_test_kinds + + # process noise + self.Q = Q + + # rewind stuff + self.rewind_t = [] + self.rewind_states = [] + self.rewind_obscache = [] + self.init_state(x_initial, P_initial, None) + + ffi, lib = wrap_compiled(name, EXTERNAL_PATH) + kinds, self.feature_track_kinds = [], [] + for func in dir(lib): + if func[:2] == 'h_': + kinds.append(int(func[2:])) + if func[:3] == 'He_': + self.feature_track_kinds.append(int(func[3:])) + + # wrap all the sympy functions + def wrap_1lists(name): + func = eval("lib.%s" % name, {"lib":lib}) + def ret(lst1, out): + func(ffi.cast("double *", lst1.ctypes.data), + ffi.cast("double *", out.ctypes.data)) + return ret + def wrap_2lists(name): + func = eval("lib.%s" % name, {"lib":lib}) + def ret(lst1, lst2, out): + func(ffi.cast("double *", lst1.ctypes.data), + ffi.cast("double *", lst2.ctypes.data), + ffi.cast("double *", out.ctypes.data)) + return ret + def wrap_1list_1float(name): + func = eval("lib.%s" % name, {"lib":lib}) + def ret(lst1, fl, out): + func(ffi.cast("double *", lst1.ctypes.data), + ffi.cast("double", fl), + ffi.cast("double *", out.ctypes.data)) + return ret + + self.f = wrap_1list_1float("f_fun") + self.F = wrap_1list_1float("F_fun") + + self.err_function = wrap_2lists("err_fun") + self.inv_err_function = wrap_2lists("inv_err_fun") + self.H_mod = wrap_1lists("H_mod_fun") + + self.hs, self.Hs, self.Hes = {}, {}, {} + for kind in kinds: + self.hs[kind] = wrap_2lists("h_%d" % kind) + self.Hs[kind] = wrap_2lists("H_%d" % kind) + if self.msckf and kind in self.feature_track_kinds: + self.Hes[kind] = wrap_2lists("He_%d" % kind) + + # wrap the C++ predict function + def _predict_blas(x, P, dt): + lib.predict(ffi.cast("double *", x.ctypes.data), + ffi.cast("double *", P.ctypes.data), + ffi.cast("double *", self.Q.ctypes.data), + ffi.cast("double", dt)) + return x, P + + # wrap the C++ update function + def fun_wrapper(f, kind): + f = eval("lib.%s" % f, {"lib": lib}) + def _update_inner_blas(x, P, z, R, extra_args): + f(ffi.cast("double *", x.ctypes.data), + ffi.cast("double *", P.ctypes.data), + ffi.cast("double *", z.ctypes.data), + ffi.cast("double *", R.ctypes.data), + ffi.cast("double *", extra_args.ctypes.data)) + if self.msckf and kind in self.feature_track_kinds: + y = z[:-len(extra_args)] + else: + y = z + return x, P, y + return _update_inner_blas + + self._updates = {} + for kind in kinds: + self._updates[kind] = fun_wrapper("update_%d" % kind, kind) + + def _update_blas(x, P, kind, z, R, extra_args=[]): + return self._updates[kind](x, P, z, R, extra_args) + + # assign the functions + self._predict = _predict_blas + #self._predict = self._predict_python + self._update = _update_blas + #self._update = self._update_python + + + def init_state(self, state, covs, filter_time): + self.x = np.array(state.reshape((-1, 1))).astype(np.float64) + self.P = np.array(covs).astype(np.float64) + self.filter_time = filter_time + self.augment_times = [0]*self.N + self.rewind_obscache = [] + self.rewind_t = [] + self.rewind_states = [] + + def augment(self): + # TODO this is not a generalized way of doing + # this and implies that the augmented states + # are simply the first (dim_augment_state) + # elements of the main state. + assert self.msckf + d1 = self.dim_main + d2 = self.dim_main_err + d3 = self.dim_augment + d4 = self.dim_augment_err + # push through augmented states + self.x[d1:-d3] = self.x[d1+d3:] + self.x[-d3:] = self.x[:d3] + assert self.x.shape == (self.dim_x, 1) + # push through augmented covs + assert self.P.shape == (self.dim_err, self.dim_err) + P_reduced = self.P + P_reduced = np.delete(P_reduced, np.s_[d2:d2+d4], axis=1) + P_reduced = np.delete(P_reduced, np.s_[d2:d2+d4], axis=0) + assert P_reduced.shape == (self.dim_err -d4, self.dim_err -d4) + to_mult = np.zeros((self.dim_err, self.dim_err - d4)) + to_mult[:-d4,:] = np.eye(self.dim_err - d4) + to_mult[-d4:,:d4] = np.eye(d4) + self.P = to_mult.dot(P_reduced.dot(to_mult.T)) + self.augment_times = self.augment_times[1:] + self.augment_times.append(self.filter_time) + assert self.P.shape == (self.dim_err, self.dim_err) + + def state(self): + return np.array(self.x).flatten() + + def covs(self): + return self.P + + def rewind(self, t): + # find where we are rewinding to + idx = bisect_right(self.rewind_t, t) + assert self.rewind_t[idx-1] <= t + assert self.rewind_t[idx] > t # must be true, or rewind wouldn't be called + + # set the state to the time right before that + self.filter_time = self.rewind_t[idx-1] + self.x[:] = self.rewind_states[idx-1][0] + self.P[:] = self.rewind_states[idx-1][1] + + # return the observations we rewound over for fast forwarding + ret = self.rewind_obscache[idx:] + + # throw away the old future + # TODO: is this making a copy? + self.rewind_t = self.rewind_t[:idx] + self.rewind_states = self.rewind_states[:idx] + self.rewind_obscache = self.rewind_obscache[:idx] + + return ret + + def checkpoint(self, obs): + # push to rewinder + self.rewind_t.append(self.filter_time) + self.rewind_states.append((np.copy(self.x), np.copy(self.P))) + self.rewind_obscache.append(obs) + + # only keep a certain number around + REWIND_TO_KEEP = 512 + self.rewind_t = self.rewind_t[-REWIND_TO_KEEP:] + self.rewind_states = self.rewind_states[-REWIND_TO_KEEP:] + self.rewind_obscache = self.rewind_obscache[-REWIND_TO_KEEP:] + + def predict_and_update_batch(self, t, kind, z, R, extra_args=[[]], augment=False): + # TODO handle rewinding at this level" + + # rewind + if t < self.filter_time: + if len(self.rewind_t) == 0 or t < self.rewind_t[0] or t < self.rewind_t[-1] -1.0: + print "observation too old at %.3f with filter at %.3f, ignoring" % (t, self.filter_time) + return None + rewound = self.rewind(t) + else: + rewound = [] + + ret = self._predict_and_update_batch(t, kind, z, R, extra_args, augment) + + # optional fast forward + for r in rewound: + self._predict_and_update_batch(*r) + + return ret + + def _predict_and_update_batch(self, t, kind, z, R, extra_args, augment=False): + """The main kalman filter function + Predicts the state and then updates a batch of observations + + dim_x: dimensionality of the state space + dim_z: dimensionality of the observation and depends on kind + n: number of observations + + Args: + t (float): Time of observation + kind (int): Type of observation + z (vec [n,dim_z]): Measurements + R (mat [n,dim_z, dim_z]): Measurement Noise + extra_args (list, [n]): Values used in H computations + """ + # initialize time + if self.filter_time is None: + self.filter_time = t + + # predict + dt = t - self.filter_time + assert dt >= 0 + self.x, self.P = self._predict(self.x, self.P, dt) + self.filter_time = t + xk_km1, Pk_km1 = np.copy(self.x).flatten(), np.copy(self.P) + + # update batch + y = [] + for i in xrange(len(z)): + # these are from the user, so we canonicalize them + z_i = np.array(z[i], dtype=np.float64, order='F') + R_i = np.array(R[i], dtype=np.float64, order='F') + extra_args_i = np.array(extra_args[i], dtype=np.float64, order='F') + # update + self.x, self.P, y_i = self._update(self.x, self.P, kind, z_i, R_i, extra_args=extra_args_i) + y.append(y_i) + xk_k, Pk_k = np.copy(self.x).flatten(), np.copy(self.P) + + if augment: + self.augment() + + # checkpoint + self.checkpoint((t, kind, z, R, extra_args)) + + return xk_km1, xk_k, Pk_km1, Pk_k, t, kind, y, z, extra_args + + def _predict_python(self, x, P, dt): + x_new = np.zeros(x.shape, dtype=np.float64) + self.f(x, dt, x_new) + + F = np.zeros(P.shape, dtype=np.float64) + self.F(x, dt, F) + + if not self.msckf: + P = dot(dot(F, P), F.T) + else: + # Update the predicted state covariance: + # Pk+1|k = |F*Pii*FT + Q*dt F*Pij | + # |PijT*FT Pjj | + # Where F is the jacobian of the main state + # predict function, Pii is the main state's + # covariance and Q its process noise. Pij + # is the covariance between the augmented + # states and the main state. + # + d2 = self.dim_main_err # known at compile time + F_curr = F[:d2, :d2] + P[:d2, :d2] = (F_curr.dot(P[:d2, :d2])).dot(F_curr.T) + P[:d2, d2:] = F_curr.dot(P[:d2, d2:]) + P[d2:, :d2] = P[d2:, :d2].dot(F_curr.T) + + P += dt*self.Q + return x_new, P + + def _update_python(self, x, P, kind, z, R, extra_args=[]): + # init vars + z = z.reshape((-1, 1)) + h = np.zeros(z.shape, dtype=np.float64) + H = np.zeros((z.shape[0], self.dim_x), dtype=np.float64) + + # C functions + self.hs[kind](x, extra_args, h) + self.Hs[kind](x, extra_args, H) + + # y is the "loss" + y = z - h + + # *** same above this line *** + + if self.msckf and kind in self.Hes: + # Do some algebraic magic to decorrelate + He = np.zeros((z.shape[0], len(extra_args)), dtype=np.float64) + self.Hes[kind](x, extra_args, He) + + # TODO: Don't call a function here, do projection locally + A = null(He.T) + + y = A.T.dot(y) + H = A.T.dot(H) + R = A.T.dot(R.dot(A)) + + # TODO If nullspace isn't the dimension we want + if A.shape[1] + He.shape[1] != A.shape[0]: + print 'Warning: null space projection failed, measurement ignored' + return x, P, np.zeros(A.shape[0] - He.shape[1]) + + # if using eskf + H_mod = np.zeros((x.shape[0], P.shape[0]), dtype=np.float64) + self.H_mod(x, H_mod) + H = H.dot(H_mod) + + # Do mahalobis distance test + # currently just runs on msckf observations + # could run on anything if needed + if self.msckf and kind in self.maha_test_kinds: + a = np.linalg.inv(H.dot(P).dot(H.T) + R) + maha_dist = y.T.dot(a.dot(y)) + if maha_dist > chi2.ppf(0.95, y.shape[0]): + R = 10e16*R + + # *** same below this line *** + + # Outlier resilient weighting as described in: + # "A Kalman Filter for Robust Outlier Detection - Jo-Anne Ting, ..." + weight = 1 #(1.5)/(1 + np.sum(y**2)/np.sum(R)) + + S = dot(dot(H, P), H.T) + R/weight + K = solve(S, dot(H, P.T)).T + I_KH = np.eye(P.shape[0]) - dot(K, H) + + # update actual state + delta_x = dot(K, y) + P = dot(dot(I_KH, P), I_KH.T) + dot(dot(K, R), K.T) + + # inject observed error into state + x_new = np.zeros(x.shape, dtype=np.float64) + self.err_function(x, delta_x, x_new) + return x_new, P, y.flatten() + + def maha_test(self, x, P, kind, z, R, extra_args=[], maha_thresh=0.95): + # init vars + z = z.reshape((-1, 1)) + h = np.zeros(z.shape, dtype=np.float64) + H = np.zeros((z.shape[0], self.dim_x), dtype=np.float64) + + # C functions + self.hs[kind](x, extra_args, h) + self.Hs[kind](x, extra_args, H) + + # y is the "loss" + y = z - h + + # if using eskf + H_mod = np.zeros((x.shape[0], P.shape[0]), dtype=np.float64) + self.H_mod(x, H_mod) + H = H.dot(H_mod) + + a = np.linalg.inv(H.dot(P).dot(H.T) + R) + maha_dist = y.T.dot(a.dot(y)) + if maha_dist > chi2.ppf(maha_thresh, y.shape[0]): + return False + else: + return True + + + + + def rts_smooth(self, estimates, norm_quats=False): + ''' + Returns rts smoothed results of + kalman filter estimates + + If the kalman state is augmented with + old states only the main state is smoothed + ''' + xk_n = estimates[-1][0] + Pk_n = estimates[-1][2] + Fk_1 = np.zeros(Pk_n.shape, dtype=np.float64) + + states_smoothed = [xk_n] + covs_smoothed = [Pk_n] + for k in xrange(len(estimates) - 2, -1, -1): + xk1_n = xk_n + if norm_quats: + xk1_n[3:7] /= np.linalg.norm(xk1_n[3:7]) + Pk1_n = Pk_n + + xk1_k, _, Pk1_k, _, t2, _, _, _, _ = estimates[k + 1] + _, xk_k, _, Pk_k, t1, _, _, _, _ = estimates[k] + dt = t2 - t1 + self.F(xk_k, dt, Fk_1) + + d1 = self.dim_main + d2 = self.dim_main_err + Ck = np.linalg.solve(Pk1_k[:d2,:d2], Fk_1[:d2,:d2].dot(Pk_k[:d2,:d2].T)).T + xk_n = xk_k + delta_x = np.zeros((Pk_n.shape[0], 1), dtype=np.float64) + self.inv_err_function(xk1_k, xk1_n, delta_x) + delta_x[:d2] = Ck.dot(delta_x[:d2]) + x_new = np.zeros((xk_n.shape[0], 1), dtype=np.float64) + self.err_function(xk_k, delta_x, x_new) + xk_n[:d1] = x_new[:d1,0] + Pk_n = Pk_k + Pk_n[:d2,:d2] = Pk_k[:d2,:d2] + Ck.dot(Pk1_n[:d2,:d2] - Pk1_k[:d2,:d2]).dot(Ck.T) + states_smoothed.append(xk_n) + covs_smoothed.append(Pk_n) + + return np.flipud(np.vstack(states_smoothed)), np.stack(covs_smoothed, 0)[::-1] diff --git a/selfdrive/locationd/kalman/kalman_helpers.py b/selfdrive/locationd/kalman/kalman_helpers.py new file mode 100644 index 000000000..b15f1542e --- /dev/null +++ b/selfdrive/locationd/kalman/kalman_helpers.py @@ -0,0 +1,165 @@ +import numpy as np +import os +from bisect import bisect +from tqdm import tqdm + + +class ObservationKind(object): + UNKNOWN = 0 + NO_OBSERVATION = 1 + GPS_NED = 2 + ODOMETRIC_SPEED = 3 + PHONE_GYRO = 4 + GPS_VEL = 5 + PSEUDORANGE_GPS = 6 + PSEUDORANGE_RATE_GPS = 7 + SPEED = 8 + NO_ROT = 9 + PHONE_ACCEL = 10 + ORB_POINT = 11 + ECEF_POS = 12 + CAMERA_ODO_TRANSLATION = 13 + CAMERA_ODO_ROTATION = 14 + ORB_FEATURES = 15 + MSCKF_TEST = 16 + FEATURE_TRACK_TEST = 17 + LANE_PT = 18 + IMU_FRAME = 19 + PSEUDORANGE_GLONASS = 20 + PSEUDORANGE_RATE_GLONASS = 21 + PSEUDORANGE = 22 + PSEUDORANGE_RATE = 23 + + names = ['Unknown', + 'No observation', + 'GPS NED', + 'Odometric speed', + 'Phone gyro', + 'GPS velocity', + 'GPS pseudorange', + 'GPS pseudorange rate', + 'Speed', + 'No rotation', + 'Phone acceleration', + 'ORB point', + 'ECEF pos', + 'camera odometric translation', + 'camera odometric rotation', + 'ORB features', + 'MSCKF test', + 'Feature track test', + 'Lane ecef point', + 'imu frame eulers', + 'GLONASS pseudorange', + 'GLONASS pseudorange rate'] + + @classmethod + def to_string(cls, kind): + return cls.names[kind] + + + +SAT_OBS = [ObservationKind.PSEUDORANGE_GPS, + ObservationKind.PSEUDORANGE_RATE_GPS, + ObservationKind.PSEUDORANGE_GLONASS, + ObservationKind.PSEUDORANGE_RATE_GLONASS] + + +def run_car_ekf_offline(kf, observations_by_kind): + from laika.raw_gnss import GNSSMeasurement + observations = [] + # create list of observations with element format: [kind, time, data] + for kind in observations_by_kind: + for t, data in zip(observations_by_kind[kind][0], observations_by_kind[kind][1]): + observations.append([t, kind, data]) + observations.sort(key=lambda obs: obs[0]) + + times, estimates = run_observations_through_filter(kf, observations) + + forward_states = np.stack(e[1] for e in estimates) + forward_covs = np.stack(e[3] for e in estimates) + smoothed_states, smoothed_covs = kf.rts_smooth(estimates) + + observations_dict = {} + # TODO assuming observations and estimates + # are same length may not work with VO + for e in estimates: + t = e[4] + kind = str(int(e[5])) + res = e[6] + z = e[7] + ea = e[8] + if len(z) == 0: + continue + if kind not in observations_dict: + observations_dict[kind] = {} + observations_dict[kind]['t'] = np.array(len(z)*[t]) + observations_dict[kind]['z'] = np.array(z) + observations_dict[kind]['ea'] = np.array(ea) + observations_dict[kind]['residual'] = np.array(res) + else: + observations_dict[kind]['t'] = np.append(observations_dict[kind]['t'], np.array(len(z)*[t])) + observations_dict[kind]['z'] = np.vstack((observations_dict[kind]['z'], np.array(z))) + observations_dict[kind]['ea'] = np.vstack((observations_dict[kind]['ea'], np.array(ea))) + observations_dict[kind]['residual'] = np.vstack((observations_dict[kind]['residual'], np.array(res))) + + # add svIds to gnss data + for kind in map(str, SAT_OBS): + if int(kind) in observations_by_kind and kind in observations_dict: + observations_dict[kind]['svIds'] = np.array([]) + observations_dict[kind]['CNO'] = np.array([]) + observations_dict[kind]['std'] = np.array([]) + for obs in observations_by_kind[int(kind)][1]: + observations_dict[kind]['svIds'] = np.append(observations_dict[kind]['svIds'], + np.array([obs[:,GNSSMeasurement.PRN]])) + observations_dict[kind]['std'] = np.append(observations_dict[kind]['std'], + np.array([obs[:,GNSSMeasurement.PR_STD]])) + return smoothed_states, smoothed_covs, forward_states, forward_covs, times, observations_dict + + +def run_observations_through_filter(kf, observations, filter_time=None): + estimates = [] + + for obs in tqdm(observations): + t = obs[0] + kind = obs[1] + data = obs[2] + estimates.append(kf.predict_and_observe(t, kind, data)) + times = [x[4] for x in estimates] + return times, estimates + + +def save_residuals_plot(obs, save_path, data_name): + import matplotlib.pyplot as plt + import mpld3 + fig = plt.figure(figsize=(10,20)) + fig.suptitle('Residuals of ' + data_name, fontsize=24) + n = len(obs.keys()) + start_times = [obs[kind]['t'][0] for kind in obs] + start_time = min(start_times) + xlims = [start_time + 3, start_time + 60] + + for i, kind in enumerate(obs): + ax = fig.add_subplot(n, 1, i+1) + ax.set_xlim(xlims) + t = obs[kind]['t'] + res = obs[kind]['residual'] + start_idx = bisect(t, xlims[0]) + if len(res) == start_idx: + continue + ylim = max(np.linalg.norm(res[start_idx:], axis=1)) + ax.set_ylim([-ylim, ylim]) + if int(kind) in SAT_OBS: + svIds = obs[kind]['svIds'] + for svId in set(svIds): + svId_idx = (svIds == svId) + t = obs[kind]['t'][svId_idx] + res = obs[kind]['residual'][svId_idx] + ax.plot(t, res, label='SV ' + str(int(svId))) + ax.legend(loc='right') + else: + ax.plot(t, res) + plt.title('Residual of kind ' + ObservationKind.to_string(int(kind)), fontsize=20) + plt.tight_layout() + os.makedirs(save_path) + mpld3.save_html(fig, save_path + 'residuals_plot.html') diff --git a/selfdrive/locationd/kalman/loc_local_kf.py b/selfdrive/locationd/kalman/loc_local_kf.py new file mode 100755 index 000000000..df6d41c77 --- /dev/null +++ b/selfdrive/locationd/kalman/loc_local_kf.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python +import numpy as np +import loc_local_model + +from kalman_helpers import ObservationKind +from ekf_sym import EKF_sym + + + +class States(object): + VELOCITY = slice(0,3) # device frame velocity in m/s + ANGULAR_VELOCITY = slice(3, 6) # roll, pitch and yaw rates in device frame in radians/s + GYRO_BIAS = slice(6, 9) # roll, pitch and yaw biases + ODO_SCALE = slice(9, 10) # odometer scale + ACCELERATION = slice(10, 13) # Acceleration in device frame in m/s**2 + + +class LocLocalKalman(object): + def __init__(self): + x_initial = np.array([0, 0, 0, + 0, 0, 0, + 0, 0, 0, + 1, + 0, 0, 0]) + + # state covariance + P_initial = np.diag([10**2, 10**2, 10**2, + 1**2, 1**2, 1**2, + 0.05**2, 0.05**2, 0.05**2, + 0.02**2, + 1**2, 1**2, 1**2]) + + # process noise + Q = np.diag([0.0**2, 0.0**2, 0.0**2, + .01**2, .01**2, .01**2, + (0.005/100)**2, (0.005/100)**2, (0.005/100)**2, + (0.02/100)**2, + 3**2, 3**2, 3**2]) + + self.obs_noise = {ObservationKind.ODOMETRIC_SPEED: np.atleast_2d(0.2**2), + ObservationKind.PHONE_GYRO: np.diag([0.025**2, 0.025**2, 0.025**2])} + + # MSCKF stuff + self.dim_state = len(x_initial) + self.dim_main = self.dim_state + + name = 'loc_local' + loc_local_model.gen_model(name, self.dim_state) + + # init filter + self.filter = EKF_sym(name, Q, x_initial, P_initial, self.dim_main, self.dim_main) + + @property + def x(self): + return self.filter.state() + + @property + def t(self): + return self.filter.filter_time + + @property + def P(self): + return self.filter.covs() + + def predict(self, t): + if self.t: + # Does NOT modify filter state + return self.filter._predict(self.x, self.P, t - self.t)[0] + else: + raise RuntimeError("Request predict on filter with uninitialized time") + + def rts_smooth(self, estimates): + return self.filter.rts_smooth(estimates, norm_quats=True) + + + def init_state(self, state, covs_diag=None, covs=None, filter_time=None): + if covs_diag is not None: + P = np.diag(covs_diag) + elif covs is not None: + P = covs + else: + P = self.filter.covs() + self.filter.init_state(state, P, filter_time) + + def predict_and_observe(self, t, kind, data): + if len(data) > 0: + data = np.atleast_2d(data) + if kind == ObservationKind.CAMERA_ODO_TRANSLATION: + r = self.predict_and_update_odo_trans(data, t, kind) + elif kind == ObservationKind.CAMERA_ODO_ROTATION: + r = self.predict_and_update_odo_rot(data, t, kind) + elif kind == ObservationKind.ODOMETRIC_SPEED: + r = self.predict_and_update_odo_speed(data, t, kind) + else: + r = self.filter.predict_and_update_batch(t, kind, data, self.get_R(kind, len(data))) + return r + + def get_R(self, kind, n): + obs_noise = self.obs_noise[kind] + dim = obs_noise.shape[0] + R = np.zeros((n, dim, dim)) + for i in xrange(n): + R[i,:,:] = obs_noise + return R + + def predict_and_update_odo_speed(self, speed, t, kind): + z = np.array(speed) + R = np.zeros((len(speed), 1, 1)) + for i, _ in enumerate(z): + R[i,:,:] = np.diag([0.2**2]) + return self.filter.predict_and_update_batch(t, kind, z, R) + + def predict_and_update_odo_trans(self, trans, t, kind): + z = trans[:,:3] + R = np.zeros((len(trans), 3, 3)) + for i, _ in enumerate(z): + R[i,:,:] = np.diag(trans[i,3:]**2) + return self.filter.predict_and_update_batch(t, kind, z, R) + + def predict_and_update_odo_rot(self, rot, t, kind): + z = rot[:,:3] + R = np.zeros((len(rot), 3, 3)) + for i, _ in enumerate(z): + R[i,:,:] = np.diag(rot[i,3:]**2) + return self.filter.predict_and_update_batch(t, kind, z, R) + +if __name__ == "__main__": + LocLocalKalman() diff --git a/selfdrive/locationd/kalman/loc_local_model.py b/selfdrive/locationd/kalman/loc_local_model.py new file mode 100644 index 000000000..2d69cac02 --- /dev/null +++ b/selfdrive/locationd/kalman/loc_local_model.py @@ -0,0 +1,80 @@ +import numpy as np +import sympy as sp +import os + +from kalman_helpers import ObservationKind +from ekf_sym import gen_code + + +def gen_model(name, dim_state): + + # check if rebuild is needed + try: + dir_path = os.path.dirname(__file__) + deps = [dir_path + '/' + 'ekf_c.c', + dir_path + '/' + 'ekf_sym.py', + dir_path + '/' + 'loc_local_model.py', + dir_path + '/' + 'loc_local_kf.py'] + + outs = [dir_path + '/' + name + '.o', + dir_path + '/' + name + '.so', + dir_path + '/' + name + '.cpp'] + out_times = map(os.path.getmtime, outs) + dep_times = map(os.path.getmtime, deps) + rebuild = os.getenv("REBUILD", False) + if min(out_times) > max(dep_times) and not rebuild: + return + map(os.remove, outs) + except OSError: + pass + + # make functions and jacobians with sympy + # state variables + state_sym = sp.MatrixSymbol('state', dim_state, 1) + state = sp.Matrix(state_sym) + v = state[0:3,:] + omega = state[3:6,:] + vroll, vpitch, vyaw = omega + vx, vy, vz = v + roll_bias, pitch_bias, yaw_bias = state[6:9,:] + odo_scale = state[9,:] + accel = state[10:13,:] + + dt = sp.Symbol('dt') + + # Time derivative of the state as a function of state + state_dot = sp.Matrix(np.zeros((dim_state, 1))) + state_dot[:3,:] = accel + + # Basic descretization, 1st order intergrator + # Can be pretty bad if dt is big + f_sym = sp.Matrix(state + dt*state_dot) + + # + # Observation functions + # + + # extra args + #imu_rot = euler_rotate(*imu_angles) + #h_gyro_sym = imu_rot*sp.Matrix([vroll + roll_bias, + # vpitch + pitch_bias, + # vyaw + yaw_bias]) + h_gyro_sym = sp.Matrix([vroll + roll_bias, + vpitch + pitch_bias, + vyaw + yaw_bias]) + + speed = vx**2 + vy**2 + vz**2 + h_speed_sym = sp.Matrix([sp.sqrt(speed)*odo_scale]) + + h_relative_motion = sp.Matrix(v) + h_phone_rot_sym = sp.Matrix([vroll, + vpitch, + vyaw]) + + + obs_eqs = [[h_speed_sym, ObservationKind.ODOMETRIC_SPEED, None], + [h_gyro_sym, ObservationKind.PHONE_GYRO, None], + [h_phone_rot_sym, ObservationKind.NO_ROT, None], + [h_relative_motion, ObservationKind.CAMERA_ODO_TRANSLATION, None], + [h_phone_rot_sym, ObservationKind.CAMERA_ODO_ROTATION, None]] + gen_code(name, f_sym, dt, state_sym, obs_eqs, dim_state, dim_state) diff --git a/selfdrive/locationd/locationd_local.py b/selfdrive/locationd/locationd_local.py new file mode 100755 index 000000000..0b1af2f4c --- /dev/null +++ b/selfdrive/locationd/locationd_local.py @@ -0,0 +1,274 @@ +#!/usr/bin/env python +import os +import zmq +import math +import json + +os.environ["OMP_NUM_THREADS"] = "1" +import numpy as np +from bisect import bisect_right + +from cereal import car +from common.params import Params +from common.numpy_fast import clip +import selfdrive.messaging as messaging +from selfdrive.swaglog import cloudlog +from selfdrive.controls.lib.vehicle_model import VehicleModel +from selfdrive.services import service_list +from selfdrive.locationd.kalman.loc_local_kf import LocLocalKalman +from selfdrive.locationd.kalman.kalman_helpers import ObservationKind + +DEBUG = False +kf = LocLocalKalman() # Make sure that model is generated on import time + +MAX_ANGLE_OFFSET = math.radians(10.) +MAX_ANGLE_OFFSET_TH = math.radians(9.) +MIN_STIFFNESS = 0.5 +MAX_STIFFNESS = 2.0 +MIN_SR = 0.5 +MAX_SR = 2.0 +MIN_SR_TH = 0.55 +MAX_SR_TH = 1.9 + +LEARNING_RATE = 3 + +class Localizer(object): + def __init__(self, disabled_logs=None, dog=None): + self.kf = LocLocalKalman() + self.reset_kalman() + + self.max_age = .2 # seconds + self.calibration_valid = False + + if disabled_logs is None: + self.disabled_logs = list() + else: + self.disabled_logs = disabled_logs + + def reset_kalman(self): + self.filter_time = None + self.observation_buffer = [] + self.converter = None + self.speed_counter = 0 + self.sensor_counter = 0 + + def liveLocationMsg(self, time): + fix = messaging.log.KalmanOdometry.new_message() + + predicted_state = self.kf.x + fix.trans = [float(predicted_state[0]), float(predicted_state[1]), float(predicted_state[2])] + fix.rot = [float(predicted_state[3]), float(predicted_state[4]), float(predicted_state[5])] + + return fix + + def update_kalman(self, time, kind, meas): + idx = bisect_right([x[0] for x in self.observation_buffer], time) + self.observation_buffer.insert(idx, (time, kind, meas)) + while self.observation_buffer[-1][0] - self.observation_buffer[0][0] > self.max_age: + self.kf.predict_and_observe(*self.observation_buffer.pop(0)) + + def handle_cam_odo(self, log, current_time): + self.update_kalman(current_time, ObservationKind.CAMERA_ODO_ROTATION, np.concatenate([log.cameraOdometry.rot, + log.cameraOdometry.rotStd])) + self.update_kalman(current_time, ObservationKind.CAMERA_ODO_TRANSLATION, np.concatenate([log.cameraOdometry.trans, + log.cameraOdometry.transStd])) + + def handle_car_state(self, log, current_time): + self.speed_counter += 1 + if self.speed_counter % 5 == 0: + self.update_kalman(current_time, ObservationKind.ODOMETRIC_SPEED, np.array([log.carState.vEgo])) + + def handle_sensors(self, log, current_time): + for sensor_reading in log.sensorEvents: + # TODO does not yet account for double sensor readings in the log + if sensor_reading.type == 4: + self.sensor_counter += 1 + if self.sensor_counter % LEARNING_RATE == 0: + self.update_kalman(current_time, ObservationKind.PHONE_GYRO, [-sensor_reading.gyro.v[2], -sensor_reading.gyro.v[1], -sensor_reading.gyro.v[0]]) + + def handle_log(self, log): + current_time = 1e-9 * log.logMonoTime + typ = log.which + if typ in self.disabled_logs: + return + if typ == "sensorEvents": + self.handle_sensors(log, current_time) + elif typ == "carState": + self.handle_car_state(log, current_time) + elif typ == "cameraOdometry": + self.handle_cam_odo(log, current_time) + + +class ParamsLearner(object): + def __init__(self, VM, angle_offset=0., stiffness_factor=1.0, steer_ratio=None, learning_rate=1.0): + self.VM = VM + + self.ao = math.radians(angle_offset) + self.slow_ao = math.radians(angle_offset) + self.x = stiffness_factor + self.sR = VM.sR if steer_ratio is None else steer_ratio + self.MIN_SR = MIN_SR * self.VM.sR + self.MAX_SR = MAX_SR * self.VM.sR + self.MIN_SR_TH = MIN_SR_TH * self.VM.sR + self.MAX_SR_TH = MAX_SR_TH * self.VM.sR + + self.alpha1 = 0.01 * learning_rate + self.alpha2 = 0.00025 * learning_rate + self.alpha3 = 0.1 * learning_rate + self.alpha4 = 1.0 * learning_rate + + def get_values(self): + return { + 'angleOffsetAverage': math.degrees(self.slow_ao), + 'stiffnessFactor': self.x, + 'steerRatio': self.sR, + } + + def update(self, psi, u, sa): + cF0 = self.VM.cF + cR0 = self.VM.cR + aR = self.VM.aR + aF = self.VM.aF + l = self.VM.l + m = self.VM.m + + x = self.x + ao = self.ao + sR = self.sR + + # Gradient descent: learn angle offset, tire stiffness and steer ratio. + if u > 10.0 and abs(math.degrees(sa)) < 15.: + self.ao -= self.alpha1 * 2.0*cF0*cR0*l*u*x*(1.0*cF0*cR0*l*u*x*(ao - sa) + psi*sR*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0)))/(sR**2*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0))**2) + + ao = self.slow_ao + self.slow_ao -= self.alpha2 * 2.0*cF0*cR0*l*u*x*(1.0*cF0*cR0*l*u*x*(ao - sa) + psi*sR*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0)))/(sR**2*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0))**2) + + self.x -= self.alpha3 * -2.0*cF0*cR0*l*m*u**3*(ao - sa)*(aF*cF0 - aR*cR0)*(1.0*cF0*cR0*l*u*x*(ao - sa) + psi*sR*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0)))/(sR**2*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0))**3) + + self.sR -= self.alpha4 * -2.0*cF0*cR0*l*u*x*(ao - sa)*(1.0*cF0*cR0*l*u*x*(ao - sa) + psi*sR*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0)))/(sR**3*(cF0*cR0*l**2*x - m*u**2*(aF*cF0 - aR*cR0))**2) + + if DEBUG: + # s1 = "Measured yaw rate % .6f" % psi + # ao = 0. + # s2 = "Uncompensated yaw % .6f" % (1.0*u*(-ao + sa)/(l*sR*(1 - m*u**2*(aF*cF0*x - aR*cR0*x)/(cF0*cR0*l**2*x**2)))) + # instant_ao = aF*m*psi*sR*u/(cR0*l*x) - aR*m*psi*sR*u/(cF0*l*x) - l*psi*sR/u + sa + s4 = "Instant AO: % .2f Avg. AO % .2f" % (math.degrees(self.ao), math.degrees(self.slow_ao)) + s5 = "Stiffnes: % .3f x" % self.x + print s4, s5 + + + self.ao = clip(self.ao, -MAX_ANGLE_OFFSET, MAX_ANGLE_OFFSET) + self.slow_ao = clip(self.slow_ao, -MAX_ANGLE_OFFSET, MAX_ANGLE_OFFSET) + self.x = clip(self.x, MIN_STIFFNESS, MAX_STIFFNESS) + self.sR = clip(self.sR, self.MIN_SR, self.MAX_SR) + + # don't check stiffness for validity, as it can change quickly if sR is off + valid = abs(self.slow_ao) < MAX_ANGLE_OFFSET_TH and \ + self.sR > self.MIN_SR_TH and self.sR < self.MAX_SR_TH + + return valid + + +def locationd_thread(gctx, addr, disabled_logs): + ctx = zmq.Context() + poller = zmq.Poller() + + car_state_socket = messaging.sub_sock(ctx, service_list['carState'].port, poller, addr=addr, conflate=True) + sensor_events_socket = messaging.sub_sock(ctx, service_list['sensorEvents'].port, poller, addr=addr, conflate=True) + camera_odometry_socket = messaging.sub_sock(ctx, service_list['cameraOdometry'].port, poller, addr=addr, conflate=True) + + kalman_odometry_socket = messaging.pub_sock(ctx, service_list['kalmanOdometry'].port) + live_parameters_socket = messaging.pub_sock(ctx, service_list['liveParameters'].port) + + params_reader = Params() + cloudlog.info("Parameter learner is waiting for CarParams") + CP = car.CarParams.from_bytes(params_reader.get("CarParams", block=True)) + VM = VehicleModel(CP) + cloudlog.info("Parameter learner got CarParams: %s" % CP.carFingerprint) + + params = params_reader.get("LiveParameters") + + # Check if car model matches + if params is not None: + params = json.loads(params) + if params.get('carFingerprint', None) != CP.carFingerprint: + cloudlog.info("Parameter learner found parameters for wrong car.") + params = None + + if params is None: + params = { + 'carFingerprint': CP.carFingerprint, + 'angleOffsetAverage': 0.0, + 'stiffnessFactor': 1.0, + 'steerRatio': VM.sR, + } + cloudlog.info("Parameter learner resetting to default values") + + cloudlog.info("Parameter starting with: %s" % str(params)) + localizer = Localizer(disabled_logs=disabled_logs) + + learner = ParamsLearner(VM, + angle_offset=params['angleOffsetAverage'], + stiffness_factor=params['stiffnessFactor'], + steer_ratio=params['steerRatio'], + learning_rate=LEARNING_RATE) + + i = 0 + while True: + for socket, event in poller.poll(timeout=1000): + log = messaging.recv_one(socket) + localizer.handle_log(log) + + if socket is car_state_socket: + if not localizer.kf.t: + continue + + if i % LEARNING_RATE == 0: + # carState is not updating the Kalman Filter, so update KF manually + localizer.kf.predict(1e-9 * log.logMonoTime) + + predicted_state = localizer.kf.x + yaw_rate = -float(predicted_state[5]) + + steering_angle = math.radians(log.carState.steeringAngle) + params_valid = learner.update(yaw_rate, log.carState.vEgo, steering_angle) + + params = messaging.new_message() + params.init('liveParameters') + params.liveParameters.valid = bool(params_valid) + params.liveParameters.angleOffset = float(math.degrees(learner.ao)) + params.liveParameters.angleOffsetAverage = float(math.degrees(learner.slow_ao)) + params.liveParameters.stiffnessFactor = float(learner.x) + params.liveParameters.steerRatio = float(learner.sR) + live_parameters_socket.send(params.to_bytes()) + + if i % 6000 == 0: # once a minute + params = learner.get_values() + params['carFingerprint'] = CP.carFingerprint + params_reader.put("LiveParameters", json.dumps(params)) + + i += 1 + elif socket is camera_odometry_socket: + msg = messaging.new_message() + msg.init('kalmanOdometry') + msg.logMonoTime = log.logMonoTime + msg.kalmanOdometry = localizer.liveLocationMsg(log.logMonoTime * 1e-9) + kalman_odometry_socket.send(msg.to_bytes()) + elif socket is sensor_events_socket: + pass + + +def main(gctx=None, addr="127.0.0.1"): + IN_CAR = os.getenv("IN_CAR", False) + disabled_logs = os.getenv("DISABLED_LOGS", "").split(",") + + # No speed for now + disabled_logs.append('carState') + if IN_CAR: + addr = "192.168.5.11" + + locationd_thread(gctx, addr, disabled_logs) + + +if __name__ == "__main__": + main() diff --git a/selfdrive/locationd/ublox.py b/selfdrive/locationd/ublox.py index 06f174fba..70e2d2fa0 100644 --- a/selfdrive/locationd/ublox.py +++ b/selfdrive/locationd/ublox.py @@ -207,10 +207,13 @@ class UBloxDescriptor: def __init__(self, name, msg_format, - fields=[], + fields=None, count_field=None, format2=None, fields2=None): + if fields is None: + fields = [] + self.name = name self.msg_format = msg_format self.fields = fields @@ -465,7 +468,7 @@ msg_types = { (CLASS_RXM, MSG_RXM_SFRB): UBloxDescriptor('RXM_SFRB', 'UJO1miClFxa`TtYm+Ax~pP4sS_&&v5k#hghqfTtf3xO5s0O76Ldm4 z?Q4Q4*g@q>unLaSO+3`nDjx2zr^9-pEjN?E+Z zVcU+UXNkhKEhsxm__uz6`t*P)pD*7vsqMx^4%=(bYDb)Ljl;I)f9lzp4%@P4)!&+_ z>|O7$EyQ}OAcUMky$nJKtL_1#FU+7V_hBCQZeJa(6dZ_Fx`HAS_60a>l2JIy{R?-Z z6%B4uKU-*AA4KWuV->SPGx{J+*Zh)V{)(RKgF-1aS~;crbefq27WKvme{CG5uk^zl zKBwO_&s7y<(S7}p469jPKco?Fx{HNBgdhzh(zqwk=uOwK(I*fC-nD@y48VTx(m{V1 zfYdANXqi9hhg1dzeUEI*4VhNn{uxp0z9>sT!!D;Z`youW^!5U@=3Gh2MTnbG6w6@hw z{s@9vX4^%+L(mEh(e8!&Q^Xv9*MA=F3Kn0V;IUOb~L!jK_Z}n z4lNCam$d`nV&poxY3NQ$-KV3j{{4;9p1ueSR)kYWp5XD6SMRDkP+?g4_* zptL9*a}W5;YlBHF@@L=1T8!=k;(R}hvkr@2tb$Nl_p9i_Q05d}B-BD(E-|$5xJyL& zq5M$+C_QQtDi9UKj=O@-T5$|X1}O!!db5&D7aAlJt2Rmt`8VV?N!vt>Hj8wFk1IMs z8e7j}k(8o)9{cxeMyM}d%P!4~ghA~HeXJ3x_6qo->*=8qDH&T^N~9FR(H%7Y7^1C5 zr28BdcTCc#`CsUo6PSO4dh#nzNFQoBdbTiuu7Llbou^fFckyGYN=qxHS**IkQ#e^E6{T@@*zdz$+ePkS)poWZ)S&GpLn?dU5VFzcI$%DQ)t zwu~T4KPKHo|6ljWQ+R!p$c_FS8Fyy_S$@}xEJ5V$Niv^AWT31fbAxd!w>Ng1z8x&1 zJz2hqKec8hZ#+>GBC9hh4U-?4IsBs=6YvM^9{6HG;P7)+72an>I3IH>eRY{^Vp&T) zh_%aP&zP^!ohvZEC&iP`T_Inc26~#5BTvVWk)u*R&+%AvZbgfnwuN?Y#a)K&=nx-a zD0e)cN&n8p{DPhG>8Y6S_*mZMi*fB|azF1|R4hkG_$qHYBR7~xyoJqdl83ZM&L&$5 f*EP$i$*2%iC@Ks!g{^CzD(dksaKp{1#eV+)`#_UP delta 1815 zcmaKtdr(wW9LMkP>@M5|1n(7*)L0hEWkGR6(+MA}uTV*)#Yn{mx{L~wHIw$3$$`}< z8cE^$=%^`!;7~D)!#LKl$25fk;scRvM6g}3LfS?kO`(;b-?>Z6^oRZNo!>pb-|u|R z_ntlHZda|ntJdx~12G#w&&(UZl0^ayG~*nU=*~te#wIp+4(b8^V0E>SLLi397oZJN zY4-()hOJa?fD|aE>v=d!D|u*V4;z4KL7=A^v8RbPH)6JdMO=jg09tms38rabE$zGx zVdf=O+|QvRoO ze=FR84w};j1+b3YYXcL3Ogi2P3&!qvN@>@OsjTlEqE-;5Zxn@I<6-)`6Os}0m2()w zSDQ@TPAD8%oaVYXWIB8!8#QDRAv%Syd+({UMw--i4XmyM1x2lAj-|w1*fHb_Y6al2JIw{R{1} ziUudC&y#6~cpRAbo()4af(=|*{%%9Oy-B2K<#45*hAC5PZ;KHsr;jcA)^!Xl` z#`o!G%@dXRYw7MDNP@+zrU%l9FMW$e+=CDeSZMqMsQ0C-*x&<*1K)TeP3VJneZ!sf z+dg<14`o=tcL~-0Woqk(sk~|ajyT1>mG0>WgKyZyPWMBbA2hLjLog-~T4-4S>46ru zKagw*h3m{?Abp__#O_TeE*-?M=0x%cUq;jb1VnamHCX@{gEI&o*oADyIF;3bqew+dlt@%lGVJLHoE+Sc|%O#F2IP4Np zdQ<=^5EXmgi7hR~E<1wxwbYwmdPI6l%h6MX5%fv;588QLMMsnjqu-~y$`Dap>P6(1 zAzFusyg^!0Ax&acC%uKE6;fduXNUdv$Y;CI{YbUFQ4p%p_I!`Z-t9p)+PpX*jZ;~7 z?$E{oWCaaLH_`v+o$@$dA0%>p07u6EGJ-7s)rTxb1oJzSz4@Fa^40Mm(!?xz0*3S~mGV)R*P?SXTI94%v|}^Qip)lb z_zIq!;d}=DI|uW#x5>xDG2i;0yxkw;^1X5o@0(jB8zj8S>r3T26FkQzU64KahjidX hlBFQ^ii{eA3Pp`Yg`vi=)GOg)5a`+Jo8d+Je*jWmkUszb diff --git a/selfdrive/manager.py b/selfdrive/manager.py index 0eddc4509..a1b84cafd 100755 --- a/selfdrive/manager.py +++ b/selfdrive/manager.py @@ -102,10 +102,12 @@ managed_processes = { "pandad": "selfdrive.pandad", "ui": ("selfdrive/ui", ["./start.sh"]), "calibrationd": "selfdrive.locationd.calibrationd", + "locationd": "selfdrive.locationd.locationd_local", "visiond": ("selfdrive/visiond", ["./visiond"]), "sensord": ("selfdrive/sensord", ["./sensord"]), "gpsd": ("selfdrive/sensord", ["./gpsd"]), "updated": "selfdrive.updated", + "athena": "selfdrive.athena.athenad", } android_packages = ("ai.comma.plus.offroad", "ai.comma.plus.frame") @@ -128,6 +130,7 @@ persistent_processes = [ 'ui', 'gpsd', 'updated', + 'athena' ] car_started_processes = [ @@ -137,6 +140,7 @@ car_started_processes = [ 'sensord', 'radard', 'calibrationd', + 'locationd', 'visiond', 'proclogd', 'ubloxd', diff --git a/selfdrive/mapd/default_speeds.json b/selfdrive/mapd/default_speeds.json index e2d760cc6..7126c27fc 100644 --- a/selfdrive/mapd/default_speeds.json +++ b/selfdrive/mapd/default_speeds.json @@ -29,6 +29,7 @@ "DK:rural": "80", "DK:motorway": "130", "DE:living_street": "7", + "DE:residential": "30", "DE:urban": "50", "DE:rural": "100", "DE:trunk": "none", diff --git a/selfdrive/mapd/default_speeds_by_region.json b/selfdrive/mapd/default_speeds_by_region.json deleted file mode 100644 index aa830a098..000000000 --- a/selfdrive/mapd/default_speeds_by_region.json +++ /dev/null @@ -1,454 +0,0 @@ -{ - "CA": { - "Default": [ - { - "speed": "100", - "tags": { - "highway": "motorway" - } - }, - { - "speed": "80", - "tags": { - "highway": "trunk" - } - }, - { - "speed": "80", - "tags": { - "highway": "primary" - } - }, - { - "speed": "50", - "tags": { - "highway": "secondary" - } - }, - { - "speed": "50", - "tags": { - "highway": "tertiary" - } - }, - { - "speed": "80", - "tags": { - "highway": "unclassified" - } - }, - { - "speed": "40", - "tags": { - "highway": "residential" - } - }, - { - "speed": "40", - "tags": { - "highway": "service" - } - }, - { - "speed": "90", - "tags": { - "highway": "motorway_link" - } - }, - { - "speed": "80", - "tags": { - "highway": "trunk_link" - } - }, - { - "speed": "80", - "tags": { - "highway": "primary_link" - } - }, - { - "speed": "50", - "tags": { - "highway": "secondary_link" - } - }, - { - "speed": "50", - "tags": { - "highway": "tertiary_link" - } - }, - { - "speed": "20", - "tags": { - "highway": "living_street" - } - } - ] - }, - "DE": { - "Default": [ - { - "speed": "none", - "tags": { - "highway": "motorway" - } - }, - { - "speed": "10", - "tags": { - "highway": "living_street" - } - }, - { - "speed": "100", - "tags": { - "zone:traffic": "DE:rural" - } - }, - { - "speed": "50", - "tags": { - "zone:traffic": "DE:urban" - } - }, - { - "speed": "30", - "tags": { - "bicycle_road": "yes" - } - } - ] - }, - "AU": { - "Default": [ - { - "speed": "100", - "tags": { - "highway": "motorway" - } - }, - { - "speed": "80", - "tags": { - "highway": "trunk" - } - }, - { - "speed": "80", - "tags": { - "highway": "primary" - } - }, - { - "speed": "50", - "tags": { - "highway": "secondary" - } - }, - { - "speed": "50", - "tags": { - "highway": "tertiary" - } - }, - { - "speed": "80", - "tags": { - "highway": "unclassified" - } - }, - { - "speed": "50", - "tags": { - "highway": "residential" - } - }, - { - "speed": "40", - "tags": { - "highway": "service" - } - }, - { - "speed": "90", - "tags": { - "highway": "motorway_link" - } - }, - { - "speed": "80", - "tags": { - "highway": "trunk_link" - } - }, - { - "speed": "80", - "tags": { - "highway": "primary_link" - } - }, - { - "speed": "50", - "tags": { - "highway": "secondary_link" - } - }, - { - "speed": "50", - "tags": { - "highway": "tertiary_link" - } - }, - { - "speed": "30", - "tags": { - "highway": "living_street" - } - } - ] - }, - "US": { - "South Dakota": [ - { - "speed": "80 mph", - "tags": { - "highway": "motorway" - } - }, - { - "speed": "70 mph", - "tags": { - "highway": "trunk" - } - }, - { - "speed": "65 mph", - "tags": { - "highway": "primary" - } - }, - { - "speed": "70 mph", - "tags": { - "highway": "trunk_link" - } - }, - { - "speed": "65 mph", - "tags": { - "highway": "primary_link" - } - } - ], - "Wisconsin": [ - { - "speed": "65 mph", - "tags": { - "highway": "trunk" - } - }, - { - "speed": "45 mph", - "tags": { - "highway": "tertiary" - } - }, - { - "speed": "35 mph", - "tags": { - "highway": "unclassified" - } - }, - { - "speed": "65 mph", - "tags": { - "highway": "trunk_link" - } - }, - { - "speed": "45 mph", - "tags": { - "highway": "tertiary_link" - } - } - ], - "Default": [ - { - "speed": "65 mph", - "tags": { - "highway": "motorway" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "trunk" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "primary" - } - }, - { - "speed": "45 mph", - "tags": { - "highway": "secondary" - } - }, - { - "speed": "35 mph", - "tags": { - "highway": "tertiary" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "unclassified" - } - }, - { - "speed": "25 mph", - "tags": { - "highway": "residential" - } - }, - { - "speed": "25 mph", - "tags": { - "highway": "service" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "motorway_link" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "trunk_link" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "primary_link" - } - }, - { - "speed": "45 mph", - "tags": { - "highway": "secondary_link" - } - }, - { - "speed": "35 mph", - "tags": { - "highway": "tertiary_link" - } - }, - { - "speed": "15 mph", - "tags": { - "highway": "living_street" - } - } - ], - "Michigan": [ - { - "speed": "70 mph", - "tags": { - "highway": "motorway" - } - } - ], - "Oregon": [ - { - "speed": "55 mph", - "tags": { - "highway": "motorway" - } - }, - { - "speed": "35 mph", - "tags": { - "highway": "secondary" - } - }, - { - "speed": "30 mph", - "tags": { - "highway": "tertiary" - } - }, - { - "speed": "15 mph", - "tags": { - "highway": "service" - } - }, - { - "speed": "35 mph", - "tags": { - "highway": "secondary_link" - } - }, - { - "speed": "30 mph", - "tags": { - "highway": "tertiary_link" - } - } - ], - "New York": [ - { - "speed": "45 mph", - "tags": { - "highway": "primary" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "secondary" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "tertiary" - } - }, - { - "speed": "30 mph", - "tags": { - "highway": "residential" - } - }, - { - "speed": "45 mph", - "tags": { - "highway": "primary_link" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "secondary_link" - } - }, - { - "speed": "55 mph", - "tags": { - "highway": "tertiary_link" - } - } - ] - } -} \ No newline at end of file diff --git a/selfdrive/mapd/default_speeds_generator.py b/selfdrive/mapd/default_speeds_generator.py index 59436a7b7..c98225bd7 100755 --- a/selfdrive/mapd/default_speeds_generator.py +++ b/selfdrive/mapd/default_speeds_generator.py @@ -1,9 +1,9 @@ #!/usr/bin/env python import json -OUTPUT_FILENAME = "default_speeds_by_region.json" +DEFAULT_OUTPUT_FILENAME = "default_speeds_by_region.json" -def main(): +def main(filename = DEFAULT_OUTPUT_FILENAME): countries = [] """ @@ -137,27 +137,33 @@ def main(): """ Default rules """ DE.add_rule({"highway": "motorway"}, "none") DE.add_rule({"highway": "living_street"}, "10") + DE.add_rule({"highway": "residential"}, "30") DE.add_rule({"zone:traffic": "DE:rural"}, "100") DE.add_rule({"zone:traffic": "DE:urban"}, "50") + DE.add_rule({"zone:maxspeed": "DE:30"}, "30") + DE.add_rule({"zone:maxspeed": "DE:urban"}, "50") + DE.add_rule({"zone:maxspeed": "DE:rural"}, "100") + DE.add_rule({"zone:maxspeed": "DE:motorway"}, "none") DE.add_rule({"bicycle_road": "yes"}, "30") + """ --- DO NOT MODIFY CODE BELOW THIS LINE --- """ """ --- ADD YOUR COUNTRY OR STATE ABOVE --- """ # Final step - write_json(countries) + write_json(countries, filename) -def write_json(countries): +def write_json(countries, filename = DEFAULT_OUTPUT_FILENAME): out_dict = {} for country in countries: out_dict.update(country.jsonify()) json_string = json.dumps(out_dict, indent=2) - with open(OUTPUT_FILENAME, "wb") as f: + with open(filename, "wb") as f: f.write(json_string) class Region(object): - ALLOWABLE_TAG_KEYS = ["highway", "zone:traffic", "bicycle_road"] + ALLOWABLE_TAG_KEYS = ["highway", "zone:traffic", "bicycle_road", "zone:maxspeed"] ALLOWABLE_HIGHWAY_TYPES = ["motorway", "trunk", "primary", "secondary", "tertiary", "unclassified", "residential", "service", "motorway_link", "trunk_link", "primary_link", "secondary_link", "tertiary_link", "living_street"] def __init__(self, name): self.name = name diff --git a/selfdrive/mapd/mapd.py b/selfdrive/mapd/mapd.py index 4ac0c092e..85303857a 100755 --- a/selfdrive/mapd/mapd.py +++ b/selfdrive/mapd/mapd.py @@ -1,12 +1,13 @@ #!/usr/bin/env python # Add phonelibs openblas to LD_LIBRARY_PATH if import fails +from common.basedir import BASEDIR try: from scipy import spatial except ImportError as e: import os import sys - from common.basedir import BASEDIR + openblas_path = os.path.join(BASEDIR, "phonelibs/openblas/") os.environ['LD_LIBRARY_PATH'] += ':' + openblas_path @@ -15,6 +16,10 @@ except ImportError as e: args.extend(sys.argv) os.execv(sys.executable, args) +DEFAULT_SPEEDS_BY_REGION_JSON_FILE = BASEDIR + "/selfdrive/mapd/default_speeds_by_region.json" +import default_speeds_generator +default_speeds_generator.main(DEFAULT_SPEEDS_BY_REGION_JSON_FILE) + import os import sys import time @@ -45,31 +50,6 @@ last_query_result = None last_query_pos = None cache_valid = False - -def setup_thread_excepthook(): - """ - Workaround for `sys.excepthook` thread bug from: - http://bugs.python.org/issue1230540 - Call once from the main thread before creating any threads. - Source: https://stackoverflow.com/a/31622038 - """ - init_original = threading.Thread.__init__ - - def init(self, *args, **kwargs): - init_original(self, *args, **kwargs) - run_original = self.run - - def run_with_except_hook(*args2, **kwargs2): - try: - run_original(*args2, **kwargs2) - except Exception: - sys.excepthook(*sys.exc_info()) - - self.run = run_with_except_hook - - threading.Thread.__init__ = init - - def build_way_query(lat, lon, radius=50): """Builds a query to find all highways within a given radius around a point""" pos = " (around:%f,%f,%f)" % (radius, lat, lon) @@ -301,7 +281,6 @@ def main(gctx=None): crash.bind_extra(version=version, dirty=dirty, is_eon=True) crash.install() - setup_thread_excepthook() main_thread = threading.Thread(target=mapsd_thread) main_thread.daemon = True main_thread.start() diff --git a/selfdrive/sensord/gpsd b/selfdrive/sensord/gpsd index 7c4dc911060d8745b63b8d0df7151ca843d0f108..540f9b161a28a3cfb4d05ff726262ff00015b382 100755 GIT binary patch delta 128 zcmca{!2QMn_l7Nucas<&Ouv`JD9`w#{a+Fz5HkTWGZ3=?F)I+W0Wmuea{w_X5OV=B z_x68DJo@t`4GnaQQgc!hi&Gh#eOw*=7*aBeN-7ynBu@8Z;#HcSz{JbZUckf)#C$-^ O55xl73z!67+ywxObTg#@ delta 113 zcmca{!2QMn_l7Nucas?JOuv`JD9`w%{a+Fz5HkTWGZ3=?F)I+W0Wmuea{w_X5OV=B z_x68DJo@t)EvM@<@rp7toJgGR$Hc2NJ%NdrqrHHM7l`?Qm>-A*wihr7zPJkjZ|N

k9|tU%eEJAEk~C8%hEXRw*4`79vZ?EZ?3?eUJdTy zIEB7cyMy(ET5!Se9pD#eM-vyG!>1OJ(ELsTtfT_zit&>mVM8G4s=v%n1@+^M-)_9% zz;9MuqQeWk5@_Yimss~skLwRf!jjbvRJZ6OxL(PF%}0L-evHHX(IPR7NH*t@!(4fV z#$*gy?SknJhhVbud-&yXU%dZ$6#RpF?AsS~X;RA+(kwm&;y3l;F|U0wg|EdIdWWG| zvH-1~`*O)KL!pysp+`aqIiO?3WCtF#Z7ttRF3MN1@CaZFF1;ji)6c^94};0yGr^cv zw*cL`+exZg4jZl$%9Bq!!+ocGTs^Cfq~1QyBxTdd;dV!unPVjSdC{2lq`ndjDQ^NF zhcWPbqcl7981SmtjD+bM6WRW7UgjkUM`9MCuAUlP5j65C}l1_$1l&#K?bleNp!c>3xx@`ev(M^^=qC|gZ7CnSlfWw}A< zV^i#Ok7q}R?8m=W`mlT3d~&4QlI4~I+H@C8+jVIA$$y#FVZYPpnkU(6YEF=j@+cA0WCJYQc&m-Qqu;9a{ ze4xy6cKY8GT%WfM4Q=$$zUEEkhs8_8PaA_VOxhU~tMbIfZZpC7Xd0WjZ$Byvdxc9K zH~5>Y$MHJw3O`70#H>+=vG33kw0n53qC|BrI-Z@*q)#98vpmc0Ae^Lm@;WN zJESpyxu+gu_cZe1`_F5TR1qfNE;7jup~OZmyOnKSV$Ec)-e$3uV+Gp5Ym$+?8EgmU z6X(EqaC_p(zFAHb_ZBCLgMA0ljc<2DkgPoZaT`dqRmT&3>09LUWDplL?iX8EDPdvY zedhbS2i8Ock=H|>f}UO<>2yBJer{QY{`&q#ZopBTSv3j21&GW-630|z3N#VMo zLt$Rq5mICu4GQWX$$`@0nHB8 zu&c{USgyh%(f#@;EHi!pANB@SPCg~D>=oz2`-F$kqq%~-sZGc0W?4*br8Av1_9XFh zw!&Jyi{SNg4^bbhMCJcJ#h$6%H1mZNN?jg7H%bqnLF#GrTFg7rY4`?y+fzD!_jx+# z$v4oM-6|AJtI?4cZ0M7u0t_%yrW-Xv=&nYEzb13)lnhDw@9s<_yg-udHY{Re^=6vxM>?^W^k3FqK^TRtL6Epy3_kDsFPc8ZO z|FU3)&NP0QPsfO-Q~39;0BA6q!fag6;9rA*_+`8~TjiX?P7gW&cjBtx+)x)-aXuUd z`v!u}aU-sJsR)`Bg1GLtX(ZwNU3_b?niR`r!1pt)xG?Rokae*UKZXN1v-LIkulx{^ zPg?;lS#P0i{uh$+=PpLHy@En{!0vs8IA@9BJ7wJI zsx3!o$2)C4@A*t_@%T8=sP~`&OC0&)*FuT&!xS9ve*)z_)rIU*Djn5x7}js=gr&MO z(QdU1z4Tp}UE-u^Ugi%l3lHb*c^@i_cjZ&9)=1i)p#UnY^qEAI37@X&jsKmu=J7T& z=nsKX(yJ+nL&kof6(08V!mzJ+l`;C;QH#$Q`33Brn$wGZGIXQzF{qG|5y$;IhSK)= zxbNO!ZhEDqjStU9v>=7mpU?lZOE!ZUq7vuz~k2;bxU6(?cNTR{t(;f`-V zFQx;!I>j>*@37eA3ot{tba%Y(A%P9Xp!YqC{BQ^qON2NC(L#7U z={R}!Eu5v78k41pTOd?6293J{MJbAdP-Q7aLPB z{PNZI)lCzcl9opvwC3U=u_jyf=R1r(n#=9(-h#mqM?op%47>Vj33<`E500IkK{qdI zCndkb`GQl4T%kV>z0YpLzQH-*``4O3Iy;0^1>U9C&(*?$HZ8DETS&j8?q@fSM8U)h z55eM+CvDr;4Wr)|V(G2zZ13(jq<4i-I)az*#T6~CzIq9odA?y~E+0hNR~@K@LJ;~S z%2az64(C&A^2t)!$wJwlFaLL>7vBAqfQyon)idf^p~B%6_)ZpzHvPS+O}iTocFKZx z-HO=Z{gD*N`=Y(uGP)M$?fZ&+ zYTW>_CzsIiZq;muaK{l@>te-Rb%7F_4~f^kNv*{MdU@eRQH*US>{}$ohb~))>tu&; z+m?7D`BjMrtjL1m_%pEXttmL2YlagCj$+r1i=rHd22p@VIKJQW1KvcBvkm*V3yz-F zCfjo70y}MmW5(t|k==4E-jXT)Xy!#_TKYGjJjPSX!;Y;NcJpwxz_rRcs|j4!g)xOD zO2oD+;bC$i$t)aB3xtx1f3`~e&Pxq!9-j+24ky{u5I<-bGl-k_>;(098a%nvn7*+P zk=?TcA<)MhwhmhXrJdQh`NeBUjZJ}_U-!cDidok6yF<(uU^L`BbSoieScFfABE00jK7} zG(=UKj!$?&iUuK?vS_qBGQE49qui-Yuw}a{?R;8J^fH2| zOpF1kT7HiFGa5uMs#x-?iP>0_?9E=Pgz)`meCX=6s?^GCK7IYnRM@F)#27mnxNKJ2BYrV*&`);6Mw7e?2I*RDUxG>p~MsP7VW3 z_N3tJT1}c#-vkcDpF!^aZnCCh zBQ6hdh85A1@uk8U*!SxV7f0(;%sCGRJ)V3|(+2)~#x)wU^uEaaoCKXQtpudrEu!i} zN3mTCGx=lpO3ZO9fy~pH_}aPw_>L1?GO8KUGcuU&L4wNr+%#E!I%D_IQ|OUe;j~|Up6w6cZ%FDcP2PC#^AG zr%Ku?(EeQ@RUSV~jfNgXU-=+@%-(}-{rMQ~Dh}s;6}?35nFQ9eE78-8&h|F?X2%o;# z@B-&*oOu2@`*OCLe1Gal!rT*Zo^1k_pVOon%f(JDz_+^JOloU6C%elLd z|8bJ&_^QEVi*q6*dP`xPsSY1`{05Gny%*xSVBHkX8WE^>uz#p8H( z^Ek58*qi(_t*{+`TbKI9P81#P8cmYj^I6cayExND4yW&xf-}YC%w^RH^!KqMhc@O{ zt=^hN9O9&SY?J~uR9~+9sL6ooY*Y#h>NmQv73@w&gNiSsuwcPbl;0=IaC<#D=E0^x&zf zf3TqDG)gKZ(`AW)r`GsxG1>mNHhYrz*HE|9RmPu^h%j8+Xjc# zl<~h^H>%Q|W;3^cUxfG8ZK8Z#9UjX}p$8fah`!lWaB+_Ys{52Q9dCr+uMPRV556e< zc>%^96LzZW>%~hCJr~G9VQlj}6)rb$JTy1#XZ+eQ>d}%!7S%P1Rs?Os+XY4B#`U-0 zvf&NB9B+bWv6e0TC8D-Qci64Xy=>*EW6XHJ1Xt}?3G!x4ctqe6TESf#!hi|XqC8XlRP)6z6!o`RB(b&x?B@t zj0+l~*{oVq-u<6C$nD%j-tL#co31*j>`_2Q)o-Vv%iS^S%WSNhKSA{U@o&_M5G3-N znW*e?)pnQe1$KD45_DfY!0$En5i&nmJk3*=K4YqQ;c*$8{A(h;CHYkFkN4tVulpqU zi7}sQ=t@%)-owVzHZb~^FMpQr4&jqJG4%Q?@!9^9Tw-e=s@dldOS5qLT+15tS7-A- zdP`t@X*SN-TZXQK#?ftAdw6Se0{3pb3p0O-_?0<}Xy0yq5N`Q!{GByw{I`_a{uj%B zHTc1)icT~o)A*RPj%b=xM84ZhpvN6Iz`e+7LTyLGsxfcL)x`mjX&`C4&teYo4#>k8 z{cG^({bO-JmN&fqa0bU{?Lud#Dz^TO2yf0df}U1aka~Coc7|^iC0vRi;c{Q93a!n^ zD4jCqzGf=_=`{p24b)i_T_O0TrZQQd)8b9r_OMnXf6OF%V5{39=+N8)JL5)@(G`2i zv{SBNv!GAxl(S!KIcOWVOgChu>&j7WBEtC>(l9}sK!#}_V>;VpR)Sh@K4)x`;;v>mdgH$%XaTFiy>Br8C z)Ui%RiC+IKi7Tzl(Q`s78^Q^Il@7g8!(nvLOcH^BLNEJVnv!b2uLx^H?fsn6E79DVM;$D$wKr_mode%{QYx!>JRCaGT2{l#dB|bXEI3>33^syMxHz7L?;qUKMNWZ_YCIypTYX_7;v4N zNgBcpNvW0+Bqlb%>);!Z{7y;;EUqF?WP*g|fS+uejXuVy$-!yEbHrqSF+}VOVGnNg zF@4=m(aqhFxM{X4?*6m1YR{=5@cq;v+LmjLFHh>Sxxwc_MSnet-g_{k&OfZKZiCoQ zxe4sA^kGlPT6onV3Ag6Ci;U-of$4yBq0n+CUb!yAq7_QmujA5eV8%e^Sv3y_i+97{ z_0!?PJ{_{=&;W7&uQx~<*TS~YKVvyYIwnuEna;q<-!?X!l8Empo!|gW`A8 zHvR(7J@mmQQ-^-6J;!Q><^leR;jJ%cz+bb&_;Pj|kQZxEN|>wkmJh}q+k42B46XpRPN!)QfSER`954OeV00FcwSddC6pM?;A18_=lu(P&WTC1P&;EE7kF@u|_z6+W-OvNB?lHmnu?N}Hz93?0 z@J*nf4S;Bce9`Su*IDtwQSd2y8IvokX0cvoWaqbm0w3fi>nLp_^JlL`6yK~ob+VF` z7fhyoCclV9bRi}jc7h4EgW!>OIdj)I3Oa`_!C0LDGIZDr(bE(^{ARTP24@E2nSCqS z_2)-n=H5|6W)Q%;U?0qtu*a%1cC1%%D885R7aAkRk@cyMfp41+76rbDVah00x(T{cVotjG|&0vb4| zum@+CyTIpr3n3*(9-A$c;nQMsa`bZ`EU*4f67wJ8PooAb4z|R)_*mlfTtvh5%2=&e zF4Iw{!lVTO%z1hhD8GLQ>n;W0?sfN|{9!l-J{2hKOM>9_aDP(VXo)T3ZQ+OJb8;nr z4OQ9u)>h_?Bv&qP8pR<>w?ivH1*-R)&GGh`8 z{AkFs7|3kfjOSydp}$OyFMK@$J`Xs88#ZS1X9KP1z@Llh@{Vwr^vMR>tDoWF%0ir^ zzZktHwZdz?Hu6(79U>A&fLd-d@%?=S1H0P@DO}6G_wiI%~M!(s`r8?xFw!3LQZZdA2lfsKZSlHL-o=`=IYl)&o|aU?St)P^4uKu zurptzX`TTq%sX&gkRt=7yWqXOSll6G59+;`*lv`KcpDvxw-XK7UbSC>o}eJ?=vrZ0 zhB`?)Bd{9|j3BZ`2VnJswcLEbLB{l*VRZI%;#sN(qsUNX%`>6h^e)*cw~%>%RfnUh zC)qTgIpo&wtt?^2Hg@uLAt?y@!U~7!^J&k9;jpR2uvu;#WG@ZCp!Nhdx6X#uD+aLh zr{r<`U=5MKULQ&hqu3M~!uB871_pmJ$iS{e7_sIl3x1`9hm(wKedwJ5VnkhvjYZ3M{o z2oTnoVUQs!4{M^wh~Bz?BDJ^QlKES$@Pgqu-g$2xIGpvR+vBw9$les3Y_gE-SKGyG z%$!6!P6+!j%^Y~B(+#Kf>gnL}?GUcLjz5x1gB=dH~+=?Uc@ZAH9-Zq=Q)%K(_ zSB`+WMkn~y))Sz7U@`HC&Becem-0yONa|_%MmR5}z?!}RDeq=>*!DVkmOT%z?%qge zz79o)`m5+T(wyo`j|WqUB=PX|3)vRg0+QvXN@d3V$Bor4VVs`+3-?Bp>-<|%(UhC%y&1~mwHQ(uQ)31xULP7SL;~p&Rb|U z^(s6)5lxO~Yoe=ocGZ%-KnHxdQI)Ylk3X`DWBSHcV19o;x65CIN?SU~?OhI{ovT7& zsODb$a`XmSR}%&fJGI%-H+#uD)tmgOe+ zSAH}QXN6ffT-ZA~=fzoi$CTjV71lKI z$qCUsd!g;<_jVZ7cM(i-(PyY1aIIfd3hDHbXqH4tiyFE*r;BcNcm3QqB_NvR_ z$M&(zFKLg^9+iqkUg`96?r?nfYcbn)axy$$ID?DNY~WqVH`tNsiJ!WuGCI$17MHirWoy&U zfxEINSy61tT4%(7dU+7}=PNY2%%4c=?c138ssG?p*I!7O-A(*F-jd~a{$lmtd+bYO z9g%a{EV7B3h~nrr@uY21WZ&-TsI&Pztld;hQV*!Z{Czd7b%z4Ezv3{+MeBoylR10y zU@z+J5oU)oE+nn+B-TV|i>wSrGmDONnA#VOelGHG!DRUI&YpnHvT}zK({F5to}F;jDJ<)!QG*t=Q$Pko6F)S|8J~1Iu;@~)?#N(K;4{y5)a$YuI+;GeJz6q?Kv z)6jvQ53I*&%jTh<-#B0=W9Y9(DuQk?ke!}X#IoE&X-8fl$ebC1&n~&a_+=(Myn(T` z(=V}n`5>y(uZr8!pTXZby|yRo&*8)?;bh}fn!nN1k6jLG&c1E2gmqOIA< zc*JxolnV3BukFULU_la7aobNuJ&0zvXAgq5qDnU9VK~SwKEV!Vs|bv>GQ4nmC7z>+ zxF`R%c%QW*s`zEY`HV=cGf;=dkCpf}d?f^K%VCPa+K}MKh(-HvSfUz_^MvpH+6+sP z<%0-8r}Y)+<=4Pbf4X>dra9c%K#+vZg+-+TMsMaxuuimNiA6KPXoSGPRF4Op{%G`k zCl8DAr;s_D1=nqa0)HH$NN2Q+hEuX@A^TS~TO^zpADl=sZ-8eJQ*Fx<8;neuKcJP~l+fPjN%U2e6a5;#3>?g4;fzH)+xp3y{rM7(_;m~U zJtmXwR1XK;DJg95h>0wsL`z^6tRYbgb%f6xkK4v3!&Zwwq#<@F^Dj#jCHeF+g+q(T zsVCIn@;Y}oaXwm9s?x}^F3-YO+bV7UY|?@JZ;9;T^kL9<$QAZJ7$@>m zN@DQgi+JQy1K90;oDFwNs2uruK6vYgF{Nvswzfvy%(?I(!C^h(Ws;l7mj#L9p+5`Z zw|tS%cD)=9T^YhpOWWh{1+i?&gj7M z@H0QK_WO;X{yYn7#_7{vx*Le7RUW>@S(9tIBdAIFWU@Wv4}@O4xYy?taRd0*ho734=?g-Q>TnV3cY41Z2Oe@GFXtnMVT zMUu2Ka3DBs&!y%+j-y}aeKxqcgZNEdflrkw*O;He3~p4C0Tlyi>)KSzU3!X+i{A@N zP8Fey$7niijT_GCs%BRfXyft*GaNWY70v3)VQIA*ipCY;y1olwYOhC%cE#h%)t5a^^94rVXE(rE zr`oGbZaXoJ`97kDNuA{4Tc8^~46tm89;hhK<<#E@9~{gZ{ztdE^$JFL-Nyg{MQi z$~+pFSqO>uM)KX$Ka=W1e?Vz2!uQ2$c55%yg6&*0l%7yP=dE~-syg8qbNLaR4LHEJ z8Q(?^^B|V4x)gU`7POxFwe*^w3dUWWj4~UJvs3dF_=x_=aM2(coMN`qVPUZ>R%j=9 zP+-A(oMa$WVC)2}s}-3?6=QF93;bENAG)gkvaa;;wjZh&kcy^$d^Ke=dwqEdvpQ1; z3dN30Yfuzc)ywdOO?!wbIgYc0d*bQ=ZTNek5v(%N1r}<_Xvr~XkIN99bm$dT+)F_p zq1E+wtS$Ka=Mb$5ebi7%#2Wv5qG7$G!KQC6EYN+)(yTS`wzD62`(4KE?^UTr(^clb z1`y3CMkdU}RW(<{Vfr=#uVUChm2 zyn|1>Y;fQq1<^R$P3%SL_bSPjH1O1_C)cBO(Qw-gF#2mLek|XDc@sAi`gby3`4E8G z^aKoPuEK;@@x*!c7Iv!&uyR2m`5SqZg;{-v&OJig{9Xg-TBHq;F&nG8T;=#sV-VeT z$;6$nm$RC#%&M_*T9`4gP#hANLZk`;QNA)1-oKw_>)snf)!LKc(vx^vH$?^RNkX2 zlOGoZy*?K^_Z4yvI#TrNYctTQ6cS~MMC$Cd z8_ZMDfXqV?A+wLD@BDwS_s4s^*ExHy^*s08goXuYX;14kyq+LsBOEoTo=z}-9U09B z-1nu^8dRuU!yoZm9>K;8A9Qn+@I;%3P*;@Ws)k2c%eD&EV_z!1m_L#j)8Ar|_F&3y zUn?KfZzryNt4%b&_67GT*=(H70XA^v8%As_!Ne=Fj&CDUnTt#v4xYWk zQ5yTPnumi~{!&@I`DY-T+3Ly^H<`h?pKf@%w3e+Z4kYS_Gq5|tf$?)Ygtiu6QDMD_ z#0E&hvnn7CimHL~1s#ru{$-JI-~KT}b9GFe*_)JaJs`#pJ3(&ms3Nw{n(&T~M3i`@jiT|7SLBfQPnctnh|?zAV3!oy zNWoQmbo2>j-=j|A)Ltso`1N#@fB%jBnB7Jm=*$rP{O{xarv7Aq{53Kx^O!Z4H(!IyaVT0!iIzuuv$6e``W;2HT@{j>^`GYXbot@3r zXC`1nmM4zfRYz`jDUquMiS+Ntwb~(wQdk zJ~kHnrFRQ?A3Vt~rOEiGF@+4{2ChD!$bw?y37$`ezs*W)OvD@Z%-fHw z60EV8{RDR8MmF)2H(*Kg`%15kC)g`3M|e9ynRIR+2E$E;;1w7vT7NQPg@;Xn4DG>A zg&rYihm0Z%Mug(A9`=~}<`{g{_(!H6T|DNx(kf>da`NO zS8>IT9+07AOou2&kosNTur>DxSv7aNps0Qf*Ra)6msFpw4eBNrFUj%x@qI|=Cc>7@ zb>ow|hJzs7!f!WYAp3+99q{1*nBUHo_)OYFE1`*0XjPJ%P8aawY#rKp<13i?EJoQg z>bRnBBpLG`;fLG%!Td7h^Cp~xu|1M#yTrEg>jwTKqn!Ne3c{zOquJTi3anc&gZ40x zrGGBf!|#5zOktB1&fTHP%}Yj+7w>H<)fZS$Gubv;dR~@(T6~7jts4t|E`6xU)?yy_ zrjOH*B%{jMZ9l+ie<8L{m%3yPr%<<8hi-cHoXQk^9X>JzGQvKQ_Li9y zNe={C@nags)t;gMwK$XSUILz8^+tGqwu_zYp!jBwJTyGA1Fs(!$hGQGbX?J9xYK-= zjU8o4tm}~s-kt`%J(^hixZ$+FY!e$O*}1E=s)*8dZ`eKM3tLz+0eXAnsnkx{qczw8%tiXrJs==2Uihick$+fZfnC|bPc;)3`X3%nn1C^~0 z(CB(Mv6wv?$6GhT`2foG*5nH*KM%mC6)Wk3lnUZ0WaCvosW(!TM=q+Uz%TPhOmk^Z zGX6GYExx^Z)E;Tx7j+z$OGd{{;pV(r_8x8sr~-N?pB|jk1pAbyans-$vZX|hDQkPs z+3xFck={8N;rgdO9j7zQk3ruduGJmG?{ugDb?Eo@{#wPxg%BYxQg4 zkFOo}n|X%LT)z_s7Lms}gV9wUd8xweT-p38;f1>HjVQPKC?>4Vx`cmAX^-_a_j&&&a}^KD+TRwIdA| zGsIN!lz82I04CIrhJgGLkUicHy0aT#j@Ak|6;TL!_lH9JR7Lo2{VaAhM?jx}lLZLR z6t=e{2r(@q#JbApiq^*gxca&&OulRkekR(u*Vi1vI%1$bXDIk6gbSzQ21+|$2Qu>C z5^Q|?o+MjF!WY*u6>ZHgNLQ&lPMsjJLNx|~)_!$}mH4MicCVK1TLQj(Be5uk4Mn># z|AdsQib6p`J*roDlULd+A^-FV!FR+x@^IZeVx`d&muu9*#71fNdQF}89j}TNLFZYi zK4b5vZ$)pT`=YLKWkt&1A2`$OIk_u6cSqazW@}@&KyKv+*cq>ge=hukMREc;qTq_# zO{INes~p37rf45tjR9T3@F46VZVJE2mTZa_BLe#I<@vhsXnikkm6;0(-ulu!@G@+x zEhOi4CR6WxTl#g?CiIvRfF|*d!i%qyKql`tX{#`#qm%vNVW%Um>SfK7$a9t+I{;d) z9mPTqPcrLz5Pr8Uz;Q9^tZ7iCc94^2 zCPU=paWL!LH_L=TN+Bzc`7n$C-4{%O^)v}`HO8K*52 zqY~WM9m|TQH(`034F6l@0%L+&@bZ#t%urzp9Fyl^Ku9A zL+uUrzMHdwDraax4=-G;dy{;8bVIOv{}%F(4#OdzUP#^aH15>68}_8svdeAjS!z== zDyR)1{Tc?+xw-~4MdK+%U);gl6JNp@)i-R_(-2gdxDgJ|k>OLGKV@mNPr}++AyC%n z%i5o;N5{8UB!=MjTvGk?5c?sLoIsXk(pnFMS68YQ;#Ny9Wa(18jsiJ1k0PJHGg3Y8ZE2X^B|e5QbzXjKsE6@HplVknjqXWPM$ohyTLAAvP82Ufx?JI zsbZfe1JJ!?27Ect3SC{gWHw1B>ORAX%5H7Qx9`PlpTtU@fPA4Qbpj^)DoOL_(`>i< z4I$;}GGR~ET5>g=Gn=`e+1ZX#a_wUF`R?lyx1+z<&MvaxWDXTBhsG8~nPM=KyDtoH5Pv^Nac&;9q9b#gZ#mkE#lF> z;pDE(TVdIFXVU85EOz|ffbwpD=Dzz-@%{z6-BU~O?O!Lw<$ehZCPX<5*UI3o0bTG_ z+IPxJ0FiCeHVdn?Qt(qtAn5sNk!ki@@V9X%3Hx^pd)=H)gR*m3zSn8EI%m6d&MPCs zF14V2%W%4G$VR^CmsE8U1iOn(}K=ys79e>Qxh3YuTTt7T&`U^+{;! zw+1I$MKVLnL$rI|Xi_)$BTH+S7tGRE;}wPd*mac@ zHfTcz$)dx=2&oG z8>mfOChF8i!?7Wg@zG&-E_-P>CAlm4gA_Z=@-CtCzNpg%cWW@k0yMFFft#+RkriQ` zY+0QZoO9X4Ez2Ikk76^raP%!WB7CC$?-QuT?Ew(9`~-Y$Z6g{(C&ELIbkcX%X`EEN z4D6K#fKJ9ttjw^3p1zeRr}&xliGD(=s*j=CI2+m^FALB0U0LsCapJPBIN^s^CW#uP z%WRvASxieh95$NFRy@xnN2Zxz=}Z%`Pu*@deupEoQH^Dle-d%*IUgporJRJkGDKnV zLJau#f_=#NDl9V`#*A~jh~FoB)?Zs5*4=c&s@N68=+{bA_|cnO-I&B;B&O%=^xjyI z9YVg}`9OSX-0=Ok% z8uIeW4{rjm9i+e)t?y)=U8NZ;j#wwXvkA{tNRjolh#H?2&9kxbP)j1$PZp zLe=%xh5R0en65`()?!gj8de{`=*_{<#NMLZt{tRDxDzg4e})Z*EOsWnn(VXIVn5oe z%9ZR-lH3nE)b>(hg|(q3PTseW;dNuoDUIb#Q`ds3$67usc{kgveIIS&HBe#9I5ccu z4IvA<;n-JqHu0${J@@hz-KC^}3kENTv&JSk<9?7>)^+j3;!2EIl0=6b zn~isy4f({KTX>Hxs(fzR24UXjO57n!ahA#jH0aX=zF#h&!o(~(b*%zjTA2s$b`?Ov zlkqfX8Y6x>mSCTqjO~ig*fz=T*QekKasDw6XO+Jbm(xeAHE;-MDG$Um6QmvI^TTlT z=}f3B=_{tVWs3hzS0&EwTI9pwP;ux)UC`Lm6RMXL2@`x@38hyiSNu&f6HIDiFU}Da z&~4RZ(*BH~#nRW}`aekoLf^Apzm2f#&^gw;I*7c>QHSdaUBZpdaHjmdxT5}@rkIiv zFO2`DhaV#&Nyfr+Y^-aUxORY)P1>PCqS};j*Q$N!qp+XdrCS_}mW(Ef_E*`0)s`&p z+$B-X=qOoyas;{XGlD4?jTSGR4RPEV@EV?kG_dgB^Uz|&K*xx6_XUSblSuZ)0pxkZ z`-|G4vvD`)0^S{h{$;j!G}&Hi{}MK1tsBc&E!{I^rbEUA57F>UCk~IbfOq?LiN6kw zfm;PHiM--72Osl6XdZ3N)_>5%3%wccUMLEGuSSzYp&Q9tqayg?EV%^&!k}R2MZ6qn zMT}MS*qDLYkl8c~9<8$_8}jXO@H}I5&zy>h6Nb_oM}34FGxw1DtL~Ji<))LPqn7Y~ zF?rz7<;RDcZ$ithKZJG0kHPP43j8*Y+WJ!4+E!-3LXvTBv1>@@hucZ;dXtQaK8m+?FEDRnNJK>zjH|Q{%y; zYt0NuU$&LYUu$C_UF|p`zJsi3%EB{4AH%ZanV`Ea2Of_vt9W&(2UPyKE-bC)@Y=}( zUA1E*R=>!enLU7Czw)u@>ljwGFM>JUiUo%`X84mye9MlRWNC4Kc>H(=Q(SHY!P$XO zlM+MbSLQIcIs2in|8DWt(0NRI_7YsHo)5*_qM(oVxKJ1QZ9&34>NS3&S ziB22+AjD)oY$|aQFUT(xReB3V^G~!;EBl?9ZL^1u{Y@}u-*0w0vqU_Ya+?%inaP|# z3mCELi(_(VEi24@K#Z@-LVDF6rb3nq5#jHIqYjHmPQiW&%6VS;zYb!J?>57`Xd9O9 zU=I8JeVJ8_Hdc9=u-O|HV18GLXmQVi#PpcS<{sA-O74xueMbVwz(ZSDPt+!#4vmHb zQr`4iUt?6$c!mpOBwl^%HBolj7!n-(f<@gbW!L;p6WylWQdcjM?T_op^IR5^FFGz_ zw{tL@dsqQc)`zik4rjhehWy#6Ch5I;Mf|{hsLQ6~q-pIRrW?0H;2&d1bzpCfc78i3!JU^gAy>haP3h?XbKBJ`btLZ9oI|RWuMHodhq48=RVI94@NrmB=IA&+ z>^S!9KS*L%BS|#V;k$`KWw`SoIz=b7T=mc@B5n&OnCV7G^9;?NH!=nlAWp##f#eMV!h7^_R^-7$#3x>=c+6v2ILtbC({|M zr2AU+5f#Do@@h6rSDt(bK29#z=!3nPALs={h*rIFgu1D*Z0PdEV%3s^OwO+-S-JE( zD_&rV**?X@f5|1H_QHs{D$hetR|ocC^j$Qs%^`oi|sP-IQB{#`}CZQpFSj`(N#mD=A2g+ zGw(4uWq-lZ@bldYz4x_Z%8p#7G^L;5GSq}p7cLf#wZd_2cX9EQU1VnNP^rf(aWTg& zLXE_y6)XH|iR+{wnD${7_YU8NW$`|O;n+RozwHL7oa;*GbZ_R*dNqo>+Sc%%k{i-7 z_%YdNd5&i7drz*$J7Q=5-Z05vI;;e%N|j7Y!Dmy8cxcEqw&Bbf^tQN4E`A$T>8d#w zHRl>sI$m2UxL#Fo(&%-QQhTGyyZs0t9!}v!{e7h%~e;v>9Ge@&t1o3Iv3Li zMQga{EnTOmr`0q@*1+k>H!CtQe=}_gl31um)Um@%i{6<$$!X=sDEz6rN6PyAgAY}Q zz#x4)k9Lz`9)F(Tq3ya{wzUVH==DI_2^>W4*apbWRHL)X$MDGAKOpJ+OsXYiV`dl* zN*TYzV{_I;CW1T@x!1)p8;naK+_gAn3cVf zyNxx2u&4QWqEU{2YDmSMs`bK)V;bmNz;KIeJ{L-R@k^wXY`$;9V_&x8ra`u}G9dIX}FO?Xi563O!dmAWA7U{RfQ8+bh7$j}WM&$?1{KosUu=-{a-FhUK9xC$WQL`3;iZ16b&P{_q zNuAKrY)1c^>;gS)x^duw&-fzk748ch$A(Q>h5t=F0s3E@xTU*)<-emAJWDskX@hW) z!{(znNof=qeND%WuG_iWfv5azwI7_)bmGF-7C3*jj^4jCh4Wdr0k$@ycC*wa*)Wv0 zDu~qNg$?cJIEbywmE(F+w%fF58uytrnEx82K&Psf!u=QVMdopTE*dV%$EGAtDERr2 z%=?{2ucpfLZGV>2`mx>Y2tPp!TsPwOPZwFwux0pkksf_HWFKClnQV1Q4mlq#W&2;n zVAPyAG>^z4iEApUZ1)oZCaau5OD>;ah1+dN_POjG&>G2p#IRP;uA^ zuB-onuVq_NCixhq$p-V-csH=uN@QwEB5iEmN1Au8pgTiOqs7@*v?6XlL@Xace$F$* zO)JW9(nu5TVp9Z9&X3`+?jJh*N#Il7_v4TC&H3!DHgvS!YAAW^LyeZ^L$2{z>RZ*o z7f#nid1Ghs)3kfs`|EF5FZD9blj>;F_|bg1Y2V7h>>27`Z{QP7=aBbf^XaGIo%mSZ zMEtyYC9Rnl%|rS)@SSO!xc9CqG<0#m2$>BuYM>@>d*O};gdPxnsu$ePUri^4dV%dH zWB8{&iS#_)8w|`=(~Ek?@taWzHxE0-C$AsN>b2(~Z?V9qn>O*3LrWo|rz51@t4-V^ zeHvH&yA@?ed(plXQQUOD2|b!=4sm`_V&KuYAT$NT@?*}haYHz(-fM>E2J{B27yH0_ z#VFbm6T+vA*~MM^J2N?DUpjEq9PYeLiJnxS0o~4%z`Dmzn2)pIyn!a3Bo}a?^+IOy zCba;N%Q%?G^Ui2u`a)xz*|`Ak-n#-RRg1ai*>+(YKvl-n}R77bGU8 zr3Z=al}nor5cCw zW+ii-toq735t_^&Pg~75nvNhTwSlxDBbS%m?tq^V$o;m+@NQ)*tUrl-<<|YorAdkQ zocE7ivy6lH=}+jeRv$Xn#Z#JNTnCaegj7D=3D@=~@*DZD*tm^Jyx03;`2Ob{J96}58KelO4AmzR~$q`x~rW|$u~IbMUS*`FO_x9uYro^9jjrisF<_W}IR z`6r;RJO*MezT`^+y~x3X@8H;z?bI}+z%k!sAPo$j1WOBDu>ajn^!|n=Jae@ynb7kI z&GkA^9Z}Ge7VhA!-<*yEYfQ$AL zlV{Tv;&Epa{U&pV*sbf$S5BM=GmdwH*Oz~+zTqKZLFXW6(k$w__%Zj4I**Tneu7`y zeQD+yNyRla%pq?CtA6H9BVDFf>^^AAre~z#-Y;xx*AJ->QPYtXC3sj)8jl# z2mMq=OI+QfQ2ir?-cQYeSN-LA;n*cm+%Fn;o|Pk>gX%y^rqR6lQ~9-=MU8E6WNP|b<}mN9={Nm zT~Tnm3-y+s1!qky{#)TKu6Vi+*nvWHIEW$wR&@3Jm{FV&$N@ohW?W8SUk$Xfmii?I?qE3P*ecd2=*E+|-jw5qv zl}!e@zvU3rNF-sLEj@Av)Uy+^@N_x}Z3Gncg3I@>n** zOOxxL?8E*(`-~}9OC=6zAP_A#Vp;YCT~(iv(Ps~n$3BVhXM}yl?KSU2f1S;6x;Y0u zXG!kJv-6=WEe~6JzG5e{LQ%f&5G*{O22=cHv13gWei<@T(0fG#HQy z;xG>3w&kR%$r{JxD|4F=FOs?P3<(=`9=sa`h`;}U{q@m-nTxj4bCrblU)7U`NQ}d5 zy;lzN)K<`4RcAonFAp>q&f!@y{qVIyE9x|s3Yu#lL)78r^xbwp^v-dkjSWkAuuKj; z5Ff)2$U5*{-Q(cO&4v76F{ie%D=Yi`n?Oe$h~!rF_u%~06sm+v`9#Y@ypLWVCxfqj z__~uNK1 zGhNqWh*P@GzGf;wTI6XkTQB)>rfg@o3I%4NB1ff~6IizCli(FftbBGo1o-)qyi-B! zrQb0D%X^AB79-jHUo*w;HRGvW>lW}R8V=7Ry~y{IsnFA{2qwuHL34x=J-a)Vh2H56 z=F<}KkGh1!-~X5-zB<4KEq+%>!q%+ufg`**Ojr zZ>&XC@1J~&wr27Nd+ky}X5 zrrAe7QrqM&e5(8s?jHM@u79J+2d{m=I@@Q_{Y6IT9k&5S=gsCN7AM)7A4+V6O%}KH zI!xY5ygtj1Q|R}Hir~5FBB^^ehwX_z3u@9%WAz**vaQt&mM>7?TcM3iI_ZI)YbVn7 zdpeMAdJ@jaoDj2uE$O_Pa&pI|iA5Njp=nHl$h%Z=kEtayC>}&TQ%?}@LA;C}%t zSfEJ49pLsN1g+& znK+aCJtn9(ekP6Rk;Ine9>Jyl^8EgYL(nL_7e9(Bw635CK0P1E3{_q5#jtJUwcTQ& z_o2<$5r2R!x|s`G)ZEz0x7)BfHI3)>8cYM{9^y96$LPDcTHHCW0p7)g(VVTx?9GQl z4im1xa&;N#|91(d8fHLF0+4yT7K#6v)v%4yIfPi}(NlKg_(jEK{9WiWJeJgh_i-5M zlq+LWnRaXv4NxfLE25^dY+p0_$S{y!j*7$R9&~tqx{p0N#%hB#+gJ~z53iw9n=q3P}SSVVRg^G@1_8|02cUQZJkl%+t& z$n+#{{C~jqCG~7kvE({@q6q#iMtFa{GwXGJ1I*46+52bq*fQ}v?|<(;OZ7OwcO@z~ zxh`tP{!-WfUxyXl=32+&9A5JMd&{Ziq;qJ0dJo;Pax`2ntD=^z!EpENWPbZ(I(+<5 z1+jEBJy(4gl23Z0X1q5ISssnucm1*8&048f7fUAvp2Cvq-7x=Gh~vY8xzy;+57r%& z2h+cKvbn)in7i>%>bl@F`1owbiHmxGNs}DW@~DDM-O;4;?Hky(@D;{>8%0+QSEgoz z*TBK0U9h^q8lsn&5%0Zd~mDVzlT_gJ9bdPO|Ny}15$X%hA- z5|)=-fuZ01p}0|wYJ9#Aixz9rPge$kU-$qP-KGzzMlonQ&<9p|Mv7?afIE*BV~Of1 z%=eM98tHMc{@XFIRsISp<0e3A{~+k2vl4>DVNiIZksNGygV7PGs5JQlyZ>%9n%>W0 zCq55l4d*D?8+8KO8WUhe;3JqbehJ+29Sx1Er(%IP%CTdWC$YJnMx0ki!^c!@EL^o3 zlLtkx(eZMUuW`RL$DKyHmotg&F&Ls`gCO1i5b^71BzLB3U{G%j;vJPv_NqN3pEK`) z;mupO^NLL%|g-N>KAbcFN9g?sl?>{elS|H6*bMK<1cv=UhQLT`;t4i&TFQm?N27H|VheTGb#@yCA;_DsBZHE%}_n`r3;`{4{Q7+M&2Oo{-{nKI!ayg9=}-Xc`2_Y zKNDvp<-yLqWso)FZuzi^(WJ>hk4&z#fP16HVWUnN*rsKHZ}l(Symut_pJ)Uhv(oVG z6orb!jn>RbA&0COGa8n^FM|G>x@5@y5i~c%gUkvcV$g&vV!V2_cq4yiB+BC9&5S6-mJ?No6N6~QJedrvi=T; zx%Ws&`j?M>uSa6}lYVGaG(q^ak;9dKSK$0fZR&e_FGh!jLXFi{2y-sLhn7t+d(KQa z{H~has@G!q)_LUmj=99=!#*-*mm*nalS=g7UWdx7Phs=5NfKLE0gEJFTEELWu=DO` zX~obEX_?ad)9MPV{Gx)XdrrdBE*;P=AHp8onhDd~j<6WZ?a*>rlkPmef~?s$p3M2` z2hWTq6aSA=ceQmF^WOZ4+=3BYHoOi)L!ZK&nek9F<^VG-GjmLS9E{ls(eOE2i3V9I z;p?k^m{LoFIA!iz$931sNXUym-06}&Eu2`+tF@=HaWV zl!%i`WO&W!Go<*L2acavMN8*BWVfmAa7qP#HouPMV0u-xOKo z-l@bfaSnbeyv7DS>rpZNOtSD_z%f#j)|(f%JeLCg#UwW+86TWzh3__R#NGLW$=jnb zwB+tN_JALT%8|QRag{2$^VbBmMoSC@{}bZ9&LL7>uow4|eL{|nkB8E&P2^6D9Q3b~ zc9W0l$j5$tY5I-R_^bE`tT2~_N|gb)?5hT5EO<+*+jfyw9R-Nl>yOrjAIRGsmhft4 z64*=*!Ool#$LDKC(2wr3Aa}wEtZ&c&lsyKMW8GNkYMY86|7>Wg`5^6Mh7o_|QScx< zQCPfbJ>1HC1sgPq*~X_*F6rF@Tx;mdj%}C4ZL5o=-O2;u(2pu?Stw;Vu0}v+xgnEj z_e9rI_sFVg+u73mxlmJc7D`q;Aj+mjs60Cfi&e^*&$C4F#Y0`p^Il7SEndy<#K?n2 zOPXL-^bKDvT8V#k>|y!R9-zN0oYXiP&;dVBz~eJg|47QfY}r>OexLge!tFZ1aIq3^ zJK2|7-M14As@_4TU<8JKk#yo#Ew0@A7QWiHi*L7OC;bdm6$#w=zawm5?uId&1>H4>~#4mSk6dCbkB5@bd5&S~IqcdGtMw z?p|Fm`*are>up7bA4!1zTlb^ss#3@RUkv;?i`5CEv3=1HT9P0KgWPZ6_aDi;dtE$D zd3+L%xQ%13M@Q0mYq#Lkv5Vp6k$o^R`hl>jB>`g}UB+P-P2t$EKz#BdhkP*jCM*eD z2w}k;_{3yBU99jQyxG-3vYT8eSiOWdI+k>V-Buh|Hi}PdIgjCHL2TWB9bheEhJ$*? zvy1zrC9JPL_;UxCsJDh1+y4?1UG_qQ`zU%L-kG(n)}|I&tI4dH*8J1@(sZ1G-mtO6JkGZPs^Q$Z<`=N-RPjtY?kl|qZLqQ-nPQkLwt?(jPj$a?H zjJ6BfNbsr?aNg!7*>zc4l1iRNX~6ROhicP_+~%HqRQ52@vDqJcm~ZA=YM-H<>^iz)hnD2e$s&4}oarw8G{~LWiC(Sm z@WebNzRbM{EG2fdY|U^QVkb|N+%@QTxr4Nz<1eXAlBW%&%b;1!nkwsmz?c#XK6F|T zz51mHmq};(frC}(aub0sI(WyiX6Z5Fp=1WTeaf-fG>drFU1UkoyQCa&04}_u1Rp9E zvF(G+c~FTwJy&ik&0KDfj~lgU&E&0Yla2{wUuh-bLnYsc^P9;J4j|8^+>q;yS9q)JCMjrtj=6bNM6SjTRf^=m?8RzWU#$n=zrUh3 zZwWM;7J~5uRbk=qSx~;c3UmsZ9sjAx@<+?MaQK68@uXoO<~eRBzZ04Sfbf*nK zQ3(v3eugE@vLpN4m7$;H-28mPiX9%20*5}2A~{n!@ce_jxG2gR!zwf|@^1-rK7S+5 zY+Oe}L(AZxn+eRen1w@p8WbICJD&(mA* zyYW5PT!4_*njb0>1QwM`goI2??>B#}Nx$MdfnL-A3mdBt&qNZ$9w zag_PTam48g%-LH6o2_KQ`$Zl#)|7F|jeN=SMoxpb({1>(=U#BN*}A;5WEuA?-iuQ{ z9)&n59}!jIj!swZ;@x$B;EJv@vzcE4uftE#;j0cfuDvr31}NIo-dkSaNY7*Rke3dT zjV*vKpFKG9NQBVYtBYx;9_A;u?uTgsU+_?364OoDLDg=RvjJWuqNCDTvTB2?V7~bS ze!ZH*-uWEF@J%D2ui}5Wrn*_w+Fs0VE^y&FGw#CB>8FKIiA#`Jt3*SVd=vv#Ckpk} z@i67;3!%Bfiw6hpBFX_PU~_+EpkLJZojpf|$HHXPWJggevyGHppG2(IjTZ-C4cM9a z3AWAIpm2I8bO@h?uPYMq>ybRrvq+|Lw?2`(+u!2iUYmtYDTu%H^h1m=^o z5%+i&V`Q-+F0+4zuYQlAo3s6}@M0pJyY3WdTeQPN*%a4`ve!T+jb7L*6@y4my=2Lcb7}=Wa(Mp>;dXU z2T0tF4(4>@94_=NMqZN%V;2h2eJV)IIXM!$3>Ep8`kv5mLWd{QT9SOll^)KQ6{n0d z0rBkyK6k0A*l|Ujx_*xWSJmP4_xUtje7XPdO7?)Z4A@Cj^lMo6L4kmS>Wb!;H|$I6Wd%bUS6Ay`ZuoQ zW$=J!$M)gVe!Rl&`Aj%@BS5^|xg9n^5()k9B9YhZgTZA9(0FY#{SadhqbADo1$8?d zs{;36Ti?ZKoGm#u-bq5JgTIMXf@0*ydMHk^rt6o-ldghO@c5AtXe$0 z>-%1+*!T=@Tr$PG3As|cSx)KvgPqV|5>ZR`q0Ph3QB(%tw=7fA=rvKvLbfOpO zXW2zOQzC_P8%Kk+QX!i->=*f^SRpp>BhroJ3l2H+np`+K7kyNU;BHzt>2cYJ20Tu| zjc2~XomDkh{>BX&idSP;`%!ewP$oey9zgv*RrV`FjVIof<>%vluvtD76+*|cKhIx@ zO;>7RZ=F64EYYCDUzqWz}`kv6RTB#Xb2=JPKmJJ2usH}>t>!Timp@@A*=@N1zi9rkGwWy32WYjz2l z*n28Jd-y+mnEVv|`m|z;(?XnJ;38^`-N^alKx(SJa{cwI{v+zox0Osf(!Y6&zxl&R-9+f)>#+UC^ z$o($E)uT3up*L!<&*6ipvgQZ#2>*p0@&Uwkhz)VS(4XAzQh+wy3YHe!pM1Krk~z-! z$5NX1(t7uFNUO2tMXz+(+!1eu**!Nqm}RcSgX?qfg=Pxr|8@z`%jS@2+K-y-kcD^M zBVlMq58^Um40a4{rUNw!;U=oF(7!vFx5Zy({c$aE7>DDO(oOUJRsp?PQVh|n=5^|feZYDt|8 zdx*1mu;cf}c#@DhnyTG9fvQCp;olGkWFMk{4<5m{d-TT(A0}4VFTV}B2g}%_5q+sc zqzuk>)r3G(M~w8Byj>+SO!G__+i_zhPXD$H$cRboUh^@yeQP~$(Ao*tzq^teOrmo} zC1Y&be7dG>EfjRr;F#_Zyy|$DjZ!Va#|;MDc=C4f$9#Rc=-j%T-U z!|tcp^yNFdd0;O|NO&l&RK39VOv=RWBYWXh`Eax@x<{0LPe)tLHqrjkLe`XXf$cW# zU`tzKKz*bs@0=maCod{vul@V6X&cV7Z&|&>@)!+V`$q>Bo%>$?;!$7Rdpi(&PhLmD z-ydO@c?7z)uf&F5y5QJy2VDja!?*=9(&uNewhn1`Hor@}bF7p7+A)XpB5r&TcEd0!VCxi}|h&3)B z*^&FnY?j+h#-E-<7tb?jJoys&Tx*4ceGW@KHbpVX;V!Y7uY=y5JJHHW0UX;y#BZB* zgu$;TW4W(6TA8n9HjRzUO}-Hg+KRBzZwxt7`A{srtwZIq&6zQChtJC694%!tux+_B zHXgpjPI^}R8lnf_D+-Q()a zz^5A)jqFi*Y2031x*`rtOC|nfL>kiyH(`O++GJU+75j1GFxIM%XS4f`B@Y9u*^X&H zK`Xc~W}irBSKq7$yE@y-rWse6*Emk%yzLxS2P-p|?^a~|aU-HTq6ZGi?t_CK-Xh6q zN@UTsX{^WIWuW%pBD)ct$DY`PpYY!QgQ<#eNc{Z+N3Ni1x%ynwANm2S668Nk}yf*iKg+ss^ zs6V)rtXDh9hIk$%85ceZ+F67Is)RB7Fh61xBK=2HzY)CjL#X8b{NjxwX~$IOxMSUs ziqbGeGUqCSK}f2UUoCV{o_7>_$W=Sa`SoBmX_r{&u^ziW;?rNpoG0?EI#lkWZTLr@IRCMT_BK-ILe z+{-^scsjm`u_*wzPp!nthleXvzV4~03w6iB&$1}fCJ(oTedNYW58_&tPW!375Z&*$ z2sf`d;BBLaj&;A~$@y(la7C#iZH-doRqrd=-(fRhLgPIa|4-`uNzAj}H%G(iS{LEM zz)Gt9riz#h^C9?nFyG?jP?4SGM^;FkkGmEM)cILF-J_s^GHd(MzV}G z6G>)>%*-;A6)kB`QIa$ynpUaj+}DXjWJbQBK@?dTNw(kl{RO>VJ?FWfb6?lz^M04M zGW)4{Y+&dwB4>Vv+13QI?%*Y?p-!OsvlVgge0g}f{Q$YY*N%KHJS`X~JtMWE2W9== z$IPiugS5^2%jRqq@96J#lW&u3u;}~`?w5TlJ9qdRy}vPzWp#%Toz7c?lfFtG=e!ZT ztqkGk`CV`-QaneU&$6bDa2C;9$`&W&5q;^YZ1LH4G9d9=)xJg9bXF11y9Z@dHO`lT zuwB(eBU2)@ravKLCR>8TmzDT>YA-LhRGP`u>XCEa#pHs88fq9x;lnR7P&~Yls+^SP zo=yJBeNrifLhdHFw?0yce!QOCY1~ZKteGrmA5zBp<>n-$Q66+^i%Dvzn&`Zx7|{KX zG{y^*uSz3}jh)H!vfI!bx`H%)m?HS}PJ_Z$1J2PqQaETZ3xljPN$ye$=sI6aUIu+) zF|qde#!4Q(*59Omdao1NHI&?31kA6QK%}hSLf!8$&BzLsvnux3up6$^i z-UrsgoZ^1$+1@H;}5cm!fY!)v{SS z2H3to3{{2{fL_c;p_Cos_T=Z0uK_#30nf9`A)-U6q*XZI?haR)M7EppD;Qmr#d&JA zgZIriq8{78enhNBQ+0LtBWqYaCl^Sab_&@Sa31b?`nkwVSpa{245(IGa0PbUtK}q5 z+8}wAF+7jXgLkXP!kNJmrh3xLMQdUNxq8^3`tE?yY|{=Y?pw)GP?^<2YTZpxWwdKG z1bu=>*%Oe z-m6pJa6@u~6YoOb!f-<79$cJO!X%By=t^ltY#1I0m!=J)n+DBc8yjZwL%;qew>Lfn z-CL<})BX`({3e>aeRewTiQY(DXSqS&!EhY+qXLYF4RqDcHYGK)e-MReOZs!pM6&(z zGSXhxM~0kUMEmV(ged{qWa403@-Wp<$Wop{{5!NDK6n@Nmzh92&MkDE{(T+>-rNhZ zCifxBMg^x{C?JY)liA1}Sx~n7AN*C1Cvm^}2_?}c!lc}>%s4%rOxv$Yw9Br;>(Lgj ziwBD?rJv0ZU>!-n(dZG-BIc7y)B^e6CtK(ruMG`EZTtX*bUJHlZAM&Iw5hC~|Xsc7@UGF6_ zZ{s0?L^fS?mi=MY3XyoEX)QQ(Dbn4!=kckpIuuOvfS-e!X!T$lFu3PMR`oj!N`J@E z-v=C7({p9^-8op;=VdNzjyj2w8*6ax=$TNdxR`R0%WzolHB!`b4^MRrb$w1JfJWXH z_}8AyEtOhLUyK|KOATJKljoGG??sLmKHm`UT<%gr$t*VvX*f+ab{V04UK#7{NCNFK z4v_H8kecal1dq8@82-MsPz6jp_6uwJ z8GxPW+)%yN1Q!#h;PSgyiPyggZ13(&N#z@N(tm6g2@W+7`V4!y%+n*m{=j+Gt)!0T zTgepnbU!$4PsTfkBPz zUFTpDT(5z7isdYGWC6E%ff8GIE0V4Hs4Zrl(!liZT#}TIeDjR!3|CGk>Z=CB_T}gC z&Ae1nnRT4Mp4R339wN|aK`NUx{gyaqN@CwfS)mA+WP3g>5t&VA`C_}TT-?sFcxR?9 zY1Vdx^jaRv&d6bR&tDQF`cE46Sz_dk9yT#&75Vwv2xWUU;nn15HvG&a((%um-}JVW z_^rFf6c#2(GQ%90^4^mu^ zw>6wiwAI0!h6+{_bs1YH55yHOt%y;+H73At^hzkl(u_(M^$qDb@>LoZeCa`}KX=%r zdQDt;pbuW#eq<)Cmz{T1Mv!LFD|BGQFIXgrLDw8v;os~sa6Owzw%(4wp4ZAaeB*k! zQ#77;wGv~xg0#Jyu>B^t>T8C58zW5*RmT~ugKWpQEY_&Kvq*~Tya|Ml`A=KIcsTxqjMQ>$f zna>zZo55tfE7@Hwe`a(31wJaf#^uS)A|qW>NrA#bHb&+Hd`Xw^!Dg?BZ+$!*{d$~@ z+5ZTXi^Tk3ycx@UrvRE7yNKPo0Q{3AkGi=oq|>R0&o!P3)f1bE?c!eOQ2XYRJ9;%4 zpSzL9mc3>l>t{o-SqSvgJ;BQQDZ=u1G35D;dHC*=5jG9@$zAa!ti9fu_%(~(EB`hK z+>*nrQtXLsMJ46R$xpGxan6yRUHtRdV zx6u~xHYgP?Y}3LyCN?;B?<|%kKZIU&n#As?@XYo37&Moj14)On_$Nl@yz){F(Lt=h zn2RoPEqcM^UgX0eg92i0p--fa$l(LS7-Cl+OA2n6@v{!Lvv2jvY)@P^oauj`Wzbm3 zr1i!mbo(HeZ0lGyQ7eS&P`d~j^bq-GeVPndmL__dYg`HoVub^K_j#Or!TFlT2BK-M z4>tSN@NQlvKe4l#G|Ya^#^0z#lZj3s^2h1Vt|y#@{WH@3L>WtT8I$v~sJ8IT<()T$ zLED~O7Ig3@ck-GJduQp$Pgy&RvyHir!;8nE-9LGzop70suuqdj^*>BpE0r-O+>+&( z=~a(=n9sC=6lj%oqsxoOpU9KQQ$*f!5NY^tF!4Ke6_tatz!XQE6KXs_aQVzOLF3p4W2HuAaQrv*)orM z>em*`TS`O+AsGqZ5*&z9aFgKdcal@up8k zY9k|@-@Kg3cortg9!iTV8Rd^qEcavd#g{9 zxt*`c3`aRIUfIJJ&evqG9%u8zlg@GG-`;b3)P_Q|Pk+3c>&Hw6F8*OsnmOtNb9gvMp_a&i6 zBFS^TN@6}goqyD6O7wd}c^&nuTys_=vn;tl{8C%cPh^4h%xEL)hxxKy7bg=<-zM^` zGKrY|DC1X7j3mjn1kP5)@N2yFx#<&HInVFT%w)|lTrp)N4D2!$ZZ*thJ?c_ee@hLA zj|wC^LE4`WZIa$KCW;5cYHI*$Y3vs!znQ)WWq|qJIuK5RRAewBcY@i!8b+QJQRZ?D=v^fcab^darv_X~&a`%}KJffZUF z$GeFGnfH;wR7N+SSbgs%2USyq(AhR%q?X3)(|3VV8Nip?%WP5oG=QH<{OYa&@?Me>^2johTfNN(71BbWS#`y>_-x-3Oiom^BmX9Krua|zcRnBkomuFA-t zESj!O;v*d-0TwQt^@eFI#jb+)*Gz-`f!fyzV(}U9MR&>DGnpoLS^y(7GGX9 zMoyS;?kicnaD?D>ay;6)x{-0$dq}O-53;}EAJ^$t&-?%S&X2sELyY@9fD`-u`P}t# zTwIkR?(z*_i)5AwpZGWk4u}@IZaCqMJ9=E0!Zdg>d?>V!DCIsSC-H|LAK{M7iKr@6 zT}jWK0M^qyftB=>vU_>EiT~Uz;o+>eL?xt9@K8-=4!bmAQvJ_y^DjOI4F2f5+ zm&t~!mvKb;Vk%u!z)XzoIlb7M{M(aTVB4o-g8PI!M193E!MkBPi3-klsgfB&=O5XH zYo8<#Y3s#A^OrAq^MVLvLH%LJ2wA)~rJl{iBc!7$1-4&5i0OHD_#s|Oc(P_X+>|@Q zqK+hj(5*|>{?Q^YE0w_JjWfT~u90PV}}HJJFkHwSHuQ$#wh~ZAH%Uwmm;DZVWl-V@|ZxEBQ|g{z~3%jwQA}kwoW@3~^nZ zNnG3HT)MtSkxAW+>~rKHa!D2NsPu7{n#%FGWmq+TaIh*QWh;Q2O)%LpQ_s1jN7 zUq=`0tQ`tJu72kH0@C?^=hws6gTBK0h%aRJd?$82-i)|grjYju9OUY46ng5_u=@Kf zp*!&t`=~yjw->#ZPph)X{(kq#`qArn*Gk^H6hY0$H+}Myzw}uO0F=Cl?U0Z zksDyci3ISs+zvCPZG;A`&9J!qG+gq#?($_`Hb_^gicDoO6T1)~Ch8Pgkj^W`9}jO`DUxd zbf^F3FJ6DZ^^3A2zt>veE1uo@cmt@J-yDlXQ zW!Z|9T`b_RCf_y9gD7XKz@*b7x!JAyEJLM^8GrhZWZ-IMY2wF^@LoZDuRh>|?^hFZ zS84M2{3o)vGKbs#XBvAE8bUs<$|k~|cf?`DTuDKCFA3>5$M&f`<8-roSh{HwCv2)? zDX|?@W87RJ(JzY}{#ro#inef1Muw6zt!iXXbU0bMP8v>Rsrr487Htdz?_zmYeJk8lFzf7{kPsF7hy~Np;%CQ}${h{Sa zEr~9h0Ix0>3;K#F+_GtXD4(u`uIp=gspb8_e?TgK@Z4t7E4PJd7#73diD828)&oqY zs)oO2*dI!Ny>Ri!xdU^H?1W3*>yaI^6mD?kENc3Hyl%o|^59rH3+fsTZ*B6}%nM1N zPfiM%%jRIp-cM}9W3jhB+MGRqU`Trd<%HDcHq;tzCL9k~4hQemu}gEhaGCN@4E`?- z5@J{2g&=KSK6nesdwK-5t&ifbcgf)86_0(=>*>bJ-$8v{v~V~=kxGsIe@>u)X*{0_ zx=xmK=ctXW)Mlojte1#=KBMXJPk}=6zlX42kukljE@IFsW-bmLpvTRI;gAJQ@V?px znq{@oc3~2ZUaSa?MV07Z;}2(NJQsgwdWc<_60{cQLd}~PGIaS{Ov^n08Dcm2jO7{D z$0kCj;}JGPJntG^4aJ$X=}o{@M*gL1x}DuCh^u zII9l_(&Pe*jl}<<_)zkwm0=0E?^zC|=tyU$*@H)d9DUur5SJC@;cp{3IPy*#b^O+ge{&?s8hM+T z1P#Hf57dOE4QEN^nmb_N6h&sgxeq;M>*&Sob5HP0jq{0-7id_r zM)ZSiW^!jrP(5q_?U>L>HpV|;dBKG&PJ_Kjh5&TmjyJwV9%6in{y zP@=|s6#ex_L%6xKjeB~vzu*(UmAW74B$}l|X^P!F_V(Frk}R^W-hMkwq$kf2io0Jy zSmXt){;>k;m5x)P!X2Yjdx^}33>u+Z!R&($qRhOJSb0R6hF_q#aN}A3DHZb$z;WPC>$+hbcvj29)buBR&?b)pX}Ss9PX zvfub$5Bm-Ux^XiaiP^O6 z`G=uAVFN}dJHwz$(^#sxo^WB+V|EP7L~q|15_C}ftnyOeT=-a;(qDy+c@l}n#(VK- z(OP_33-AUzF19-IB1Kz#=L(E?l<8Qa4Y~WrMYBM^H4f=Z)wi@37FNX$5i+K$T zl@7Clw&7SfW&~7YCd(S8K zzElc!#wNqp2bTqt2f5&7A4_FDrJ;VQg4YXx-OubqO;1XaP|x*e#l%f!!#Png`kJs4)3&sV%X30gBU zUA_erv17qDc)hI*?yj*Tzorhs?1BVzOnwYTdba$)&mOGo&nR@f*~v0=TF8=l%R!}O zBt)mLgnz#W<2#Y3Gh&@8_Keq~(%Ytz6;|b>FQ^@}PH%+x+Q+bX-B4y9B1?9bIg>qu z21AE?CV6?{E?6j^By!i2aNf@X-t_BqHu+m3cnmtg1`Tt^Jus48ff+n zfgRg&K}Rxxo~_*m;~z;=VOtG8yEIqGs~L-dU)AArmN@sV9*+531N$>q4ubXXpu9DY z?^PA)#7kSruHmAq>Xinyj-H8L3OC^&pW@=XBv;UseS#WdN1&wp3LW0t%kDXg&(k+~ zT(M9^a7u6$2CSYBo9>I8`hpSkymTCR>4zexeFToQTEI2KDj{{5s$e$#9yIv>r6XE? zqLkD?LH14xJ{V#k{D}K3m@cuxcujF1aN*-J9lBmm3Qiq1qUsNgh2xLin7!g5AtZl|P_@yU7JaE9TeHsNg}bJ7R*;P_ zHeo4llgMMoq(Km68_pg-_lB~_Rcx7Z54$)yDOxI50F@NTw&=B<@L9xq9uhAUUAP^y6jWX8#DV9qz&g&#Pri zbrZ$iur>8xyn~MEdq^tN2U3G2ws>Cs8uYer!-u0|;fC=}&~tTw_~T!}@ZU*rHynsM zIb+z~y_Z<|DJkmhzZrZ^r-GUEP}ruimYNMM!0AVe&~HZ%%YXd^+fQrL2Dgi>`-d$w z$2-#O)M0{A;b6SKq7*)cDNtj7J2;SE1~(jMkdeQ<;m*%nSeZOtsJ7Nc+3BW&qJ0kS zZ@&@$@n)h!ZWwivi4iWYlEOy+q14i6IZ+Dw4h^GU!Q+xI_+*egN%Rt1)D7*6 zB{*qOKlFKO%vvAr#UK1_GQuJjeE&3)m0NnqHqA;1R5IdEbj71(St8o3dBfIJq~mDO zyEFS*BewZ2#dXupvi6uwAouqSIVf^c8nwc;qmYk6Wm+Ws_E5%&eL^~Uh|6+ z(qHvpnodgfgFR{VRjW(2?ISs=9`FSoKEFvH{nsaCE^MIe_(a#P?)Rv8V~wEO6hR^f z$Wt}z94dK#KnO7(Lp@R*tFy0dp<@Cj;HwF`uvjTl*l<+eb&*t%u<(8t{c00Ne8))R z{f(c<=ogII70-r$$@XO0A%AwZp$ZJl4zSOw-mx?1qoH&`3BFVuCVmE6Ky8P<@GE#c z+?cQ(44b-{SEwBN1p7eJ30cbd|7At0=FGk2226@P&JX>#0g5D%%yG?T{KmPW@grqu zPQQT} z*GX)=?gY}4sf()9Kg{V@jUW6n$e2Ux(PTlI5g6lnuWK2c)i%n6a$t8WOT7949{8&xKye0ow!>jFYKE#cc}c_UH`xdF%$V5$VuA z(HlPZyCK=J*#zTi%22<0CdPcM<3I1rAS=#qhrga3sBF58bUkTcQdAP>Dq0WB;P?suY5zc2cN}< zv!>!GaprYSk}C52ACfnXQ#eKAFtYq#BwpI)jPl~{_ri~v7%F`M65a>n=8_8BHUn@+ zqA^5{DQ7L06#3=|MZD$S19E$P@MPf$ewhf@keNoAviSZhZ7M}2Z9H2w!3X3Lbn!`D zFY|u1!)0OaPW1J#6t+Gn;MVUc!>O12p!p3zzMKQ<8Cb!L!G~~;R2wdz%){shMX+?& zASmFZp*i~?DgCAAdh*a)!F8ay>!Qk|^wKIv+E(?78mKL!kGIO8SH64oI*X^Y;iaML ztGk@=K4le*&Wm;(*E6yDbHD;ui;8pX>0SrA$K96eJ#&!`)8TPvxE8rQ_Nb6;eu+G3 z)fb9vrCeXoQ}mftjBvp1fUrMf8BBZe0?lj}(NwixWaX1$n5DN8*6r1yh2z^;QR`XK z65fH=Hcg~WRjRlJF5Rn_uK<_sXvT(Jzj45Ze9S&0g}=ML!J0dl zaonS)@YLH4r@Re?I_(YkX8$`CSd;1mC+_Z*h%H!?x%Fw5!b#f*Y6#B_6i;nl)Q^2tzSdd+OY zmv2^(bgC_=>@9%Dd5ti8fS9)&f#mD@Q}8-?m|(Si5`6745;kO)lF=g9=)qcfdVZ4} zUG)TD=G8Tz;rNlhOR~gSyJe~JgS(()GD;X{7tb!KKV+-+?}L^%vUKV33Vx(#3H0+x zg&V22jO(CcrD zedd?oG69qa)EPzI{vC~CG7ip9 zZo)^}a%4}HE2#@9XBWmN@WC;SK(-str~yTDa9sygo;V6t$&Fmv(`NPki!n_Zv7`;P-dX)?%J*oO+$Oo}Y zJ}95q=q!W*?HN^;re}z%PcytU?P0f)E5LV^67ABBBJW(S$kGjKp|329WxO||MpN_Q za{FO)an6SBflo+Q))+`X7Q(OB83}(jDA7-9ChWXr0yv5Nug7i6p?v=Ua&^Twm_*+2 zpQ0>fq;X(cpX1f=OI%!cvH2kwuqb_(9RR zdomfM0#mt3H&)OJ^#c&KISJQVCE~w}PUxJw5^oQ7L0)ky>JD57YrizHyMcefd4fLn zh4+DsUJdh^T@Tw{>%!LjDKtUk-eqjO#?-CjaoYY&V!h{6Rp;~|9P(j28D$?1-`A#) z<7Ey|aW#YWiu?X0-D}z8dy&v#?Vg_@8L$DRCJm?3W`^tKmJQ4y zi|un@+v)*8ju{e%>~mn|rA4z`OvG-oB^g_(4o}ARr_V*sl5=06aB19qEN&|FFF=@W9RHy8FDz|J=f2%krH7Pv z;qL4outa7Nq&!z6Pye1G`vype!PED|!s@yBPId>MEZ#*sUA$pZ&H|_#B4PFh5oB(^ z$J}L4MY^`n75hGHg6*Pb!gqTp7v>!Xv;HyW5fVc_?0Ny6eb2dt9%b;svX9F+D?n|X zGYRiX$7iZ3T=3eB)ZpA$7|IGG9gpI!D2 z4I`Bkfzr4EV6Ur>OS7MG*Cxc#KIhd?6Co$$7@Z(e`kP66;02=i(;72gCV=F*3e_d1 z`Rlb0Gx?>nz-dITb7CMk|r%t%csy3nf=U%`9RXZ$ymP_K}%ZRj1 z3?KD)2>aYv!8@}zEa>z?Qjz$A1bM#T9`2t*isaW4Rfp;9{geN=<-2acl=T64e9|qf zlIbLF&Uc}lcjWXl+gXv;M7S3igAWFo!1^jr+$YX%CTm>;^Lzy`9H@f19kJLvUyT;# z79(vrAf)N1i7bafRH5MjH$t4XxlOx(;YB`z_Qo4R@}UDnYq~R)+57`7*A9Zk;%=hi zatIs8^@j^S;_S7DhnUG@@laS18~kyy;H2}3lskLFv9#~xr)~)uU$PnQEP8_KE1$yJ z&zm98`!ZBa*^QU;DP6d75RK}XP3ye2v-FCw*r;oUH0K>Rnud{Z{W$6-&MRhGS(3>6 z`|u+zgYiG-5KY%;sF2fVw?g|-XWKK9kVh^wsOTM8Gkg%rJDq{%`vUG9{+Zl;e}XE{ ztz|aHRPdqC2w~>#N3b$mm)z?s;19QFu=%-V^uKu$a0!SOnm}1UCguL)RsJuyVrzm^*I?S@2{y8jmfdU!>#VQ(p^CANz>Y^6U=} zwzQKqdV_?SgEXn?j_LH^Kn64A7vpYs2iWmf2L20-sAN66pxrYS9cRSSQ7=W0*CZ(+ zwspSPr;miya`AYkJ{L_|7_`Tpgt4tQu&;CqmK)xJtky+nw6BF-Z%GBu^mN?OD{>=s zw1qj3ym4OgDLx@0oMg&;V|qJFP+}7ex5t{I!jG9?ku;7^YBUC=p(VKFXdaPiOGVd2 z7o2qH3|!lnhGs9+g~S{s=A=7V*tIE)+>fZk)olnwLr++?y-7U75a*Un$7d7T8LZTx zn+BMX)~_+>u>Uv&E7*~ux&pyySQCH2>J>H|+zu9d?qK$~S=6Xt6&-zgsG!uYB8*sn zl@6_#>iTy59kR%`K#*QAtU7cpg??uggdg5@Lj5N~XBKPGKxG@DUuraHoYr!!dgVbc znrD?qN5{}{D>l)jk*2PP3@^LnEt*NYyDX}$+d`pytH?~htV>@GyCF>3Ezr5r>Tuyd z368j=O=W@;p!s+Kcm48nnrb_jbk7f=bZ#XCyxU3VmdjM96~6$(*btok(uM8}Xcqp| z<K3rhmtmNBT~k>0b||gbd>(fm z)x_OvX9+Ggso=lzh9vN=Jl(~&a_g^;63&hiV{IybaX@=H)D~VOp|-Qxe&tK7CT5^u z9cWBH`)?I=gh{Brb(Byr=mjjc&Bo)_y7XV!RkpL>Ax52!#U0}Frmpe`UTaBU>f!Y+ z3o3#{{-2RBt9~Bsjhrvczu3kv;@yO{O_#x=L4uuL%jv(G3O3yM4B0B5z^dOXleNtj z^kBOp4Vga>d2SCndW!57Re9Q-bRH*0TjSebhlH**Wn9ub7eV2~6?oWhCI8M!i7s2} z4Vf|lkaceX&52(DZ~LX;(f@RWA)WW>;5aGQT|;+ZPHhIcHK1K6xlt!F<28l1r{e^> z-M56O!->@C%?=Fxa+D7Ew3$-dIpl5YV{o4I1Q%)5;>eyTIv}V4{Ui#spSMV}xnH*L?DM*BUo zxBZN8#(S}NC$fj(^D0=8x~woY@(dmGDGAD-{)NA#0>tbxMJJ;OX1%2hrL9#3LEJAb z_rls*K!o~@!1G-q4X${MfDSP05jjp$ViMVLSGFuSij7tR#NvKKmk8K;wu z%bmC2kpY)G57gWR(5#2c2nB6D^W z$X+T#%YQsEF1*RIBElfnVj*^`rI5o5^aa7+0Jr}M=hJU0LRE1%`?v9m=ssLds#l$1 zKNFsi)&;8|>ic&Lf4&MjU;UF@sy{^x+K#a64MSmXrM>WcR3yG%dI7h|9OVbmK+<&! zs8QJz_C;b3>hIOLE|))K@UE3uGtkxf936+12CjHN;wgz-Ax?K+FB9%{7zzb-1B7Z} zGkIS=8_dP?wCKCoO*j?I9bJ+R%3CeDs*fEw|Li(El+nn!-%rFTRF&>39nU3vIwGtt zd4fN}o}p#L7)-4B4BoA+RI24LkcC6w{+cxA*J?yZeGRG1@rdGQecma&du2ykJnjh{ zzI{}+bd;b}R)Ck>IG5Uijn@gM*Y-p~tCk^4@$L?I&`1a%M=8 zU0$8Ix@0%`y1`sHK|3NRW|rcL zJh14=W1Kg{ge^@B#b3?cWdCO=`tgw|9^n#Tpw0*G+Jb8=-_Qn}FIDrC9dD49XKKQ> zc?-D1<4oCI3w^XVDZuW-;qcL64vuNQNXURK(BoswYCCv1wQm8D)wV&;#Q(@1H%q)Z z!V+|=^@UXha$t6{O}y__GuzD+qt3=tsn1p9{*~$Q&TP4`eb-Gg``~b@P<$Hwb1L!K zTzjEoQa0yv1K@M_RN|{?ho1fAs`s0ogJ9LUY`ujP=!P^3XTB-B&T80A>9YnQRzrvE zt8B$P5gllmU?j*oIt#hiTu{z`CkYL56SkkQr~PY0r}|x0;fucxdR$KsI`h6#s|zV? z=j3g|*MEb!(FUSVDKrGz?C!8xAFi?cX3=2TdK%N3RG#z0b;CeAyiCC26gYl zg4(UOG)-TMH!lk$My-bMe7Ymj>N#ln+m5d3E+;<1GdQbN&ROTa!`}-t=-UlTh|}=)cSZaxjHu*Tf|(x>iz`1yHCmc zW9k^%c>@|X-*UfOF5wq%ZAxsW-~h>29Aldenc1rRz@;zwKu2}{fvE=jHnNzmb5n$< z7e=)6>QZLoc89^15p=N311`nR7CXia0lP3=$=Fc_Le4fGgx`q}EM_hJH}yil!hE9q zFo*VZkAxKoTJ+VM=cM_9ws7~|YT^AJooa)yEv$0)YS{VCPB@^iBW&FL8VaA^ATlp@ z3CFaj3a2WQ=-Z`rpuX~xgeEK&&#_%hDnA3nK(gR5tB_Tvi5dBhOv$^D6x`9@T^KfF zDqJdv#vwPJlSVB!fw~RF35R}>gGa>QA)~=?C2=8C$-dw_+Wuh5sa3=%Zx$`-&1Ywv z@8OWgt^AG^Pl@uQ3ohfV^+Ectns5#;u!w8Auw8eTKrbwX#&a3)RX+}|%fL}|DQF*u$D;awNmLF@y*nJ0a zbygzxI{X}j`G|A7I%%OrL*(o2y-jNRIPmRPg0t$~;LDT~m?^o%4F6d2;{=f(lwbiX z3r66U+IYTtxhg!jYX@cVJFl2fikZINu)gLwS1HTD?79wFLZhMfKSwqr-=D0_KEpWw z{wS|>g1;^NW(T!j5{cS&2smd#^?u*Lj~R)WQc()(NiuNZh67;v1h6@q4cDRy$x)-* z*@&mB`_pW<7;qi>lASOOfjYl< z^7(InSRpbbvR~BjizHj|%UC+@6GMvi?D_)@TWtGF*`UFd1B%q+p-wQ2Iq_ zB$;j!%$yaDgTu8sSd!p^N$s+H+^Km?T3(#P-aCaSDpIk~a~?VM>o|8TW1_FGs{XiJ=p%izgcUltpi!s)HBW|9Ba5ovL6 z9agl6oL=%6H)LeusBV9Zcs~~Y)+XWG1y{Kn-yT8tfitYKJ{3M$?1n}ULnd32$hJ5> zB_R!(Y`hi4EuogM)%7(SI@lS9Pk145`Do%-~M@iCfP+e{wiuMkochd}j`Ha7O* z4w~9eRnQ(bAI^rS;=g@*tmUMI@Jr0CjaZh$-aeA!4K&Qi@hNY?aM>iX;;|OVxxNzh z+f=}2r4dAA8Bn{~-&paBg}C-dE?Qk`=3}aS@Zr>AJgXt_gN|0gs`7mpW@?WOx{t~6 zC10G4mKWk}k!jGXX`c?ezq%TClwuWW) ze&FXWPo(3AY7>5L4muW|V`y;;%-m9;<=g{q!}qGk1kB~IL=2|EQ9+cHz7Xy7nGPq z;RN!X{oZ4O2|hzW>qIJE*yczqr;MhqFYQR$PJeuE{FHrvV)Cdj_S;)#dx?cI%Z=n5TFi}xj7m!@IhNh281Jq90d zO#y=#ZPsz{B5imu3w9svloaII<221QR&>CbxGgEbFX0lADdtV1d=fDFdMCNDGZ%Ly z9bn~KDHtc;fiJ$-uw!cvTyMDrx>KeJGn%zg^56qLnlOwD(jOyu8C_r_E%a&f?iN0H z_d|Fze;Bw+i*rJanPe9YrwK~eP`BwS+`e~IP!6QD++>l^bw*Rr92bcTj~#~gW7nuh za0$KVctkMm)}g&x^HKimLV7CfCV)XKEVp`ys!mt%@bNK%*3>?13anygi&dfQupy~h zGKD5T%LZ9J71FEHjz1PS^7C%b2CqNyaQfFpu&7DG72y%9 z=$q>wSU8dTqNpN#NJrDO{s**jabHPKdtO1m^vRL{9jq@-bQNoMxQCiMUQ-}S0D zJw4}~`@XKvXPVs~Sh?gI^U(f6^uOf_<3Fu|U5SmbabzxB`q6-Y4}K>8jgiDIv<$zN z=Qw2Oi~ZwlP7>EH;OQ2_*-5jV;O*2wp6y-;Mu%15=%nRz*rgAkZ{@(whiJ217jRROl#n*c>a9(SOUe*a`@11Rb*3q9CcC3 z!of0q;1BCZW!pl?Xq(f-xcHs0rbr!R=bvP(M;$9%oE=4$9Axq`mbvySNV&(er{ABG z|4jSPZv7V|HE9v#%F5E|wu)juZi(m!k*BAszLH_8Yb5sG*)Y#6pDa#ofr*w+h~d@| zIOx)1Qg7l457`lTB*q@{qlkEyJ4nX9xW%mFQXq151;~9fgDs~sn6#k^1Z1ZZl|?@# zQ@riTE%E;!m#!uyNB)Ct_rjrZVva!9akI9zQRi%n`W zI43xtJhGo6GBiK40b4$^{;Q&4Y@7#VHT#e^Dlf=G8*N~2L!fxv14p$tt<^??KV$_> zfY8w$l96JLSExHI7!-6$TvLL{Sf5ek_~Ur!x>-WJ=mL_|odRZQi(s&p2V7?1lB$o5 zlAfP`AS}QL&dEH6ibZp=|BMDnl351RYUwXA*&+{R-Wx&1W{c32-bmiarb5`^dXV^N z(kX@^P`bz(SzsJSb5Gi9*GaABZYKA~D>2)_Q#sQzX6@fh`DX1U(4kNS&)R~7CUq_9 zXBtbxUsRJdy!ywBH*J!JREbjPH1+*ziI zMm5@!f2vC{qWOd%3=F1U&t|K0|t{KX#octX(7Z9k<>3Mb`e(fcHZ$<60#H=GK0T zv>a%FJDY-t#>f!3{>Fur?>-MhBI+e)9|w^gGwWel|4Np>&l~^zn+or%W&?gPC2NX; z1>*;oBEHVyvRu(v-yDSZ$pEHk5Ls+OTfZV*H-nuHVfj$}`Y(wTe7da|HU{ER&P zNM0x^^7#YniM!2Kk`wPjUmJ|!TVLz*A^X0vn4gWHT0I#j-?~n#l{xG4UjaUZEQBj} zS%q^CUikhWHYl%>jIgo+t*c#7dMXUQ&Tq#39Y?wU1P!Nmx~+I@zX4QyYJozLbC!`P z%lFGSfW4{|mFAbp)skKO+Hlc_s%|G4ST_OP!ZjT4=&4h!;&3!ZU&%9fJ(N1{2PyNS z;KAkhShVxCr0Mf~STTJLJyI!6WiwMS$yJ4{=(`GH%C*_NSMrc^>mwX_DaC`9S>ZCf ze{4jXA*)#*M_yLA!QhEMCB3>sp)y&C&i8g_Z+oAUHxE~mBF9RoIUP#wb?zlbCclX6 z@9TJVdnJ}c`f_03hVEBdDg_sEj2Ei!b%oNQba>w%wI^+~2-0c=rx={@xQhbo?o;_E8A$iT_v(4FUG;@b*-#_#2r+Tk0$dRN1@S>4stu?kK|3j zBXL)y#y9RB2itb#kfG*fq^n>PjG5+5es4cTM!nw&*2|6Iysi&AdWuZBqJCsoK)Ix; z@hp0*enM=Hya%6)WB8We;%rIGJDiRCEtu67LvGPba$V$q|Aa)LY=VrCl4{Fl{XKx5 zWfRfi$x!C_(uOP7l)&^54bjPGN__`pLBHSIkZBFVlOygCzk5#b_mnPoo&Hj?$WNA* zN4vq+i5J=FHXEm~3Tw5ExtcMX?ozFV7LwxX zODLQD9=GlCgzh6RA;Wkss%lG7yQMY|VG$|xl}Z(R5iWv@*(l6>ItQ%68gcZ>D*EH? zN_tb}Ei-7DC4BsE7CGq$@as<*Y*?0qyYMUQIR8SB4G6)?bHV)AnQjbKZstw3_i8ol z*IFwE28c)dYP+fxbRcY~}pnP^B&}*!Fwo z*rekxM8_t;=XbK0^z;R}X!RY6rB?78Z)AAD%T9X9@C3ZlxP*%}Cp%8EJO=tDWz2cD z8tpkmVS_}>;)F@@rCXCAazG=R9%H1|d;pj)il<5T#`J~KBwpF>#3xRW=W-`E(YK?G zP>zI=ijU59tNJ~}Ua|*6yale`Z$IqsyPA%WIZg8;i|ERy`c9I7!|cncnLO0Wp44t1 z%k?XQ>C{%SJFvuuzTEkcU)|q87Ytbm>UT6jg`DLVhuonLLMW_s4x^XexqEGwE%$N1g?w^@hayL~l1(D4Jy z+BGF_eb0c2vouwjG7qE9$1;t=Kg`4T89P*-gSwk8lHk-tYzQ6+w|8{VcbeAV=xE8u zeZI^$H>&Z)lQnrpML8_j@Z#As`%@RV%#Ayi5feu(`0;Q8jocDPFD_|?&^=Kob9M*J z)Sg4rb{{~eKVEc+)iau><3W30x57FxV_0ynftDVUsjJheqd8Rx^kTLywmnK0PQPDD z2YGpsZzB86y1taU8i&FhdVxj!45IZD)8PA;rS##eK{#-SF_o&+2?Iyhir!qt$y_BPcd8UPwUa_RaGeoQV`h1CA>I)FvFd1Ti5 zc~Ee2B}-@<&nN1&u-(%0Nqy-__V;oz$ou_42|LE_-D~FZ0ijI3L=hi8Q^k-<4Q#dd zV@YOu5UHk(HvW@{%ep0evb-u8@1unOrCJMve_kTLwjYDL(~jebowJxn{Tw0fNC#V& zv>Ru7SE5KQp%rtja7~y4yvmkF&B?y_YUgh(-JXJ8h- zR|E6ZYGC>7>&$oC3~Jl^81G-G#=*zx;ATuIYPIdbfF3i95WCN_cb>opYxU@@k$JGJ zG#Tb9=aLg1Wt89S>r~-Bg%=ztq?zmY({#&7`uxi;`eTA4U81a17xG|3T}sJQQs^*4 zJac8}{JA%%{H!+GI;20BD9xm^j&b^U>w0eON}SF%SJ2~S>P~YPO@TeRMf6-k74>gF z!4InYQQgT>PB$);;ee1b{{7)cc+NJn79$J#YV9T}YoQ7KTMton@%t)UrJFrl7)~R8 zXx4^52*rRQ@A*~hVNM$>=Fl&rH2B;7lrH=HjE)-|fwf;p(>YfpU|ZSB3ie(>k8ek* z`pzpb)Ab1}U-uhdNjOL!c!Yg><>^&P2AluZ48NNUq*u(((!AeavGI!>OiZ;V*EZZj z8JR6S`dB#(Dzc=$+vWMOx=rl;6-y?Bd7)x|SN>5k3zf@ls1#WW*A|=rwaf}kE2|`% z9Io@<9u9bVt1S1w+Dtm6)?(t#ncU2N04!Mki)4qJ;rlnO=>A8J4~|`ri&i0+tayQW z=|kzldjPGYs!*OEz=K~eVW{?0kT(}_DfOedx%XM~9C=z1oQCnQjrjA>4s=#OiVOZ` z5O=vrf^p19IQ^e4FIxN0arlnL8s`Vc;r+Z|R{Sd;U%u#}uasjjZpS=!{8uN&jIIIW zUmKypvz$db|B%>RkAzKe+t{6?X^vJdVkc+C7wpbEN!Jvt!X4+^&}H2Msz1DebW11l z)SR(AXOB_XjG3*Ss|u z`Gw_)bh)J~%&q>#_qU|bTRUgtH>qeEI>($3+kBjvJ{yOc1NES4?ZPC7sc3ive@Cv7YPwX`6l+xulUo_NW{3qlRZB&trE{IlWNq42~t8 z_LnfvXEA!2&BsT@Qs5!N7-Ac8aY=g+OOkejWh>?IP`C$tRRQ_u$FOGNKuo_f06!gb0hfYI@ZPr&?Jach&OwJE$>SduBu@0jUsd# zI|mo2<_Q&jo`X`TCYTdN9+`hJxx+V63(w%;il+(vx?{u4*_g~A%o}~TkV6QkMjlIND8+6etM49xvT8>+jrt-Jp zE0}d&0;IUC6GoSq^Xr2nU{akk(4)(tX?hU5)fGh8utTNcYY-%1?i{<`egg zW%oBKIqB%7^Vow4^og=2YJ}a8{QM!uFJ>jNdev#Prq~hJ@mL&X}y)Ks(BC_e|!=8R;2LhZnT5T<&)M4K z=fd{SZ$&2mRIH*eRy#YyFB$08@Q!~jennk-)*PEyi9*dscjR> zKQRyW*ew=zPM5`+r(*Db$AzwiYem=EEm-^e7xu9_0S}6DYKJ#VJ63D`AliKtseP6* z`C6pNlp8FBtBd|fws*&3mroh)4Bm??GXluq8$V(2iw}?*d0S*BZzT8r94A>BZ^*)v z{hdn3_QW;MI4+J{FS`b4X4$Phzj%jcJNLQkzU4|p6x7jY9_U#db!ZmGj$ zb0e^Ec}lkb+RKB7R`6?~kLY)P@#vyZws2FEWRZ+KJPA=Dk$YWX$k)-(Gr0weYZWCs%HIj< zcJFZWXg`Q;tHOt|S0LH&m}F+6H``DujlXYhkw^^tp-s6F`b<%PVf9ZTZ`@eAELE0! zX^w-OVTRDHr-I!#WhDWl2ZDZ)F*tlEf`<3Ugkl|4GM^dpCk}Bq!S@M9kBq3XYq$>^ ze+cwz`3U^Q#GT`dXeK(#K~wP@w8Y#e@huC5-t-925_uw-`H$G!Vr0HEt;q3(?{KHo zI^ts84uyMX!frGmK10$(FWOf874Hlm%sED_JqT1I7=8^7rtz8Le(XRl9-JZtRkJ5! z#LekA&388#xtY+X{fyv&%x}^*#+tp|iZbPRP3H#{yi4*wE%6Q)TA%&h68K)1b zIX$ra2rUdHG)JkLZvCk5^so9eTVXJQU%WQeNq*}?Ix;Pnx8;kz-FeOAqVH0^sqz66 z-0bL@Gppc)Y#wvo8$#{nC$a(YN^r~75>#g;<8?NcyZ`4;2R{yBH^1s*_VGz{sH4bI z?{$U8%ERe2>1Ja2z=E}$kb!609NB04A=KsaejFR8jNjab!oOiQ2$75TLcH@uNStH=!BgVc&Z`G-MyJTwJ>rB_3sWWAQWcrch-e)A z$ec&l$D;r9E@pXeEL`>afX71{$-pjIZvJX8^^m_x&P_EIHrKl0^FkX|eCaJF^=RPP ze~X#-#6pbtt3&P2_2XSPM#AR1_sDw}6Ev0mL~1#$hg45*W;d=2u*cAU1{9VL-cF+{~CS!s1g?VsI{wbUB za15mAh4Xqpk%3yOMBVrce98^5_Hif(qfKyoSpqRh{t7ogq{1GTPNEhtvv!4RFgv*7 zC7fR}9k-sS#W|1Faeq`D8M<=?l>QFHyN?%A%@x6L@`fh2{n8TL+W>R6dfqCHoB56*_*Vd5R>G}pO+5=D>F-29xBZb4jD*;55{nnv{4Y) za0X}hUdIpmy`-}2KD2kKQ$?}WRZyeGzYS1?AAu^QF5!@v-QGkk6hcVG>uLC*_BY79 zn8p`mWJ1L71CYFP8>F^A5+1+RqNkIR;cc-x=1eNVo=e%nhIeCF(E?rc86Qk{{S)1v z#=dywWjBoTe~b0D3t(W=TR2ddA+c^gCs9%CBz2V*;D0WhBuG08whv5Tvy`XM*5rVz z9!64yDIW0mX+64coeG*oKQQU!mMr0|#?!l@s>_wR9 zft3iduBNElokUOC$)MG!RD2m%S(fT0kHv4zjKtcS zfXB(>Ap1Ot6yHAxAL>%58(`7}1={8w z#?BrYLhyPen{K-tES(pk?0}$Jy;p~5+Oyx7IiR1|z?6ksm8$&fn5Fpe3lsnL)$n29 zbawVqvMxS7y5H3j{S;u%YGBe692(xT|oo_R_$+_%uA3&QSVROUZ^1DKi%@Xf>!Ca$hm}m#AYS79F8M|ZKJlx= z>`On<`S#t~lCmTcms1Se${w(-i?-s4ZL1+d>?};5bOX-2$B^918)3v;DZbM`iTqxd zLR3Fx`sbig(Az{YOvdK|+$}Ul_kSY)#94;Twz&l7r7mEHpBKLo_Y8D5nbVZ!w_v>O034ScL8a%R^1l%Zdd}X4=#|%)4m`Vr^FL7hv3)Z zd<51NjRC!9?d-5_A+S$npu1}%nf&+;uJ?2z`u*L(z{LQQ?gC8s@ZRx-5WqaedE|#R z3C!(S8~kXAXNe^Tq1$tg5Ud?8)W5q4dyD#DqWcflDRTC<<=a5HP|X7DQ*mR1n6Z=j zL0k%tk=;vbATD$>IOSO4VwWoT_1g&&mCli(x?Hf+Y9v|KH7r6+7Akk;l9k2V;mQUp ztP$m7>6P(78io?rqfepbMLF~?+l4=>3&G@9A-Pd>1m4~-fS4^2q`oACxrA>74f+qC zC^x|3R0YmYDDb_7!!TP#WJCIo6Mkkk37s*)_}e}n&|@T9yZ(o8>|81&DGrDGb!Ip* zx(w9NjN7TW(QgynF!jw-OtOp;@?#=cT-P2+n`;w^uT#T4eSMkn;$X*$Kj|#t*+o)c z6bFSNezrghREkDIpZ+OjaYUB``Ne#klc^A@gC?6ls zlIHCinn=PXkP|Lnp*q%&uKv-4KUo6(Z= zzT9rBcqf^(6}yM7r#H7v;AXCVeC{1>+#*|B8>Z|_Z#_vP-Oce(D%k~%CRXHww+^kW z$b(!HfqRV2gHeh~^ijD7JvlrA7C);8+v}t0lCEBKi79}MJs)AI=~BtX2w!v@{ugdL zXNar;KZw&m3b`*QAt&~@7n4u3vOg3}hEhTSyy8J!6ZCZfao?c;IUy;opkMl>$$T}nIa z8`;w7Ls79I2>qPzfSELY@zbX4iJpGUwhU?gl@ z7lLfSC_44V8Px7EqYidUxPmy(tSLwl0+Y4)u!8wee)SRA8`sTN9WB7{E)y=*-U4#@ zPx0FIi8Sc_UyO)}fJm|nmnDp(3#a(-;TN4Loox+oV?Ltcjz=VALo!bKP=h6rn=mEQ zgPRS`hx0DBIBQ-e-D3M0mjo|j$?X-mG<+((c5(*4XKY6eXWb;zg9@R4LtnfVrNFCY zWw`0DaBzQW%9C6_LYePwB&Xx)B#l!%(6AA|G=`$7gXngjxS8A80fkg2mbQBky;eY9Z#A=$KJ%H1k`NXx_nGQ6(2-hA+^MSqR;QsgsKB40$ z99g)GXqj0GUn7!vPLzcGD+&`f>kLMB%__X`tD5Hh%z|xuH?z-a$7t?@_d=Gp3_N*n zz&mos@+n3t@as%8QP$VuD@yvHf3!UeerwHLpULx;`Iq?;n`ru1W+W)+KVpZb%Tn5~ zl5Ogq4^H!RVA8=0_(3m?ZM{2}eW@+t>4&GWeW3+V<6#T#&o85K{6B2>$pV?15hS_j z3COtp7IOAXlgPgCfm@Q(j%AA{W9IS0*f-=M3;tm#cFW^&W&H%AGdBqwy3gQr&38DV zK@Hc}sgml)GW6C78M6DRBYF9z5=?8Q@#60Wk}<%AeW=Yxi_^y7ZtsoB_Ln7ZQeq+0 zBu32Bf0XpPe?;;nNXRgsMzj6H;B)pu(r!N);$v6hWd8?nXH^^d`85yIPdSLbhZBws z1Fo7UtMcTDQf#2hB)~uEq;pDtc>6L<^7F}i@>_JpEYO(`l0~h| zva3Y0_ii?ej{e5RyUIfB_D9&YJA}md?M1hL{mHT2ete(u64*Cy5vhK4!12%6=YpK` zeVF)k6g2u2z*Xz5%(31B=Py>r{=TNrA#%ah3qO$2Pr}LT%%QC9Pc~1yIu=^wT?q(KLYVb(7GaKJZ~D}GoyZxAKt>|5;q>d;yVNmiyKD=3hro_&~5r6BsfBO+WU1mE8O?!{Wgiolp={Xp*yoOVY z;~;Bu66(IJp+_0ur6aO%dRrG>SgOUf6S^TKG>>QnHFLu=CzxNMDR?@Lz*)opLq(Sj z{Ou2WdizZUblcpPBwd~ka~dA7pZ!EWg6=jv@v0w@)BVGqMy8POpS8JahZouSB@_lf z^?)&%zRYQ-9pB?v4HiyU$(Vq8czNw8s~@q5sT7nGBh3i3+;NYLn61diN1hcbGG%C= zNz)ytAKC{i6h?qH?FUn5^y0^1BGc5y8e&Jw(UKjVwH2))V#Z_xc{_DEPPRV^3K)TM zlF#h@f?!ya;Y|!(@4)2XWROwJVRLow;goN)uwdGCGCo7>Z{E!mEUWwl5_*9I$cN(k z|8%HNZ4!B@ZjVb$jWKq>PZolkKqpZho*sXQAFhuet-qU5Wp*kV(;h=6xA|g@tk5j5T5USsCJ{`IEc{o1Igx9aJWK|Tej>c=FeNu?A{0RDSQkL z+G`^8f4f5R@vZ^vkPO1L@9MxZDH1!j{R2O_2TWBfNZ38N10CuH(QTt2lbHN$m@%OM zr!8@(ttkrpL-QJvOk1ny1 z`(^4v#wcS-h$~q+^#n6~P>h)@8^fQSgBVG6?Z-!>(5=9c#{RWn@wPE=r}YT$_bM6k zePr_j$UDcMLvvrQH79y6UzS58$-u(tr-;833VeV}E3LW-ko*9vvatUyyHdIdi%ND(yLuMIH#pOpG$nl&+ zNZk4cmt>8@74qxZfgQI%7*Hy4yFXE4VBG4^J75a+!b1?ECqp+|nnBo%Yp|f>9(ig0 z90OwyVCcI3V%{(jjkFjumUbgw^b0Wi^fa{4S^%CcOYzukKXR}r7N$2ohauylg{T08 z?-q%*ucM^-(b{#wY|%UP{Q7yWB=rF zfASBb`i0Bl>|#67xygmbabo_!;1)BG72mp5gL!S>9CG&9Pw+Hq5ekNtKtj@Rysh>S z;CvV>AG-~^?ERtis|G!zXN(!~ls%Eyf*sONUaYec(W(&QuOBd%^+cEb$jcjT`9oTkg(47Ac5~fuKF>g;p zmsJ`nbj_3ORxiOPX*C#p=9&G-s{!yQiBr>ced&{6(X-c8EauXsMfThmhd(}NAYNpN z-pnwfKh7K?1xX>i=jsh%T!k&kEYraxm2d3!#d1*oaDe_8CIu@u93tiu%pC)xgK6Wt zQ)E|?G4;w-VXv25qG|U87!qd3^FL@Y<%dq}rOiZ8eL01XYgPMEjnO(Q}p#i#1DPKH5=3Nbcc=G_&ov!TEwdmAX<(p@v6w3C$2_5^WL z1{2n)UFjyF#H4i?YPQaN5 zwTNp#5+?6ki4_TH~8Ql^TWw@%3+b6eh7AOY>y8`!f&o3Yq)mT>WvB4oQu!`cVigwHRU$*4CA&}2*; zNj(<`d3KI)|ARHLfBam$3r%5`!Zp(0{|W@<%to0N`q*5$g!spfBPAkVv4)t^F^(rd z{_0_zmrWp2VIjGqQ7IVCPlU+yIb=^nG+Q<82AQLJ1NJ4H!7gm1Y!XX)YY6xY2)@^|)S>Ktx#Y|E&4&bBAZFV|*BjahKn9UOtXj+(x<6FP6HIKVM zwY*I-=+#vGIz^nVe4h@o!a}_k`=Xc zG2w+XQwWl#-4@E^yygfDn7xeqYDqTj}9 zn0x0Ud6?6WJDKlitL?2}RoPw1go4Y+m6}6FwDNoBh|$C({;=A9hAYNZio ztEo7-P7~cSnHAJ?YK=o* z>7%6C!PbxQ!gR^F*9l@wavZQ1n4{{kyH+J;J`ZH0E1vgbC z*Q};M;Dpb_;DZY9x5tM)lU;>ljKU$y;{aUN)f2ss*<{m;AaY{SYG$&01+-V668BEa zaMt1?w!+4jX$%n0oflQ)@s8~fqF%|KzVX2mA(=2*bPQp5CCT1@76$xyDJgy8FS)Vo z4zbDW54AxBOtsDqzgs!8+Rh+6>aWWkpLMg|&HcdQfeU-LYaCoU-z8YjP9*c9?~w_U z-mz0P5n`AA390Bj1cx$G*tXKeY;}7qD7SR5{l*&nVOB8dD-4F*J_BIjDS??+wJ_Vx z$$WK81?yiLF8)q`R?=7qy%S0Z4Qmssw&V+YSN$R8FT#c1q5b&vs6lvlM+oc5T?P@M zDGo0_9%YZF#PUyl8GDjFymr?fU%V4MjK17>i~YW2!Dk-KVhf5Rz{&fQq<_vQJh1UT zwa#Boq1o@@Y4c+%hjo1z7H@}8m^b6)=qxB>U z)MsPC3^TH0S}i%TU=oDh6?dRl&cmnC1MyCrilkQT>q%w(hiMnApz8WG+TSIE*ty*& zbuFH7?tZ64tyq&^(JR5&nXk$F2j|htW`ywh@N$^v{ZEh$)#SR(FNnobKYR%nNXP7n zVA3-VGQPNi$=R1|!jr#}zE9l2+sG97F_FFTdxx0C^sVjnRHqMiUjvto0vw!nnte94 z1=GjhN%*Ms?Dwi7#ukpCoAzEIUdD0`;fr69?{jLw&z7M=$Xw!JuY;FbQ;7CZ4czDH zP5wH5BsaF`!MROE124m0qm_- zg$l(uI(wWx!K6;y*`a3iSp{=-rhSJj&A!4SnmQ! ze`Gn$FkuRiOlwx>Ns9Z(@OU>HzFh7vkB}9(j=^<$`9>1IHMat`cdOADfjBKGXo29I z!?a9x36~yrg)1b_sGA~p)e#p3aOrYmUaNE#U&|#i>Fs93Xvf#uvVbk@tm+dXH^BzV z#{B}{`Ybs9u^8F|Wa-#ZW_(rEamPMWO!0C;HCZ|4qGZQMb-G;7iu|jxh0)4-d|ze| zyICMbe!a^l;eSQ1i`N4|bB-x`7N1}hCS!5l%W#lZ@MM#-KEaxeub4xOESzbag7-(& zgT=aX^eZjEzVQR#Wt2M(JDd%vS(Dl6=WRrxSOrgY8<1a8ed%`nFwm$Pk3*{FgKhmp zyw_TYGp?t@;ksnlyilCUNhCxeH;9;wDuk|ytxT)BN3!TbCy7^4B;&rz8e9tHfdXqd>`&pE1zyze?fHqmv}7;U#%7Wf1c+*F=l^7s-!L$He!m9=84q zfVye!tbBH-B>b`Hln&WQwkr&TCl~%=zrm3puX~LA^o?d3>5h`wmq(z=VSNlzu7zPQ zACZsk*U02KUtk9LB`ML7hrmE}F5lwC7Rj2@06RZq$K=S;sNeG$!4(8vccfxi#-}()U^_nWJXJ7T%Pm16R!fhtm;E-mEW6=$$9}M;1bu z;$gbZ;WCbkp2H4jJOG>a6L{Mun6GrX4FBf{&=tR+*~XFI)9k}yZXD%4#%E~%-UMo` z*^4P}#kctU^H7(l;q+{q4NtyeNKal{%rC2i@_;!;e9M~K@XqKAuMH5h&Mq;iQPU4k z=*PpS#Y6exbK_y}fzfE!+f6o`52VKf2a{gUAP7`xXVtyuF~u{V9PlLA;oFbN9d3~5 zEfII8$pUV9t3+ds#v`Qu{+QHHnFU6(nBxQ3VnE9cZuxj@(lDy$28@JXDlKT!3 zhM#wV4JMJ$_d*tG^&3E+ysri2v!=KVwV}J)05{AjVakK|km|GY;5)(*Ug^XM(|jFS z%GGdCxv~J?<=SFTb`$KCxx-xInqY;oE{%8bMBiD}WY1C+($BRo8TB-hT=9)1FRw%j z4`$^H$t`+dGSRQG?AlxWPL4$nqDDh3;qdJRsy*YRL-vS*~Z#R zM{?b?V2lcwh>ic%lbh$nx6R`}@b+e3d^sxxt|=*TWdmc$-%m1d-ZKzt3s;i4Ib~$T zacjQj>`jOgJ&5djG>e_?$g0*uIWjC?m?tzlImk!|Up|j8} z>M*(Uut)Oizd-cYZW7X3#6I2Y?_gsYiB;mvYVP;_uv?=qySqLPcHM1)lwARsuMs1t z#p&YLnBzjbk}62|pMghAcj3Q)eWa=01N`r1!r1^Ox%bN0GIN{eJZ)!$eN6I!YfGog%Yt6XCuT*}6qjq;h7$Gm)Io+lp+~??{?&TP~3e z|3Nx0D)LF5yKsc!e3%vSkgWXt7Y9x&B$LmYaVh^MVM6jObP@R=;-C&ZG!NmpARTP| zUL-v16UE3;15lgaN(`wouaB;TN1q>rUniuUUx>^g*mGV7F`C1P@8o#==Z8H{xsj4-rAQ>O>X_AUmi}Uzs_sIW&0whp6$jw zp*oqj?w`*4|IDRlf@SM6&h4awOZN*y*UQlz%@&vy9SOcSLU`R{b8fd>>`@jd^6hd) z@Gl^a={*_@#xVnMR$o2j0}6QI>soXIEA)+ygUi}#7_BrBTwWcQY}~BNXHK@}KTrF? zDf1TMI6N7w5|%(v=w&jzV+fzsw4AYNYhnMP-Q;idOLq9=C1PNxjgBLXMcv*=lI)?( zB{sP@a!4jI5<_I8#XFmBX(0rKog+81#xXtr2*5c;G^A6GP8~4|A(EqPU5`Y!XA8V& zPl10AoFFxN4X!<0E)*>@K|8fV)~8&b-qC$SuIrjJ$%PZF`)(#SsWwAEh6HjYA7@13yp-CfeWPM0>kpDZzrKaLsYO=P>W zEDi2fgsHo(lEWHLVM6~cXp^W%mF$zr4DCDc_Eb93-h7m9UPMj%mP)E~Gl-A;NM_wq zj*V?5P?Wy~iX#U?M8aAy44uuB#=pai{B5u%*ML6UF_RlLYO#VT`n+uPMGVrNh+Cq8 zs$32wPogfux3>#mk^Vn6&0!8~bQWhi1`2rMnwXo2YD5PIkzc5%Pp97!S^B#s^N^Lt zi1o^Pc&juTI=&|{v)Om}=1&@EB08A%?AOIjJ@;VQibtsQEDp3oZ}OT^9^53eoT}8G zhSS<=Tw3uovUo8gm^=u=Z^fhM+Rs>aw22N2PeXIlpIp`bBwbk5Bph0IOcEOy#siKR zV?QNT5oae4mBG95#()yZk2x`T^WQL()b)d<`^V$WhsziX)KHJyAF%)Ft%>UJrb%c763C0 zA=hpYXzlw13;Q|X_{g^y-BK;izz>r3cDAs8ZwN-c(q|S*D{9+(4uWgG12q4%6*&Oi zpH}lR_eH-du(CHhEzBCz$bNrRINfV)5ynpcct*=?CZp!QXix*8q+)avN->poTO;} zOG)L;Pt5S^ei-7`jQ)4}kO+em(05$GR6J&rinl35E3XNw>;y8r|3l*0=tC6OWYDZv z7s$a?W0>`eSAycCE(a+eRV-)COz+)Yus`EPTKi98X~Qj<GM$GQvS zu$2*68Cg+E2~kpb&V96GgrucOibz_NO2b~sEV5OaN+=o6xsPZs4Jsnl+n}Aam-qJ{ z;NyADIrshjUe~K9o#b|*AAWqaovrg-N-gC7BNybxvc*f+LaO6Ak`)oi6<5e((UK}y zbAJ+3+Sp5u@Xw5!x{3arkjG`FgXn)Qck#_P8@&8uAhWJBhU_y(Mb>Itz`8t9>~?Ds z?_T1A#)mYZ-eoJ9={H$)TFCSVR2`tBD^Bqtua@JSZcWhbRHstI=kvUbCam{Q=M7SOEP+iexkp6C&gf&& z!GiBzWJY)8Nl%|TBnUn7vXfcjZ9VdMGM2LT?RgMTmId3Ydg@yox6l z3J>u83~%{T=AB|mPCR+e0%n(xjWvhiq<9oHJ$4V}M(<|z#+hu%3L~6LyJk_@IfoV7{+~ zr;ff0NBvjxEvt;Uw8GSe2D!EL+{X887%OHE-6HAMS&|Mx$=?O;^8qR`XD(b)iH6Ub zi@0;4n7oY$fJ|Nk9(H$yJsu;yU!SwrKg7 zgZ=xV3QH=!;`L2l5U8_~7VTU?@@gePG1Y?V(u3k;iCZLO@E3CP6KAfIz$z;|m!A!+O zVGs0I^r)a2S_>bO^@pd}zi`$8pJ~ouCF~ssjVy(H&;cv+MbKoc5AmB%h?#*Dj_1it zVaz|WcK&P8DeXv-=VD8*7#MP?iUzUExVcdC3_mM4E3agHpON@ZQb*)IEI6;pm) z%kr08s6Vr81k4D~MSBZv*5!w+M6r+gZXL{>e*dyRuxJ)NyrNzFc=0fPdH;Ecym5#) zug23~f53rvFXF9LN13mNHoksQkGYY;yu8((Uzl})DTh1(E4krp?_4)H z@puF+Hj$=l+wQS3PqpaeEtU-uH{U^uO8{SA8Op^i*ZJe9O|(TwPxj0S#4^t`8WdVV zZLeHmT?-{0yv}=pnWzbWUmGN@cv1x$6PNSGU)9htFo$=v#`4hXW_bSi4^r8;hz|PD zA`TUaX-<~}ZBKCEzlLoE&yy3N@yjFp_stF)T22dR|3~;FIThpgJ`$()U4<`|`&qoZ za9OH1ohRSa>6dnJyu4%v~Lq_a7&8#1Ni6p$PKDols~o7b_QP*L!&C|uhCaTo*dzhses>x8i6EnZfo3F|x+B60)?~ zMH<-#Fk#$QyymaYo{b4XkK0-}V^#s!-`fdx>&J=@3!j6*O*8m^3yv~p!BH^uzj*j> z^GSQtu49mVstXqQx=;rVd6ZaioUv&N`0dFqw6d_KzSrcSX=^6&dP3>_p^URTbD$zo z#5>g^;oFLD;-|}2!EO_Cy7k>*nyBjunhtVUX7Y@j^BjX^N2}S8Wyz4V>pFbCcM-OR zr1PPQmXN#bD@t!^Vf$kyun&2gU~>OKh_BQay0}qrxx@uujx7&1B&I>D=Xs8V!ir!%hs61 ziyz?W%Md= zj3V9vvAdczM z@KAtw=jF{JB`N9z$9@&vq*@2`r-IiF)*rxTdQ z3>Q>7Uxa<l(R! zmEn=-WC$xh$QosZ-PO-ZCUfsOvEDOWnCFcUw@o=qre7Wown;}s(Q5MIj~8nJ63EX(#ENsfGR&n1m>QW zBHq&*1gqr^iT6FTWyf<+^wmS~NebXXoSoSXr+rAWb9Y4zJuN?Rgl63JN8OJw;+f6{ho5u4u<4yS6v zQQt(J7+m=%_Rc@Z3i|6?9h}s5R~#pJmt%-OiPWkjvdU57uc=z1 zt%fIso|q}Pi%=wI_E@ZU*+k$XsKCQbfnuGjTiC&~E10y!>|#oDWSMC2 z8Dg`t4Bq+m*EiW8W(5JNBC?U-m=|Zno0O;5M;qsp?s>|X{8<|_maa#aM*@ZVx-LtT zO%%`T^P#C4Jv6Q&m(PAYoEKb~2nxgFX>Pn7H?!YQe6QK^B_j+;@uYHG^fd-_g5H4Y zt|Yo+lO{bnM+0vBh@(e}J4HoH9Yr(NhoJXRUHH}810f~OT;0=vE|@IE*ALJ|6!u;b z=2yj0?;6RU@V)e{@^mcGRHS0X|LE@BQq=o!D`^Ug1vT+bBD?1R6&pPh2Tzoz^ic^< zvTUbmUmqhmZpjPoX5;VY7irl*4Tz7MOYPTQ5ii{A#I%kUFzMJ{XnJ`OHml~=r!`x_ z#Tp~_C$YW0?;wS%1Ktod+dm@rcuVXLF(=Ali?P=1v#7hYov`^@P}ci}IBhK_scS}~ zWBOPe73>XBCph*=M~mjTp23~RM-xwN6(P$da9uW!W70R0$%8S+aCo6TU#fe6*xsJa z(v7ppzvYVJCvH`#PcS$iPkhMsp}qmn0dTVpvzl@8N}5j@+u`$^s99YOM2f-PDPcAQ<7!) zK7R$#^63*WC6_`H-^Kc-*ocR`*e1?+6luHAHAUolegj;K?j`$%#}Jj~^UQa!zu4pC zGPqw;z@#?rWmm>j)+wLaEXq2t2$FI-M9zh-U~KGw5^f(v$$RAK?IopHo%gstVr2r^ zui8&O-XDQo4mZWG2QEhMFUOz*7qjV!Hc&ZyFC8EA0Au%F#wiVtQQaW{rB{t|Sdl)O zfBjIwJ-3(hn$jM2Mb-&x_pX3$rM2v*@VUQQIEI>dceAT!R2^h>l=vjy9#|!5OhW{o zhDGgfn5$-h2lLhVadl@dX}AQGJx{X8TnoORMY8)9=6v{~F?qTn!LCD#x??n?!d_TTt9xh}Mb8Al?2N z|Ff25#+Nk&E=(2fJ3Ec9yHiJ$1?OOG<5X6ax&k|s)}i01`_Sc6fQh0YA|E`5UDCH8 zXFRpZ=rOsNB$v-Tqejtd=Q0r{OOs}!6!c!4Lk13bBJNrg$qr}!VVyQ!bVT1fQMvI+ zQr7OrqBiz2Crx+U*f$PuZAaXE(Ez6PpJ1~-7Qsn{C>GLP!zTQWX1@0V$?*VB=(f2A zDi)LByZc0fzUG+G9fF_qd|7Me2KMQ?DttOC$HJ2hnaoisIN0@(d{Qey1ru%D_FPeL zh-uOYlLyS?d^Mc&{6>E6tik)b!--qIByoP>ig5x9{)X2Z_OvFGk9Dz79~qPeUv0 z`WQmjYRaKemjr)eBfJgLQ)#?`Dum3rkE5k;VVA{WI5Bwv@6N8lH&tG=NOCc~JX@DL z%IVV4g%8PjR|RVHFc06zCh#tyKXu~RQ21=ofO3Nhabf3v@nPx9Ec)&(wW!!&DT(k{&1T-IC389yxcTRS zuw(c)aY7M=CGk?AH)bt*yzvn7wyRJs{VVYp2yEi@aeT$RLriSYO@8->0yRiS#RfZA za&9DlYqNkkrwdt$%3AVrTsx6pQHd^zTA-i16Xo_e!i}lZnAs*No?n%PmVE-7|F`ft zIvI}xtYV>0oG*BmmWy6lr{TGoXW@i@g_yq|3Ez|Bq1ru*mNP+ZMJFHhZj5~`=;6mauY<9AQH9=xKidK%y}DHM}m6U3jA0A@XC~QfsW(Rf` zz~5&o_F zztovrNIwe|>bgR9-4VOnwu5+V2D(4}%GTCtg7u3abYG#swD2uV9gw8NUS0ujVS<2l{3k-fgfzz!J0Oo&_aYFV4>eiXa^(EHQ zoT^FuaB(YkKli1X^1d{6j3oV?xdEEL3VWsV*V(L@gLumK#qe_K4Bo;T>E(5)!pts_ z><<2mDQ?Sy&?J?xt`9xUj{l==`iu(O`)5! zRAe*TAC{l47koc6urN3W_ir1IVS|nFcXcN?E_jS}f5%e0afe}?;eTum6W;ogLrHks zNhn?FRi`}Q35gDlXBd|ay_1)*->*iBV#|bk=7f8=%<2#f_Wz8ycm$LRUEqF&F*xh! zQMLkR^DgNyh?JZMv!;942bopj<5hvsz5S@zy>0-ezO^O$EmH8nu`}RnX3Q0DuVOiN z32@VYCehMuWEYAi@m~h+@LtAHIAh1wyJp4VzNi^+*(QM`E|SOc#%z1*GoNsX;TbSI z_zR2M$G~AbUD3>92QaxR1v@bp=Wk0PNgf*@SbLYKQ^+?5{dL5a=p^(!k&ONGUNVvJ zHj2P@NLuE^<=zzHKcRxTA=V@G8m3r4gD+Jaf8Ye zwD?S!?EBF`ckiV$R(xWGuB9;M;&xbPa2S4VixzFy380S0pCh$a<)>*J*87a(w;S%! z4^68fc|ro;oqG!}E{dT}PYWT;EJ-xJB97)C8bG6GSc0+DD6U^OiB8;&0#{MsWbMtO z_3Pt#;^}<)$La#~es@QwTeJAyd6(&%`}e5G{WRPZ+&{Cz6e#>?BkYnQt<$pw#|tu; zoutSeCv{ROF3r(w109{}3@hqe#BZyAApQD=POi(NISrrD0Hxr-LVft~LJQiHOzFOp zsvx~mhbp%(;5Q>K(<%5~yvdKjA`Lw(O@DxOv-9vq$ztkqOqw1xSHj=}av&Cef@vFT z$fz~XfvSY#ZqlDn-e#5sqZ=rrY9 zGnRstfd}57mkG<=obmcoO@8Rm6*wcdr1H;{s6vtjO*MLr$4m}leD^N8W&T{MDll=p z7iZ(4Od%Wc(Vn*_UO`i4Pu->GLw(*e@!Gs<_`F7eMu+K8hqUEX?oEb+tIcz2YA)4q zVpt5n+a5rF?aguc6?_|Wb-Q)9Ek>nDmC6Gn?-iWOmP_IknND-rR+dM z)E#O^dgFx3OL#a{i9WU!m>z}G9hMJ2#*bOaQRCDjeDvM#Fk5>GK2!35cLSGDokMyK zm82B>)MQ{~`WZ^3&thzb9anbQO=b60KyvLRs??mrACJ$YE038ra3*vpm7fT68Xf-d zdLT{B8{<$P7>7N7W%w71c-nJP7TnVBV)f26`fA51i2D*lgHCJnUmb*Q=z7V6H(J8! zjYlDRlQ0vom@l3HpW$DD2Rc!S$V2w8oPEb6?93w&dE;d>*h)ByC6 z%vP8$k|zqa)!f}P70krV^thb6z;Jv8j&{GW`Q^C!Q7?3P!L&LWI8=pBTc^NNwjwuf z>4D#Yx!A$C6WPI`tXS-=q7VujE%c)c8`1Hk_)zl3L7}OE30Vpp&t{oEe%98OubwE_wVwLxE%t)$7>9Z)Uku zl|gBI$hx0!=KOg2{)In%Vy@z#5-mne=dmo`UXorqycK2yAE)PkCc~azLuufeF7CG2 zmCDF>;`IC#%s6N)e6TK}+i(5DzW75_!mW#H6rLbQ5~TPnVV~??olh%!N71C_eX!6t zhdvsAidS^Bz_RT!G@*V1e_r0tVg{HjRnYIRrI#xY@xasZaIrxjjy-6_kw>oM)yE3-NvJ-b=u|^W(}vKx^=b6apUWb% zU&7AIv5#y#s|H_g^uwH@i}XzXPX22AVQ|~l1`$3(;I(%*YVG_As$5A)1`Gd=O5H59%PHgNUv%Y4dX8syJMePK3 zy1DTzZzsM#^So%^{5_CSc89^Kf&6W;9jkag60=HEXw=U$3>QmKFOw=NADKfO_dXV9 z2DfuZKTW<;VH zq@MyK&1%SW6`|X(T$Ag+7MLRTtDr>7kv?_{7TybIQRbu#f0J<J9=ZD&y_~Uis=rh1vO6#KH=ap!7#-h_Yfauj zOO46Jx$*=iuqJLA5u}ZaQmVM3w@B6sYrgamcdF*B;31>O+3gMSm$gi@U}?R85qwC@T|pFNivC>$p)jY;foj1J$E=|pD=tS9Xh zLr{My(eNoao~9MAt1opzD2@@mwH%JcNI6>bHaArb5PlCfw!$9s8jNBnt3Xc z=q3JxeKLJ)ibt*JYv~P)H`s;KR_&pi%?P^I(pAtm5=YAi?>cB z;Q5y;=t0Q`Xc6`ahF?Dk8+OIR$$RVhi2_+}8x@8RE?>r2VIQ;b%1}_b6iaW8Y$t}^ zYA`gQ7N>prjDs(#Q`zYiJkDw&PP<}C_m8N+$3rxExvUYFvwTHt<+t(SXTE|-y%V^M zTR=Up)ZySEHq_>IJ7x-JO7c#9>b~JN4p?T5{V%4Yth_FtymlQ%M+EaCS8GxD$_jqJ zS(Y03^}(MYADVE%7o+bva+k+HurK2t=1Ln;qrN+=BPa=d*6iR*r`*9a?_aac*Q|KX z4_Q9*vsy#Q`f;@BmnB{DI+{i_9e}APYxxG~l1IE;6;18@wl7jS6ezg36JU8F5pZz|00{n{Clj6OtcsnJB zzHghxJ`=B)P2F8iQlk08MV0Y_8rzx--@nkBSrp$juPMAa*`x9hpkSD z5!~!@cuQc`&L=In^p@Ykx%RyfKEplw5m1zDc z322uCPFQcsXAS}0kO2VIiC96u+aj)fRRvMQAQoHo=tp9!tx-$u0Zs=o)-*ZT@r@#}o zx(hPYP-7JyYg^OW$P}C*I4B zRF8rW!}Mr)NdSGf%MN|WYM%JvImX9Wg3p1cZ@u;hwh!Xe5P{oJ`n7y_DTcpEq%<{L8?64YD znuQ#pNCtPtuS40><)G2%Mct3+3anofQDBTA?se@FuQ$KNK7U?J>tD5tMpYfd9c4B3 zW_vtEF^!41AW|0|dWPfl3o#hFBSmDfZvZ^4)dB-&qBMuxnzhG$ioFtR6^ zlwL4m>!uXf=Z**^tGZI~U&}_OY(4>9tz6*gW^=TQ4u(TZR*)SD>+5z;x=l6?Zzc|c z_jzlF27DIw|G$q+fV{>*_+iO^B-Jq)QX-PXxz&fyOlg%CZWvD39j`g0{ZT87y#E2Jq$gwEgGTm4 ztpGM`3lt4}w2YK7p*wt07R&|+IjVP`NJqteBK_JNXB#@=2K`G+4HRIK#1oiya5gQJ zsK@5(DeQ6jBRHR3%nq$|g;(k?LAyB)K{gB4jW@wRC*r7%Wg(Gocj6CUCZgPkNXSde zrDtZIp*x=s=i`FYaGUiNaB3H!VNW;p`yfRJ$%OMspDu#Kf)U6|-VsGlS5i6aA|`mx z;xi2YV)~JN;55SvKAQOBlK-ZF_7Hm>rW*~-pJvkY%BlEG=xn@C?j$nP6!D+=3&LB? zFt^W%#@gJ22XX3XlJ5-Z!_!1@SvPTjszMzJJ%-QL=3&2u@MHVD!;@pL)%Hsk1C>(2 zhz}0h+6X zcmAj%((gW%8E(1C#)fF~v)oVc4z`f5IakGFF3a%V8e6PQzr!$K3)|Rl0ok_~h@K0c z0i|U};N-A=*m9(ZSl_%t_FSEcOEyVi;n7fgtH#aZlk*~p)OK%p`y&XA{++{~pE>B> zmks(m?ZD;pQi>B}Xvx^*I@_^1?1gCrsNQ@fwhK5e?B3UdjL=b?I42SIeQd!`mBmCS zI0*Gp3;94ILo)}ArV%!8sk_BPx^svgFL5bFr))Jkv_%z4d@jgq*VI!}p z3g_|Oov^^Tf=AOw?APb@#8XiVuHI;?cXC@m<5sv(%Z(q&yRRzzz>jpX+v?xqV;-kj z%;ViuSZd-}uZ^gCZ!0__T{vXLI(s#l`*41N0&hFw43?AUp;z)2_~Y3@-uFcD@5!6& zdycOm7g`T7tqgr;>}E~+Z`5%CD;gzuvG0KLE?w3<$AZf> zBx2J{Ejmft5dSL81Rfg8{8Xv^&FNCq(KwoZlbMR5EjLKb zid-46gWb;_j-zW;;h$L#-rpMsA#Nk+`0Np&(w8l8V()|9o(`NOKZ!crDj~sq1lIy( zsyA;6ojz2KCQMS{lAT4Y-C2q&dY1D+#D=~w6VXvQhvnDpWsL+kv~l*Ht(U5rX4srIs^M` z7}ZjG4=*b}laX`J*l);}=I?_QL3fNdT`MEO=T=N7OJ&~^+rc8xTlE@JqtC$>rCOL9 z*GMeKPN%z1Sn(Cj{Y1iZArDYYqQB0Fu|SxmJ4{g~9Z&PbNh*pUzw{IfNR5QbX@B9% zm4&$4p^1$Dp(OUI26|$u3O0{@MP#xR&^|?t_7o~pkxe{&U*&?W7GAJPPw?Az3+&Ix zCfM%O1k=T%aH-uuxca04)drt|!)lC`RHfm9)?r{ctx5FIa~mBHR|vaTKF28oXVJl< z+HsW24;HYj8KwxVFfKC@!zJZ`%k|@WZ%JzM@qpOoz+SvLvIXTfNYdr*26Wfg!L;^G zJ&QbLLC;8EA=|D7v*TNSLesYd_Ul3r?!4j#!Jd(LO0?K+T7RuL{MIDYP2PkbRb*)7 zo)Rb@q9XEaeox*l$%hAq%;PCBUR{-)^98# z$d$bx=EI}3j|%(*f9TcQ$98P_N{qzKq$jJ7{L<|r2k1q+eXUwp{-#u1MxTO@yas5V zYohmSOmTwVYbYJQm>UlafXFvZtS+#Q*ta}pd4od)zuPVn95RnC{A9vbU)aeP{M$xp zWHS`%tb~U~gIHnU46c7#k1v$eqvbZV-bTH(R`S*{xU#^GCdbW$m=JBeTkIk-YiMJK zC2FB*Sr2@l`2h`imFVTi;V>j_BYi#H676colGZ1y+08u#5dGyWxf>n`^3P}BmfJ7v zKYBe9P-y}KFpR^#o3279zyVDPEXeYr-8g;z9BRY#nEd?X%=C2@XlJd1p^1I)%=jaj zUGfQY)`3{6TNm=Lb-~9vEvliU0+&1%qRj382#)B++HX#@p(IP(^!5UpIlYB(^Dfj) zt#YErc34BI`!$pj{=fcBt-$zB1Q2H8YhNvbLyq}u$vbJ7BQ3{Wf|cnkn*-wJnn+xA zKTV|M)dK~N#bD)k7P>dfpv;S>#PdxYK2Nd4F>AU&Ztghy;B)sxKenjChL{fazNLk1 zaJwdc64Qp3Z%xrYvldDxI)h94R?->NCmuX`GqJrFN1BIh!Jm@%1lNEq`P5hhONNhx zA_IZJ(lD19d>L&oJ7zW)XjXNta_uC~yMP?8aD%+eL!x85MzEd-f5i?~DeTwUaNKh0 z2njy-4gRgmhF`V)@V9OQ>r9npH>RxQ>FF9|Qpg;zcqRh_#uUTou_dB4AtUkmx@kC7 zV7}a)5`~Q=<|I|ih;CRY0;8r-df?y@QEI+r*aPw#ez=3sh$o`&0^};TS&s*=xj1MO^I*afiS7SwSK24 zg}Gn30(na7z^~GX-dfX39M-Awz{HWF%S#5qc;yb*?)e&Q2KWLw8UXq${}8hsD*VCA zD`5UHM%+*>ysbCr(!}!N0uQebzFGJ{!qXOvJevS3%1<(hQBh#o-2s~mRzSo>3y5>S zO``cV9A>^By5rQuM`m5Z;n!b5sW9FN|QVZE8 zdcvrOEN=cW4s)lbLfhf<h zJDprI1zxu0quLh@T(}|`bqo&^=cfC_$E{FwwjvugYfI8cvR=Zhg0Z9*rQBcpDjD)D z3cD9cLGHkr)N|MfVQ%;Z`?{1I{OlB|WNIfJu<8z7|F{@@p1j88DnH=U!4o9=sTUV| zN>ok%2c!`xJTkBE#H5S$gU$AlfOm%UA{l`P zpOr(S`7w~ct4h@NTJgX~VtBE`UYs1D#P0~-4*@DkbXLi7a7*weF_V<}=%J1&M=Ru!_3r1icJECYf%adYVTno zWh;5v=q=#!FOXzzD1?Ro6!%S^pYquI_{dIi+Nemw;N(JPOD6 z1+f2)hmkaK8t;!7OO^bDze#Vo*t5=#UKTtD+q{PHnUUS}daB^&_}~tcoHq;0R%@Pm zP{hlf_u#p`=U`s%z=kD5CeWFF9jKsk83ue&;{`ut9HiIgbAt*sDDX^!8-t9YV{bLQ z?-@be3N?AH**jt~EgIL&`-D!vPGG>)J&+v#kqpYo!-HQ=@LuZ`&=sgEs)=#LFbpNj zzRQ#2<2BK9#NYZbz7B$>ogr~gC2>>abR4NYQefhkGe3uitle4yGZl4N!75wW+A8=? z`6^PUW=X`xI<(Fu3Y#)c;?GWHxUXpmXHHLm0Gs zG*P|#4ff=TG_&zYz*xOpI#lgBE>gbCT74s6URf0=Soy#w-`nKl6K_bNCXnN(iq}5) zV928)RQ`Dg7iRqwtyvg_kt6qGe*RhNyrK_}?-aPDwYfxZn-pF5u#SXX`v^Y9(_q;2 z^(J3`AB-K(3(&|!lV=8B#nl`3kXv5ye3be%GW*XDG^krhO{^s-9o2y5pVgf(R#c8MFKeE)e*^7{1(p#oi3=V4^LC?31&r_+rL5e0%*llghhM-w|czUWM7yk zi!b3RtNLRHd_n;3*EgY;9)yDBraxrpmXAnJe-?cmv30d)WKU`Mab=J6xC zLHe?UXqlb?%v&!oOU5VT`NgBr_fQG@(o>2r3N`6nHHlN3M2WVKey0hzB^A7t{)Rkzk`|T zMI>ib93Czo;P7{dkS%-_3yBeheA-^5nwo#9KgNxy&z`~;%jfbl?`-+Wj9WZ# zSTTRIJy!g6KslanxlWJw7=qL7o9yjcY5Hq=4DRSL;Dy1%=;}EWaIwuK$Ss=AiG?iP zGs%~)v8*9p>>ylHTn2rLGr;VC1O^(pLeouo`-6k3;FME2asRrBp3hH&N%M^GR*ftz zQgg*uSC+%tPI-Q7f+qZ0P>wHk5@4J|0yNeC5hZvf)W6otg776`vf@uO>UxVE~3QqvF!k^;I-N)IlY%7>OH4;AxcgLH@l)z4MFzkCb zjOr-YaaEB&Qc`zR$+uPY^T!bbw7eRq;6`oE|fFXy4 zPIp=$ne$hPI_|T?3O5N{Zg?6uf4)ZsP8a+zchup>)-&)^K7gdZuVS92C$P^d6}D(~ zv3KoLndr4LoTzw49xr#IO55e|{_9H!c@c=!#^5pRIk@Ju!PPH==wPFBn0G9T9onHF zFjeM~ML|(GTV9s&iwA|hygxXX1kvd)cEFq|THI-zEO*Z|9ks`qR8L@K2Qp<8hY`7%M9 zO;%IF)#dx~*i^=ft!yDV;VIEI8qPuk9}$Jj1R}1|CR1pF?Tia`Y{0RjZ1}qZw&qJzhtphD$>U0QQCNvISMv2B{$tLu zJtY$O^ju()SCOULLin+&7jUj1Nwn_kBWMX$r-#@?JV{4!%{v3o8ef3p z!g=7|vI}CZtZ4q36L5FM8e*4x3H>xFG?pCZy)G_vOur8`yfm2hX%T8N*pD0z|AeRP z53(*W-3{;D{t1vMUQln^dHQ9dR0IlvwL*>97IA}>N7HW@%3Co_dogt3=?-40H@zb3C zUE#yxhDp*1Z+7u{+r4nvb2GBKMuYY?JZD4C5ISek6c$lg!8Yvs$1I~`eJ@GzPsaNGa;yzMgg>&5vt8;*V0!%> z3=HXo5fBOMXL#W3ldUM3sL2LNb(6-n9k|Z2jeXd<3%aIwzyrVAVzccYyyB@Om}Lsz zL$(*mgl}4u3Gd95)^WIDei8rGtW5Vkya+F6Sc6a8NjgzOi=SShMP+3LZgAi&7*T2= zTAGna!=s#pch4lc=(+|BqnIbKWTTpqB^ChOtOmnr1by#Q?g8jJP5n)q%*BO7on zmAC9GAn%RyaL=XhpgLZgEWB+%JwkKX@63lxUVj~AKQt5nDVCryOInGwrxkTt;);>~ z*+OFSeRkyd7(UQVQsk&o1`%r=v1I;B81&!@Yn!V;CIrdyKYya>g21C>`u1Xo^Ku1~ zDbGbROV5#`LHnU#q&&YltkKR?*Pi7>he1SjF&idx7}T#H!5=TeY8K0FvoUBWPo$_iER{h;eng?7p)|CIBB= z2qE+L{Ri&r-q(G-&N72NBu0e;oVT2t0ML}_K7Bai?mQOs;Mel z%>~qUd_Xt%4A!AtD)G7giPY=wgZ$h%$HEA1h+=FwlZAUmu ztm#L6yRWkjH!0ea-iOz3&LHDIcH^8g0^QlrpLWqDFdpZ;(f{D%D*e;fvDOkd;aX{M6et>YQ#&-z-*~ z7jYBRpWT7QiwsazxCP90FM0H4cwbm&QM=3!mNTgyFp?ccFHX+bov_;3k~&z}Ob zj%?hwFPBGW`@yv%t*Du8$QR_i1C4M`cw#G7REpiEp^6J|ZD9k`R68X37G5GmW&dSk zWIRB3!#k2xR9t0p{333DHV)q(RA$p#7P4RUkt}9XKBy~|!=g@GXA^VUI zuD`gvs%TFQhQ{PTMXoLn%<%x%*>TMO^HugL#sv(U2E%d(ZIm^CPUb=}=G<4Im;cSD zIXmN_*zi?_ce>IyM% zxnn-cqY->K>qD&~l0j!tqEPPi9bIn>q>h9Cu`+Q6zc2cIJdPybix0(;P6JnHJv~xT zjy;OkQ?{}3e%0(x<7yZat404AZGyMU+=y3uU*0@wk?=fd2C?1Kh@P*KQC;gUCJZ?T z{^t###%v&C7cF_t_Yj;P?um5KGTb`NlxmM&ORU!F)Ax0Ad2&q}KYaWaEOhxPdj6>B za}l{ICxJeTJA>X~>+q&YKdu;j8Rs}CW7%0FUcXD4*f}R_-FAnwiM5(ahZkM>rm*#dA%#+!q;? zmhpsB<2pp1p(c&`5z94{#!$mK5 z4E67ALSu2iIai!_U;9MEqpgh+_i--byU7INTl{E6l+TGLQG>ykIhZa=^cr zSKJPYhktj}X`9O~GX0f=REX`BNhJzU*Q*TaeCU0(>j) z!qY3-{Dk~R61Hs>_A08uf=&hgdaf!T61yE9j8-P!Ybs%n_9%K-(Yci?|AW#Bj~sCD17^|m#y1O`0?QRH0E1^ zU|;->@Q3B(xyWPDNz39pTD-W<_oeg?+Yd()_u_{Aj_7JWmz)g<0voX-(WaryraCqr z^Ed0lAqFp+1KrwWZ~;s!UQi3`eUFO z*G)9RwjW90bYlcbvDtzruEoQ0k7C?AW-@fHjYU2011x&b9nr7h4pFDQ@pJzV!k?Q% zB)#(OTcCJFU)}{%<_kk`y-f%c`GRh8;j@2U$*V}L{`^$2F|7y zu(unhu~VrF@KER+n7wczA3dv#Jo`6*?)MuHhGRr7yY8CRVreHS-5E`T-lmh$XJ>=#gP+{( z(4uhTjVV0jY`G-{q(tZ;Rqa-{tZ^8 zM3NL3DKXO7O48pi#X#8^sOs!TLk}W;-g^pL1KgltdEV5VO=MBRoR`XDpk)#MSj0a+=x*0i9AjfYy_e!4pX=h)` z-jgS*^CYX@-XQRFk&q|XPOdJo!BH135|#L;%mV_*#<*FisqvmAe_M{<`kRmiHP!h3 zubIs+wKTT$IR9`d-mts?c}1QuIqI(9cE=A=S41+^HCnXPV=yoInuf0|htRKIO)xmj zo3gvdVB>c&njk%dck}yjk@T?BPPzK6AK!sblMnRwE7xtUDLvb zWW-}yo#GH*Cyd3X|TPhB7m2F)AgUY*UiK#3394B;WAqU0(qqpX<_g_OuQlPlgkDNk=&l-*9CiymBlYX!>YLnn^ z#zwZeqqItC#awhA){pP=zQ*SMoyILc&b3jn+0pbKen zTTy#SA}nfR#AC899gHL3)zLhrIaZ4PKD%CW^_D#G-m{$jk$YidDlbJ&w@=1^fwh?0 ze*x0|XTiSHoo{xqLD`B(y2AD$Cf(n{OgzTW4We({C9e-pbX)-12P?7K{xIxlEh74E z@fe|53e(md;B9>sXheJjd{(q#m93MpcI8f3zvBw_X^`gQg6knSr45|UZGhX4qD4-4 zBVJS~!bP3AEc5MBQuOpVA9XwzZ|-!5F_!5pPi_oR-yT6mBp9HJ&SMfhb^r{oQzyHX zsw57NOxWl^TU>b05c73`H7&>`(<;01&Wydd*GbGKhS)LBNta07PAT{v7H3`i{Vn_1 zp3QPLN3f4qoN;KLJh}W`3cc3nSIJKdVBPLUaLalob{MAMs|i`)-e$|b?biaS$04Mt z-c|GmyvC}@hgjH^Gwk8UmBikqAJpgBv8dq{m2D*z%vpTLz2D!LP42syP0!I3{ncSi zbE`dkXy46RT`Y*F;tOmar%jH{8^|7>$s$q`dkC%jPg3SIg-if-sLp%9GB*0Kw&Ayh zV`Vd-{*NA;x@e)qZRRW1(EgeXX|u#DsaEjO(p=JAcS*<{cnEEWlvXjjAfcvfzL4tI z!gehV7tYPQCJ^@-P*CzpGK^V%W-kjNp^hiAS|0`Ph2VuF!Gx=PEG3zDjj8H_3y*r zdc++bO>o594%HZA@q;{zjKa#g%d9m1DzwI_(e<*SkTLBVCXVgGUp%X!yHP!2|?R$vKQe4$bD}wT5NulNQt_Q-o z<&O{I@l!N!RChV65tr6c4tDXf=6h> zWpiCLN)943$BrUP`_Cl0w{Ekpl?k|Gv-qCXbj2~U+SpWhP}HQpGV}M!IOw|!<{3SL z_FyYiUXu^sMQyIK?k~AnEz2H>J?r;+)nM16CHQS!5%EwT!$zA~;hg^Q?5Up@T0B^R z`*1GaHEsg+oDz2BaWK5DOvPhGd4y=Lfr)(x2@D?u`+j?3m~IzIwK)bPEdh6KQ^b#! zKbS#mF&S=YAFn~BKm zi=#(r+YqM=#MD)@@^G-7MK>(L?5>Xrp;mB0a{XaYdb@*h@K^I{nPVg&(ys z&U_L-35P`PPbvmA42OAFcaq}K0i?W9K{D%zEZwrNzwMWwr9gAi`Rr-S=+D>*y!OF% zxKQzm?QZ*mA0xl;tcx#TK{A6E>AA3LOo`wo(@ym}E}*m59(r^fwVmVc1h;y&^FN(= zHj^HX;R>tf;f!r1%+75HwdtK%9UJqU9k5A3{eqVyu)+WzS8Lch3sW#lwuR_ZX2kCOZ%IHd|fJe->%6Q zJo`XhQ;Q+x=N>xkawvT};ygUR7RMw%!-Q=9j@5O4V@s3^AiB+qrET)6E?T6CHy*Zw zn@Sfe3~t8o<_fyySATlr*?G`EdkT6q=fgvjG0actO;uz1H%b3>MY==Dm6J_4;O45(bT(8^6ph5yZdPvfBzks z&b@us<1~km1$kxg_sDzUq>O&G+iYu`;?zZpXT7nJ!qJkkIlU0%=LNq^rK?<3DRT%upS*RLB#H7MJXuI=#FP@ZI4agfpWg$)W% z*|Px;8B_cOEx%gO;Zip(GMNaKD|XY8)=<1A=Emwl z%I(1exzF)r;sAQwv>wE50j4jzDLh%?KnCo;4@cDeXnJ1@x_sI_=C*zvyfYd}4&?nI zYsTKk>;HC0_A2D#=ArEvF@GJ+D<49YvbwYkljXT#x_1hAs6G9096@Z2mOL>vM*z&^Ahpw(YZ92zM4K3MyITR zsv{2k&Ie!euuhkicHJg#{>I_$O)jv&Si--INyFN;L+GU3Yoxr!7L`h~`N_asd~)59 z+P+VK%d6GksNyPK?Hdj=Ps>(m_b5Zo!_8Rca2JZyD>444G54|87ugdDd`tL6+@-F^ zRZe`w_L)cE)VAlalx~LYSX=3OBdAe^@4jN{rlY`aT?5CSj zwPw@`ToYBmYc@~fr8n+FwZS}k^u!73&6~NRB!l}oHelwN;kI4VM)RuLFjy`VM@=6` zg6f|zVNKRgmia~2R@qaJTIEvFw|IiKPnEZg3C*Kb`>VN9!+K6M;^@uR!M0b@ZTPDH zKESz{FcP%oG5tC93mLp}6wgrd!0*$>(9fO;VxE@LXv4>3!K!0$z}~ z?Zz;5_dgtx5iYn5_JE7>UCj5t+xUIBGHz$%`8!29`oy3bSGN}n(HU1DI&Uu#oqlL} zJ(QfT`$I-=9?5&xO5y4YQ^}4QkJ1|hghc|X3CFiFazB>Z(&PFOSOJ~6#;h7|lfAQYaBLNy&NK4kYHj8G1Rxb-%0 zMN6C5XpLgmPpH#?{;}}rOfl0PSILI!Prx@uAq-o*q5M|?sX1W64DJM>LC+el)m1I* z51U2|-^H^z+VNo1l*Y<*t6}SZ*&sXM6B)E{5!z`SL8C42nQCe}I1K3}3ntjW%(Q#> zvTYup&%~YEOG_B>dmCa>5lETopuz0~kecL*F~^$OyyL30jXJPRA47z`w*WF6w!)d) zyC5c`FQ56!iMzaehUaWG_-U`7*tVn}J$`d7&MT;u>>hU#wC}!WiXNeSv9mXSdZ0h1 zJ(Z=aD&J#&K7{Iq=JDZj^QnR28SEebg*<=IP&FhVn08;kF6uMsbiR(3?d*LC^i@U{ zI!aCC1DpJ)_mT?gbi|%d-J?o(9#^TJoHX24<8K?xvG!(5bM?fYiu*LWsuHJl%hKQ{ ziR8K4MTjWrX1LZL^yjC*Mo|ZN*U&7VOO{1`WP!yB zOwnO2-u1r9zHLh*ewxPw?|OAms_MtriM%J-Mm?gsG94ZAFG)-GzMLB7nx#? zAbhQ5Yx>)f?L{5fuCkCjJW%);#zW#%?VnH|935HIE*#JHFY>ROJa z<5v<(zjT~BIe=YMizSmzUbkM>aulz=a0LJSA&@3!-*yEbmkc1qEIx;b9T5HC#e!`( zg|=57iSoh^-?u{1PkX*{*?9Qr-w)d#S%|FlLhL%S8$v_du*us9swQoPC$F=Fon5)O zXY)~7GG`J5U46jf^9$Iy$gBK^i4%Q({|)x)?xXYBp6Y7LbMR&V02u41jUV@D(RGPl zv}wm}zF49{_c(*?L(&T8gLcw*-)p#UT{zyl@qnJGIz@!pE2!?izSV8+qim(`KE$yk z4yn8^Pi{R#4{5~UZ`XKQcfFgeTDuTvP$$lDv8F+*BI%b$Gugxiz7TZYkF9DK9T>-U1bf3?)AQ{3RYP2pYbE|?Yw+zoY5LOp5R97hlzsNGBc5$n zNYJ>YWYxV8{ITPbq)qJh$h&IDmQVh{HguaaA(diyh&|smKSxsep>Pp zfQuZ=fNfMHD#@3~xF4?2GS>>dFTG^})168ALlsP4u$^QLW@LcSDg0b_iuma4lbn@L z!e@<6*nDRSDH64>wc7-8Z0&2w`m7#uOlt-2=i+-T8ds5Y> z=033hyRRT?`WaJ}H<33+vms#oJNSO-j)3#y#oX{hvSL#Tj?F7Y;}xEu?3alBt%g%Y zg+o{|bvQYe(~B0{j3fhxnKJrP)%M}E1T5^xVA}@Q((P}7CtF{paZ;lG`(Gl=zB8h_ zE-x*U}_*@I0uQ(j<9W zu!r9;G{C5&_be!DHMEWx4zr3j3xb{wNatOG!hyCTyKge=b_iv!e&x`BCx8*210->) zr$gEKLA+>DAxht?$D6y~APy7HeZ{pT;d26*^IjpXy#($({6IX44%p;BNyh=B9H^Si zK77@?l^rTxMoRPs^R1p1XlrFoI(~Huc{zjNEzQ7MQTt4pW~8GclU0OP!tra( zEO+ii5sQ(}=6||D%2o`8o1K8PZw%f_Q-;OU7qFq*_rh;ITf9Cd4zv~nn(s5jt~u|S zg~4;lx!#%h$_A1D- zd+KSB;k<}U7l-|kZL+-a`c?4XJRaU@l)>PG88AI0k8F!tOJ^k&(Jk$hx$8AqXg@QO zK6O!?<8y56z+ZxSNi3Wey-s7NJQ11>9EIlj z@x<6~JWbS}FW9-Pz^m~WV4vIaD&6`9W~RRyQv#l`ZJ$#yvd|MZA2>_aO3OjL(^*#S z`xU3&JWA$IE<@+3q4b_g5wX8mhqr(0(ahV5xZqMOJEs{Ad4HF%9mdl5@NY7keku*G ze;ALUfj+3R<{El7%A@&PEi{|&Ps4|=eD z>u#{SgKYUpaWBlj8ezWLYgU=(51pf8A*3@*=o~*%kot7Xrg57(4LdoL_2!Ap#Ku|l zz_Y*1woH5jnO;J@0rH%^POnOwEJe+hJZAc8gTS`Ai#@7uVbznY*@C00Z15Ocs5E#j zbe}H46@N5g*Y4}=!`G`=+2(?sy`5ECRu2aA^{wD}eujiw9|bAT7Pcn21_R~}f*&r~ zlCR&)KySw_rs`c{qb&5tl_jI$s$~=I8I2^fqyem+wF~zQ6kxu}V+yGsGhU%A3izg<|+s18#nS7KKFQ5e?cN}sFbke{cr$W#j_xZc48 z9k!V0q zsfxXtsdX3@-$fjDNr~LzBka=l6~H%`(dSQ-Bs=tfFw>-DRCzIyeDNBB52p6RA4?Cx zsoASo=BH-j;JY6+%~vx^tz~d#X+PR&QNvXJYlX1&dug4b$W3l7WI3#YEx9s<6`ae& z@d^E4cQAu9{3VQhI|||sO=D8MdCa!Qm~CCLo=(ynBYg7=B|ZBr>ABjCOvl9r%@5xt zt_mfBf+U74ogNC7k7r_znF3~CbAmHe4~e5I+gP;-uPqOvldrGCEW}+ce#zbnfuzdh}ma24|{x!*N{UCVu zUn)AK*x=u@>)`RZ6R^_Q9NOFNLO}3WVyzgBof!;crtietV~cR(753b}VE20Zh}^;A__0V-H-kc-+h1uru{P z@OUAODOKwredz!=v-d50c^nUML0^f_{sr{ZzS(rk*->K7@fy)LH={;e3yv)xK$8j_ zd0=cI=8eqY!lrR_(XSe)Jb9f3MUMo@y#%74`4Mb4Zvg)T$0WN(o**;(PQbI$gQ2c| zm?ZQ-I?1(4z`o^SpehN%rVEW#u{V;jXhjS2v(kc72c>9j!(++pRC#Lp;|x5X??VO` zOv0?(36Sr7huwH#i*nWf$njAxLEShH5?1aL^3+nu>!UpDKKQ|0o>) zFog8KB6@(7t3<|IG}&zaj3xa%g}b9JfVW~TEcM?9%T=z!JZTl!*sI6B?pRN@-1LOF zKO0fi`vU3dSA~9}bG6gVO;}Olgs&xw5mKaZ2kU}T{Vwt>`zUl_FuY8+MiHgOc3)qN z;}cWCe10u6%^wLfGz4tYSp;rJY++jNopySFv~50b+PoWR8o7mfcB| z>d08aTk~b0(sLCuH>L9Lr8^i53Wd`RBdJY=hM?_bLhgBQf{@`6Y*%xuaA`(ABDr%F zt}HJ>UCAgqsac&?+U^$pS9&l^%u4^|I+9FBCEUAIfDukL5Y^8CGPAameRZQidCCSX zX*?&n8!2XA3-fWjj{{VMOas>kk0i3w$3f8NE$Fx`q{>6&*aU5|r_l=1Y`4#Fz9oBa zm3Q1EVaG=u{!g|A^Sb)d&OgKX{8X`1McN)tiM`V^!kZz=_XJUS@Ltm9GM)|lmqsHL z-MQ1$c>eNJ5;5pwD>0sG!$;Xxk#ps<=!)87`1_?SjQz3#e&pJ-2+3sXC?iEJd~T3$ zkClX<9;0cjPd>lb`WG)8(1VC8^=MbA!iW0jvce6|Ao}S+{IO>_q`XCPFD#EyhwISy zU^|%P4k25Vld;%9AihcQ6<&d2%3@%V`eBRW=!H{i9HFRE-FX-?RS=1f-+3I+EzVV~T)6$rLuWY5!W_UREF26zMp0If{}6VV)gyOLrs_#Ex%9vR_+pUg zofNzCj6^19wyp~}8!5qphPCW(pXKmmp*&CixgVz(UuAFaXyCe(I@oqB0Ap881CN92 zi1hCyA+-cImh(A>F{C3WvpHEFtH0Z64HCK z*}w;LASQi&2t&i*3d*ElPt^TCMA zG-rZ;ryaBvr?ZKZY>}QiBJO|wBehM02i;WU8&7LM%L6qo+kY>Dk~~j8YYmng{=wWs z&$;Vik&AM`oZAJ}!5@!gdhYo(@@2|NV9TVraIA)G=(@`^WnYl_%5C(kTsSF=HK4Db zPGR5es=>X)nk)J1@#tP1UTG`dYZj$=`ecj5Y~fz$lDkiIR}LXMiq3pi`gZhPn+qpC zEGHj!ItWHC{YcX`e>S@y1V1jCi3iL6u;1bOaIJl|kn1}HI$TDv*mwGNWv{5r{Q&3 z3K{)#E~cE>$8MR3?>kq-UFWo*_`x(BKTM4k`;CI5W_|duPrc-rOrcPqeh(Av99fUe zA)J2x3LGku=lEdln}e2BWdo^B{p{+b&|6F19)M=F?7#X;n5meR8`NHFLUF-Vwcy=7+cA zc^4NLzh$7Up8Y!rtX8E1!#@azlbS&O+${dIsJouHvXbnx;gaMud!by6xAd3bjOub!sjMdw%WqX*Tdv}X zoZHBH8qi(ok|e@@ADjET4z7s*t@7nc7T#|ye(xPjHAgmKzZ0jJ&ExYZ$lKxIkWi8p zDQb#hE;2DM7A>@W@bE@EUbJF2hD^@|k}#LcOQjJ!#BgF3(3aza`1adMbo$t1xUFLX zDo9-=y>gA{=O2iRKISkT(Jx`NE(xD2PGZRx1d=1|xsU#1I6O?BPfC6SWtukpzIHzJ z_?6+(q82j2Ya(ph)xm~{nbTWtSA+?=_L#l?IXNA)loa$tVo!XK*jay1WI;IdCAk1} z=}`>-62J^Kcailg<*8TW6EHLzMqd?{pyN=2rfCyN)QG2`B_9HNtu~_G-Vr!a%q_~V zmZK%s(mYGsi(V$f_}oTC>Y{WHPfIVMW#wgb!o_52Y4j1-HP~>u*RgnOP=Tng=7ZxH z6F6|AjT_r_lk4x*_zb<3eA84j+sR3jXmPO+qfJ{I-yN?^YoB%geC(EP0{`M#M$V07(fTBA9U zue4U6(`9ahl=DDt?z9%K$f)7&BbK}^?>WH9{PY4A;i>nlg# zxJDTq>LV>Oc+a5z5`Z0niJ15MB`e$f1Vg|aUH?93RcF=l@pL;ZI6s;F*YOX2#-&(y z1ttk&J?hal@uH;msxnSK*u$!pRFHqAA!J3PH-20#51SVEXD(9l@IiSpd1UN_GDl+J z&I}hiTH1}Qu=i*CJ{#f1?A?;F4zGn-^GjF&n#0E82}13vt@z_o66`tP!EC;BGC1}! zvx@tUUy4`4tn$Tl*u7}-;(aSIuKB<|4c2CdWy@IBrW@o}_E{LOGM0Rj`bvuC&xR4B z!|-;tJyyQj!$J*4bHj)-;x)oT?3_6z6uJ?ZSKZ6Z^K@|l5zzU#JIR+bhh=|DS;b=u zHa#kdSZDoV`-iQ=&42CCG~0}SH%cWN9fr{1UjF#|-Y&_#sCH&Ma1;iaOv4?Yvm|Oa zzDVYYc_homcCzQ`k@EMMPuU_7pcQ*B5}MS4#s2yEY@1>=j|;jpR;{#(X`ME4l(eqbY%sAyry z520$jVI})~17ZHt$B^Q$#(h&K(Gxl*uyOPt{!~^4m)nfO)Ax3umVyxsEmr5h<=Ysf z&0||Thrl6~2gH44EKxpoNB9_V07veePwIO+nBnQ;Y_-1ytDorYV=G7K42){%69+k zBT0SihG$l`ik&UexX5rdJld0EUHU1Rw%5$X#^yH3qWgO#UzW_Yd6^asUxp84?aB(U z<@7Sh&k1K!{zXf=c3R+xC&TCf0kPAjPUPC(CP&gw(gzl~*m~+YVfFpsQqxdYy?hhA zi7-LAgiMJ2C+@P(jfB)~!)#W=bDZ~9iRB#h#o`M#nBVOq$x5lDx>|`?du1{4X$~hI zc}7JoLIpK>Boijv!{x*(;k4m*e19J{E1d+Z^}e0GX1j?qKu zeTw*f)fr-1{!$3gxdnCEWw;_Y%Cv|H2K{hrqgLF#f%MgV>8bslEY@usHGv8PYEWm+JfA9`W-tgZ~PpW42Wt zZ;$7}E$gAP+zDmfchM6m*`#{T7=HZCY%Ei?fb@*lOwX_YHV!qUGseh3V;`|Qpv9J{ zBupXxyT^m<>ksVtst5QXrXEt(&0yD4r6jA~*;Cy){$y)i9dX&=#S3T!xONp|RJxHw zdXBl|(w3V$7%dnIhT6tH{yocnPjxEg&sPyT4FkK2J5kR=lRRc zpur;_Gb?q-eCd6-cd7ztJ8OaiOCUK?%EU-DL!5&sHHk<-sU@5((7pxZECSiPVNT>% zT^RG*vR3%-?qzm9U^;9SnGlyuU%=u~DPX?sw@tgq4!*g#4|8wZNp*}(G5BO33|e>= zf^IZ1gMxDs$3!(q3b%*;MjCii<0cH8ISA3svDTYQe+oEkf=TBSRG`IrtZ-7-&Ty>Xa*5k?&R(6 z0Qj!D4zhQ2vfGc3OYUpc2m>B4_BiGiIj=Vx)L&||I$aGqW@sppx!eS{dE#4V#6kSn zkp*fGRIkSRY(0CIq+@z}_vhIRyMKX+kW(Dx!50(^Mr2#c7F|lqunr_R-js>3Zv?>_% z>L~K%MmQ#CC@P5_#$Z;5{--FeA1On3y>zCki$}qoY5(x%x&){@kd3OXqhar%&FDJM z9~^D_)AdF6xNG$!oD*=CFS@BC?u5*V>OmKqD&WI^qp;O}C}t$a;1Cae)M%c8#t}F0 z&&6=&x#JTK_9y-e%!8j`wqh;Z-GV7NB-44XY=JO6KO zI{Pq24Y%%of@8f;V(zsRQOmr-bhQ;BZ-bQN-LGMyPGU;EpA@mtK1nP)>XKw#>1#5} z>MN$qUdPSM@`NKVJYm?gFL=bM1V7InivvxTvhJ1BM80VVEMDn=mBAkLwp0}}F4V{O zBX5$-i_z?XV+Q}D)1QyF)yI3wcfn1$%V=-Nam6=J+(~}3){s?@yDuC3kA7urt2cdf z`aiZ`c?fPvtcERmyV;1ObKLyYc|ap$Y-ovsn;JRzpMEAAFtz|=78K#DV=j^ph0b(* zNDPjdSU~qJUx@AEo}v2eTYyAGd@nm3vqtZy@u}C@mW_IJS?Ch{V5u%lo2trhG>Say zx(0|)9*utzK7d(?I|O)r$9SbZOio-bCp!l-)94S-vHdeV+aR(XD&^=ZHbziOE?{Ys z%1P}fC9=3Y4(d$4lE_pMm5wx$xw`7u{&pOGbUTNyo<*_B?1@6-c}?6) zLs)p!1r|A?jNA$N!bCgl#W(XB}G)OKKXz*s+Xh@UDI|WY!(TZ~q$DyH&?n@bpnI&7zc;?GI&E`zPQP zK2b2qet{N!DumzD*J1QdBV1j+9?E9+l4o=`Xtge8Cc8@U$9xGMKcR{-aRKa{%Ox_r zemFavs|9QNDhkt04ESa>IS3d$7M)v5v1pzx7R|7vp>fqjxm^#`z6os3^wU_n?t40tHd2Hc;=UOYWXLgSk%Cv_w+^Jy6< z31KAY_GR?^kVID7-T|vP-0b6im`55BLV*iq{V?U;BpKdJu^V(As!Z2CBCt;r#FQZbVD`UUVzcnV7|#z?$*BA%7Y zs!Dm9iwdt#WAURB$*gyO+0U&Spz%so7&>eKA5_*@Ieg3uLCRzbzPc&FCw;xC*P=o& zOdV9YP4oujW}D*bU!5%DjT&};(PiPjpGeSu=Sf~`G+w_U!*3^fp>$0W=7_ASTLUJr zxDlbWD)cy*PCrAA_2vkAtJAPM_-fVp?;4aonI{hK@sPbigT-E(%`+Zd$NBfluyes7 zl>XU>6Q7@w|;ym~rA zJGg`@ep%@3X2-)ugu(FlnW&gJf(GZQksQ-3^epqnNlhaI{oLua3Pj@wrq#JeM2^2o%|eA+~SvMHHR-tv}atA^u} zF`7K!;b#my7SE@gn?xVfdcv;{#i;S)78zb$0sGXZlF=(vsIl6u%7$1INm&rV=UXlb z-z53qGWsnGof<(Tx@*a)<8>Hep$(>&vtZn&N2uAJ1Peybhxbue*|7x%^zy(^_GnQc zwrzb#R!;0E?6qrUOV*rXCZcyt{Y(tpS8u{q4)UNAU9 zMd#s<)%(VAdz4+tDn*)zjBxJjrqb3TB_$P7G>!I>tb|fZDv^{_2!-d|*G-|4XlQ9t zX=tf$gXZu2{(|RuUaxb`bDjJ8eBN(mn3LAx(!L^(4IYrsst<;tcithq`EoYXEBhl< zxaeWZP3fGZES+QqWRYjN)_8mAZ}43(fE*e+kA%cc1o9?F%ug&uleZBvuV35Hv1BLD z^grgJHSnj{rtXVZ%yj9@OJ=C@iW0wN$C+b=9DVoR3!T^4QpIh$q#86~A7;ik^M?AKpk( z;r`Am>6X+Pbn@mc)Ok%G`snI2x;LnpuHPTd{qv%^*2x>(tKR_Ez*n89(j3N5_8(X| z$DY$kvuk*@#93Hy&6aE0CexZ{7pb4)W@1+W{%@8W z+<#CeKJU>Nqnant_9iu#%e{B-evKM9ac_v&x8XiCmt?THKlkthryt^(v0WHhpN?(` zCV02;0p_UghK2p*#od2e1mE@zV3nOKTQlyFlnc9oVY+Rk+muE!Wy1!1^vHs{+`I<9 zW^3t^PhI#uzYke%aDuhOu7}+09qiV!LAba`6_OsFAfI#Z3dz$lF=JA1JZ1YtoZ|7B zEX&^{lyp56Mt!y?B^wXP9==Q^|@+Re(M01-Z%R3S!zIu~Mrkv4YDIbGK zuJI)dY%(QHc>KcZn788OH-|}T({w4k&OmDB#B>0@g??!s6~#yIo*&fzdLaX%QWY6aO|SIC<=f)1RUOD&Jgg+B-9 z;oiFKJn7^v-Zm+jo++(oFE5$Xl?^(TS%>D*4eNUGP1mzn#Wn?geuc#R+uoOc+K@_1 zd4X^+tpc9EEkv&;PSk5c0n7gIk2q{q;c5dGGnu?`N-q)w?FL zntVrCRQ8wYYsK-&F%0kcdGkGwf3vO2+Qr)jqtR1;Jg8dkXU|$?EF-Co2%5U$wd_pj z9P5imY$L&VsVCS6?7)L#lToow8>%|AY5oHN--jzh`K^m==cZmT>uI^@ziTT_yV?s! znMn+rm}<7&GYeaXXH_&d{}A4GcgM&RTZA4*KMLo6Plw@0)Nt$BBse8s%m$v`FFLep zG1I?u$@GGGXxh~%j9a)DW50QbHug63@g}?#X`1Q^&MHWXc69%xP3tz zRdDW#AYtNtwxdl>3HPT2Lm%q23b9Am2+DpD4h31tfwvX%-pI5H)asm?G!qBjjo zG#}$wi&XS^JD(Lj9{~aJ>R5J2L!1?~3g>&TC(kt$D3`y_JP&)|raB8Y?57bmTX~U; zEj@@?EydLNk}^%+nhtM!R*`A9J6ZZ0WTU-|_=88QsAGXi<>(i4>9Dh|eBkJ6F}p~O z$IkCXbz6<#L#_rba6U@MpDTl<6|?ExZ<5F8h%XOnT}6(rs!u$UDn%l+G!;^UU@6^SP?7suvq|lKVos)dk-qNp#go}o{^vDb$P3=)Dui= zbg6&5R$|Bwr)zWdd269N9XaeUnQ~wUHdLHtX4*2*VyEN}X&w!ML7CV;rW>tooJYDw zNDd3jle8`Wf>7OT%H8zR@QYCr>mZk4@W@N7*u$Im-<^RU+XE!-Rt~#1Yc!dqyAGe~ zY=Jd%;xJ=}1q-|Q5)3u|6Z9l2TMGCa`GTmxg0v*6@1E8?fPjcA>YMf24YA$4;k z+;5lO2b3nFVvpHiuU$bM>j%S$NNYYKsK4t;|6gpxwJ18+y*rq#H-cx4U3B1)L~>2d zn!oYtU)j!LsE5uKNUZ#d9(E6j_rU`+QBfBQ=ii`mR}Ry;m9w}v#L{=Up42JQj2DIM zqkL@@-R0)SHw7QylfGW1LfQjbd8&|mkBG(#aF>?8uYxUS$I?FI4zmr{e~KmXkJ+dm z;dJYdMm%Hpl4P0(;=ZCvyxe0f$t=r;@DAzSuVNqhop(~&sVtRdmJn9Hz#KX~Xm}A6JyD>A zXKRF`5)Z*9Qx2ww_JxYft(Z9SyErj0ja6SVfTRjlK73FC%1Id#`)nt1``AZl(eeyu zboa-VXAnY?PqMhQ9V~fN4*2~@Cus&HSaI2e^;uIabF->~Sf%?Yl*xm)NilY$Ul4}W zp2wc6HPKu(5-#W1KVwfctyJ8+>I80%OcU;SMc_Zfi?ZDzFK|fT^<<}7HYU3J!;R*AHl&9U zU99Lq?;q_1tIV_PR+tA_dQ}&OW@H>;s3%3m~2-UU6T&IbBp1>NPf9EyEPVd0!u zx-uyYZdQjvSkXB8bz3?vPD`NaLuzUFyumQOt{&#aJcIUDN8(eIK+ILnu)N{~n3V7d zXBvfok9Q3WF6jwk*bb><_JmAmo`Z{Qmcy}oW9YXhCPMeAlfnJ_Q22Sng+-2S!%auf=S|?&Yl9^$rS|{Zpb%4UB3xbIdvVVX3V4~m(+@<#-%ZJ-!$@{({z$KX(cq4je;Ff ziSVxQ3~QE~NBWNU#F25O@L{zf_ucXxjb{&|ufAMzNgenbPF=~tzmxY#UC;#3=vKq# zWyGNT4>|BvE+p;K$78$tGSV;mDOOI-fcZ1BF_*Y=nq3Ot*Ty)r#J-pq(vR;AG^H8; zma~8;>D-{gmh-Q#z~%NQ?3i)}?W9hQL(MNVa?T+J|Gj46x^WyVFR|c`B+_@3CR8nd zi)I(IX?~R_m}G3iPu0u#tZ}+D)5(>aKU3k~2K~l^uV?Y6YL{6r{bXp)D(BsNMHZW! z3A2d@6c&AyGN38E;^9^2UzQ!Lm-A<-N7MmbX=CWF(jR<;<4bs~R?7-o%xPlxqx5>g z3k==Sfq54H;g0%p_+Y0?US;ftn3YdS|ImlIQs0a}AO6FD66(^`~C5 zzq8MSyq|BJG?#Ux8!G4!;rVinD2C4e3BTiR}ee#CvV<}|Ugh>8bAr=)>&%^jLed)OQT6n~4Hjixli^m+M z^PBpsQ1eFy{iQsL&RHl=!+Rg1xpbDyfT;0Z7ILmb&PluMY-lh z%0KSD0oDu{1zW$YhUJs0`C9EGIKy`*ZaXdqb=9_{RC6RdA^BDmzDyHJnL6k-sCJu|okZXqITW1uyMr**K8^>g4Ph>*t zifDZG_#wUwGZI`w;$YJ~Y5usYOs(>onDrbfvnge{CM-(8?^gfV;z12$T|+bGB?rU2 zhlfF~#DvC4867h`k49r^$xP#BSYo#V?V1k56#GmzadHnxP>F~1ip{9kqJ%<$KWMt1 z6P!Qvf&J5ukz4ET!;`*dyz1o`G+Z7AvJ0y8euEF`{%#LATX^GE&jjN1eK=kEDw+Sv zG{-DM1u7bJl4;MZq1I3diAgzFefHNo;e^ zpl_d*aI7&Rvgi(wi(O0RdlxXdUs5S-&qx=!<_g~WLj_w*8{qwL6*7NK6?Mq{${dd8 zviKp>`4({}b?Ci?pHzMe%eI=*XYZ28MRx_rd$<-I-;Ks04*&Rn>^q)I9}lAyE+g-< zb$yZ|!(tOn=j{Bm{P>y*y46~a-}*k7?mh4tHhOE)g`z#!d%S|}^Nb|UXc|??9a=fc zE1vc7i9vUq3Z^G>(8u8vieq!&vf(aneKMRnoXp`jrsiYI(j_#_@g(`XD3r8S+2JjB zZ=BRriX&xuT<33zOtwFZ&AFQmZ_2%0jC<%|wx0|p)x77c)_sRTHU%)XOqWb5=mxus z@}T`@Im;Qeid_6oAi!`OW=B!EFO> zgWN+3R#o#kE^d`vAbs#?_EhJ4zddP-%?DyPZVfK4aV9OnF1&Hoa&AfwlLsdT(9Pd= zLZrnMEbO%ss?W&4t!^I+e5wHd*4ko4%oVcJK#yw7?ga|ICz<(<&m`9H5jyc&EUa51 z))*<#D}67J2N9EaYUwjJI^#c3_B8@HX$LZ?lkGDk)n%Zq2Hm+ogRC9+joCU*!@uKl zVaF2>I3X1%2H#a?+n1>GmkPuH&2SUPy$nMymo}W^br2jE0?5|y z#*B>pV(2-2`sDW_I%bw7adFnii@}34zZc3+Dn5vNG$Y*XgcbO3u!-^b~i zEc)wiJTa;3kB?ov_~TJ7RKepW?0D`6zy2EVVpB^#&2$`JB6km(WVU>jk2ZZc%Y=T( za0h&Sm|r)I=Z%#U>2{labj9hNIRAMP++9qGT0#^Q9DPq_%{wZr%=HqyQ!?08zbK-V zV+_Gh=3|@87@Yfu1JrkZq8U#`a%G9}>pap6vxeCj0Tv9Emai!5j@0 zrqjZ@4mKyPA5?c7!uCNipk{o88Euj${a@7Mf+2*Lcl(bC z=zkRzOr8me?i)p)rwRCb@I67HmsAf(MQi7LEU%H1jX5#>Gyfs^tySq zkfT14{<(6S4n$wR?6fOrPCv){fA^*@yJCrHTpQ$H^pM3Gc7pfYV_bP}9O`~Aq^&MNF-^xI+J8neZE+4`IZ5N1rXCZz1#e?U0od5s( zCo8zPo{XH5$_E~y;IOkB9F+XgGiyFF4JCEDxm64M4V{k{G%cxVwJ)BKm6OV`hR}X? znsDl1D;~+7E(@M>3Z5@k#|>stE^}0k=>~6AymUDMj(?rXTALMEuvsb7dpZcJC(eLR zlU1NWt{CMkHQ3Nk%3Q8?C>rg%2i5AjXyA}W@IF+0zcCuu43u^<_R4U+@(&qvsFekJ zMq|<{M|dc&&lZF#^2;CM*^UNHl=q9lnlHL^LGV;W*TW;zws)~gqd{aroH~!3;tm!S zU1ZLyi)`SPHdZx587`$CVjf>sVzTKUHgId3i=*%lho8@dgvU1!76s$sKWAn6$2-}J z>j#)yzdi70|9kQs22?}d`O_rbbgiuPODFc^gTVUz4+!%*g<%PD zTvH_$Ump5~BxN5{Y)FB%)pn?*^8w!`{UiqK{OR`SFH#;a7QQvrptYG7oRRhudt6M> zsaaQITpplqgHB-F??L=8)x%#qM#H&ozC58%x-g}67tqir(tAni;r{eF&U zId?2Ms_1}2Ae@!xFNXPmepnmRk7;{u#7`}9Fc!?3Y@fS7Zpe5>&gun&;SVn|c8`f5 z-r8JYGyRyf7U#_2bvft-gpy8aoY__!N(vl~LrY0Fbh1n)$KUfXF zBkr)8OSVGdRVqgzm)IEz5-K%`?2!oSd^ppaQ-P7m~_v?_nQj9a(OXi@!!nu z+8HK;Ci1-W5LTTom)Q6h@NIoAP9CHH8_sDE2sC86sx|D!5f6;Mrc7U-Jb>>n7env% z8}RP>Z;Upuhi*?&M3pV_+-puB7ScV2nKp$(;ciXpr_q;h32rCLYR1sbienI4bhu%r z32m2n%-fs}QaSszta8s$x^Rb5<2`{p6qS;su%MR38Mvs|_u(Eug=CKKh<^ zB)FjuE$ZrnsVP@U=lCUfRjW`q@_Yv<bzJ8qg@xWp$>%md0u9l16IMI^NQSdV-BGXKu7qtSL{&i zBCCGf#W8($fx{p*T%j`V|K3jOJ3^ z6u0j<#g;cAHgFv%^qndG`&Y}OCK}Vg*_ncI_zH+Saf$SG7>?sgognvi1bG%cn^Z2`MH03+93B&>_)u zgFJS0&W0q%bLjrZi)@bgP6m(9~OD!yU zv0b*w_zE+6CBW~GPGnlhPo}f*jqp+bF_ zerE!*!K>Mx?YqVNRnu|vSas4oZZ3|69+CcM?IuaG;EPOe;^f?CPx?3cB(P&i<`Y+ST}ZcjUzY~Tg_;JusutFDv^ z(5+;!`z%>kxe`o2=?`;OZ5B?9-b*$g`^%C&Y~e<1Kd`UbM$#)y!TjSjJYlK~Y7aGu z-`+NO8%pt3sN{I9?*h-u$jW-HK=nTh68 zGf9x%1Y)~H0|$Gnll5LrEXdJ?KAO`gF6f*>^lDdP%7M*nacC|3??o@ny&5H`h}+qK zB?aI#ON~peMH2kGi}bC2&zd7E$npJvA8%iS=AbrNyjiKJt6#>FXWtan;!leqlbA4T z-)14e$&8Fxd5O@%<1YE0HL~w(|1tCA6jp8ADIDy2Co}6RAqrdmv5OHOSzxvySvogc zaQZJ?n$22>wt7*8Jl#pMLvFbY9BKjMbIu4KFCUe>>O0uK!+J8mcT%nO3NZaq(Ij^K zMRr2%4cWV^T=*lu5d97PWep_-LV2JSDKT?{Usn6bvtd`rs!2MSb|^+HW=6uqE55MF z{~f3gHKDKijc4y2y2JCHp3r(s9#)?YMMeABXkyez3cSYCmy_o}{Gx~WcfS==%QyuO zz>>K>-beOFpN7k~q`k>&DKGi(3Lfb;hwSKDf@c?>V150!u}SaeLG{31)D$T8JSWY^ z5B!8~Ph)ZNsSmPO zuXB0iz~dpzbJjW0@caUFi^yf|N41z?mMgW`szJ&YR*Ly6XK>dDLl&{4m397W!R^~a z1l4js;mWVmblKg%B=+-0p_FRvh`!|XedQBl62b0C0-9y;w6WwXfka9dU>afsWFaYU~2v*g<&1LVrY0Tn4 z3b^+Jm)*-^1tCxiN*^4SaSOthJvu7-IF<@?CZrPi7Jbs9A1aJb&k!ao(Pbl*cd?$; zg)A_spSUesi@5zKWn`4(*u{Dicz;9(Ea%>0U*}~r^|T@(a7!tv^?6(Vx@Iao%Y0IC z=hhanJo7YjKA(haSabY?P$di%7jzvZ zD%MHFVDu|e96AVG(lyEOu_tlXpCHIK8$?ZfQ$hV&EiO+|;608e!0^>oFgbrW{}{0l zH&2kK>$_~=S>kDYYV1wMYPX2X2Tr6%_vaI*ZK}e&%4}Gg(F|%*hAlMzIDQ}8D0;u^ zWTzeSu<>*+_SB&pShhDnQIRE2vbKP!C7WfoF8_#6Q#G-(_`fM;N#aRC^~Vo!%CVX3R{I_CiPlNV z=lVmpPYM-ZxGML)JCVtLUJ)<2@5Wx1+TwEki$v$g0SKPB1Lm5&VA`p%;)ZjS#a3vr z-$y3nJpWiaY>*4|oVr>VrIs#T8)jHh*T9B9XkvbwS}GRkO5TBWj`YIIyF$pZB63r! zRE%*jVnwfJkf)FCu%9E8X;z*e3!POgY@Dg-vg>YNi61tE4No3J3Op6b>RyJ>U2;hI zwJ?_ZD2i;GsxBI@tQVT5tSXPt@6FmI?tI1KCT6myL3nf|h0InzBu4C%K10o)Tu_K2 zvd=m&I&HnnI2{AB{D-5=%_*6D%$O&e(cHjZ`!95fG5scdNtqzcV@@tg_wz}DsH`}S^v(Gr9C29_wYg(viL1i zxvUAt*Xlx3&m!^6%Nba?xG(HoZB158wPI;9N%I6Nc`dG%a$yf2#c0m z^A7b`7Wa7=L^`$+L1Q)p;yQa<4 zcRnDx!~er2&63Y@A0ulHQFuPaU#MHri}w7y4<;$NgQR6Zh1G^IVX-Z|*b#@8N&Ue- z*_e%yvQw}1|B@GHr9G6~R-#LzVej8#u;FqHyK)L>d{G8lxcZ>rD`n2-ZLeVd{{_J2 z?-s0fYZp;-t^kYr2Ao%Yo5Y2ya4~PYSn4nUqPPD8gE1a(^N$FYQl`@9*I^9Zau~Dq zM)HuHRCsf2G8mrFfUr|hG;fq1E_tBKUZ{8DONDxNyka0!wp!7z!_?`W?D;TKqgZ;b zNnRokX&1b>5QD$&gpr1Jbc3A^o{JwwgBJ7#$rgZB|7LJ9FBUcGTEsvndD`g}MHgSZp=aMB9`T>q00tX z(mcxw?BtikpuZYiN!yQ|8?_gYUf&KkJobZ5&v$sbTM4|x#=wtasw-VT-W*guD{f(sU4aZrgT+(?klQa-a_?<`OnGJ)CmTT1LB z(%8pa%2Z)aJns4G2j>yv0@Qh*82r^1?iBBj%hGABphvE5^E6Kc+{y10ap#8~6#6Z_U zu%eE@QD;56EusM9Zdb7@Kg+SFjWtQ0z8I2hl;{KX9^gU=SndqMH+^@=Ch7;Xj0NXN z`^eX9eB}mlcw>s>^L&p^!O3idMJToySdqa?Qb^o|N#xhr(fFmL6{cACqV7+F@Ib{T zF!_}T*()qCYGNt7IY18M2Z!UvCsr^eyn<@4xDKdz0e(3p;`6vF;%?)_r|!rhJ3T(* zo-0X2YqS@y+GIiF{Ih92yeCJ3>fu9@4vf;sV>jh`VobCrt1NiLk`yoDj6ZA0irIhJ zcKL0fb3TFD{MQF-=eUxg(>)-#7s0eI&n13pBCEJEf_&Vlh^D3*P+6QN=-rQYo|qAh z_tt(V4%4-<|G52dy(UjIF`fZ6X9J<>yb~%J+Mwsn&BS4<8Mb9VA&1Qe2_fqV?Ao>- zX5RNime?OHy2S}UF7(F%m!6T9kU-gznm)Mb?|!K2f0A6@w@66OSS;=pa&ai`!U2oE zk~F0u60>Uz+<#et<*8HfN@WGxu5E}u<_S3KReyH4csWLXs{*@q9ys~xGoqmB3!mt3 zc6&}flgsiFRSMF@P?acH_qmy!>3LV`p4`Oa*3r;mv=To&9EzFO4q)1d(_l5I0`LFo zNj$9NY0_0jhH5V+Cz@)Y&;Es|ZBj#SZdY*DF8)YX%x^%&R1xC3EO4KH0PZ(b#Ow0% zs9|sm*E_0{^ZVby?&Y>5^}Qf!X(+?o>h0)oVhMUMfWVf6G>%p+3f?TfyA0n%R?=Nr*7Uf=8SZ8~k%#`2 z=XWQ*piPYdJmAJdzA>zdM?aItM8y|S*nS+6G#y-zk1V7MY{FpZ&01*gcR_exvl30? z=CX4)dULmc6ZoR@2*}faV7YAsjkxg%Yx~_NTQ_LJ0F7|aJMTa~oMTzz^yj_pZH2{4e&yjiJ{Q0mIn&kuCO7W z9oWRzW2xJcQ{p+{6A4?7ZEb|7c5sLqR&&ZAiM5X(~ZE6@7_^ zGmm;md!b(Gz0k!pnf_@s!S-A~w5hhixXN+dUFw0~k>=Y!AAe!bN5J^=O;~u@l0F!F z0}qVSq}mESX`@XgtR7K_-+Zr#y3>2`XZ!kqL!kx_9Qy&3zQ^O?85Xp1`#Zdv-pLkk z7R5b}%2ChwH1!2J42bFE|8g$TEqY0)<}6^&hD>f@U4`3H`=FWGF^LO0hgOd*fwTY8 z`J&z>thRLz3E~ZcxpgCZ`b?dU-%vyNhyu9MKM-!0?7%*Cn*5xKJSCCF^hdisFUOsH z(^L~SI>Z+Zd&lGYQWY$#RMm z!YXjv?ND~j`YPV@d;~}Bcca}hV{-0&BddyEL*7kU1AS`JMe)iquvs<%Z+tDlGo?ww zo7=~v|Bs(AX{rn><3@v=`fnWdu|HLjdLXj{8CgAdg0QA+E=)PwpZ0UgXB%#tlRCi} z&-9AI9i}_*#H6F(b7np)3=BZUPwCL}UKh%HDN5npmIdmHl? z#l84qi?v{)UWLxVNurNi1-Wu#71YgWfYr)-@yw7@M0c`3&RDS&+{4^TCI%<|$sL4~K}Kx#k00#h=?W`i;|@!28q-K7jxD)BRy^iF5* z;yDc88^aVk2IAz5KWxvbIXGoT3rtze(XD6z{VR1zJWlk+6c#2oe3m5 zalOIIOPUQkeBgkf~v1|dDWZiXf#`e4smb6{F|w8!*dM(G_D9Tma9Tf(@k`A zLLR3(xAQ@fx4=cpYK@8CK$qNkL97fsX^oeR%s;jeTh2}b3y*_Lc4rv4OZ=vmWLFw6 zeH1;k`Wy%eJz1MmsBqstl#K1Zn=s=Pdg}UJOl+=(sLV4gWREV7{p2n&G$e1|-8XQd zB8&ML9ucC322soPUTpb{Op=iL478%6N&e=4F8VvV(?{wCV>VQ?g{=QD6})fc2*t5aiPHUBQl3zUwC))Ni83kQ zF~kbXqyDm@r*H7si50NnWiH$h4iP?C7FV#Y_0bQsjPr zg!5On;VP|SvTa5IzVTO}@+rl*QXvBeb-&6S_EzEHz^`BxmyOp(_M`uDux*YO_p6rjc4yT2rL=GGCG!i}^ztYg3ijM+T@9|p*$-X;`FM#NKZjfN!&OsNT<1wxIGenf^{oIGU4y zLT)WW`vq~SUIETle8iG96CgcC6XL(_#|(lb)Fo-xqcJz`>1CS z)kB$$-57)BLIZJWIRfX$j-bIS!XUQ4Dd?3g##seHxU5c(--iUydN5P$tWUz0 z?suT;*lFTBMIGk2K46*kVa!~;0UVwVz|;E8s5^Zz9?>;{y>5!+=!^5xz5I?j=#3?W zkA+}wL$0PjjOJ|GE+{rk!(B7_aaFZWR=;1H*XKQEH_O&y#Qi#!wWO2mXqZM$yfUNn zkG&vD{}gHYsYZ-=^_33nKbc0}zl& z(NCYVboD;8NzWcW_&3AtEt>Sr`e=I3BOhMO(85p+Z9e-#G2a_)L=Hqtok?#!9uc|- z4eI-H#SvL}@9TWbT9iO`uki!->>Nz**-SRgvZmYqiv_Rv6#V@@5%=xw$t$~C@)6bj zVaHx+hg?>OS%*YSUs#RrnyOi5?@(Gc$wZ2q^~RB<6KKTXT_{-Xho1TlVu`_7=`5|D z6qc;!`yP0rMc`$)zu>S~&`+Jp&m4q976)QP##wM^>mpk#rCylo7}^!)3R{kLkOgmg zz-g5->hmsu9+2a@#ioD)@knh=fkgG49#!Ffv zd16PGOQf9$m+Uj}bvHGde%GFEn^Q`PPPUNQUD~WhSz@iOdQH2^Z0JfVW#Y!A^4vv+ zXm2xwyUdWo({e?q-rJ2Xo8`>!T7Aa~Axm7FBTsAh^<(c3tfx&&ipi4U8uVA=FZdpC zhyM}oz}DCbP@4H0)}?!6Zy3(Iq})nswLsl#CkvOY{?K@bXOLlRi2kKn^j4rMuY3H1 zTpU_YLeB(KH`lAe$AR6cntnIVt2rL~uFPf)9tZ;#p*EEWP;hGi=p*Nv!9_ z(#{E1a5nN7=3g_1pqlM8=Dj?*pb|)bB>fPZ_MC)I3J+3Ejc=ZMyE?@ z#gBmh8i%rhA9mv=Q%!iTQ^{vmErLrO-ROVMWni_+h)?wV14@N|Sn^~ws#XbX+%Ica zb@eFTe{C`>{dk7%DO*p^O-Z4BOS2@dk1Ji}w2FLMzl3^a&E+EwWdL7ZPyS^rg@Q|x z6W*vNGcs(WDwq57&_);9W1Sr=iFyxFV*_Y)s0_MY>wysys&VC*ZFJt69GqQtgytla z!jGy%nz`DX2Tb_~lO5MmL;JnZtiOX6KZ}I8@=no0Ckm44QgOn@U9fCM6ZSae3v(vQ z!&&@*Hb0K@r)?+bySMiE#ls&{Z4cAV=MgyB)Per&W(}bWA3&#g3Jm3yc+KZL+9g== z^nHKG9?d^^^R)^$idn?3etS*7OqSyx&X4BH;|^hp#!{$WH;lTeK7=iA&O+1ieRQLD z66QVirx)IyAb{?9u>Ii?Cn$9}`ojZHjq?H%&%L~kxkbfLFb z7PDg~i>TM{-6*!D66K$_c>R4#`g-tO{xGe^C3uq|d!S|pUuN$|SC0ee{%a6_D)o|- z_DEbw`z>^wnJN|sw2%a?|48x*d;WIXEN-g*fbCxPmQ4BYBRg#p4g7W_9J4PaH$VR& z0UF`>vMB~-R$FhYQ6^=C)<(WzBfq9ge2*{e z^2J%OGUN?=I?0wMtu&-IdfWL3t+V{*$SCe=ZNksl=SX?SV*a|T6`I=RXlmCP`f8d^ zrIXQLTu`XZ$BJ?^*g2Xm3UYHjb+rg*+a7}M^6p?{yNGK1sipG#M8%`?opfbnI}>1TVdsir0TAuqj^-!zR@i-13Q@tB`aE?hd~P zSEkJsoMOMA%FEtfXvn9yDtH~4rr6>Mf!^v6?eDMzt@TSlzI z4$m$0KRXM4W7R;4_Tjv3Tmo%Bq0CQ+_0-dZ^V&IyRHb_#I@2~p6z7LRkLp|4)vCgW zC!2B)-@cU_zT}bzwtl?WAe-Wym3-9i65992MGXG(m@j)!!$1Bhr57NER-HOPdz||T zb0VLx(SPExKG&5;4w=Cs`UyO={yKJ4_oinpROz}$?P476g^}MRkI`C{%9)}$J!G#( zkB?c1W&uHxgERr=yEwvsYi#J-GqbS5wJ(2C&?4}Km!Rd;0@T@9#D}+Bp+~;TiH8b| zDqk-u$GTzv@Tg}N4^FCtA{xrdSH(c^s-tw~`0Zr!@EM|7?+UzNHJR_pdIc-YrqSMQ z1L0%qUV1cn746mT$(7n(u`$ZaxtGOkzIv9llXt%*7{BQclWW3I-%9G+M{R^|-zPx$ zw9m4wrQsy$ujG*Tx(37U_)y2bb`nSBfy^!QlUVrq0T&+sMyyfb5ta*?(4mDsN*dDq zD7h)0JRu2_cjL+L1DR@O3Fuy5Ck#kzf^VPl1o9vrd}619L~_TM{Ti^p#9Ho^GMuE2 zd`iX(0r>E9G?*EGAibKMg=T$sw&mGcIHu5nXHxn><<8#Z=^=?}I>!yq*SBNy2Y(#; z_ak(Lr$CQx2C%|mJ>DX-i09w!F6UQOlc2v5Otsk+3pa*i#j$d-yCehVY|bU8&zIu! zm_i)%$qx0N_JAshU6%WxMa=Z&c>QOp*mg9H7>4bK@H?3-Tk^u)Y%;~{V_QjCZ8X&1 zpFr}X?XXvUIgYojAhvd$WJGEMYx*BW=N*sL`^IsStZb4QkxELLaqjDA2$i-iSD`6jw7HFrPr$v%WNm!srw!V^#+5p z<8~VwS3tU6WRvsDZlc9UFFLaSE%PtTnbh>&EZaO#!)qN)74knqpX*XN&a?@~CD9W6 z?`N?XF63?R)c>ZUmy4Lxwj4}(;mK+rnS+f}Dxkxv0?O*nVP1t2eWEmvxf;-dlalvg z_Ow+bKFt#K7wO`|lq>i*=pzL0zeJBF4AMLIr0`sm;Og4Dfz`H*1(|bc^o!k9P%+t# zn=LgU;pH&txaoj(ohlG<=MTml*ocEu@6u-VbyzlR&5e7|Mx6zRrCD<>?0;H|*lvcY zDU;xSO$`mdJOX64j>3cUI>`B+DR8N?oAMhT({Z-WDBq@wi=L~Jr`tc1JrV?duCs;A z(RJjF$z;?|QzS3mU!&`X?MUUynP{Rs6STZ{;;wJ{xM$m9qPC`)?5!&${$`0V>x8Ay zg)@Pc@ehfn`*Mh~E}~8nw%FX}#Px{=6N7W1MBeusU8t6ihq8OfgN2Di_RBx=%xok0 z_&=fOqcllMwsbX5Voti)In z9Yhj>)>H10z#x1aPj4l5Q<=X>K48{h(skGstT&{R+gU3><>CMnv2c0W4v(MA-zq!$<4Fy7w)`Lc zIQKM|;AWWMat&8e!HctA@F&(;lWU6|Y&Hewq4(|GRNpHU<_fzCUpqUxFti>e<{Kh7 z@+7p`4SG_t;l%y1khfz8mg#+?o?mTHy=XV8Y$>Ltw_czc83h~GXX5^q^PzIon^Ml9 zhFjxyp1vtozyCfH-zc$hvKO>pk`PaDKC1QN2 zL>c(Cd?tl<tQf4iqjl)kP3#n?1({lLQGt|Odm(if`Ic90v0tbpO1rHn0^bt_-b|7rjv*PcYYIQ>{@J29s|=9Y9Ml5A(dUSnvI-4 zhL;rlQeP*x@|PZ;p;=XHp!@z5AX{QU)@VP-9Qy^sY8Uz8^UAEmkU8WQ%CUtR?re&{ zLotl+hp71PBzt8F48%vG#Wra+^kp5*l9<3unB|EbZe|>crVxb=TXyEE%k;SHB-pn8 zKJhgh0~=+UxH~3W;ji%7|9W)|Z0?yz0#p8@?p>AG=6nVwbtF^I|H?4pSRz&gjb;rJ z58@`t+aw@OoUc;%M*n59By2_kl=)qN%$~83D<8}3x01x$?~2jd@C%IYd%$IEKZLzi z67*4xEUzhCxB4CK5SOopn7VW&wv<1|`~#L$OV*k5@>>YI995t>*_GH9_#+Bkhjn>Z zxjzS9!f(A(Am4l(Wo89JyacX^dMZhArz@8<}6FMH6J5@(YpaYV_?5saJnLYmriK6;rrU*3BLpSs7v-@K2d zHwH@K`?hb?MLwT=%hjWCE9ZiIUK)<<&jdZ2ccAKHg;N}^K*DD|X4Uly9PfQsV5U`J zoc3G@P(1+!DUG1|@;EvkDPZ(3hmq(v23RQM>r>>t(Q{M=SnAv){f(O-$)t;Hp0@?3 z?2AR4<38}Wr@gG6_F2Df&xU|DaejkJ83x|(AmY!bv09=pvD(cYZd}QN2xAq#QRf8w z&=6-=)@Q@xM~875mqT>=C{+AbX1CX=LCOg!xUYAK^(xrN%SZhpN}C&<8rK8l z-wL7o9Ky28?EfQCrTOR@`;9D{bB-t{?S@k`?LeW`0`Dy!1t-IwK+%cSaCh7pRK9OU zxch=Tb9@UaE;HmFp0j3~#Z$2NQ5>H7wu)>`>!Kz;y|n7@PVV)yVIBX5(HZbyxpALxG<^`G9P8JuA?o$;^k=e;o=o|#5fpU&)4F^ ztz(&ULWQYs_ipB_oiZ#;`b~~ion*a6y`s~C_rfucL2|BWBrD%=fvp?i5Bla2bbYQA zY5P{hjgdCN<@*l9*O_N%;qgTfs20t6)d^YrGewY?y__X{HO@B|`eJi!U~J?VcKw?( zh}{p-{>W>3MY0eMoULU-0;-5k(_~;4wUJ9!31IA-%cSnVU-s#5B1i^(AivHIku9ka z7;#U7ti4fd<7{Myjt=%P=YBGt6HCL^X*)^Y9(D4@OO;-?Phhq>1<+56dbkk9L~{3P zBo=Q9LDD}BGiMi>vbrJkz3Dq(GN!B zsMXj(@~8MX+5f45m>-^m!x`g<=FbQ^^1T9$)sYq)_R%QuZy{(G5&G0|2Us**MXo4OTeAtd-|W`jkyU?V<}6t(r%5GTNx|#So;b=b)?6mgdWg zkV=Vpcy$yj4{~i@&E(dsa90AN+}K@|~b@lxNnV2+lY?j&0HZ zN#piufO)tdUYGs}=P(D`!?&QPP_PQlTuasjFBG~YZ{W&KZC=XOjc<}1fMu5?*pFHM zwEV*swnXw2TKFx8n`|ysZuMt_&g#+M{G;F-^hln>NK}^gh ze(QsM*!U_B2Lvx*R^OCEPq&HLS? zuP_i|>vurOzYR7L4-2tJ%?qsRTfy_wN5)vKfDCq|puvWvM6_=seD@!L`Mbta*PFG} z;~7V9{n<>u9}PwRj2I-V&cfSav2>cb2Dv=z1?>+=v-xK+2%`dYF~4Adde`3JHssym zwiZuEB?$?#eakBP@qRnUMmUmzEB;{FA_^x*IZ(sYujEmF29f{J&Q!>Ikmad2h0T8m zyxA><(|0`Me9cyp@}JM?&qx2!PhuryR%g5+K ze1~j$(?P2iO0%?dQbv?{$jwKW<8T7^p>xV|MK$s${GR*>&X@B6XZ5yhs2;tC8Hnf7G~*WrJNV%Ib9wBu_8#Js zqKb>%_JOWfYnfA3HG)| z61YPrgq`o)MR0M&XL@Po6ihYC0uQ0rc%vr|TwVZ(*4*nHR1eGSM-J~-E)m<{wSiRzve^#>wJ>J{9v}(Pry>+PHVlL7iq|!&-=i%@B9FVmz6N{RC`JOzVWzPsE1wM9Vdj_E!K;jH7nK^OB~h ztBqTY@N=Cjl-^v;w3I}^nxa18Q_c?t8>gD|TuT@v*{S8Xs z-#1A27vwTMOV0q`sm#{u9N_P6tin@6rOb5OGJ3w~742&{#vTfc#vc1kn7zjcnoKPC z5|IyF_j7Aju?}#_gHCExuTL%*>EPH>36`Jk4Qsod1uoE8^xB^VqlRT!g+J=7R;CM+ zbGRIa`j_)BT{Yo_Q3&lOrFgX!VD6)6TBD$kl5d?suID1C=UBqu5@~R};+EmY|h11%#sFbQN5IysARFH+SNI(QJQ~W zP)Td9jv`AVc(O%F*c(?Wqf-2KcBo;!kg1X*az7NX`1DB}Hhl;8?k**HekPzE84me# zlezkeU~E$n@5D1H@vB=sT|D>?l#~bY?3Y)NQ659OMY5?prQ{MPjr}`< z1n9#s9e*U1+OVTF5J*bLCF-FdJAhE%n zoSWx^7jDcTS8l#%Hps}bddCwXHtYgbZw$t{Nffl-2Ek;nN{mz8RrcR+b#xmSA)G^m z?C$#05X2m#Pv@M+QD#lts#&)nZ|hBVr{Pj|#+G+vP0e<`PN5E--QLLl$vVnrb)APz z?zd4Q>^$GT?HPIU30R0?N*{3G^KxEoP=pzac7ZVF_b{?evhHvBc z6~mApy`Gmd92VR}l*Ck}0S3n7qc7L7$0>?TmlBeCHmB*k(k$vc(}>;KB=GyGDO}w- zOw8OJP&HNyL~iQvZ$=9|HP(Ss9X`SKp0~lzt7pN-pJ}x7L@W99t&Uy{k0E19lGrs_ z_eksYtN5gOC3@dgME^W#F#PqIt}GKFGirZx+e$j2?Vk;<8~cvv>Wmit$7<|Boj{w2 z>y(TbUd5Wc)`5XRKa4*)R&WX*pjvs6q_9kfD%H(kR=LQq0vQ69j{3#4+nU3OG+EO1 zIRU=%ibSM-44Q1#hEx0Uz%_rE+6b@RvaE;jUp@(Ssw7G;+8Cc(Hg3G{z*3xd_n3*or;;j7z`TBbJBeZIo2 zhI&%%@*2AC6_GE?Rp3;Ziol$?j}|^X6i-ip&;3WiMWTcOrLjoIxKRq{UK z1T=?QvTU&`Yd$`a^aqW^s1`APzDqRK{~U~-LU-eSb0hM_7WB@E4&X%Gpgms>L~9J- zSEd5Crwvo*;z;!G3xVH%Z(vc9987gn!(*K%INkg~f!lbSS?_!h*HmqTVQzpvU!G0( z7Vc&HY!#s|FM*5`m|wCti}BT^AEff+e16x#T(V(bD2-kx#_khlq&_n4SpLTlHy5h1 zZ%0cDe#uzU((lIp`)?Z@5_US&Mg|XYttD@Kk%!^8Xp^ zWkq&wlQ>n^P-VaG8%ICL{-N7w4_Reh=iLHH}QGM4x(TnDDI{UBl~X-lVZY=QJMLBQwe7mUIX; zoz3#0x2fWIDby>Bp%!;!*jEcO;q`?AVj1y^%lz*-p3ik7eIvJEMawqSRzE|okJv~` z&7VVS;b!m=a>I-6JtGU173h&11ME|H3}4qxgB?2yV9HYqT65cj|CcVp@PAFnMeXxK z?lqmryxM|OW!2bY>l`qC^Knqr&EyOUu4A`}If{B4^Bq#p>7Ym+*iY`J3$(*<#Q#n-?J5_i!xy^1(<&F=9{*tz zQ!^Lcwyb9j&5n?UKMrJ}jRuKFS610|y)fI71MlkNGgYoBp!QlxI5jtnyKi=tJZNu$ z1QkF0_X4>m_BTN$Kbh59bq(rG9?}U-y@ns?WkX-;)~bsHbJ5ZqF!o;i*|T>Kac(&xgXds-?o*<0OiP-NN?6 zZ^-dbKe!^SW~%GF+4XI1U^%53ueAHnfvf)PD-&0cS*^f6dNcudRcgT}<8V&PC<*u7 zypJo#G}6LG19EDyknwjJq8>&c!GGf_vQ1Wvf8Vg3j&sps15f7wTE@W_>qa{7@C=-9 zBhA!poeQr{ens2L?PR>lBGe3$VehS$=ATB4gjR16n-+y3G&V?~tkMZ+tMvn0Jz3WB z!3laoS(y)%N~4DRo4`;z7h~SG5jo{tJo-?QZTjuS4=id%=jFjTpeJA~cgE15!Q*Hh zeI2?=w{oFZ1~_N0OGs}da@zOau-*k>wgn@L*upQ_{O0TRIMeEgklSS0tHav(@0=(e z=o`!5+9kp|OAGUdrbGN2jRVA`=Pa8Sw~f{JY=Q?19BsX?ry?)^7L(#euwQCZ*o{O3CQsVyVPZ$ry=D(;6>qE`H~=RxS5Q4WE1+2s4Zd9Zh- zHftOF0oSxQps4IVx-#V-glc3^-{Ly*$MPyl&E`Plt_87WN3)Y6=kYOahjD0XE%4ex zY|iln^{e><4@a)SKP^stb&nl8xH*VzY&cErna}9GehOXeHjiCgCQWPSyaTI;mw4wF zNAP>7Y@q#CKU9gn8p02%c#_HtxuKShM6gjP<(4 z!miWQe{3T05z%26e)tR{$BBZ%rR~@krN~O`k}D6f{Q&kYyK(6ZPuS_9%%?rHW}B2K zByR%joOoRD*Cs$p_6~l@&}4RPKo-QEkAf4;%6Mi=Coyby;d_VOVEfuSY+0iT^;hR{ zkB=?`ud`D?Y3egfi*RTEnONhUCmm=y`Vc%BB}OJDNw8M~EE!$r8Sq#5P8?e8PCthq zVMc%0MM`Bpa=soa?B&=onDuTf{_*i(C*fh-?ERcZ3QXFko9EK0Fflv3pN=nq0`Pi7ui%i1T~s*@GP_rrWcN9ENgA}i6ISewq!IrH(MGO=Mu6Y;Sany zzNZ=Qz?i%>H8&t!D|c!d|2)xjvwXsBN{heR#+ftC5Apz^|EYASc0 zKJ~uBWy@C!_eLAOKWdiX0R2E}r=EjYZBZzld;-&Y-txDmzNCsj-q5YpE<`^r3A#r3 zK!#E=t$y~A?t1)+n`puh7b| zhPW>&0*q>g_kml<>Lu&3*T{*Oue#0bG#kc!!yn6 zRs)syuHjV{sq4%_s?N|FMI&JzQ{44nwmM?h7e-7TmHYs+p z%O^UP&wVCcK1OC28&wd^M$U2IgO&}j`4+d?*^WVI&ZJuj>cIpgvmCR*WYu-)W z-(3Qq5)(FSjyfDRyGKU+86xe)QDll!4BkGt2ii1W!J)Qu{J6}~Y%We?UBp+Dp!$t$ zT(c~=_1S=3t{%v3j0BU*3$aDCfY=|pNYiSYXphnh`fO-4q%M94qsuqZ!wq#X2a{p& zpg4N(lV*1tY@-tXCg8W`hLA;?1~CyQF!R=BM()K=reZUPxeXWSwytyJ%llK%x21tA z!uycibCoP|6~P9pR{HpW9xPFPOtJ%GA)@*YxfOH*Cyn%Gj;HBBzE(Ins48T6RTt7g z_a~sUC=FxgZ3o5ZE%c1?Ji7Ue4|cSyXS&jUkXZuKsZA-1RG9u`rnRmHyHEFt{*w}z zY%&rpj|Xx^3Ucg~)?@U?Vjoyh5`b9(>uUb!bCgkdN{;6iGqO)o5c$_+rQRpFdt)xx z9@}NDvQCNR`ZaJTpH5e-72fCmSo)_T5`ur;=P*Z~elombePj0yqEMlSj(vOhQHh1* zar7Bz-S0=7$9O}EzzrPVs)gK-B0T-H2|NOTWN(QEdFd2bCS3}r>Jstp&e7=IuWb7_ zU!1jAyOC@X{Aq2b@8P~_FlIlJ;xk|GWxM^9fR8n#7j=BN7w^Bo_>S59ZkT!Aa3J^zCt!uila(jIy=epNH+f&CE>1AdLKLPI z?xxQ>kKxOFdG=SsY1DMNNncua2tHAsjFFb$zg^Pg?-YcR@e#MlcMBT`d#4Nzxle@i zR36pq5qi$9`PO$^LU8m%;X7Vok1`)h;aNZdeVPA=ICJ^bf8-7%Cj^E`X*rRJOQu^B z4Z$eJp18g{3BErUgMU*4*`;MFWM6&Yap+u}EVqW-nUaSR-{uoCkzvl^3Urwi&0JM? z22c52*kxHyJpG#)wIxxIu;Vk`)OVfq#LuVdvo8`2wQw@EIEQY?w8PoOGT7$fLH@cQ z#(XPDdhfwWQaEQCE!~<@~Dd_y8cY|(-G1LD*>aSRCwl7?~zc`iJ;k#a$z z5IJuH^KVwXkkgz<|4gi<&7SG>z{CckqHciU+s82d{>kt}Y$u$#5=!0frIOy}wV?Ja z9v=NUT6XTHC(3M1qcv+k6Q9e=;90*E-+iKysx1FZ;nHlBgh$-A1A44TMH5^-e1Zfm z74kKm7vPVhIi~%!=gEW7wwD*5VV}7k!8qHqY;^W&(7Uu==!wYU8p#q8dZP}$iHft5 zA$!>65>vTxEeH8gr((&C$hS5_rBk7~wjIpBA7*FR{3J!?6|h{sne5rR1SG$I;%2zi zlzKBeS?itd;3B?^ncz1GTRp^3ufqy8e5as?z)M;DT$6*>AxC5^s_OQlO?)USRH|`bwPaD`;2NBKGL+o>%SkIeV0u(XGEOg~!0&<|+z^ohJ*x$blwURZ^7f{%zgH_W zXpqOMf74K|SsgxH*g>xjAA)7Wi{Q@iZ(7cNFHJ2Hg`48{AUISClX7>E4Hg@$BZO|% z?HiF$*=vBc$G%fAT*CQa=n z^79{I!MZ5!=ZjQO2%ALQh$y;9o#EWP;>gnR19;C~4OdmYWVDyLGRMWPkdN<1(+VMP znOXdjs_K3v%^A9U+=G;|w}NLvCvFA2-E0Zum%v{6{DMl1xj|c##XwDb2HrJzM<1wr z&@s_VY3@&dq9e8i{!7{mzBMs8`12E~xBCFN@-}sIY{ln0KCxBiRbZGf6-xTz*k^y{ zg4T^AkgGJvWmS3z`ND8IQ(*#YCQBi6S{6FY@!_*qjVH`67pi|a7!{O_Nk5aort3vO zalQhZd23vmc@Wm#FyyX(@ebXC_U1H-z(V3p~p$(qxdU=ic-*(Q?^E;11_$%-Bf2N@^aTwd*H6 z>W~AU{YH~VoAv{5a*NrY_YJqi|79`?&+(&fCs9qaU98?}Nf4Rji_&i2nf#FMZp^ z4e5lkQC~gFmbMqrx|fyU3zNw9B92$NtjfytE#WL~5f zarv}^KX7&tvtCS*6`lH(TJ~*&=+gU?yEYE$A|AnywbjJadn_$_n~jaP3}}0r8ak>d z^8=H=TBkj^ZSHQb0RcJ%AY33wrNsi=y;B`$O}2)Yx7P@6i@BVh`*C_lSq(A+zu>Dv zC7deE^2aXwjJ-ul;OEOheV87$FYcwuF%EdTbtcB=_#+8VhXBE=wXR_cp0l_}%S}>< z(`q5_>6c5Zdp4mG|CzsGG==RaDo}m?Jk{gYV6nw|I%7pPm2p{ue`^}y{mczm__0pl zghp^8K0Qo}iV}>zkMy#fH1G2H3IF}~r1;O4ZLmH5yG>u`JQCjjn>@LeM>E&o zCcABQxq$YEprRc`em>enJkGq}(hNp{zxYDjyhn__??~li7s$}dC1Y?wo-B8xx}5ad zOap}r5}2fWi#o5%-IQiXrIZym7f}VD3FzbanS1+kKKv~H!0c+iMpk|aqhgzs=)!&W zFZYX=eGwoFW8w>`T7!=?RuOHY(I)YC-rdX(IG}q%aAiKzS0x> zCUQ$I&OwcZ7l^@c6S8kt07$PJN%O~VrZR6H(bMay3F~y4P8jh59~T5uPs2ZCPJs=b z*6E1D1=Hc^^8qGxdIq^(IuSR}hs=SKd6;#HCBd6lf#+Q#{A{g8#%Wg2=GiCF>})GF z7o2EZ%o-^18Aa9CC)o^Ke2w2^RbY-}3iZ7#Nl$;=KwpaOhq0b_>7fh@ocptqzH1qz zvw~H4tu7b*5iti9MytZ(n>;dm_y_=t+h?>;g~Y?~LN(W^CBGlfScKIcqj~ z617XwV{S=aq5r`o*fcOiit8!0aMeq znC|g2q5)+i$e$_sm~k+s?4?UI=Q=FGb(x94nhSy4&g^5jRosoDt|eFS%mg)U>|lOv z9+MJWRkkLjm>L%C<2vq-B#p0@2=-B-dm}Z0e#@H3MPAGX*#~xHgJmN+YRw0q%bjFi z;W})rFCrH8#zZ_Zl&c8Xj2qOZmbIme!|%!cB*onv@7_&^)siNRnX?jZblJzXzY4>B zFJCjegH(CdpjBAhc!KOc{G3RoTH)!uR=BXGmzWGlk)1gkQGdfLGC|vn-KdsK+;*r_ zzop|~fzN1ayJ$T<(9nnB*++%@u?2a%@)k(@&cb853YcR13BxnQi2Uwbv`%&kv={V2 zxxNOBe-}uDSWViPdql_&_0m_$dwJ8&GtApH!Sq7hEwb;`2|B`J5|bJ#4oi1OGk#wt zqi*{X^wKk6#|(zi-qhIAR};U|9o9pfTAmz}rMR3ws8(dN`Mow>X{>|~{?4RTeGx=n zWFx(_Z$jC>^8O?%xdEMAqyuC9OGs(?tHD3H9Y7VhwgI@bCDmH!H%_u8HQ7Y>whh2 zap-oU9ASnRf@hMl$w%k~J{>&O^_b!6%@}>m+vfG)HSD>&f;10)5kA+*+_bN!_mo1b>Q?y;rBfHfQFpSCQ>5)oVEEeZnn!L)HJ$h z^T72qvu|V;F)ciX)i0Wut=$q(-s^#u7katBhkjCKeg|hhAdWWgW^sJRbE5si8vj%I zX*0EBEsY&J(52?Z>N!8uJJjr9FifGykBh( zzSC}&E$pu=`#fSLNX!3bCZ95(S1rtORmM*c$-i%NV&-z|^qY6NbrbK>pIhdUtz~xn z^3U6C^mC7w43$voLE^YBZ8>;zn!wrW&o*bK1d$+vW>j4)$*NO*EZwxs`uc&BB>8g> zS?GHT5;si5E7d#5{7i3RETV%B`;Fn{ft3)t-kXU3%jdQlk3h*$tFfZkhh!&B#FxKT z*eo*hBNKL&!unA+h+%O7h^Bodsw)?gT;V;}@vDV8r|l$cnJ#foOQnI+7o)~VW!PWI z(;?+cbO!&1lUygmWiF40O0JA<7c*jNTK183{k%>6op`3_Q8HNn`pX3SO5-`h6xzO{ zgi4AUk?Y&fl%4iC%Ix{jLLXW!B;D~<%yc6YqAoXVbILoO?EJKjx-J+;-gfD8o`)ZE zRYj$wT)vDJS=vxh7oLWhZQ??#H#5t!|B~P#TS6>u(dR>bGgAgHUy2wuf z2NsI+wb5FbDQ`wbyFW&S;R$4sP8}LLMA7KLe5PZLEMB~Lj)_*E08;`pc>!etN7hP;~+<(lHYg9l}{Hx zVWYUb5$uv|$@d3wFw31~6?jVoHA#|PA!N$-oxuH}?nLTZBGx-Qu{|A6VfXVMNQ&N9 zs-F2nV4dD3k0Lk-6`nTb}6_r$Ss}w61w1{obxhBl!^U3T-PeCti48-mIN3YvGgr(hI zxaC@P5cB5~Q5*b3mwW%k8@|(6S<`ydduU2@q~0)Bvr2_*lsXo%ePl)QF^HQc>N8J|bvI9Yc5 z#7eRSUVGS`P9;-@;(v4)W7@6>qz1A&uJAO9!r>ge7u%V5ecmE(^Iy=gZo_ znaxFXy5~ahusML9dIuo1ehS?`evjZ^&xhpW;do4P6hFyO0S;Id<0b_i)PWlEtNa~Y z4-P<;Yc5cknNFjv<>A=tJf?C=G3a?kQ{PQj$c|}S!Jsw|P5x{oIp35q&U-psGMhl& zhpXWDm=kpKm})A)WP?<-I*JcWhsU$$K#6T5_rOUJn*)~8m>K}B-UxbVy*A8Ux&^i8 zSc1r8Uzk4Q6HN_l!+aqxUFp$HoWs=lD{mahR*xRI^=T^3-aAZPM_t9SCogmV4(x#! z^MaxKwK{*$E)MdJDS-NzFz`4N#w%1d!jsn9^n2<-UcPA!ehC-$vcJvon*Dg{wC6FJ z?k~eR{4?wGOA#V32jj))ZrFe2HgT&kr;>Zzn5s_O^3i2_?7PzA!kKIa8~L9M*=<*Z zvDx*d!Jj4B*keKL2eWW~vQ-0q50ZhJd~5i8L!9k!Tt}qxq}azFqJ$5LqF@h956syc?I{efdvRdxIxP><>n5wNg^`;yHcz_o2{D$*0HLvS_SlE86BM z)9fS3Q04u~+EM5#?zKCOPX=U&L}C+i#|Pomh8y5{Pv~Pa8nkyE3wJvfVd+&39NH5B z=BEw_9DrHSEhfo)8j%a8+rqJHQ41c7Y+^cgD?y>AB-`ozgw&@##fnhgI`X3rx9LPK zxX8zYTk$CNOnm{4$W#WCU8Kt=#IlH8!HJq+y)B58T}Lg+3i~4&QoZ zTerT75Li}e_%6Pm`cLZz>&qALyZ={W`hjCkhy8$p&YN_JPChA8yhXS8y|mFbiouUd z@8MuXnBbk9Oh?!4A<0!4IB-)0Ui|*VOpLvOK@NLpPl5xkIx!!{PdpF3mF;9@@M1bi z@aKq^zCZ^!Y~xa-4tr~#;;Ifpaqe|XPuhF_*;X!xK+>uuGdST+CziSnVbwaXGFutAQp11_4tQ}8p-Pso0*#-`v5M8 z@u%)AWph(E;MJx6P*SMQU;CDTkClvA5uwLz)}zQ*-G2`m7Yo4g$TfJqC;>SsmhW6Q z!d71MGu_?kkJn-cQFl@+!`=VEBp#W?nsgjy17x=I)v6aDuG^BIrEweYG)<@9k9#qO zO%vFSCeyL!i5<)C8wWbh>)`LwI?^~G&N^OQLycxQAA9B)oksU# z?x#dL*HF+fwk1Pg@G)?Rt$-?l#WY<^t?Y4S3?^q`Sz-JrS}1l6KXS|H*n~1TdvGfh zaj^_98AjD2o|j#X^2a&$2xDAb;ckr)+-Ww2Pjix?me!%wpB$VtJC)|APltg9QTB_v zEU3gFSezs%=n21E3!M8VAe;d+8_a{^S^V(Ts=NdH(_Vnrqg%IdtsTWAN#^nkzH-~ z1Rr-P;`41$e3dX;JpS)8yDmJQ%{{EdxBaunpcx7L$~(ZW8q><3oqH1_uSc>wA3kEA zY1NjkXkA0R+5@PmyA5969LQ_n4ER|cz{-x*q3N&pVDo>+nC^#;=&ex$TYBwzHT|== zO?wCHJTII*e!Gylpb(1>Z>7^~F5j%HuQj8Ah6b@}Y=X73FJr*PYfOHvI^H-fPRC@Y zfd9J(D7NY`BVY0!&fWM0_sCt+-y??hLl+=b9m>poeX)jhMdQWY@K;#_Uu)^XsDuAd zO)nc|f=%JeHd~xs{~MMkRdd~1EL1&AfZN)VIN!;fzJB+D@g{2F^~xG$9kOdA6MxtDRuBSEMj&9&RQ-9t&LKwh|I~dIeN2KTI0lSV6=! z1+x2|4fWl935$1n;54NY@R^#8;{&GSc#}HD`j-lQtzb{hXKuvy_1VnX^(uH*S&SOC z>#_gk{(<&nfHTupVDvfze*N8ae4D4w+6@xCUiO-Jr+8!O?ps91Ukz=u-QdF_Uz+(( z0+;(l;M_Y`+1m!+S$<(F)Ce8A8*&Z&HGP49opqZvoiK;j|23UW*}scly<;1Hr#6t6 z)|w6Xvc&n3DdF(><6%D8b&0KW&TQPOFkj^Zq$5}4_SJ5BR@;~ zCD^2C@pBaq!(f`mE;a!ctQbL-E>}l=6Hi{v^9yyHIGr8e*nl%QGq9dA z2DjS_IsEI7$p?ogSmBoiHZnTwL1E`(6PQfOOcl{qdKs-AfkbxYNBZPS0p78eWydtX z63&Vh@c8mNdZd30KQ#4~&8-ClV#YLqqJug-c-98#PS#NUn=<#``+}^`D)M`~EZ3>O z8O47*fPI%-sHOH5xUA=lQ@@_Ww#$2I+EWWih%AB9uNSGW*EZq(X%igFSIDl>XSmO% zN5D4Rpsd}^702d&A!k>{)3%%qP$ICPH55-F_1D82#?!%|v!2|Dzk-(yUFdF=L0Ihh zmdJW1VxP2{^@yN7;B6^`qr@ZVlEQQxu)aawnU-?1ZN5rY%j6VxJBsWS5)3) zBm|}2f%1%unb^Dh*YK97Xw^TvZ{zZUgRHlT4~@mNdGaG#bf zu{PJNLD7F=G*&p5NjqMo4dLN%Ymyg;4laR!!Guq_BLc@neiKaHi0-B!M@(3 z3V(BL*?FrB_}@p)@Ov{K;N9XN+_LX4Zp!Y&`~P|H-sM$nOZRK)P~*sZCoSi5HP>+e zW9ZDIsqCUSj3P;fM52;PQG`_Fo_($%l|~w<(D0>EQJPdLLo$TSQv(tjM2W;b`yh%Y zDM~7(lA%QNK;?V?vzE22YjNLu&fdS@^Vs+Z9{H{Ul&{Mrvz!DEdPEtljt{_t!nxi? za2DV7i>9*-;>f!1*C6NT4f62PKJwhsfVXFEH1U;&~t4KM$j1F{;mxMR9H z<}b@4&jW%=K36nJqGSFsztvX>^oHP&w;i~-aTk`PerG;Av*4*XkGymr3Qr?{LU-bK zLX{`uF^QL`^QWxjQ}Hr3E3udvz3ESqi^Eup{7pQ85Ag7=Kn!h9#*g;y5Vs|HAJo^CuZGDEv#RK^8$+Kut!71TfZNy!Nm++jFK>k7AmEUi43<8s^+g?B(7y*8cYPphuQy=gB~y47zJtltdSJ=Rc)CbN z74{Sl1<{2!Z1kmfOey;?o9y^m1bIi8sZW0zY-&X(XGMVatnu_xE0S?S#((aJB(UAF zPvZM>F#T^H$FHXSMZaxTu%iAr(<=^SrUTo+)$AO6{;z_?R9n(!R|nWsR1Gm7=7F`< zdNQ{C1=)OP8Jun`gf_(}TwG*JS`y+g{CuP6^P|(ue(rzJa;X~17aYRmA@1~L!FH&v zt_D5JLef-fi%ZU&5S5-;OJ<$g2ksM(;&NF}7`fRDqo3xn)sEHd)BRHqJV?9q9Y66NjH{Rh21ixk*onb#d);W%wx0~^j;mvFv%E-C`z7TN7p{| z3-4*K6zR6)K>4P3B7L=^qW(V;;7qnTBsNJy(H2eE&=|~4{Jx4?G@B)|8e?&Ub$_~B zvjDfN$Osd58FU=6iNtCu(-})vV(0_|%x!s2S`%9>KZZXhg+GGH_!c$Gi>qz;Xf-W1 zVyZOeZ@ma7MaH1^w*cLjt-(uczTwu)7qEC{3Yzr%V8ayNf#$ydSg*`r8lr!O>NQQE zzeaoG*w>$kOU486+wh2KemaNk701bFor$H766)C%A_s;mUHRe%i4Z;XGHuyv#QAw; zDkq#2lAYwJ(x=C`exw%fay$Yzs|4Uecq0F9_2`Wj4C;D`T-glxsoTVj$_5y{V3YfgtJOwVA_f*cs70{ znIbUt*1aD>x4Ica;%nh=IQ+XL>ETFtXY~N>n=avDlW;uT+y-G@nRt;5;ywi_Bxv0< z>Qu1`Y?76*v*8Vvs3lODD}ZAK?&H*hDX5b3l4#jdOfxoP=UT-$>rx!m_|k}aGgff* z4?kdYs}V#r1%q;fG*|7Jht{`r#F-_=eBf?3nAm%dWqdnLZhj5{gMT{I{Q5i$u#SW1 z^jE0qKNU}DCer2?5%jS0GTt3m$K=cv=+?UqFmUZt*4A;9i0`-J@;mWxwx<^liyy<5 zjyNHEkP9h0zrfc&S7Gv0gcMC}Ok6vY?+Cw6rUu-?{V%@5K^wt=zW+WOGG!%icXFds zl?7IJX$MT)B!*R;-#{VU2hO+pqua>-G=WG7{OVS8-?R>^&;3E!rB|UwGX=9N{b1^d z2<{M|OJ@lTlSipXVXoXWIOC{E&%9TrmcksZ$bA<*9%cp^_LMmu%3|xUK7kwlb+Ah} z7Jn@XhYgcY@%){FmvML+el0KnKlcJKt6xD^uDK-S0n;#f`WdME5df=%u6)?{+n64A z8s-@aZico1+*Wf0O!tTL7gNXLs*la=$kcG?_&Jsuy8IR0F&qjJ(MjxBYQEt0)56ih z9xt5Fl{DylBdHJefOE7Vc^y6nbu;X_?O%6%9;hN&p!Hj_WQaV?5g0Q`v)s}8QX84P zu@3jjA7z6UFJbN4OUdf}9waGYJB!J7gQ5>&Xo;E3-N&B7h3@^J;ZZZQkhh0ewFktu zHw5_;Ja6X{ToMvXD<|KDvtH+*d1)8djV26p z_rmjfHObOX+04Le5S={iJ4>-K2d*X~zOv2_GGhCe2G}c5-y|9FAGckk;eaKIEwY6C z%3m&@eGZl>{6sg|zp!D;HGJKjL+_nEz@(>E!7_)J^o;Xv+?OSVey+jPaa%lz;}-O} zCMQ~%4z#P`1J}MifX?tb1e2u4K*X2i`eAUEDj6Ikl69AI=bE znHa%p$ukg1<`cKOt#Hrz8@_sw1rD;$(d?58{2Va^{kmo0{_-|lxJQ#N{wzlq+ug<; zYvQ5ID*)R64gmAj*+j)V9eaCrK&h4k-uXBYS4C-XD=#tpjt>>R8FHEVY3{*8XvwbdHl=+(xqE5r%&K>zrFzS1Dwfe2TLrA zh$lM>6H&h71Pgb)LUNzW;=aaC(aMlScv&z8Un$>#RY6JYl+fu^{5=(4oXlc+FOp$G zmx%dys>5_yU-H$^jL-ipi=L;iz`c+J$bEEy%u}2X0Vxttdz}WXTSua(a~i&i9*azu zF2WnL?VxkG2ugSThmPB`0Pk3E*EQFe>Nz9$>n6~Y~jlh|ixiWd#~V6^#uSQBwl#D4X_`=&PT!>ws~ zc)R4w6J7Q&y#jt7=!8i&?rin$?Q~P9mc(5gK_(0_=0Q!HaBLhxb&4W!Pl;sdr{;rO z%xyk)%3>0-mrU? zM+FCN7PQ_dM>4nH>$U6h@0JHG=uv%llC%4b6VP!mV= zmxcrR1~@`@5@_jez)9glOP6^RFdq*+KBdJ9)tM^{+WZe*8s)N;LGsMdc?AS$i+I$~ z>6H5eOjOau)mE;2>irFL{L=mS$9Hn+_n*sg&;A6y!)G=xalazCg@R$wg&$D5QJ>$M zWiNEEL+H^&50q69^Dd=@@YpYjCN~FyaZ3Qg_6X|HlnilpyV<5hG5TI9A-Vs2L1p_Q zIcc0Vs6Y;Eh z3f`=80P|0dn9wnndXyf5a*at~KWv<2tE&c=XjYS}hm4@%LoPgDz7^jHjw-{W`{13L z4cj8F#lbsNc&WEUq}i1M$FKf@){BWmC1Etyt(351Ee_n;EfTbAoWRy|DQx()A3KI? zK(X^PHcOcKJ}_0s<*O6%+SVkpCTa;R3G|_}{`f;>zzU|!?_mD{`M58~gx&J<19c$- z{d&WFEHG4sAvpsj`LAY4N=jDZAzwm%_5Bc8Yb#33h0mh8eipb%ON}gDC(MWg``D&| zxvbpbIN9482Ysgnj{Mg3@bPWD!0e16RV9(EIX0a+*!jUi#|YNHAc%yXQNlh&;d~SO zgH?XZ!ql=@)=%y^`8W6jd}%$#`W~o5JFCI^=S@WR)dq_vVN1xo7OOA)rtpp#!&vG8AY#r}?4c+9Dd@LxYa!84P@Mr1TXbNT@xb5)11LV@l) zJ{gWr4TRl$57W54E3hhR3Vohxh!1>{*$CS`q~PQ&Opv;X4^|634!I)y`*982Ro>3q zyCf{pPw+;RPA6^7=kR;YTcNkLf{nT946*wwEmaQLfy2#c96HR3+<0{WN7!cK?;$h6 z#WoOX;x^)h<6TV8>p1aH?3T1Yqu5(HO;q~0v}8@-OBR&)g!IIof}766S!UB~HsVks z-U=~5uXZbFJmC&OS%S0UZXHwBGlVA7C{cPImvpM#C%fnMkk)v0(oe`F%U~1iY6pyI zIEeMPgK%z4H#1USSo~w=5xCdU4|y!3fz{K`5p~~}Z2i~sxOdt=@LD?-RB+>v8e;$3i7#6oikGi#p?bQf@k2jl%(?pml3#9So;l?b zrvD6*C+VT8{AO(0W`=3U?-8A|;kc>h9NAtdc&^OuF^gYa?9E9fVXwTNl?6*d^xzv9 zG@^^09x@i+cvmyC)M!|EJCn6|A7m-!j?C=)C`|LsB4Igs66fNlqERy%*}^53IP9=L zsrH%${^M#arDDTzc7-i^&R8qT8$JQv^AK`<(Nc8&UdTq(D}iyLHd^d*!f9IsM{C(t z=AtLE^!Du~MLSMGe&Gwroe}5R*3vq5B0C#(Q%{f|>MAh!n+$dm4O~~tSVe;tzO;?P z?_&jSlR^sm=H4#}Hg9Ij&k4*4zEol%rtGr6;GdN~jFndgiej4FgdBi8zFKR73x*sa z_Ww;|KP`V^d*EX-cwYis(v||rHCdcLI*!C2xIq@Zxks)%|H!I~&!fhjkx&(W8TNfP z5Se8Qcf4Wa!RGNJXv=KC5r4OmRi_`o{FQNJsJ*~Hw-%FP-Y-z3{e=Uw;>Dyl-BdHA_ zE80S4^);eLMg??xB(eQ0kVso;^48ux_%HV#9G+lH@~>_s6^T0}C+*F!H$(wvtW>4_ zHZ_3ufJ(AzlPPR^U%}6(Yx9t>q4b#QDdw9ugg)@B!@4)YFiqt+AK7!%Qe{8~nX*fZ zCjCqxrpEQ;Q}-*_hR!TOehN*!+sC~7E}(^PE?YM>5iQc*v#awOal?8Oh_!A-t%18> z;Hv=0?o}oVe`Vq8oGNm#B#m7Db`zZ(&NIo63#??UuBd+JYIJ>N1u;o+%zOK9bkEI! zqr4f~pLF4+E0>w?h%CX+1t9z27;%1-3qEE8_^jRiiAUFZsI15%HW`D+mGYVRYIrF- zw|_8|U6_Ow83!aad*t}SjCA(7JP0-8n@MACpJ;eM2z+0C3B9Xa$T~+YEU6bu1_{re z-fW?tzG4`5dP)iBFE>yUW;;7Kyg=vOQ}N@uN$A7cBz_@JiT-Y15NSoAuKadM^=5{p zbq6FqTpOIcw9r;=6*idu1Errja5Bn{N#ax4W^XIFQ#YK&taiaJbwIzoJXk(i8dVNS zF}?C%g4a(4SB}UgL%RLp^}xCK$EyM6R4TyL&aaG=WJ>P27D3LjX{`VG1$>u_J04RC zhYN*Qv9a?wgwCOS=G!V3(HoET?>CYMfxg)Cx(P&kf-UF2o{V|@r;{*y4=S^-mL*N= zAbr+@`Q^P4FjQKO|L1-KzW)i}oh~8FTGf_6c_g6xBUE|w%XzT3;UgI!JDzG3Z)O3V zff!?{gc@rV=|1BgR6bVAOL;x?oCskD{wnb9%@@)4<_TUu#)enb+@tma7kWvo3)Nex zNsW)YiLd?=x=`~){I2X`RH3U_&-xNpXSI}Qr`Yi;mG->7zo|$sDTHUtN#dtJ`mjC0 zM_6Nsk?8e>i9$~)lR7V$ifmVQNkZXM^31f9?W#+M#JD8r8yNs;`HVe}`^bU~rFcri zWjyw%Qv~ZeMeC=x3LTyPG)rBK6J!-}b;b=~lfop??iXSG?;{X4su>!-wh4i;<*>DA z3+qZT<~H>Wq6>S2h~M=9qPn+B^29&^l9aNTiCH7*c$Q3JevhDSW`UsCc7&CvY=oae zkHG1K3EaC=UNZ7m9%^lDvz+fXnOxC)LJD<l*BE$b`BcNO8>e3B8@ zuj}S#%l!C}LJPV`*N}G}v_Q7+16{Urp}6gw91MSH&!^g{V|&6>rYks2u5JEO^5Cv6 zcMUCJ4~Ylc`RYDbo}|UAepr#D6ggONW&+v_?a68|f6EafNtww*CzQbIoGnCKLmw9H5biW-+F+k!MyqPm zp(8k*)isR~Z8{)BlRqS}(#Cu^)X>R#k9&&T)OM1>O}9}+(+<2=`V!;8Q^-YO=D(v; zABX&&1$>Vw-70t)3e+@s*OfLB|Mf3BTonO9<(7CeA`tx+mXeW$D@fOKP>*t#i#tubt6er_R<$9LlI z#J^arXn<1^l*pBngnZX2m5_h6mgU2i!O4r!3^s>gd)IMRlpllr=dNZC|2=|rjmP-c zs4{Ns+N7k1{r3N`3m+kZpiN zss;!v*hqX}-j7>8*5T!Y_HkP)^U{~Du@E=rHE0*u;UPAkk6v9(w*{P`BZ&z;E;+*` z3mw3^xq!GU^um^vT69LB1lL9?V8_OCR`TvVpW++{AM5suc0Nd9(5l6m*G=#hcxGoE2P7D2*vYY*c4&pR0^l&31275qR;p(?u)bbPNup?NMUj=KZ-Q|e&;lTuQ0)(e*1{LcP9oC(u5?S&gV$MJz1 z{}cUQG=!bKGz`a-rZaP)gKFhUP{~k--bi^UNlZ$@6N%wy_v#_LBPxKIBNRw%?q+r% zYY8Yf6`?rDlKprtxZIR$NmI2Zgf1V(cJ2+sm?g(?VDRe_`62Z&N*WM0n5)yvNreN&X^Fqm$?qrekxK& z86`4BZW~WK9ch_qm`eWChk@B~Ck(VU!J})Uuzf`sUd}P(Ss#%%IQ)X{Y5hbUV~^pX zCwBbC$!pXpTSol-;#BrvSqOjG^NQ>;l7_0S8gMLO8vS)ZgL|gAk^d%yqFb>mA7|rF zrg~mys-GA!XaJbG||EfaP=vZ^bI?)JUxv+;a%=|2W5M@yl?jY7O_X-^CO#)&Kn zzF5lIN#U4BCiv^65B`Q?2=x}a=L1KPu~+qBY1w%GNja5uHz$j-^3~|D#U&Vh?>xrs zG@wHkQpX_1+>O4=P7@e33(>ExfiBAZ2q&jUaIx+);vjUD zR+v)phM}D}eU2(+=S3)2oyM04JzyR@gDC$@p!S`F4*shF2C6dDSJ#thA3G0ouMdN> zD~mCya}K|=)JQN#{lY6MU!h$lOf>D*eG+%Z7}~wQgZs59T=B&)jhpvb$k;;sKV>p!?U6k9oD}nIm4}_{LRh+4EIM2s0uT4BgOQiyA^+|) zFxmc=$Pd~iJR?@2_U&6_&kbkX+BgI&9xr4c#(%}1JKb=hIF)?=RnNM$9^wXSqs5f$V09x*5soVHTaoNgSlDn z2F~Lg=_iXubhW$$8DtFKx@$f8RkW3_x+u%OSGi(#`XWr4dlw)6)}S&>2gmn*K~LQe z0-7lU^Hz4Txmg}`)LdP1>uwr2#`{A_mI9s8IHhzq-@%W*TSnXZ&ViIxB@P(=hMMkD z<=y9X=xnDtNb88kq&UG}n@q@^gW51q$Vp}gonoY);00f1+5lohbp$pUm1PCgzbrz}<51((zV#8vg z7j*U-k-NJc@4udgdNRQfwb>7I58WneB}#l->|VJ0%9li#63BX`LC&w@FmUBP(YJ!* zF!qQxE0X;zsl2$HNkW9)r(-4#*|eDO^0_GT{cf4PaXOjgaS`6!-3k}{DurjStE9U8 z3VAo*lWf0`%?9p$D*B^34?^5r*?!+}e7sE`{aZ$G)fu^XAb%AsOTKNH-SUTA@H1!K z;nU&N(?86lbvVmY7!8R#7PIM+mt=xlEorkKfYvHg*x;MS_;Rrg|J!jL@49E8!C}ED zqkmO$ahMc$TYDP1cCW#t6R!oY;Q}JwGMTN6G=R`aC8X_BItd9oLkjMgqy3Ew@Mdle zeztp!TMfsdw~+!aSzL;0ZT&NQ=fR`_gBF)aL(Q}^Q z34NnORa*+NiB)3dwHqcUl+BPiGcT z&sF!J@7@vm$U~7Xad<6sKgRMY4v!!=%arFY4-;nWm#D(RBr@lO4SU?JK-+@P0~vaY zkGX0{^@^s$g#Z=WGT$Gco*h9;Rt}`=_w_+gPYU@a8^z9fJb}#yb}(zyH8}b@nO#@z z6iM$hpzZ&~;dHOTmROaIs~&`4@^3|S5(hxP+kNc%kPl?eIDrKvS0k~{7!21(-DQa- zYVdEt0XSHs4N6N(OM*PrQT z)$(YVu%m*Ei;xn0T#s1v&I%@ba0zZMO(vC!O>FiX0~q&B7Z11R&3L=`jAVF5p2Sl5 zEuPbi!Hazd;FDWm$#~TTtZln2ey)3C`7-f5Y15_XAH-SW`yKc?@j3B79z$v~Ldg@+ z9j0SY$5sanLzfTdF@QU3|R_#bM@67~tja*E;^@3GQw`VzZQ~C6l^<+<`I!~MOmsqpc_~0z% z8MX5n}BodS=ir-^ug z3{N>OLq`vt4a=vwV*g>kMa6Q}?2@Uq;FtQu4rh(PJ%1W-{nZ3)JS#&F9w;PsF1C*HHeLPoPsZfIbo!71eV9xh;A!aL5`L_n(U&aDQ^jp6_??cd>NYk zr3q|)U&aZ~$GctNI!F;0T|U4T zdA%jMO(%Jc)^)yMQiqK@>9}HbFjppfZBa=52Nrq27!25MM(t{@!VS98B z-PE%mm1+v0??nY2^fD1r(+x}C+UHPuF9sSj=8>9P2>TXY6bk60Xy0mS-mq&jZ}T~c z4u)@_=8+fmeC7?#zX#H|WPf^p;Yy6x+QV=0qqIcrEa~boWp4VGLhtUGsATqIayO|Q ze{TAO(NW`JJ0Q27A*#kkKX!B}a90Pt@^JTm+xd>sO}OxgA2ryulv%#`$8_&crI!u# z0AI=SSh9qh}OjQ2M_cd{|WuNM}T{rM`Wn zSLFd2uq_HlZX;AZ-Vb*llIIV@!t{3)Tr=xKG+j`-F@i54mM8i4*RpPRE7E1{o%2TP(^B5op+Rse!kkSnaoDF05 z9uT-vvz@Hjl12i5ykL72OmIzV3%OMq4xSO=&@7k7d~aBj1v7e3$7>{+EBl2xP3O#R z$2xj=|3{HptrU*ib`6>p_k&*Q9cDY`F`B$e2G@r7WJqEW$vt3Fvb-;w^n9Ge!_Qk0 zx~vd;M@i$H9{x{8v&xg)7V%qTb%Anf2be&mYB$CGuthSGhGZuF;Q3d%`M!8(T~ z7`I%BE39z9n9cFv($SB*yip;$>aFRVQ~r>UK9ctNoAQ883L9ngc<84N7;3VRYc!`) zt@9&!=*lY)H{ljNxu^tAe-y*ecX9k^ye?Y&I);w7V%XrOEUx{o518a2X3nh)`4uYh1kif`}LeV?nEPQ1Pn?ElI+FRSngQm$; zb^H)Idf!8dU&%%uF*6dCr250QA19b?{auV3y+ZPQpEmv;DbMt0n&8->*I41h(Iw$C zg5Y!Z5x5X)44H|qiBo!R~b^sx}FIVxwe;IV?pLY$p+j6oe(5N9r7imsgx&Mt4uJembtWd|s>N{KIQY%C8KhL0>Mi?u8REDrO)wO^b#; z-wKK2jG?%|?;<)VWRhW1W!d`8&tO8$88RY6j!WKf!7F4(t~ooxJZnX|&e}-Scqtdx z?fnFgL+qhn_G2OlD$)J1@XS1#gUwgRGV=qCaA%&tP}pe4m-gGr!)t#MkMhyfFs_jP zt?$CW86lQ^fgGZC8^MzosbqHN3|Ki-Q*u1_@{H+KT2S7*8R&?A#D308?AcStpE=J& z)o0@cMy0B_v27@~4-6(%Eh$tg;VZt(Ia{(+q;liN2J6 zkGsAe6Lo$l|=I&o52^$iG%Uv=gGiz0- zS@bo$tq{TQ&pJt7Z+k6LaBT(k)Z3)toHlJ9?#er6HnRFLVW91mf*u#9Nvvn2%}ANHE`A0&d4- zLA1<+H*Y;9(LdqG_Duf<7U>4m`Kc|}Yj{h<9@%JLvyvX{|A6V{STU^Lz*nm^!12Zb z)J10lyxz91q(&u|owS`y8aIfzc5?-OooWbaW26PIZY;C zkE*tFK<>;}jJ^Fnrl#k*$q%N%HbRnEF;=7yj^rW*KwXzAX!r){kcUgieUb`0LF7!ZV>i z;|#LHH}K7_bNR4IH<>tdKITo!q>b-(*O#rN_QY%0X>b7}gBOyP zZTes`VKHXa1%v*fV`y+JjSr*Fyx~-T?iE=>9sj*xgGcJ#NE16p*`yu0~gq1R%LcvM4;}WwNRfa$QzK8Vh8{o*O z7P4ih1;3g)mntu6!!t=M;Hc$R=>6ad^(RuXH1RXqTCOCQtwJpSmW@G|+zOHsS54MV zjfc5CC)md~1+1WpfFo6+>$@Uw`eZ|FY={#jPEn%?F`HO`2Y|~ z0H|RegWW14VY|LBsJA6x{IhE$P{|f_{sprXs}rF9Um)J8*~eruT_H87k)-%HK>7D* z;yLp+Y@c-xJ>B&%bwm~E96tpDUm9_}{q(v8yUI**b_#yH$)ngQjxT;;q=edl&Q< zEoReh6fr(o27aEa5j7lNigL^iq*mxt!}|VIdx^l8y_W-Ny+!0wg)u$WDZ-dJN_=Xs zg6P3gS=t%w34MEBv2}J=P%~f!N~ipV)2nT!aDZODUbaJy5n6Be8zSKzQ=zJ`}?-^S3aL-!!bMBGly9;}n)*e6fy)BRJ zhGmw!#}~7gLWa~}ej;0%p$IwBRqXZkzbxruElEqCPtK;S$Jx`ISiRIB((%=vxE@j| z4(#^8Ut`N8Dp?btqD%veq|dV(_H%Gveut}5Y50a7D(ga&aqEt%_ z^K|<|&i}b5`m)4}w04<5=)NhKw=9JfCr!oVPg;=N9Lfw+<#FcQXbF*TW40Mj*yFY9 z$bp0-xc~fGu=%nE>XTLIg!g77iwzaBO5q@`?_{_C%HikxYoT=Ab++UmmC)-NaOKQA zT=R7d?oaO$tw?A>>BEljwOg23h1Sy+QYg8vJ_&2$cSy>Q)QX;sAAse)k>r?+B_>tK zz>142;D~geXvAVO>?+*PoN}#jm-HG^{#gww>!Rr8c`8QEWy_>g&wK1q8CS3pk>fQ;@Omgsa)_C$4`OEJwSV$s_=tj z9Hzeh1S04D{L`suiRkt(OAAeHzG!(jT3^V6R=KA{!)_q^v!Nf~bGnw?_dbfV7u$g9 za#@i19fL~CHE^kr?{&D*CZaagr0OljeAt3^*IR_y+;BEJF@@}x8HG0I&g1&tCFE&r z0Y2C{h<&|NLmpl`jAvA`nQdH%`C|)rwZYYyU29W4sxZy7(8!9VM_4_;{E;&nIHTeER6lh8RHnV+%%DHXA1beL5=72 zEru9VV>quHDKPw8Vf^QxY>$VbNTu2ZQa72Q_Dvt6GWh0`A{|@}=_=onx9q zvRh@iXQ>sxJtj}2_*aqlE+0nGa)qes(O*=vDut0L*NMv+ZSvQt0_<8utoQUhEI+jz z&IIhE<++NarbqCYj2E2b%Y#9|Zz-?ysiMVgM)2W4E5f?#@Gj;i{P9v|zpfOB*Dfu`^ zNr30?3FRq1#_-?7xjd&$5qRH!wBF?%9n-_ef?GrAmRJcnlynbYg>GiAi~UelEgTIr z2VvyV8KAXv5WjuU68DDPAX?t5uvPji8#Z<{{nmdU_~=Z6`uNW*r}!Z`Z?Yes)kNYl z8y9kTu`U*CXS3VUp=3{rJ_#}T$Xu1LL+AJu+#`8q`Jb~by!|l{+8%5LpIwQ>?@cgl zIT(l4FQr()j$yFgB$Z{n^TW-f7fEgzDAS|6J@MLk}z&xf5qyh0pxYI&`OsI?jYrC;9qhdK; zIXa9__cx{YFHXhmV}k$B%u19$(S^$J!KiE-MAjU<1KX!XV_^LWc)Il@j=|~B_ArHA z>x`s3ouo0wYaMsru@N8abt5|CHuIZ3#_)HJ3++F$fyu8I?jM(QNIUwYZmcGlUl@q! zAb4!mezV;9e`ul0JT~3RpAW5`z~{yUftO4eZ}~Krh6*_`hr9sdnN$Sv!u_=1dJ;~2 zB>Z2>OYr$55A0rlkXWzjCw8;{#wKl5;}WeCJU?+dm=+cDXOEs!m3Q?p>4!Nr^7{f$ z7e>&}+sE)-$?3vuYYDF$v=0Ur^^uu_BWP;)LX1p_<^K&`hVkF^#P1iq=0<^^L>m@_ z@R{k2;_0N7S2jzFUDZ=14^(u;|Gk`BIzz1l_s2T(dB?oO_b30Lrjk5?#hOhEcO=2# z={0=9moYTpNgMBCo5b-uUh;=;N5v|pu| z$_G1&bzBh4yW&t}TtnHUw|tn#V(~Y7Pu@DKm>$fJDt(qTQXJc&4Zdx!Va3y2>>vZh zGxyz~`%;q7sC2K`CPxejRvTgV;Tjq@=Mi5Qs3A_CI+&-vET9?2ytLy>8l70108aA56^hkf^1L%ouLv;&shg^{rR$D5B)4yGyEe_F*V|SC8z1Bfu1zvcsrY~ zR82hwUN4n4JObIvVo5)}ometx2u-+2`8DIe;C!bX&pd9Wqh;o!zugFQIOoS#)#lSP zvNhm$Ta7j+=h7Q*;!59?y1?Agf=_zXVRVR1q`8kX`K8UX@LGflOnYe~?wzrQF4Z&T zq}PWRZXfZFJ#jNA))+SM2dLCaKZ808b|lcvMe1ocL1HQsm}+zn#osK z+VR|AOL5KG!KG0qbHxVL8R8SO9;3&aQ`D5l&?r0u;I~>l%zG=uxBJqdwgIJwZhF%g z!)Vy^UWOMvU&L4Zloofqzrqy)V#G7cpNNM%zl4F2GwGV=t#sar9NIo^nfODz9G$vj zDt%@?pwv_^gnEripk8XDc*pJAoQ0jDs~#Hgg6SdR6}1<{KjujAN##d)dh;Ykm^3koe(_N#joQ`)MP`TS3#P_Tey!$_f+M}r z0`Q}B72f_cmtBckgu4wg1h>ox_&V8~)K`oVPs}!>VO7^)2K&di72SoC!+%4$!eAcI z8pCyrvUmbZ#?h@$;LqrQvUzVNpRLH}_s7Ug!IarXL(a zOrqsW-Tt%XiN6$ZM9&`LH7uQPiEjaipyTjvMipP=ABhP#vGicyFtNKMh+{%q`S-u0 zY2!O=F^Yd?H`Ww?45CZdjeZ& zo5-!aLnXE)CumyS1(>dIl_(Ybf|%2;IH`L`*$D$xs@W|~kID=NpW>Nh$*(qvqK42n zTOTgCT;f@N;Q_8!nkRZX=M^|A9RP>z9iobgB#7x;FJw;#m%Tsx6Fj4{MIiY}s*Ey3 zlC}WWk~f)*$d=`q6GEVVp*^49tbsorg|G8(5PAI}5H-i0X?$XW_d>2L`M58OaHira;WTQ!JVto(3s@WAOX6SW+1#;!`RW$-k2Wz^zgpC;anc-O18?Zr3|p;Wwyk zq{$kl>*UWLE!Uw}1K+W-pXXWsr-QJn@(=b)E|bLFH04udT_q)Q)smXRH~4s((08}B z;@33eaJKb;vcTU~=z2oAbn+5AD*Ma~%zMW0$%?D+wA486qohMjembJV$qd{#YXCI9 zMm$jBE%Xj%acTWt7Em*?jBbAe$L}vFZM(NYuw9*lpHj{EQA3>xJX`+qV1!UOdV|@+ zzhS)N6{vkb7k#-l->`io4|!q-y_-$SK1fC(wOvwLBXxmhcgH~0M}3^VdD zBKkz;L3p`Daz8i%vy^r4tix(LJFpQldzFZ}bw19;Kw3Iijtq#sCGmY|O1rKras%(j z*m1xPyRNT>)5{_;^7ckFA|~+7)01Xgm_Qd@bA^&bVQ!%`4o$o-(Qz_@tLEKD_OCD& zd<3>uWRN^GJsyVYa>~?R?FkwQeX|h_dNAAR2rX3>kxuPVD0NrhCtt0U9IO2EKS$>s zm*e}s@rIW6))Z-|P*&r<&MP7HK~lDcNJciPjH02TqO_!t2AWDl-Pd`il$q=(Bcsgh z5n12+_xtbp=XqZD>;B`p&g(dj<9*QltF^?`dO7;@^7Q4}I05Fz)5oPTs2E^Ib9;#J z`(!t1T@nTRuIkZeN;NFYDGqbmT{)-3MOd(}nVuh*MI^2EW9XTybWfX#u>WNob)9$> zw=Nn_2gth#EyjNE?}HqjG+#y-c-qbJvX{u22=m0+Nng=L2Wd~aB#C+NiAwo~&eyIE z#oMJr=-sVBLcD1aD7b3~PQwuL5>r6`;4&d_={s^uwhn(uEx@wvzi@$VAuayN$dP~; z?0+Qdd{*3jT#Wh$hk}AIHAD*n?`R6jVV|6=Cri*X#wEhP2nP9`pV_oP1^VLL7hIEE zPS;)s_;K}aebkUV`gPGEc%st}b)$3WgO#&k_1bvhWuv~3<046a1V}cFsZyZw!WUOYDqQBYhMj zK_x89Nond+oId0N4k{ZAk#+TuaQs5O=bU%`4SrFSnU-tLDUjLu@-acf6Q=pPqvi^Pkku zFgGTht=e#)%K`0VAFy>|)@8=9C15%#mL$9|W2$!6j8h!O&RSe&i>}Oreu*rY9QT}+ z&)o^if_w;?C)nnK$5STM;5fRyc*vEhv!{#mqwl~GM{XUq=B$&`Ub8S8M7P8Ru- zHy_=~KH}{LdoX-%g&z)glEyjz$b~IcdcLezB~A-u2wPbrPSI@SH$6;XHAR+odb z>%{!Uj<1gKtpymg@;ptL9*_QC@*r+vHfAnW7A%bZ!o+v}LdJzTkYxK5PPq{JGi?FP ze`rl7s!I!>gO*dn8d(-)p3cqgJ;BarEWzY5Eo$n~1vNzyL{Z(E)yB2L*oSwxPv$Bl zt~v{p9GX$Wek#mNRVJ0AL{80yx6I5ek!;D|%O+}HK&fj!sG69^&Awkl3UZT0R{T%s zvN^*$mMnq?FSnnyY>j7Ik2FJdmlPOPl|uZTHMm@}pIx_A7Vo8BaMH{@xG#1+W(E3l zRelNF9%E-LX zmOQWxl|OC+ql1COx3_?J=I_SQT`}kxphL{_hEuC^T2$4ikYpGfBFbl`(80GQ*k}oJ zG;Dv&=1q{p^|H+s0aA zkYro#W~zT1h+TmX+`f{+oa6L_sF`7G%f;RBUCcUHPO0XH>VE1N4j8Aw+PEC3UxP3g%RT3FxbqOr`$vT)Z(-Aj_Eb^HZk0CZ!0e;T7 zj3z3w#3^duxEJJk{ujn=zRCJcV1^I*v+g zEE1+&Z-8Z=44_qa8GXI~INh?>8>F7j#`L6gs-c>QKMoyr+TRc?)YhKB<{jhdopm~N z+jI(LJ7q9ncREg9qY0|jT4d_R82H}wm_!_npqt#P$>-UF171JDr-ik6 zBzhcN_*ry9&{nZOa`b9Qj^6~|Z4}|7 z%se{7*q_Y3bq3WQU&WqlhsloEIIPylg7EAba2s0&>!18)W6G;odhl`nvD6HD@^K-2 zZ1rFRH?}%0J-UU?>X2qX{a<37^?!Kzpg$X27Kb*KbBSE?b#i!+$l%-gf|W=N#4G;q z&s3faq+zp8z+n4xcx~^N`Ysc1(0!o98SjZ=AKxhBBJ=fZQkV~1uQDe2Yc*KtLPb_> zRKrF*3d5WCBDwqx(sUGbLs)4o?&=vq5!i_am(EHwj<|tgGh6ft3%{rD@jTsJO?Xu1*K?~1D zI>X6Bfr8~2SHbqqM0&M)8dzMbC-Wu-{>+_h?~jLXch&3Xl4QtS zv5guuJtte$@4%teiP&2f%jUiwg04;1&|uaFFnkpD|6Q@6LzG1xNGGxLxXZbmN~H^e zSJclfm_}FGoT8sP)Q< zvTa}m-z~M1Ex295l*;>PT<&ouzbOq8q7wmk4{%=FFboc@9VC2rnv_H))sK3%d1gHnkuBk?b5IGGjL9^6QfvA!+Dh7-5`B+`c$tkj5d{E-k@M zM%v-0lsQ7!i4EYi#e)Vtc}A8%k@&u+GApe&tZ|eL4l?_XId#t@i;Bk!iKFDOx#2L0 zDJ~~3sw2tx=`V0VYBk84`3pAVE3sn6cy9i&1GvH54Ab5aZ10@LlA~7(p$}ScN!?eJ zd^VpAN!>*{%I6D5dYXvo4JXL`HJ8>rwi0Bm?&9UaBJbeZ8NBFQ2y0hQfTQLs;cTRp zP#s)DemaCBiCV-`c3vfc|3Zalc9q1~z>%uFnNJHB7zvgKV$k*7Op+DOnD!k30@gb* z{al1i13d)Z@K62Is6?>~ZyT%lE|8iL=POzc!3AvkkfQ*)*LifZ`IJMsoGBX;uGk^V{+Vv9I&{IbKwu!lT$RooC z88c-dOh@hsX{^`9t|$Xo(jd*7b*6))%N-~6-}i~S`h3XlpT?Z8=?aPuT9{$qU|hCc zg02>GnsJ*Qz}sIN=FKT~WQP{AeopLV+;oN>mXx5IT@~n>!->M^Z+lR$vW%vwbl{Ju z15`fMv%&OC7|piWFRZ;u=zFgk+@vN)Po$?)({d$nS>()}DH|$u6?9-xQ65%1Uj>8Q z<4(I)i+<%N-UktFqcpKG4wfi!4|9~M|UTf9-Ji3y>X!5FD>BdG;Fmk;p=*}gx@=UakGY>fYNzZbh*N7JQ}?L z_4}vblBu~&a#9~z`D+%}ccLow=SH<$S<819D3 zP=0(0d)bu0D{S<@eOo%n*zH@0y2x?cRdZuU1 z?FihFX-B2CA;O?dCgfB}yyz>hqHEf$8!R6A&||>L-@T*+PM7A>V?~AZSy};X zIUG%%E0o|J-w^WYlLOw8+$QdZKRP|+B7{#jZgWd+1d;RuZe&A=s5O-5ljVJH$?~@o zft}b&7UnDlkF)A5TVzGr_63p|lm9Wfa&w=c`Jb6Ml;idvA*x?BD4G-8$)!m;|jDY5wO$y*ml()J4#+}k(Rd{*1Y`W5eIL(iqFu;afTX1lbR1hPmX zd)k?N5Oaf1^`4;Qiu0V;NDqGOR|&RWM-3a6ML}WO22QJA3UiL1CKo$<`QT)IR4tf~ z3k!|my~tfJk^e&y(~TliOo_u z3>>bCUT4?vgO14yySBB_oP2fmW2`e(e>WB++ypUO{f0hHQ>OX4NToq)qEC%f1l;MuLQ3r?C=q*Buql#W_OO&n)7R zn1|)dH0h1>byzp@4wl81(m2h5H1I(ePKh51{WDeA-@#k!-mMc^pSsuC!RQU_-;sP$ z(m4lJ|9b@1F#^B3aXXW|_7a1(y~5^-QnvTPbt3&R4K3%Y)b~eRW9HMvX9*ISdK2$E z)(s`haD5F~9{Y|JeESS16AYPW_zYMY|BhJ4rwQ+eeB;*EG!PfnYTVIZ0Mi2{p*+un z9`+3fg~=01mtj0xzebJ4`hMoV#7e`99$z->_7N;>O{Vj;YcSekCOjJ5=O7i4MA}b3 zf$~F>VMW?n@OyRvFFOR0k-_uWu1mjgruV7wJ&tk^9q5X}few`S_zuYnuR^^b0V%Q# z+=L&Qpt@-w{o!qbzNrQ*`DZ9zXnRMNq+RAuJTwuEOD2QE%PvxxP==qXQm`iX1|RRW z3=9TX@DFEBB1OwyaD5v2NihR$y@yi4e==O#{2%U+yN_Sn zlxan)4u(zs$)crextO{kbaS@`oXMCiWRSaTb#W&7Xv)zK1IoZ#GZvp;-%jR9%fRJo zcjC8KN!Y&c7%ja&M~LKq!-LNngl^r38m7(cfQy#E9LwlozgVhda+|J>v=Q$TZs5Lq z6|NI?pwch%XpOFQ!@G4Fv`bYDTLPl#kEw?A%!|#=37?__#ngrLfRqJ{pId}8SI@+N zZ%x8_Z(}yZG8i($4I3QNv*-y|B=gkH@-ioM5ZW}DBJp611_}> zr+Nd@>2~v>xU9;B%ISMyWs({eJ}hMM=escMT{*5zyTu2z+fcSE4vm(aBg*xP3@2V^ z&+FxAYtnEUxTr~-M;&pYwhLVtyAp=>-@iWSrtaSWas&Sijg)zoI$; znW7f<*NWNl`YpWiCrK{waXtC!ol)(I z(E#VV3Bfe?(kJ>>sg}5HIWAb&CkwNdOolVlb7;_>Lcy0QI!A}dFy*ROc-BL{;d0bK zup5{oykBk#4`eTZ;*&}o?&*f^_N#@uZM`__L@eKZeXL-&(urRBeioaPFOly1>FoDQ zT|x3o6}Abw&hY0C!ZbZ+{QwTQMf)+{y~io|U8T@vIRrl`9b@RDMhBm9q&3+u*gThX ze)5OY_(JXm?)~!_Nt=rE(>-t5Q_@7;t-5&EM^UJ6SH}iDb{70+C}6mti`%3ess9QE zc>1H0KjIh61|&=4i8mL?rbEloiAXumQrgGfd6v@S$1|{c)fZ;>L=L|O%Axs@!ukQv zh9Gm*qw0|(*}P@1`1a9rVAyaiT=DxKc&krdq|mRtEYm zOobaUN1LHKi0=F@WBZt_W z$K{Yzl+UJbmE=dtX$f5)g30%f4d@@+$8HX&he1o+Vg1@^g25Yo+-@GnWY?-g7M8`3Cys7||;M+ms67u7b$2$Q#D;kUH?{Gnwx zAzQW%J}I5ST`GsT;~S>q9A6)lPd?6k>L)vY36KyG@ao!J!Y{=67SP`+leQNB6<|8}>LwTZ%rux{s6` z`$6T?Z{oVFiL_(*LhK$c-UE}bqAz(s+6HApS+yyq-kJd4)+z|!bC>Wkq@TYt@4VP^ z)&mVmd0>`$nwp7sxX;#8>3Owg++p{-zC}%17<8+eEFLljz70tvnmq-Wu(uyS?ssM{ zS|#9H@hmWSyA5>K+JKza8G6#TikNKp3eiPl%iB59yA>G0UmOya>MR#$B!81>G8MXnVX7r2|1Z*hmi zdFSBnGAp5dPdpY>q_U;gJ;|i%p)4|tgT9tBGCcP#NVs3;hZ%%p?Ze0PWnV{@0Vf?$dUDDmSj-{`E&VZQK^&+`dp@(I0g@d*M5}p0jjzUS%Ro zHqfPs<%g(kr{Aa3aH%f-C+ebNq!ztk5(<-akHe^@C1^5qBQ38QOZkJQOfKd- z$U2x~_VsySuCf=$M?Rx2+OoJ}vnL()*-Vf*<%OfnE8**=VmMtG11l^vaP@Wrnjg{$ zi=Jt6+qY@cgbM>%=c!e6*YoS#iVffB>)NYWAGV5anKel`>Jp5)3EfyL@+STbD}rZV z=HsuDY!WojlkIEwacYa-4~>t?>j%vv)NIc!FmC!xAB^zEGja=P)36ZXf~hHsvfzXZ z=R2TNoIexMh&9^P;D{}k@y_~%%;w-DXjza%<~R3%acU6wi~PrHzekd6^KWps=Zvs8 z;1LPjZ6_3tjex5&hlAQwg!hYi)LVLqxo*+HJ(rr`qjn^-o_Y}Qx)*%jyMz9*4`(U< z(@}e6sNi18*I5 zh_JoP?fO&7r{9f*GghN;_sfAO@oEtIRk^Z%pC6MM6Gbh{W2vydq>(+^Tf|3K;tpCE>DaxO!&{Y#-3doYF6H&K_e(w4x$cd)gEYF_@JUix`8}=jcJQH0;?8ks$#^vafGik@!&;C=;|JH;_89d@XsAYg(**|E?Qp2r%y)4vS zzv2BeYtXn>$tze}FpWPm@l#+88@{2IyR%RRw|~1 zQ~ww1X$->|34Kj z3Y_oL+Y{zEhkDzxsXHFxXtUuBX?X`AaE2JkL_9#n|`fsuD)No@OY=gtuuocC|N!2;<3VVsU-gK6#_h&Pb|liF19PM5@4 zi@H#VH4<8uUS?j8-@(HmwZY(~yrw(Hdx$a(u5Pi-<30v_06 zRR3}kI^rU$b(w+E5^u?`1v_!!H5GKIoDQ;OnxsPNcHI~|L-D>bmKEg40zC+DVL`r9x)QIDyUmX{;inhb^>O!akM<@Z6Fp z(i@gZ(iYr9soYa+u}%zgJ>FP@Te6&gxxbj~1perN!#FYmpB~ z&pF0mU^y>4Oc^?gbwCGqv6;PA{DD&p?Q)XIP5r~{@bjtlpDb#5uQB1=VNE0c^%)s< zKxqtXKe7d01bO2~^EIqLcLScXDILR! ziQg6GR~yHM9#kQVL)D<>Bai3#!Q4PqLwa}rJCfh=fK`ZI*RUG#zryq!S#59ticYHI z&iU{7BinSz&)rgZ!7`WsTbT)!b>^@xejC=>}hocC01MHk%VtTGSdtf)b|m0 zV@Vp&tcpRSbJ?H^L%B)Y#^I>%pX+}%nSj|T8#w9ki2d7jpM0$vK?nT#47sD_ao6+3 z_;Hl1aCq4?P>(R7t`RP5khBNxZ1~H`uf9OG$NwY4^_pPU%$aa)rUoDAsSQW$hS9Z4 zfIn&|K{kE-3qApg!b=r5w5d=bod-VS>0Plf_?8XZoL-2UKVIV=`WRw@`(V-&_42Op=RiA4d#r^u-v?vqwiU!@_7?6puY^zSx=36= z3^#BY$7 zYqK+3pWDF3ZdGD-SMAx3zP(KSGw?$@-1&2=d1R191HY&*n>%QHi#&D>=96Db0IupL zvksr&qOZ#0C57FjcDEL0Jyj&GKj$!)XVNT-bBCMNKgphd%gBqIp8C)FW~8{-3f@lf zVE$>t!C25Io!@jwh;KhDKXZAFV+J!%nA1$F-@O;!d*t zW*Z5X;_A;ID62p4<^^%$jH!FZU6P!d!w%eEMTVWe%j#4kK>g4>e&*i8+|BGuczHhK z-aMQ}i!R8KHal5vpUfU6lPk~S{gvUH3P&3?&yuKS8$Nq)E@{XcjXO04gMVfVEBkFs zuC(Rgfyt}M!GSxew*GAP%6C7Xe|H49Mp?64&h~IV&yLQrRfPLHa@gc!K0uaeFzK!G zka_wmsT?u_bnS+)SAPG*-g|#~(5RjHz5hspygV3Y7L#K`&O*eUdbpVX2XFEgY?SRO zERMUzuFOX?v2dezHb%qrYw2*-GXqwdtY?E7Y?;gh9g#T+q}Wmwvo2Nh{lQDnm`_4` zheYUD)yzMER@QYjfmD3UW{+PUCj&af{;V0#xFNsO*o&d6@JintcLpF+&?@46XHG>0&Xyd@ zT?bQOBQetW@6r)Jm|4!msqz=yS zgA()lcpK}ztYG7xW-{sCLv(D}O3fgHXymMcVOM9Mllxrub~y*5H_X7}Pad$~3C>{k zZUEYwOol^~dYOJ=l2bvgDV)+B!#RDa!6!QJ;GLAHUDwWn#f$flaX&Nab2O9)jq<|p zwMCdGag)(2)~x4x9E8_@CX2S^kiECEacRn0mh~_PKUqG8(e0UB&^#3!xcL%Z(F_C| zjSJ+`SZ9pBl|%;Y+K+bQlW@bw$?R0!nW(0!uV5q!vpO23_#|F>TfpPaqcQ7* zfyXz%B)*A7i~hp7A1{zar)J`X*DCNyY7ra@Dil(^r^Cn@E<%0YNv2aMag{8gVz)$Hku09yTWtsV+bd)BRcXs_rV(Gb8=)cxYp~i zoh)U_CX!j4iMvkBW*6ifNO40H%5Se`nL8}%4VJpYd(jUWq_>OoG-hDsFh@2(%>v*} zA9vgA6c>B;F_F|B?bLd$3x~y&V)>S-@WO8uDxbW|r`;1-cs`>*QtcHMS=TV>I$2>y zqaG+J_`&{-I~{|$XC!y^K880Got(t)??^v_R=gaZi2jX9dz0|D@*3uMKnVxN1mm58 zMff{kUl`r*0F&CJ>RsCEiCU!%7|L8Fi$p@&)MKNBoDub$QmcSh{uu~oMSoW4MGdC1 zzKZ{?t%&+s)o7(RUO3F6Kqbi@UB5>Wz0);dQa*s*88eR0aB>&yy5EvxG7E&(xi4}5 zxjN=;v!2CGQ^dII;@05vSb-{<3)lFs;4##M1uZZD>jSkgbC@-~-#ZSw4mbz~rq!e) zbgi(oY@}dXm`2rFoN#Ym8S%bu=J-iy2kYuDXr3y13WL|Mj)T4Mr}7ZSk~pZDs*iK* zcf$Fw{q$e#dO<}!7QF4H5&kOSqsLwtu+InP6nw_iXS=|;q6&>=>_rdYbO`d#;?$WW zo-(k(@IGIN$?_EW7;Vhpq&!{sVh=e!?lz7*%aiCQXW5KsQye5MiSd$OS=hBjc&_sp zX-G05?Ws3#?5+$J)OH%GdXK^Mmmk@=t)U_(Y#DRz`0b>3Rhwk+BY5?PE@+&33CDG; zz_)9232t9aRQq$uBg;$N6TL5I=Q+t?_@;v_?V%xy`XpfeT6uITif5V`S;VLA7h7Vq z4t*v+L7%ZkIN^f}H|Dk>`DB{US+^eoy_x^9L(u00!?d(Pvn@s(_AP6}r4 zH-LjJX)LZ*orFJ85$eaqu*3cioTBkv#+K|NKL@Yl&D;|?7w--{D@c$lLBm(Rm( zopv;qR~Pt9J$$_Q74PAYLju1{7Oq)5Vx!IGvzYUFC}}VmR`<-so=|8?jhNW7sK`BYX_e#Cv9U*nN>DWm{%}t#ZFeDGBEs z0z|&0`4(K|J4N_jFi%ik=?v}X#tT(*KVV6k=oq>55ysAG6UyY1*s2jPNx-0RVewcy z9Ai0&wpK7+XL=$&*lvL{t*@Zba4%u&CQC5t+$1=j9)^LJTiEBBX7ulYg~G~|I@p(D zNJHP0!^NntyknB5@UvwSw>+#KrnS1!Cz<2XaLiC4z0I4kJ14nWru#7E$w$JE_r|+l z5kn>_3pxLO^RGgK;P|-RuwPe2d|!biPktAuBvwP-y9_vSNs%wvFM;0qA27>!C@AzC zVNYMIArmqN2>YFi`Jv}5&{SAR3PPJW>7EE&-u;4WIf>vs_a)i8G8qHcC1FnD9e(11 z4Y=4Kg}b=(Gtt|viS@tJV8Ll4v@x^6?^|oQWwYy?ipQmr*DZP6^`bVAOI*VS|G9+` zVMRF1xslJTF2eOM#>0af`DB^we|V|sBFyT&$4a{USl^ki zUDhMbVvp{L>7+Uy>Ep z=t#hfkSc7tm_t6FlcBG}-?9$}+VKaMfJ+-gXl;hNkmIQ!Jdkp$f8!R$N9J3j<%lnQ zT7NAZyBCF$T~3&*wgor0YVrO%T8YUHIrg(T4IMh<1-Oz!CG@5VWBld{E}$bgi9VZv z7h(_5@sIFSc_3#eeF}H=840&corI8r2;y|Zo%U`m#YNjXLG$EN;c8PdO{&}}*y)0B z%g`NkzNQE*2lnt^LWc-Kog_{4I)<~i<}#&wD~0NtpV*X4W1&-NGksrWFGQ}iqaO^C zz(M5nxZg7+{)xxQ&zhEhcs`THjF;#nkmJ$fxNY!saIi_>wTlm;}N zlo6CIT5(Zi9~bmUPR!YIa9wvdITla}ZXs&Ils9So>)_{b?4$`q?cT?RbUH)ptWC_X zsh9lMs)S?4DPZ62Eu7#fvU?^zB>DHP;nQhZ(I2HvBm9@5^xA=NbHHSFWXA}YGqN6s zWs6?Mx0&pPe>VZ)S<_-jE0E1ccNYG=%bDSqd1 z`fDXN-K`FNlKf%%qjFaCG9B*L-G=5_b=We+5liVnL2@|Ft=b$Vw|8b91Z1fjMyZ|Rvy;zU?MQC~Vf#0ORjor#r5+0PiKnz!z;UO_aAZ@@mXnWKP-tXz=+*~v~e^Xd6YZ!gqUIp6>BB{&Y zLU_MSR!CVX-{7ROLWrN5Cfpv|2Dv*DAvwjD2CvW&>wRVji~pEW|EP9qX4^q->08mF z&${@|?h5S7pC}mI|B985Dunr37g*}AS~}Vz0?O2OkjWvDkbcwxLt-6-vnv-<=P|`# zGEZbimfS=$zkAGqy&$`HiobJ135p|cv56bzk+nvNa8P`vq7)stywQN}jvfeQ12;nW z=!x`9q6AgDnQFi4O*C3spJu+V%5GpL^Y1Y|rHiM?&n_+*9;3#)TrZs#9xeKsyEK)8t$mV^s8H^kFF zlg$LDQ??*C_&OVNy^Q+U$k5S;447p=8)&=_hugKY@%7qHvOg)4$n7m*k(Gw9$p~=J zx2eKgk4<#$4*_3Jc!lG<9PrPTPt?!118luBnM>at@V@;Q?!!~F>!aBKm zVve<8;!?r$>@z&H+>@RhISpTqvqP&vO6=2e73T$y7Q^t6EYTPJ2y$H;XzcRYq-msq zkQM!#?9Cg%y26JG(@T5>gX2jUXf=&q{-urbIYl^VZh(L( z3!N=z{J|;y`a+gL6@>cVK%uG^vp0Q&i!UvN7_r0j9cLzNPMgDyJ1$3^I!!vha;Wey zK2Y>qUlt<0Kaq1Qw+L}hpTnYcQY?g-(W~bwg}F~W(Q{uS9jzyW`oRb2HMc^161WXk z)rLayaZlRvO5_QR-^-30?&3}b7ZF#NV-5;O5@Ep$OV|{>RPat0z%``+H;5kX6+tpo z+u95wibJ3vPoADid=3*L=aHF$GsG0EAQg8a;k899RnysydK+fJfsyV)&tB0#?O%$C z^J5|GO#_&o=p_fuuaSzbWa99CAjC&ji=BjDL3W}POwAdJ`q$^t=Fnln@Du|Yd2$ch z9~nz#?>&!8JEp<G5RN@NTwMQ4Pu+7(03O0><5o7nHK55nfwP`1bTN{8dxJ>JwuiEFoBU z{J5Gw;87$L>Plg2(j4J|PcVEYZZQ0nI(qy&$xYajkDAG@f=|x_+$zr0YN0*wO+$yx z*rLsv4q4;ikaX<0(jq7n{~?V_%LR?BjkrNR9=5OhgyyRkll?TBdG61~?{Nkg_Te%& z@$e^DIJN}3mJ+;IYla#5Yf=4(Q$uItB8WV2UkH%55he_lhdtv$$^AglyT5Y}Tet27 zKK{@K+ZGHIEd55)A&)7U?BFAm+Et;$(Z`^sp3zW9vp}swvcaJ70x7zd!0eRQ2!rx0 zgo9#k*Q(hH;%~M<-;q6ZUr!{xw8o20i#P$X!H=NigS_*oVK=aI#%8vux)MzO&KJrj z=fmL$2dZ~Z7c9+XXh_I$*b$n9HkaoK?M1zy{yhcfa?b$d_Jj8F**IAARQ^|11@YcJ z-0-TCg8H;Qv~*Mf{(h;_l(j+brPCQy@NZ7WQZ#ro!(5R0=(X&EYAqu>#r7 z9p6~dw-z>P?k)C>4#P#La>4`#3I@MB>>MS@9-^6=_iH`+5r?%8T zHyZZzItsCBZT!#?>CkS3_$aDOoE?6aXYuPfnP?NhYuk`!)v zzCcB?9*q88fi(-;aqyrzRC5?llMf>9nHI+%J^TVrkMf}-R!Io%7G1Dwtt1S z>s@F<{8sQS+=E5K0)&ARJ0LEjN;thl^aE_WEc6+t3gfn{r_(DnaLu5A`u|+tGm9z9 z>6DHzVcS1_*61>lPH%LFgP}{Pvh9AnI<_9Oe}2V=k=9hjMC=Y7x<+8qPsyV`En$nH zkzhZt7m|ic3cEvWgxS*)g{<)Tm^A=FZ;K{<`Fs-GS-C{$cH0M03;V$`h{EfRF&NQx z6685$fYRICi`NmjPcjY?O6^#_V+%&R%G0#MRYK;m4v0A+W{{pdO*BAT9 z!Zmx@KSdMRux|kC7_UO`1JAFyy^fe4@xT|>8KC#-6YNTQjP9O=1XARLmrLu}f)C3; zu2T}5vMVuRts7gv?lB3LYiD1VWs-&Gb^!O@90tpz^l;P-b0%lN5EE$jP~ zQ@wfcW=<5$Ts53-eszG@-dli%$#Y2LlDA}B!bLD)wcvkX7umE_ohAJI!e8^54Ufkz zhN1I5V)(jGaC?rHlm4}PaN0mhn06~1K06d*kJlJ5&2@lpwxJ{?cL_dqly&9|X3*c) zO&UVA7Q-lR5e!&+o7}oHm7b_#B+eiaO4{{c|BMQV8(od#mMsz5o}R@o`+t(FuMLH` zM+d>A$(0W1y~Le5Bgcxbyo6h>qgn3#6y~+?G1>gCkThl;Wp~%evD_=W`QDGUIMr+? zm)DU_g1iI9>ICLf$djv7sXe+j!_*ubqgS@%BE+%Cu5dY1F-TQ4VPH->k}9}H7p zzCdUB;Y9J*NphrAns^*_AO%0nSg!L<82ZM8HQxI_?R_HaJvxkp24$0bo4#@n|74K- zFHRVDe0}}RNy>OYe)Id70C@AVZw_gXZ4lPUa** zu9Ys~8zzzMNgi13|Fk}8y);g{n@TDdTEf$cku0X~GPKJ)L{FD^B9Rfp0(9Py{+s&H zJG-A`B|d@XE>-k-QS3B+e=yD)wiG-?FML8!J<%C*2#Rhha_`Fk0wqM=(?XGx{5KQ5 z*Uhcp_dOk!e$l}A^;RHvWi)TAWXw$|kie0%c7o4%O*%PD9_kF=k=e1&xP~t(bmbaP z`h3PTG9#*+ZN3_UdMZEQshXT%Wu-~;{#xSSQ^(=2-T=Y#=LzCzdIEp-9)fSn#J-8T z!61)`)Ff2woH<*DOQy8a+gqe*%G)&Ig7IFsGg{=_Me9TEra|B~`2w+caFFU~m0(s{ zAv^Hd5~a>{V_Q!GQF?l&KC`qFBh2N=_pE$6VpuVn$qvCgQJLVVUWl(03z_ZLeAZI3 zl&!n00?s+7*vpg_=Gy#(<1gK36E9klmbO03%=CtL^ZOy_NE6W=9q*nmXWH&!2ezLAuTxl#^9zTvt3TB7vW*Tb*_*>Gr$rE@O;$MAViCq{ z*2a>1aEE;; z;#v#1XRhfi{Xz`8@I)8#6CW@`a}UVwNPtt>3UrB67r*#dGK?IxnspzF$29vCvZV7X ztbB}Ix>YuuuP-B8T@FIU)Fbr)nqe8G*Wg*ze zR54fII5_vV15KtrW?vR>V%L7;63rSZ@NU0?EAuuIB@0!|t1xBbFTF+C@$oF}-X~Tv zkmqEh{4nXyZpZ7Z5|K^G$HpVFqCNuZ^@Hf69Dp-=M5s zKC}G(iB(`i z3-2#x|LxpgvupaHOf&KuyZG=N)7pI4ssFmTk9lMYcDp{357&p$hR5T`AU*}1_eT7}Y3(APXb2Q{h+ZobdFP-=2b`)bG7U@^8GG28HnzKybcLHZ@9|vWkIXb0a&rX8 z8XD8l|8nW(ul98Ny)GQPuM?+#m8Lhc6`gn9)WKn1L3Hh@Fd@({n(nSRMmD;xz^BlyJz`!#-`6IigqZIze0vgnHp@AOi$0eXV%Mg&m>K)lmPTJ> zXkpHh!>pu6RftFk6za)D>h;!{X3offb!C}!$>cIDZAyW~Z(X2FL)O`O*FzYomPenM z`wN-QakQwW6gU2lqVsUa`g`Me2oWJG6f(-Fvq077$4;w>(k)0iv+sW zhVr=`J7}29XFO{f2$^$Nim^wC=}U1BcLGkN3jHBX_Vk zGY&5&Me*+1kr?Sb5LN2WqsTOpD&2PE7qe60^?_!bbI(vr?xj-G(bvek*b?HAIhejw z>_ctR6nLYs*XrZa!1GLZvBQh|;kYr^gxkVHHfrq{KJSGF?HM|nt5?ht1Gdwo>Hz2( zag@#dHyW?W?xY9y$?^WHQn3GP8R_^wF?eOiGPHv@I>|SZ6qL=UuZNAIZ;ifTgTN5l zYjv6oI^xPTH`ntf-$qcoBJ6bNBg-m?qQlx#Xxyt$_+X;} zA&0>Is}tSv*oW-Bc9Y46D@oJmT!s~n-3;y}u~U(jH2=jo@zJp#@r>gvn!9%eJ=lLC zT-5P|#>1)i+b;4z3NqRBs`myna_sP7v%ZCWk&@D z-f6Iywv$}@;X=;Dn!%FO>a6MZby8S(Ub6lMC7W!%Qs+%8Y0;rX@_BAL6Z@OvD$SWt z7I_ZGJsAg)u9|h#Nh2X{O)Tj+VoZ#h<5=hPUlONvWfJw^kCN%HYw4j0qiNp}qoC-o zIl8}ZVIOl^;K_@3_}L4jZWA&^AD^s8x%x$tXl-}u zANmhc=9Q6Vn`DG%D%f}~9ajF)D9bP;)+UZ*ibuF;1v|pp)ODe6vNCI& z`;EC@QJ^l{Hb82u1^W?ejw2qfWmWT9$x~;2?mn}gI6oc-lNSylLyNyMrELcI^jwK# z#7XPh#9m!y5-U7*eCknG(m zd45w-l5;;(vM$`8O)kgU-M)j+GC-N;%)CS1MI2-)m8tkGL+E*bS;{&lzQJ{}(OBs= zg}NVz2hl|zHt?Pk%&e&)CBYuJV9*;DkET;wxRn_lZ}VE{cFB>=BQBD>YkSF}Uq;xR5-qs3!}u4)YUne5I&s=Li2bL% zo6j7-52vqP4uexP@jt_0KFivUZu%z!AHv_UG^ZI*cjvd{h4T!U6s*p@ZpLuy>JI4d zGC_%q8JxGOAdZ2~k^^q@QDkQbY~)&~TJ@KVuvKS?9upCc z%1OWJ=7aULT-F>`#cX%$u=VTjla@cpEbGEA1~&$SX83U&-q(!XF_}#ISS!O~(rz;%b1JBZU&P)n11ptiPZ%nEi6=ZZZ-z9-F< z+@5}%RHcVVA_QIl{(eOcD$Is!HSS`2O;uX7Ko*XLHVO61X2R#pfyNLeJbbjC+^!Ji%T8q_<~~(>6V*%()hEpX#V^( zE-QBvg1QEaX>kOd^>G4ikt~J93JdwVl{@JDtp)Umz{{B~HQ>2;2X-{J@Y7kLSk}3g z7j2J2>#{rWFkMb;ct_|`Is{OCO;s2%UzT^Z6yfI^w?Hq&hjoqqEmF?j#FXY#!%c5J zKB&N!ml?03Zec^Qwci8i@j#MQeH716^d~dxBKY>#?r8V$4Sw$ZfNetm{=G>M_e>L2dt*R( z$0Y2xrI^g_`HBknyx@IY7<`&x4-dt5e9XdwqM)cq>PnY_{=SpUAy$N#x%BC_VbBHV1s!QWYjm}2|^*s^0LT;4E**FMrk z*Aq9e@6kn2_}GC>-*yE&91oMz9*cSFO9k*eISgVijKIFnUExrBI!4@o&3^7p0Rp-> z{@V-3V$Ha^^qD#E^?ta>@A?{8?)aJ%cqNc=(fiSWA0*G(R%6g^HU7zq2zv%IN%}u4 zc5K39b}mPTC@&oa?adY}+2SEy`P0UHlaisfs!+0bmoJ&{x0MZxt-#1n7Q&3_kf@QEVd9v@Lm<>^591V1zy|txo%+jr@jGd)I5KrQ-JKyv zM}IS-p9X)%31@Wa2z4s;Fz$r^&hO*ty+YqHVh+#Fb)|Do%7b6~9nk9fN#D8dm$;be z(~a`)nB0_USofupdRc4J{yB1D|DPIC6`ftQW$|jhtN&EG0pgiQQCx%XpeK{SBEBeVDD12_l)_@3F}K-z3@xk5ZWr5=_F#HUXf7ANV7y9jF&+9FcfUa{erJ_!<>epJnqID`L z@BzI3{#b}RMdbktiQFnN&)HKb zIeI@74jxV>BaI^j)`uRvJ{`^;O}r`E?BRjIZC3oG@k4g7Dibw74InaQh2*LKcpT}a z33p>(Vwhf|B>bqr$Qvs|hHWE}~m_7aW9jU#;28VRpFT zvnr}uKE$|@w{XeR6HG7G0bY8y*)RBeoBa$u1n>Qg==}DB%(ko#_wv@o7_DY<`+O11 zwU)BXma9yjMd4~y!TVEi1#APK;$-tTtZ4cPW_)QcxbNx1SH>Sicj<4Y*Q7?}U)HhE zt$M=yFhy+2-1);3mDFjfta#9R;OZrl#7^rsQTtg@5R#TJExP>*92&oo4SUUK`hjD# zWSh45S6K!Rtx2UGOFz*^I-T5WiK;l$a|^vGTgP+f{-*yzvZ>*Jv9usqO*(I&ym-%F zRdHhS4nFS83A#d}C}t@gYx7ar$qwhQ^`Wb_DvQ1t z*Gkk3W)qzxMUl656!$Kk#$`VJBX-$iaGQP)vsT@MD*D-2Z}Ec9yKD}<^8^>!#Bw(L zfIeREDrO$xxok{<3dXjElNsBWz-5U(PYxQ*pY@r5&r3#NsG=vUDKNrc_W5W$D45x6 z4WoCKe`bfjDr4rvqxdbl7%IYQiOg1AXqm0)t4}_w3GCnx5t(% zDzq^w13zW_6{*hq!)}aGLK{0*?yVjNr;&liWF-iWzeFxA8v`Sg-HEq+F6-_H#3|>e zitOywXrZ_m-u`(-Hf6uV3v?TLpS|b!;ZrsHlz=Q&U6*bhae*9pwFRGC`9?|x*Fd0i zBg74*#9xN3~lFkZ%(9zMXB`VZ3V7g6vqt) z=!losI*9j{&*o}Ix)}KAEreO@q594G;*;Aq(Fa@V>E(}qsq(%YoTJqVQ}Q?R_$E$o z8>aH=exX5yqTGGFAFR67?8I3yn2fo-I2Q$$!N$<6{DDu4u z9+iFQX65nl^rR-V`^@EMkJVtmTgHURZiOUWXL!=1gE0ex;rEhWvOr-VS*Q1kIX3(Up2wQ=OOR{(2$G@hql$|TCt^F%IiD6Vj=WpDo3p!=+F zv_6r^zl1CoI8UY^M+l}`q>!jUOY~oOjMWc1fD_zQNw&V5;8pfxrQd*ADn~Qlf+J|x zdJ)d#oe<{Z{n@;TSE8=Vr%CS9FA`e?fcQ_ZSjR6J2s)`GYW*lgfI@HIzT>En_i)yz zQYo={c^o4P+8yaAfkhKn$4-<>B>OekYRW3Dn=g-V)#d?wAz(gda7_sRUn56SzDqezUxN9@dQ$0=s_ z_=#IjFj>KsKJawstL7*2+1<0K`tn*jVQs2#&m2UhN59h-x?}nFRvjE0P)Z+!U#I8q zw~$l9?Dl;15i%zf@oM`Ih!cF@I{Qm$R8|O|R1r(dZx?Yn*@dWGyNt&ge}~B>ihPhK zrB60eD7Y#3?o9gfQC%hwAXy0Fd(&XygJV-n}rEU{516*hfVq22GNh{7gZA@@`Z z;O3~`#JIwlEcjc`O!^h#jtjwHzo{8?2<5eUm^kNpGB!J{J8VV1kvyX znM4WlS;h2!Ea0dqdKtB2%cw(KZTmwuE~Hr0@7@>5sCs!4qEyI6DBonPsY&n(CXk79 zV<8HKUT~4WL}UK|QFvT5uF=>4JEE*n_T4&`ZSBGygbsHIK9?`rJ}rin4Amm1%FBs? zy#$8%r;y5{W~}F32a6~lhRc#BDz9zH{*-m>$=|1v$B|KF zw_PpUao{?s-}hNGBE^kJ;>WPUju=s_d4CA$-a(p*bJ;xp&hd}ROi(^`lNJ6=Vpi^o zEJJR($Z2i{`EqC}4p`{`9d7;LSH}QwK0H|D_TV-NOt{Q`-}NCIPcP#S{6fgRXJgoT zCn56|ZvmZ-XcD>fIWaJ=g-I=y81dPNy9NIu!*85~A$kLFfAlrD`gkABv@ij~*15dB z?ulqgV-Y;IKMZeUhjKGB2fl3NK5nAuiG!_HaHS(U+{17ai?J76T?-!4FN?0A{lhW= z4L*R57rjJHnxocfYT}aL_rY0?w z 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�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 literal 428100 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