From 68e57d5ec429a7eaa646577742fbb8f4daba4e77 Mon Sep 17 00:00:00 2001 From: jomjol <30766535+jomjol@users.noreply.github.com> Date: Sat, 24 Sep 2022 21:24:50 +0200 Subject: [PATCH] Rolling 20220924 --- README.md | 9 + code/components/esp-nn_20220924.zip | Bin 0 -> 132647 bytes .../.github/workflows/build.yml | 48 +- .../.github/workflows/upload_component.yml | 4 +- .../esp32-camera-master/CMakeLists.txt | 51 +- code/components/esp32-camera-master/Kconfig | 78 +- code/components/esp32-camera-master/README.md | 7 +- .../conversions/esp_jpg_decode.c | 8 +- .../esp32-camera-master/conversions/jpge.cpp | 5 + .../esp32-camera-master/conversions/to_bmp.c | 78 +- .../conversions/to_jpg.cpp | 20 +- .../esp32-camera-master/driver/cam_hal.c | 66 +- .../esp32-camera-master/driver/esp_camera.c | 73 +- .../driver/include/esp_camera.h | 33 +- .../driver/include/sensor.h | 12 +- .../driver/private_include/sccb.h | 1 + .../esp32-camera-master/driver/sccb.c | 70 +- .../esp32-camera-master/driver/sensor.c | 3 + .../examples/main/take_picture.c | 9 +- .../esp32-camera-master/idf_component.yml | 5 +- .../esp32-camera-master/sensors/bf20a6.c | 404 +++ .../esp32-camera-master/sensors/gc0308.c | 11 +- .../sensors/private_include/bf20a6.h | 27 + .../sensors/private_include/bf20a6_regs.h | 12 + .../sensors/private_include/bf20a6_settings.h | 158 + .../sensors/private_include/gc0308_settings.h | 21 +- .../sensors/private_include/ov5640_settings.h | 3 +- .../sensors/private_include/sc030iot.h | 31 + .../private_include/sc030iot_settings.h | 491 ++++ .../sensors/private_include/sc101iot.h | 31 + .../private_include/sc101iot_settings.h | 257 ++ .../esp32-camera-master/sensors/sc030iot.c | 335 +++ .../esp32-camera-master/sensors/sc101iot.c | 342 +++ .../esp32-camera-master/target/esp32/ll_cam.c | 19 +- .../target/esp32s2/ll_cam.c | 22 +- .../target/esp32s3/ll_cam.c | 121 +- .../target/private_include/ll_cam.h | 10 +- .../esp32-camera-master/test/test_camera.c | 53 +- .../esp32-camera-master_20220924.zip | Bin 0 -> 291065 bytes code/components/tflite-lib/CMakeLists.txt | 12 +- .../tflite-lib/tensorflow/lite/builtin_ops.h | 1 + .../tflite-lib/tensorflow/lite/c/common.cc | 21 + .../tflite-lib/tensorflow/lite/c/common.h | 75 +- .../tflite-lib/tensorflow/lite/context_util.h | 14 +- .../lite/core/api/flatbuffer_conversions.cc | 14 +- .../lite/core/api/flatbuffer_conversions.h | 4 + .../microfrontend/lib/kiss_fft_int16.cc | 2 + .../kernels/internal/reference/hard_swish.h | 6 +- .../lite/kernels/internal/reference/mul.h | 46 + .../lite/kernels/internal/reference/select.h | 151 + .../tensorflow/lite/micro/all_ops_resolver.cc | 3 + .../tensorflow/lite/micro/kernels/add.h | 15 +- .../tensorflow/lite/micro/kernels/add_n.cc | 8 +- .../lite/micro/kernels/arg_min_max.cc | 17 +- .../lite/micro/kernels/batch_to_space_nd.cc | 4 +- .../lite/micro/kernels/circular_buffer.cc | 2 +- .../lite/micro/kernels/comparisons.cc | 24 +- .../lite/micro/kernels/concatenation.cc | 19 +- .../tensorflow/lite/micro/kernels/cumsum.cc | 7 +- .../lite/micro/kernels/depth_to_space.cc | 5 +- .../lite/micro/kernels/depthwise_conv.cc | 4 +- .../tensorflow/lite/micro/kernels/div.cc | 11 +- .../lite/micro/kernels/elementwise.cc | 18 +- .../tensorflow/lite/micro/kernels/elu.cc | 6 +- .../lite/micro/kernels/esp_nn/conv.cc | 1 - .../micro/kernels/esp_nn/depthwise_conv.cc | 1 - .../lite/micro/kernels/esp_nn/softmax.cc | 1 - .../tensorflow/lite/micro/kernels/exp.cc | 5 +- .../lite/micro/kernels/expand_dims.cc | 14 +- .../tensorflow/lite/micro/kernels/fill.cc | 10 +- .../lite/micro/kernels/floor_div.cc | 6 +- .../lite/micro/kernels/floor_mod.cc | 4 +- .../lite/micro/kernels/fully_connected.cc | 4 +- .../tensorflow/lite/micro/kernels/gather.cc | 13 +- .../lite/micro/kernels/gather_nd.cc | 34 +- .../lite/micro/kernels/kernel_runner.cc | 14 +- .../lite/micro/kernels/kernel_runner.h | 5 + .../lite/micro/kernels/kernel_util.cc | 46 +- .../lite/micro/kernels/kernel_util.h | 17 +- .../lite/micro/kernels/l2_pool_2d.cc | 5 +- .../tensorflow/lite/micro/kernels/l2norm.cc | 4 +- .../lite/micro/kernels/log_softmax.cc | 5 +- .../lite/micro/kernels/lstm_eval.cc | 40 +- .../lite/micro/kernels/maximum_minimum.cc | 10 +- .../tensorflow/lite/micro/kernels/micro_ops.h | 2 + .../lite/micro/kernels/micro_tensor_utils.cc | 2 +- .../tensorflow/lite/micro/kernels/mul.h | 11 +- .../tensorflow/lite/micro/kernels/neg.cc | 4 +- .../tensorflow/lite/micro/kernels/pack.cc | 4 +- .../tensorflow/lite/micro/kernels/pad.cc | 4 +- .../tensorflow/lite/micro/kernels/pooling.cc | 8 +- .../tensorflow/lite/micro/kernels/pooling.h | 16 +- .../tensorflow/lite/micro/kernels/prelu.cc | 5 +- .../lite/micro/kernels/reduce_common.cc | 2 +- .../lite/micro/kernels/resize_bilinear.cc | 6 +- .../micro/kernels/resize_nearest_neighbor.cc | 3 +- .../tensorflow/lite/micro/kernels/select.cc | 196 ++ .../tensorflow/lite/micro/kernels/shape.cc | 4 +- .../tensorflow/lite/micro/kernels/slice.cc | 4 +- .../tensorflow/lite/micro/kernels/softmax.cc | 4 +- .../lite/micro/kernels/space_to_batch_nd.cc | 4 +- .../lite/micro/kernels/space_to_depth.cc | 5 +- .../tensorflow/lite/micro/kernels/split_v.cc | 4 +- .../tensorflow/lite/micro/kernels/squeeze.cc | 4 +- .../lite/micro/kernels/strided_slice.cc | 11 +- .../tensorflow/lite/micro/kernels/svdf.h | 4 +- .../tensorflow/lite/micro/kernels/tanh.cc | 6 +- .../lite/micro/kernels/transpose.cc | 8 +- .../lite/micro/kernels/transpose_conv.cc | 4 +- ...unidirectional_sequence_lstm_test_config.h | 12 +- .../tensorflow/lite/micro/kernels/unpack.cc | 4 +- .../lite/micro/kernels/zeros_like.cc | 8 +- .../lite/micro/micro_allocation_info.cc | 8 +- .../tensorflow/lite/micro/micro_allocator.cc | 9 +- .../tensorflow/lite/micro/micro_allocator.h | 18 +- .../lite/micro/micro_interpreter.cc | 10 + .../tensorflow/lite/micro/micro_interpreter.h | 7 +- .../lite/micro/micro_mutable_op_resolver.h | 29 +- .../tensorflow/lite/micro/micro_profiler.cc | 45 + .../tensorflow/lite/micro/micro_profiler.h | 16 + .../lite/micro/recording_micro_allocator.cc | 18 +- .../tensorflow/lite/schema/schema_generated.h | 2582 ++++++++++------- .../flatbuffers/include/flatbuffers/base.h | 22 +- .../include/flatbuffers/flatbuffer_builder.h | 65 +- .../include/flatbuffers/flatbuffers.h | 24 +- .../include/flatbuffers/flexbuffers.h | 153 +- .../include/flatbuffers/stl_emulation.h | 76 +- .../flatbuffers/include/flatbuffers/table.h | 12 +- .../flatbuffers/include/flatbuffers/util.h | 33 +- .../flatbuffers/include/flatbuffers/vector.h | 19 + .../include/flatbuffers/verifier.h | 140 +- code/components/tflite-lib_20220924.zip | Bin 0 -> 872006 bytes code/sdkconfig.esp32cam | 4 + 133 files changed, 5485 insertions(+), 1810 deletions(-) create mode 100644 code/components/esp-nn_20220924.zip create mode 100644 code/components/esp32-camera-master/sensors/bf20a6.c create mode 100644 code/components/esp32-camera-master/sensors/private_include/bf20a6.h create mode 100644 code/components/esp32-camera-master/sensors/private_include/bf20a6_regs.h create mode 100644 code/components/esp32-camera-master/sensors/private_include/bf20a6_settings.h create mode 100644 code/components/esp32-camera-master/sensors/private_include/sc030iot.h create mode 100644 code/components/esp32-camera-master/sensors/private_include/sc030iot_settings.h create mode 100644 code/components/esp32-camera-master/sensors/private_include/sc101iot.h create mode 100644 code/components/esp32-camera-master/sensors/private_include/sc101iot_settings.h create mode 100644 code/components/esp32-camera-master/sensors/sc030iot.c create mode 100644 code/components/esp32-camera-master/sensors/sc101iot.c create mode 100644 code/components/esp32-camera-master_20220924.zip create mode 100644 code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/select.h create mode 100644 code/components/tflite-lib/tensorflow/lite/micro/kernels/select.cc create mode 100644 code/components/tflite-lib_20220924.zip diff --git a/README.md b/README.md index b90f660e..990e8606 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,15 @@ In other cases you can contact the developer via email: RAW Bayer
RGB565 | 1/6.5" | | GC2145 | 1600 x 1200 | color | YUV/YCbCr422
RAW Bayer
RGB565 | 1/5" | | BF3005 | 640 x 480 | color | YUV/YCbCr422
RAW Bayer
RGB565 | 1/4" | +| BF20A6 | 640 x 480 | color | YUV/YCbCr422
RAW Bayer | 1/10" | +| SC101IOT| 1280 x 720 | color | YUV/YCbCr422
Raw RGB | 1/4.2" | +| SC030IOT| 640 x 480 | color | YUV/YCbCr422
RAW Bayer | 1/6.5" | ## Important to Remember @@ -128,8 +131,8 @@ static camera_config_t camera_config = { .pin_pwdn = CAM_PIN_PWDN, .pin_reset = CAM_PIN_RESET, .pin_xclk = CAM_PIN_XCLK, - .pin_sscb_sda = CAM_PIN_SIOD, - .pin_sscb_scl = CAM_PIN_SIOC, + .pin_sccb_sda = CAM_PIN_SIOD, + .pin_sccb_scl = CAM_PIN_SIOC, .pin_d7 = CAM_PIN_D7, .pin_d6 = CAM_PIN_D6, diff --git a/code/components/esp32-camera-master/conversions/esp_jpg_decode.c b/code/components/esp32-camera-master/conversions/esp_jpg_decode.c index a9615e36..52833a73 100644 --- a/code/components/esp32-camera-master/conversions/esp_jpg_decode.c +++ b/code/components/esp32-camera-master/conversions/esp_jpg_decode.c @@ -21,6 +21,10 @@ #include "tjpgd.h" #elif CONFIG_IDF_TARGET_ESP32S3 #include "esp32s3/rom/tjpgd.h" +#elif CONFIG_IDF_TARGET_ESP32C3 +#include "esp32c3/rom/tjpgd.h" +#elif CONFIG_IDF_TARGET_ESP32H2 +#include "esp32h2/rom/tjpgd.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif @@ -57,7 +61,7 @@ static const char * jd_errors[] = { "Not supported JPEG standard" }; -static uint32_t _jpg_write(JDEC *decoder, void *bitmap, JRECT *rect) +static unsigned int _jpg_write(JDEC *decoder, void *bitmap, JRECT *rect) { uint16_t x = rect->left; uint16_t y = rect->top; @@ -73,7 +77,7 @@ static uint32_t _jpg_write(JDEC *decoder, void *bitmap, JRECT *rect) return 0; } -static uint32_t _jpg_read(JDEC *decoder, uint8_t *buf, uint32_t len) +static unsigned int _jpg_read(JDEC *decoder, uint8_t *buf, unsigned int len) { esp_jpg_decoder_t * jpeg = (esp_jpg_decoder_t *)decoder->device; if (jpeg->len && len > (jpeg->len - jpeg->index)) { diff --git a/code/components/esp32-camera-master/conversions/jpge.cpp b/code/components/esp32-camera-master/conversions/jpge.cpp index a8ab93e0..dd6790e6 100644 --- a/code/components/esp32-camera-master/conversions/jpge.cpp +++ b/code/components/esp32-camera-master/conversions/jpge.cpp @@ -29,7 +29,12 @@ namespace jpge { if(b){ return b; } + // check if SPIRAM is enabled and allocate on SPIRAM if allocatable +#if (CONFIG_SPIRAM_SUPPORT && (CONFIG_SPIRAM_USE_CAPS_ALLOC || CONFIG_SPIRAM_USE_MALLOC)) return heap_caps_malloc(nSize, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); +#else + return NULL; +#endif } static inline void jpge_free(void *p) { free(p); } diff --git a/code/components/esp32-camera-master/conversions/to_bmp.c b/code/components/esp32-camera-master/conversions/to_bmp.c index 5a54bdba..27072f71 100644 --- a/code/components/esp32-camera-master/conversions/to_bmp.c +++ b/code/components/esp32-camera-master/conversions/to_bmp.c @@ -21,19 +21,6 @@ #include "esp_jpg_decode.h" #include "esp_system.h" -#if ESP_IDF_VERSION_MAJOR >= 4 // IDF 4+ -#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4 -#include "esp32/spiram.h" -#elif CONFIG_IDF_TARGET_ESP32S2 -#include "esp32s2/spiram.h" -#elif CONFIG_IDF_TARGET_ESP32S3 -#include "esp32s3/spiram.h" -#else -#error Target CONFIG_IDF_TARGET is not supported -#endif -#else // ESP32 Before IDF 4.0 -#include "esp_spiram.h" -#endif #if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) #include "esp32-hal-log.h" @@ -72,7 +59,12 @@ typedef struct { static void *_malloc(size_t size) { + // check if SPIRAM is enabled and allocate on SPIRAM if allocatable +#if (CONFIG_SPIRAM_SUPPORT && (CONFIG_SPIRAM_USE_CAPS_ALLOC || CONFIG_SPIRAM_USE_MALLOC)) return heap_caps_malloc(size, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); +#endif + // try allocating in internal memory + return malloc(size); } //output buffer and image width @@ -168,7 +160,7 @@ static bool _rgb565_write(void * arg, uint16_t x, uint16_t y, uint16_t w, uint16 } //input buffer -static uint32_t _jpg_read(void * arg, size_t index, uint8_t *buf, size_t len) +static unsigned int _jpg_read(void * arg, size_t index, uint8_t *buf, size_t len) { rgb_jpg_decoder * jpeg = (rgb_jpg_decoder *)arg; if(buf) { @@ -310,7 +302,13 @@ bool fmt2bmp(uint8_t *src, size_t src_len, uint16_t width, uint16_t height, pixf *out_len = 0; int pix_count = width*height; - size_t out_size = (pix_count * 3) + BMP_HEADER_LEN; + + // With BMP, 8-bit greyscale requires a palette. + // For a 640x480 image though, that's a savings + // over going RGB-24. + int bpp = (format == PIXFORMAT_GRAYSCALE) ? 1 : 3; + int palette_size = (format == PIXFORMAT_GRAYSCALE) ? 4 * 256 : 0; + size_t out_size = (pix_count * bpp) + BMP_HEADER_LEN + palette_size; uint8_t * out_buf = (uint8_t *)_malloc(out_size); if(!out_buf) { ESP_LOGE(TAG, "_malloc failed! %u", out_size); @@ -322,45 +320,51 @@ bool fmt2bmp(uint8_t *src, size_t src_len, uint16_t width, uint16_t height, pixf bmp_header_t * bitmap = (bmp_header_t*)&out_buf[2]; bitmap->reserved = 0; bitmap->filesize = out_size; - bitmap->fileoffset_to_pixelarray = BMP_HEADER_LEN; + bitmap->fileoffset_to_pixelarray = BMP_HEADER_LEN + palette_size; bitmap->dibheadersize = 40; bitmap->width = width; bitmap->height = -height;//set negative for top to bottom bitmap->planes = 1; - bitmap->bitsperpixel = 24; + bitmap->bitsperpixel = bpp * 8; bitmap->compression = 0; - bitmap->imagesize = pix_count * 3; + bitmap->imagesize = pix_count * bpp; bitmap->ypixelpermeter = 0x0B13 ; //2835 , 72 DPI bitmap->xpixelpermeter = 0x0B13 ; //2835 , 72 DPI bitmap->numcolorspallette = 0; bitmap->mostimpcolor = 0; - uint8_t * rgb_buf = out_buf + BMP_HEADER_LEN; + uint8_t * palette_buf = out_buf + BMP_HEADER_LEN; + uint8_t * pix_buf = palette_buf + palette_size; uint8_t * src_buf = src; + if (palette_size > 0) { + // Grayscale palette + for (int i = 0; i < 256; ++i) { + for (int j = 0; j < 3; ++j) { + *palette_buf = i; + palette_buf++; + } + // Reserved / alpha channel. + *palette_buf = 0; + palette_buf++; + } + } //convert data to RGB888 if(format == PIXFORMAT_RGB888) { - memcpy(rgb_buf, src_buf, pix_count*3); + memcpy(pix_buf, src_buf, pix_count*3); } else if(format == PIXFORMAT_RGB565) { int i; uint8_t hb, lb; for(i=0; i> 3; - *rgb_buf++ = hb & 0xF8; + *pix_buf++ = (lb & 0x1F) << 3; + *pix_buf++ = (hb & 0x07) << 5 | (lb & 0xE0) >> 3; + *pix_buf++ = hb & 0xF8; } } else if(format == PIXFORMAT_GRAYSCALE) { - int i; - uint8_t b; - for(i=0; i= 4 // IDF 4+ -#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4 -#include "esp32/spiram.h" -#elif CONFIG_IDF_TARGET_ESP32S2 -#include "esp32s2/spiram.h" -#elif CONFIG_IDF_TARGET_ESP32S3 -#include "esp32s3/spiram.h" -#else -#error Target CONFIG_IDF_TARGET is not supported -#endif -#else // ESP32 Before IDF 4.0 -#include "esp_spiram.h" -#endif - #if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) #include "esp32-hal-log.h" #define TAG "" @@ -50,7 +35,12 @@ static void *_malloc(size_t size) if(res) { return res; } + + // check if SPIRAM is enabled and is allocatable +#if (CONFIG_SPIRAM_SUPPORT && (CONFIG_SPIRAM_USE_CAPS_ALLOC || CONFIG_SPIRAM_USE_MALLOC)) return heap_caps_malloc(size, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); +#endif + return NULL; } static IRAM_ATTR void convert_line_format(uint8_t * src, pixformat_t format, uint8_t * dst, size_t width, size_t in_channels, size_t line) diff --git a/code/components/esp32-camera-master/driver/cam_hal.c b/code/components/esp32-camera-master/driver/cam_hal.c index 9b7e12b5..27f66b68 100644 --- a/code/components/esp32-camera-master/driver/cam_hal.c +++ b/code/components/esp32-camera-master/driver/cam_hal.c @@ -18,8 +18,27 @@ #include "ll_cam.h" #include "cam_hal.h" -static const char *TAG = "cam_hal"; +#if (ESP_IDF_VERSION_MAJOR == 3) && (ESP_IDF_VERSION_MINOR == 3) +#include "rom/ets_sys.h" +#else +#include "esp_timer.h" +#if CONFIG_IDF_TARGET_ESP32 +#include "esp32/rom/ets_sys.h" // will be removed in idf v5.0 +#elif CONFIG_IDF_TARGET_ESP32S2 +#include "esp32s2/rom/ets_sys.h" +#elif CONFIG_IDF_TARGET_ESP32S3 +#include "esp32s3/rom/ets_sys.h" +#endif +#endif // ESP_IDF_VERSION_MAJOR +#define ESP_CAMERA_ETS_PRINTF ets_printf +#if CONFIG_CAM_TASK_STACK_SIZE +#define CAM_TASK_STACK CONFIG_CAM_TASK_STACK_SIZE +#else +#define CAM_TASK_STACK (2*1024) +#endif + +static const char *TAG = "cam_hal"; static cam_obj_t *cam_obj = NULL; static const uint32_t JPEG_SOI_MARKER = 0xFFD8FF; // written in little-endian for esp32 @@ -32,7 +51,7 @@ static int cam_verify_jpeg_soi(const uint8_t *inbuf, uint32_t length) for (uint32_t i = 0; i < length; i++) { sig = *((uint32_t *)(&inbuf[i])) & 0xFFFFFF; if (sig == JPEG_SOI_MARKER) { - ESP_LOGW(TAG, "SOI: %d", i); + ESP_LOGW(TAG, "SOI: %d", (int) i); return i; } } @@ -93,7 +112,7 @@ void IRAM_ATTR ll_cam_send_event(cam_obj_t *cam, cam_event_t cam_event, BaseType if (xQueueSendFromISR(cam->event_queue, (void *)&cam_event, HPTaskAwoken) != pdTRUE) { ll_cam_stop(cam); cam->state = CAM_STATE_IDLE; - ESP_EARLY_LOGE(TAG, "EV-%s-OVF", cam_event==CAM_IN_SUC_EOF_EVENT ? "EOF" : "VSYNC"); + ESP_CAMERA_ETS_PRINTF(DRAM_STR("cam_hal: EV-%s-OVF\r\n"), cam_event==CAM_IN_SUC_EOF_EVENT ? DRAM_STR("EOF") : DRAM_STR("VSYNC")); } } @@ -104,7 +123,7 @@ static void cam_task(void *arg) int frame_pos = 0; cam_obj->state = CAM_STATE_IDLE; cam_event_t cam_event = 0; - + xQueueReset(cam_obj->event_queue); while (1) { @@ -127,7 +146,7 @@ static void cam_task(void *arg) case CAM_STATE_READ_BUF: { camera_fb_t * frame_buffer_event = &cam_obj->frames[frame_pos].fb; size_t pixels_per_dma = (cam_obj->dma_half_buffer_size * cam_obj->fb_bytes_per_pixel) / (cam_obj->dma_bytes_per_item * cam_obj->in_bytes_per_pixel); - + if (cam_event == CAM_IN_SUC_EOF_EVENT) { if(!cam_obj->psram_mode){ if (cam_obj->fb_size < (frame_buffer_event->len + pixels_per_dma)) { @@ -137,8 +156,8 @@ static void cam_task(void *arg) continue; } frame_buffer_event->len += ll_cam_memcpy(cam_obj, - &frame_buffer_event->buf[frame_buffer_event->len], - &cam_obj->dma_buffer[(cnt % cam_obj->dma_half_buffer_cnt) * cam_obj->dma_half_buffer_size], + &frame_buffer_event->buf[frame_buffer_event->len], + &cam_obj->dma_buffer[(cnt % cam_obj->dma_half_buffer_cnt) * cam_obj->dma_half_buffer_size], cam_obj->dma_half_buffer_size); } //Check for JPEG SOI in the first buffer. stop if not found @@ -160,8 +179,8 @@ static void cam_task(void *arg) cnt--; } else { frame_buffer_event->len += ll_cam_memcpy(cam_obj, - &frame_buffer_event->buf[frame_buffer_event->len], - &cam_obj->dma_buffer[(cnt % cam_obj->dma_half_buffer_cnt) * cam_obj->dma_half_buffer_size], + &frame_buffer_event->buf[frame_buffer_event->len], + &cam_obj->dma_buffer[(cnt % cam_obj->dma_half_buffer_cnt) * cam_obj->dma_half_buffer_size], cam_obj->dma_half_buffer_size); } } @@ -179,7 +198,7 @@ static void cam_task(void *arg) } else if (!cam_obj->jpeg_mode) { if (frame_buffer_event->len != cam_obj->fb_size) { cam_obj->frames[frame_pos].en = 1; - ESP_LOGE(TAG, "FB-SIZE: %u != %u", frame_buffer_event->len, cam_obj->fb_size); + ESP_LOGE(TAG, "FB-SIZE: %u != %u", frame_buffer_event->len, (unsigned) cam_obj->fb_size); } } //send frame @@ -245,8 +264,9 @@ static esp_err_t cam_dma_config(const camera_config_t *config) cam_obj->dma_node_cnt = (cam_obj->dma_buffer_size) / cam_obj->dma_node_buffer_size; // Number of DMA nodes cam_obj->frame_copy_cnt = cam_obj->recv_size / cam_obj->dma_half_buffer_size; // Number of interrupted copies, ping-pong copy - ESP_LOGI(TAG, "buffer_size: %d, half_buffer_size: %d, node_buffer_size: %d, node_cnt: %d, total_cnt: %d", - cam_obj->dma_buffer_size, cam_obj->dma_half_buffer_size, cam_obj->dma_node_buffer_size, cam_obj->dma_node_cnt, cam_obj->frame_copy_cnt); + ESP_LOGI(TAG, "buffer_size: %d, half_buffer_size: %d, node_buffer_size: %d, node_cnt: %d, total_cnt: %d", + (int) cam_obj->dma_buffer_size, (int) cam_obj->dma_half_buffer_size, (int) cam_obj->dma_node_buffer_size, + (int) cam_obj->dma_node_cnt, (int) cam_obj->frame_copy_cnt); cam_obj->dma_buffer = NULL; cam_obj->dma = NULL; @@ -276,13 +296,19 @@ static esp_err_t cam_dma_config(const camera_config_t *config) cam_obj->frames[x].fb_offset = 0; cam_obj->frames[x].en = 0; ESP_LOGI(TAG, "Allocating %d Byte frame buffer in %s", alloc_size, _caps & MALLOC_CAP_SPIRAM ? "PSRAM" : "OnBoard RAM"); +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0) + // In IDF v4.2 and earlier, memory returned by heap_caps_aligned_alloc must be freed using heap_caps_aligned_free. + // And heap_caps_aligned_free is deprecated on v4.3. + cam_obj->frames[x].fb.buf = (uint8_t *)heap_caps_aligned_alloc(16, alloc_size, _caps); +#else cam_obj->frames[x].fb.buf = (uint8_t *)heap_caps_malloc(alloc_size, _caps); +#endif CAM_CHECK(cam_obj->frames[x].fb.buf != NULL, "frame buffer malloc failed", ESP_FAIL); if (cam_obj->psram_mode) { //align PSRAM buffer. TODO: save the offset so proper address can be freed later cam_obj->frames[x].fb_offset = dma_align - ((uint32_t)cam_obj->frames[x].fb.buf & (dma_align - 1)); cam_obj->frames[x].fb.buf += cam_obj->frames[x].fb_offset; - ESP_LOGI(TAG, "Frame[%d]: Offset: %u, Addr: 0x%08X", x, cam_obj->frames[x].fb_offset, (uint32_t)cam_obj->frames[x].fb.buf); + ESP_LOGI(TAG, "Frame[%d]: Offset: %u, Addr: 0x%08X", x, cam_obj->frames[x].fb_offset, (unsigned) cam_obj->frames[x].fb.buf); cam_obj->frames[x].dma = allocate_dma_descriptors(cam_obj->dma_node_cnt, cam_obj->dma_node_buffer_size, cam_obj->frames[x].fb.buf); CAM_CHECK(cam_obj->frames[x].dma != NULL, "frame dma malloc failed", ESP_FAIL); } @@ -292,8 +318,8 @@ static esp_err_t cam_dma_config(const camera_config_t *config) if (!cam_obj->psram_mode) { cam_obj->dma_buffer = (uint8_t *)heap_caps_malloc(cam_obj->dma_buffer_size * sizeof(uint8_t), MALLOC_CAP_DMA); if(NULL == cam_obj->dma_buffer) { - ESP_LOGE(TAG,"%s(%d): DMA buffer %d Byte malloc failed, the current largest free block:%d Byte", __FUNCTION__, __LINE__, - cam_obj->dma_buffer_size, heap_caps_get_largest_free_block(MALLOC_CAP_DMA)); + ESP_LOGE(TAG,"%s(%d): DMA buffer %d Byte malloc failed, the current largest free block:%d Byte", __FUNCTION__, __LINE__, + (int) cam_obj->dma_buffer_size, (int) heap_caps_get_largest_free_block(MALLOC_CAP_DMA)); return ESP_FAIL; } @@ -359,7 +385,7 @@ esp_err_t cam_config(const camera_config_t *config, framesize_t frame_size, uint cam_obj->recv_size = cam_obj->width * cam_obj->height * cam_obj->in_bytes_per_pixel; cam_obj->fb_size = cam_obj->width * cam_obj->height * cam_obj->fb_bytes_per_pixel; } - + ret = cam_dma_config(config); CAM_CHECK_GOTO(ret == ESP_OK, "cam_dma_config failed", err); @@ -376,13 +402,13 @@ esp_err_t cam_config(const camera_config_t *config, framesize_t frame_size, uint ret = ll_cam_init_isr(cam_obj); CAM_CHECK_GOTO(ret == ESP_OK, "cam intr alloc failed", err); - + #if CONFIG_CAMERA_CORE0 - xTaskCreatePinnedToCore(cam_task, "cam_task", 2048, NULL, configMAX_PRIORITIES - 2, &cam_obj->task_handle, 0); + xTaskCreatePinnedToCore(cam_task, "cam_task", CAM_TASK_STACK, NULL, configMAX_PRIORITIES - 2, &cam_obj->task_handle, 0); #elif CONFIG_CAMERA_CORE1 - xTaskCreatePinnedToCore(cam_task, "cam_task", 2048, NULL, configMAX_PRIORITIES - 2, &cam_obj->task_handle, 1); + xTaskCreatePinnedToCore(cam_task, "cam_task", CAM_TASK_STACK, NULL, configMAX_PRIORITIES - 2, &cam_obj->task_handle, 1); #else - xTaskCreate(cam_task, "cam_task", 2048, NULL, configMAX_PRIORITIES - 2, &cam_obj->task_handle); + xTaskCreate(cam_task, "cam_task", CAM_TASK_STACK, NULL, configMAX_PRIORITIES - 2, &cam_obj->task_handle); #endif ESP_LOGI(TAG, "cam config ok"); diff --git a/code/components/esp32-camera-master/driver/esp_camera.c b/code/components/esp32-camera-master/driver/esp_camera.c index 5b671c0e..5d6c97d0 100644 --- a/code/components/esp32-camera-master/driver/esp_camera.c +++ b/code/components/esp32-camera-master/driver/esp_camera.c @@ -57,6 +57,15 @@ #if CONFIG_BF3005_SUPPORT #include "bf3005.h" #endif +#if CONFIG_BF20A6_SUPPORT +#include "bf20a6.h" +#endif +#if CONFIG_SC101IOT_SUPPORT +#include "sc101iot.h" +#endif +#if CONFIG_SC030IOT_SUPPORT +#include "sc030iot.h" +#endif #if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) #include "esp32-hal-log.h" @@ -119,10 +128,20 @@ static const sensor_func_t g_sensors[] = { #if CONFIG_BF3005_SUPPORT {bf3005_detect, bf3005_init}, #endif +#if CONFIG_BF20A6_SUPPORT + {bf20a6_detect, bf20a6_init}, +#endif +#if CONFIG_SC101IOT_SUPPORT + {sc101iot_detect, sc101iot_init}, +#endif +#if CONFIG_SC030IOT_SUPPORT + {sc030iot_detect, sc030iot_init}, +#endif }; static esp_err_t camera_probe(const camera_config_t *config, camera_model_t *out_camera_model) { + esp_err_t ret = ESP_OK; *out_camera_model = CAMERA_NONE; if (s_state != NULL) { return ESP_ERR_INVALID_STATE; @@ -138,9 +157,17 @@ static esp_err_t camera_probe(const camera_config_t *config, camera_model_t *out CAMERA_ENABLE_OUT_CLOCK(config); } - if (config->pin_sscb_sda != -1) { - ESP_LOGD(TAG, "Initializing SSCB"); - SCCB_Init(config->pin_sscb_sda, config->pin_sscb_scl); + if (config->pin_sccb_sda != -1) { + ESP_LOGD(TAG, "Initializing SCCB"); + ret = SCCB_Init(config->pin_sccb_sda, config->pin_sccb_scl); + } else { + ESP_LOGD(TAG, "Using existing I2C port"); + ret = SCCB_Use_Port(config->sccb_i2c_port); + } + + if(ret != ESP_OK) { + ESP_LOGE(TAG, "sccb init err"); + goto err; } if (config->pin_pwdn >= 0) { @@ -170,15 +197,14 @@ static esp_err_t camera_probe(const camera_config_t *config, camera_model_t *out vTaskDelay(10 / portTICK_PERIOD_MS); } - ESP_LOGD(TAG, "Searching for camera address"); vTaskDelay(10 / portTICK_PERIOD_MS); uint8_t slv_addr = SCCB_Probe(); if (slv_addr == 0) { - CAMERA_DISABLE_OUT_CLOCK(); - return ESP_ERR_NOT_FOUND; + ret = ESP_ERR_NOT_FOUND; + goto err; } ESP_LOGI(TAG, "Detected camera at address=0x%02x", slv_addr); @@ -203,9 +229,9 @@ static esp_err_t camera_probe(const camera_config_t *config, camera_model_t *out } if (CAMERA_NONE == *out_camera_model) { //If no supported sensors are detected - CAMERA_DISABLE_OUT_CLOCK(); ESP_LOGE(TAG, "Detected camera not supported."); - return ESP_ERR_NOT_SUPPORTED; + ret = ESP_ERR_NOT_SUPPORTED; + goto err; } ESP_LOGI(TAG, "Camera PID=0x%02x VER=0x%02x MIDL=0x%02x MIDH=0x%02x", @@ -213,11 +239,30 @@ static esp_err_t camera_probe(const camera_config_t *config, camera_model_t *out ESP_LOGD(TAG, "Doing SW reset of sensor"); vTaskDelay(10 / portTICK_PERIOD_MS); - s_state->sensor.reset(&s_state->sensor); - - return ESP_OK; + + return s_state->sensor.reset(&s_state->sensor); +err : + CAMERA_DISABLE_OUT_CLOCK(); + return ret; } +#if CONFIG_CAMERA_CONVERTER_ENABLED +static pixformat_t get_output_data_format(camera_conv_mode_t conv_mode) +{ + pixformat_t format = PIXFORMAT_RGB565; + switch (conv_mode) { + case YUV422_TO_YUV420: + format = PIXFORMAT_YUV420; + break; + case YUV422_TO_RGB565: // default format is RGB565 + default: + break; + } + ESP_LOGD(TAG, "Convert to %d format enabled", format); + return format; +} +#endif + esp_err_t esp_camera_init(const camera_config_t *config) { esp_err_t err; @@ -256,6 +301,7 @@ esp_err_t esp_camera_init(const camera_config_t *config) s_state->sensor.status.framesize = frame_size; s_state->sensor.pixformat = pix_format; + ESP_LOGD(TAG, "Setting frame size to %dx%d", resolution[frame_size].width, resolution[frame_size].height); if (s_state->sensor.set_framesize(&s_state->sensor, frame_size) != 0) { ESP_LOGE(TAG, "Failed to set frame size"); @@ -263,6 +309,11 @@ esp_err_t esp_camera_init(const camera_config_t *config) goto fail; } s_state->sensor.set_pixformat(&s_state->sensor, pix_format); +#if CONFIG_CAMERA_CONVERTER_ENABLED + if(config->conv_mode) { + s_state->sensor.pixformat = get_output_data_format(config->conv_mode); // If conversion enabled, change the out data format by conversion mode + } +#endif if (s_state->sensor.id.PID == OV2640_PID) { s_state->sensor.set_gainceiling(&s_state->sensor, GAINCEILING_2X); diff --git a/code/components/esp32-camera-master/driver/include/esp_camera.h b/code/components/esp32-camera-master/driver/include/esp_camera.h index b6047d31..ee84b307 100644 --- a/code/components/esp32-camera-master/driver/include/esp_camera.h +++ b/code/components/esp32-camera-master/driver/include/esp_camera.h @@ -18,8 +18,8 @@ .pin_pwdn = PIN_PWDN, .pin_reset = PIN_RESET, .pin_xclk = PIN_XCLK, - .pin_sscb_sda = PIN_SIOD, - .pin_sscb_scl = PIN_SIOC, + .pin_sccb_sda = PIN_SIOD, + .pin_sccb_scl = PIN_SIOC, .pin_d7 = PIN_D7, .pin_d6 = PIN_D6, .pin_d5 = PIN_D5, @@ -70,6 +70,7 @@ #include "driver/ledc.h" #include "sensor.h" #include "sys/time.h" +#include "sdkconfig.h" #ifdef __cplusplus extern "C" { @@ -91,6 +92,19 @@ typedef enum { CAMERA_FB_IN_DRAM /*!< Frame buffer is placed in internal DRAM */ } camera_fb_location_t; +#if CONFIG_CAMERA_CONVERTER_ENABLED +/** + * @brief Camera RGB\YUV conversion mode + */ +typedef enum { + CONV_DISABLE, + RGB565_TO_YUV422, + + YUV422_TO_RGB565, + YUV422_TO_YUV420 +} camera_conv_mode_t; +#endif + /** * @brief Configuration structure for camera initialization */ @@ -98,8 +112,14 @@ typedef struct { int pin_pwdn; /*!< GPIO pin for camera power down line */ int pin_reset; /*!< GPIO pin for camera reset line */ int pin_xclk; /*!< GPIO pin for camera XCLK line */ - int pin_sscb_sda; /*!< GPIO pin for camera SDA line */ - int pin_sscb_scl; /*!< GPIO pin for camera SCL line */ + union { + int pin_sccb_sda; /*!< GPIO pin for camera SDA line */ + int pin_sscb_sda __attribute__((deprecated("please use pin_sccb_sda instead"))); /*!< GPIO pin for camera SDA line (legacy name) */ + }; + union { + int pin_sccb_scl; /*!< GPIO pin for camera SCL line */ + int pin_sscb_scl __attribute__((deprecated("please use pin_sccb_scl instead"))); /*!< GPIO pin for camera SCL line (legacy name) */ + }; int pin_d7; /*!< GPIO pin for camera D7 line */ int pin_d6; /*!< GPIO pin for camera D6 line */ int pin_d5; /*!< GPIO pin for camera D5 line */ @@ -124,6 +144,11 @@ typedef struct { size_t fb_count; /*!< Number of frame buffers to be allocated. If more than one, then each frame will be acquired (double speed) */ camera_fb_location_t fb_location; /*!< The location where the frame buffer will be allocated */ camera_grab_mode_t grab_mode; /*!< When buffers should be filled */ +#if CONFIG_CAMERA_CONVERTER_ENABLED + camera_conv_mode_t conv_mode; /*!< RGB<->YUV Conversion mode */ +#endif + + int sccb_i2c_port; /*!< If pin_sccb_sda is -1, use the already configured I2C bus by number */ } camera_config_t; /** diff --git a/code/components/esp32-camera-master/driver/include/sensor.h b/code/components/esp32-camera-master/driver/include/sensor.h index b2bf55f1..4aa14c90 100644 --- a/code/components/esp32-camera-master/driver/include/sensor.h +++ b/code/components/esp32-camera-master/driver/include/sensor.h @@ -27,6 +27,9 @@ typedef enum { GC032A_PID = 0x232a, GC0308_PID = 0x9b, BF3005_PID = 0x30, + BF20A6_PID = 0x20a6, + SC101IOT_PID = 0xda4a, + SC030IOT_PID = 0x9a46, } camera_pid_t; typedef enum { @@ -40,6 +43,9 @@ typedef enum { CAMERA_GC032A, CAMERA_GC0308, CAMERA_BF3005, + CAMERA_BF20A6, + CAMERA_SC101IOT, + CAMERA_SC030IOT, CAMERA_MODEL_MAX, CAMERA_NONE, } camera_model_t; @@ -55,11 +61,15 @@ typedef enum { GC032A_SCCB_ADDR = 0x21,// 0x42 >> 1 GC0308_SCCB_ADDR = 0x21,// 0x42 >> 1 BF3005_SCCB_ADDR = 0x6E, + BF20A6_SCCB_ADDR = 0x6E, + SC101IOT_SCCB_ADDR = 0x68,// 0xd0 >> 1 + SC030IOT_SCCB_ADDR = 0x68,// 0xd0 >> 1 } camera_sccb_addr_t; typedef enum { PIXFORMAT_RGB565, // 2BPP/RGB565 PIXFORMAT_YUV422, // 2BPP/YUV422 + PIXFORMAT_YUV420, // 1.5BPP/YUV420 PIXFORMAT_GRAYSCALE, // 1BPP/GRAYSCALE PIXFORMAT_JPEG, // JPEG/COMPRESSED PIXFORMAT_RGB888, // 3BPP/RGB888 @@ -199,7 +209,7 @@ typedef struct _sensor { // Sensor function pointers int (*init_status) (sensor_t *sensor); - int (*reset) (sensor_t *sensor); + int (*reset) (sensor_t *sensor); // Reset the configuration of the sensor, and return ESP_OK if reset is successful int (*set_pixformat) (sensor_t *sensor, pixformat_t pixformat); int (*set_framesize) (sensor_t *sensor, framesize_t framesize); int (*set_contrast) (sensor_t *sensor, int level); diff --git a/code/components/esp32-camera-master/driver/private_include/sccb.h b/code/components/esp32-camera-master/driver/private_include/sccb.h index ace081a4..9e445338 100644 --- a/code/components/esp32-camera-master/driver/private_include/sccb.h +++ b/code/components/esp32-camera-master/driver/private_include/sccb.h @@ -10,6 +10,7 @@ #define __SCCB_H__ #include int SCCB_Init(int pin_sda, int pin_scl); +int SCCB_Use_Port(int sccb_i2c_port); int SCCB_Deinit(void); uint8_t SCCB_Probe(); uint8_t SCCB_Read(uint8_t slv_addr, uint8_t reg); diff --git a/code/components/esp32-camera-master/driver/sccb.c b/code/components/esp32-camera-master/driver/sccb.c index 314dd982..945bd9bd 100644 --- a/code/components/esp32-camera-master/driver/sccb.c +++ b/code/components/esp32-camera-master/driver/sccb.c @@ -25,6 +25,11 @@ static const char* TAG = "sccb"; #include "driver/i2c.h" +// support IDF 5.x +#ifndef portTICK_RATE_MS +#define portTICK_RATE_MS portTICK_PERIOD_MS +#endif + #define SCCB_FREQ CONFIG_SCCB_CLK_FREQ /*!< I2C master frequency*/ #define WRITE_BIT I2C_MASTER_WRITE /*!< I2C master write */ #define READ_BIT I2C_MASTER_READ /*!< I2C master read */ @@ -33,16 +38,26 @@ static const char* TAG = "sccb"; #define ACK_VAL 0x0 /*!< I2C ack value */ #define NACK_VAL 0x1 /*!< I2C nack value */ #if CONFIG_SCCB_HARDWARE_I2C_PORT1 -const int SCCB_I2C_PORT = 1; +const int SCCB_I2C_PORT_DEFAULT = 1; #else -const int SCCB_I2C_PORT = 0; +const int SCCB_I2C_PORT_DEFAULT = 0; #endif +static int sccb_i2c_port; +static bool sccb_owns_i2c_port; + int SCCB_Init(int pin_sda, int pin_scl) { ESP_LOGI(TAG, "pin_sda %d pin_scl %d", pin_sda, pin_scl); i2c_config_t conf; + esp_err_t ret; + memset(&conf, 0, sizeof(i2c_config_t)); + + sccb_i2c_port = SCCB_I2C_PORT_DEFAULT; + sccb_owns_i2c_port = true; + ESP_LOGI(TAG, "sccb_i2c_port=%d\n", sccb_i2c_port); + conf.mode = I2C_MODE_MASTER; conf.sda_io_num = pin_sda; conf.sda_pullup_en = GPIO_PULLUP_ENABLE; @@ -50,30 +65,37 @@ int SCCB_Init(int pin_sda, int pin_scl) conf.scl_pullup_en = GPIO_PULLUP_ENABLE; conf.master.clk_speed = SCCB_FREQ; - i2c_param_config(SCCB_I2C_PORT, &conf); - i2c_driver_install(SCCB_I2C_PORT, conf.mode, 0, 0, 0); - return 0; + if ((ret = i2c_param_config(sccb_i2c_port, &conf)) != ESP_OK) { + return ret; + } + + return i2c_driver_install(sccb_i2c_port, conf.mode, 0, 0, 0); +} + +int SCCB_Use_Port(int i2c_num) { // sccb use an already initialized I2C port + if (sccb_owns_i2c_port) { + SCCB_Deinit(); + } + if (i2c_num < 0 || i2c_num > I2C_NUM_MAX) { + return ESP_ERR_INVALID_ARG; + } + sccb_i2c_port = i2c_num; + return ESP_OK; } int SCCB_Deinit(void) { - return i2c_driver_delete(SCCB_I2C_PORT); + if (!sccb_owns_i2c_port) { + return ESP_OK; + } + sccb_owns_i2c_port = false; + return i2c_driver_delete(sccb_i2c_port); } uint8_t SCCB_Probe(void) { uint8_t slave_addr = 0x0; - // for (size_t i = 1; i < 0x80; i++) { - // i2c_cmd_handle_t cmd = i2c_cmd_link_create(); - // i2c_master_start(cmd); - // i2c_master_write_byte(cmd, ( i << 1 ) | WRITE_BIT, ACK_CHECK_EN); - // i2c_master_stop(cmd); - // esp_err_t ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); - // i2c_cmd_link_delete(cmd); - // if( ret == ESP_OK) { - // ESP_LOGW(TAG, "Found I2C Device at 0x%02X", i); - // } - // } + for (size_t i = 0; i < CAMERA_MODEL_MAX; i++) { if (slave_addr == camera_sensor[i].sccb_addr) { continue; @@ -83,7 +105,7 @@ uint8_t SCCB_Probe(void) i2c_master_start(cmd); i2c_master_write_byte(cmd, ( slave_addr << 1 ) | WRITE_BIT, ACK_CHECK_EN); i2c_master_stop(cmd); - esp_err_t ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + esp_err_t ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if( ret == ESP_OK) { return slave_addr; @@ -101,7 +123,7 @@ uint8_t SCCB_Read(uint8_t slv_addr, uint8_t reg) i2c_master_write_byte(cmd, ( slv_addr << 1 ) | WRITE_BIT, ACK_CHECK_EN); i2c_master_write_byte(cmd, reg, ACK_CHECK_EN); i2c_master_stop(cmd); - ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if(ret != ESP_OK) return -1; cmd = i2c_cmd_link_create(); @@ -109,7 +131,7 @@ uint8_t SCCB_Read(uint8_t slv_addr, uint8_t reg) i2c_master_write_byte(cmd, ( slv_addr << 1 ) | READ_BIT, ACK_CHECK_EN); i2c_master_read_byte(cmd, &data, NACK_VAL); i2c_master_stop(cmd); - ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if(ret != ESP_OK) { ESP_LOGE(TAG, "SCCB_Read Failed addr:0x%02x, reg:0x%02x, data:0x%02x, ret:%d", slv_addr, reg, data, ret); @@ -126,7 +148,7 @@ uint8_t SCCB_Write(uint8_t slv_addr, uint8_t reg, uint8_t data) i2c_master_write_byte(cmd, reg, ACK_CHECK_EN); i2c_master_write_byte(cmd, data, ACK_CHECK_EN); i2c_master_stop(cmd); - ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if(ret != ESP_OK) { ESP_LOGE(TAG, "SCCB_Write Failed addr:0x%02x, reg:0x%02x, data:0x%02x, ret:%d", slv_addr, reg, data, ret); @@ -146,7 +168,7 @@ uint8_t SCCB_Read16(uint8_t slv_addr, uint16_t reg) i2c_master_write_byte(cmd, reg_u8[0], ACK_CHECK_EN); i2c_master_write_byte(cmd, reg_u8[1], ACK_CHECK_EN); i2c_master_stop(cmd); - ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if(ret != ESP_OK) return -1; cmd = i2c_cmd_link_create(); @@ -154,7 +176,7 @@ uint8_t SCCB_Read16(uint8_t slv_addr, uint16_t reg) i2c_master_write_byte(cmd, ( slv_addr << 1 ) | READ_BIT, ACK_CHECK_EN); i2c_master_read_byte(cmd, &data, NACK_VAL); i2c_master_stop(cmd); - ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if(ret != ESP_OK) { ESP_LOGE(TAG, "W [%04x]=%02x fail\n", reg, data); @@ -175,7 +197,7 @@ uint8_t SCCB_Write16(uint8_t slv_addr, uint16_t reg, uint8_t data) i2c_master_write_byte(cmd, reg_u8[1], ACK_CHECK_EN); i2c_master_write_byte(cmd, data, ACK_CHECK_EN); i2c_master_stop(cmd); - ret = i2c_master_cmd_begin(SCCB_I2C_PORT, cmd, 1000 / portTICK_RATE_MS); + ret = i2c_master_cmd_begin(sccb_i2c_port, cmd, 1000 / portTICK_RATE_MS); i2c_cmd_link_delete(cmd); if(ret != ESP_OK) { ESP_LOGE(TAG, "W [%04x]=%02x %d fail\n", reg, data, i++); diff --git a/code/components/esp32-camera-master/driver/sensor.c b/code/components/esp32-camera-master/driver/sensor.c index bf6d313f..2f4c9711 100644 --- a/code/components/esp32-camera-master/driver/sensor.c +++ b/code/components/esp32-camera-master/driver/sensor.c @@ -13,6 +13,9 @@ const camera_sensor_info_t camera_sensor[CAMERA_MODEL_MAX] = { {CAMERA_GC032A, "GC032A", GC032A_SCCB_ADDR, GC032A_PID, FRAMESIZE_VGA, false}, {CAMERA_GC0308, "GC0308", GC0308_SCCB_ADDR, GC0308_PID, FRAMESIZE_VGA, false}, {CAMERA_BF3005, "BF3005", BF3005_SCCB_ADDR, BF3005_PID, FRAMESIZE_VGA, false}, + {CAMERA_BF20A6, "BF20A6", BF20A6_SCCB_ADDR, BF20A6_PID, FRAMESIZE_VGA, false}, + {CAMERA_SC101IOT, "SC101IOT", SC101IOT_SCCB_ADDR, SC101IOT_PID, FRAMESIZE_HD, false}, + {CAMERA_SC030IOT, "SC030IOT", SC030IOT_SCCB_ADDR, SC030IOT_PID, FRAMESIZE_VGA, false}, }; const resolution_info_t resolution[FRAMESIZE_INVALID] = { diff --git a/code/components/esp32-camera-master/examples/main/take_picture.c b/code/components/esp32-camera-master/examples/main/take_picture.c index 1cbad908..783fcc01 100644 --- a/code/components/esp32-camera-master/examples/main/take_picture.c +++ b/code/components/esp32-camera-master/examples/main/take_picture.c @@ -38,6 +38,11 @@ #include "freertos/FreeRTOS.h" #include "freertos/task.h" +// support IDF 5.x +#ifndef portTICK_RATE_MS +#define portTICK_RATE_MS portTICK_PERIOD_MS +#endif + #include "esp_camera.h" #define BOARD_WROVER_KIT 1 @@ -94,8 +99,8 @@ static camera_config_t camera_config = { .pin_pwdn = CAM_PIN_PWDN, .pin_reset = CAM_PIN_RESET, .pin_xclk = CAM_PIN_XCLK, - .pin_sscb_sda = CAM_PIN_SIOD, - .pin_sscb_scl = CAM_PIN_SIOC, + .pin_sccb_sda = CAM_PIN_SIOD, + .pin_sccb_scl = CAM_PIN_SIOC, .pin_d7 = CAM_PIN_D7, .pin_d6 = CAM_PIN_D6, diff --git a/code/components/esp32-camera-master/idf_component.yml b/code/components/esp32-camera-master/idf_component.yml index 848e1cd8..2b98f8d0 100644 --- a/code/components/esp32-camera-master/idf_component.yml +++ b/code/components/esp32-camera-master/idf_component.yml @@ -1,5 +1,2 @@ description: ESP32 compatible driver for OV2640, OV3660, OV5640, OV7670 and OV7725 image sensors. -targets: - - esp32 - - esp32s2 - - esp32s3 +url: https://github.com/espressif/esp32-camera diff --git a/code/components/esp32-camera-master/sensors/bf20a6.c b/code/components/esp32-camera-master/sensors/bf20a6.c new file mode 100644 index 00000000..b1179c30 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/bf20a6.c @@ -0,0 +1,404 @@ +// Copyright 2015-2021 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "sccb.h" +#include "bf20a6.h" +#include "bf20a6_regs.h" +#include "bf20a6_settings.h" + +#if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) +#include "esp32-hal-log.h" +#else +#include "esp_log.h" +static const char *TAG = "bf20a6"; +#endif + +#define H8(v) ((v)>>8) +#define L8(v) ((v)&0xff) + +//#define REG_DEBUG_ON + +static int read_reg(uint8_t slv_addr, const uint16_t reg) +{ + int ret = SCCB_Read(slv_addr, reg); + // ESP_LOGI(TAG, "READ Register 0x%02x VALUE: 0x%02x", reg, ret); +#ifdef REG_DEBUG_ON + if (ret < 0) { + ESP_LOGE(TAG, "READ REG 0x%04x FAILED: %d", reg, ret); + } +#endif + return ret; +} + +static int write_reg(uint8_t slv_addr, const uint16_t reg, uint8_t value) +{ + int ret = SCCB_Write(slv_addr, reg, value); +#ifdef REG_DEBUG_ON + if (ret < 0) { + ESP_LOGE(TAG, "WRITE REG 0x%04x FAILED: %d", reg, ret); + } +#endif + return ret; +} + +#ifdef DEBUG_PRINT_REG +static int check_reg_mask(uint8_t slv_addr, uint16_t reg, uint8_t mask) +{ + return (read_reg(slv_addr, reg) & mask) == mask; +} + +static void print_regs(uint8_t slv_addr) +{ + vTaskDelay(pdMS_TO_TICKS(100)); + ESP_LOGI(TAG, "REG list look ======================"); + for (size_t i = 0xf0; i <= 0xfe; i++) { + ESP_LOGI(TAG, "reg[0x%02x] = 0x%02x", i, read_reg(slv_addr, i)); + } + ESP_LOGI(TAG, "\npage 0 ==="); + write_reg(slv_addr, 0xfe, 0x00); // page 0 + for (size_t i = 0x03; i <= 0x24; i++) { + ESP_LOGI(TAG, "p0 reg[0x%02x] = 0x%02x", i, read_reg(slv_addr, i)); + } + for (size_t i = 0x40; i <= 0x95; i++) { + ESP_LOGI(TAG, "p0 reg[0x%02x] = 0x%02x", i, read_reg(slv_addr, i)); + } + ESP_LOGI(TAG, "\npage 3 ==="); + write_reg(slv_addr, 0xfe, 0x03); // page 3 + for (size_t i = 0x01; i <= 0x43; i++) { + ESP_LOGI(TAG, "p3 reg[0x%02x] = 0x%02x", i, read_reg(slv_addr, i)); + } +} + +static int read_regs(uint8_t slv_addr, const uint16_t(*regs)[2]) +{ + int i = 0, ret = 0; + while (regs[i][0] != REGLIST_TAIL) { + if (regs[i][0] == REG_DLY) { + vTaskDelay(regs[i][1] / portTICK_PERIOD_MS); + } else { + ret = read_reg(slv_addr, regs[i][0]); + } + i++; + } + return ret; +} +#endif + +static int set_reg_bits(sensor_t *sensor, uint8_t reg, uint8_t offset, uint8_t length, uint8_t value) +{ + int ret = 0; + + ret = SCCB_Read(sensor->slv_addr, reg); + if (ret < 0) { + return ret; + } + uint8_t mask = ((1 << length) - 1) << offset; + value = (ret & ~mask) | ((value << offset) & mask); + ret = SCCB_Write(sensor->slv_addr, reg & 0xFF, value); + return ret; +} + +static int write_regs(uint8_t slv_addr, const uint16_t(*regs)[2]) +{ + int i = 0, ret = 0; + while (!ret && regs[i][0] != REGLIST_TAIL) { + if (regs[i][0] == REG_DLY) { + vTaskDelay(regs[i][1] / portTICK_PERIOD_MS); + } else { + ret = write_reg(slv_addr, regs[i][0], regs[i][1]); + } + i++; + } + return ret; +} + +static int reset(sensor_t *sensor) +{ + int ret; + // Software Reset: clear all registers and reset them to their default values + ret = write_reg(sensor->slv_addr, RESET_RELATED, 0x01); + if (ret) { + ESP_LOGE(TAG, "Software Reset FAILED!"); + return ret; + } + vTaskDelay(100 / portTICK_PERIOD_MS); + + ret = write_regs(sensor->slv_addr, bf20a6_default_init_regs); + if (ret == 0) { + ESP_LOGD(TAG, "Camera defaults loaded"); + vTaskDelay(100 / portTICK_PERIOD_MS); + } + + // int test_value = read_regs(sensor->slv_addr, bf20a6_default_init_regs); + + return ret; +} + +static int set_pixformat(sensor_t *sensor, pixformat_t pixformat) +{ + int ret = 0; + switch (pixformat) { + case PIXFORMAT_YUV422: + set_reg_bits(sensor, 0x12, 0, 1, 0); + break; + case PIXFORMAT_RAW: + set_reg_bits(sensor, 0x12, 0, 1, 0x1); + break; + default: + ESP_LOGW(TAG, "set_pix unsupport format"); + ret = -1; + break; + } + if (ret == 0) { + sensor->pixformat = pixformat; + ESP_LOGD(TAG, "Set pixformat to: %u", pixformat); + } + + return ret; +} + +static int set_framesize(sensor_t *sensor, framesize_t framesize) +{ + int ret = 0; + if (framesize > FRAMESIZE_VGA) { + return -1; + } + uint16_t w = resolution[framesize].width; + uint16_t h = resolution[framesize].height; + + sensor->status.framesize = framesize; + + // Write MSBs + ret |= SCCB_Write(sensor->slv_addr, 0x17, 0); + ret |= SCCB_Write(sensor->slv_addr, 0x18, w >> 2); + + ret |= SCCB_Write(sensor->slv_addr, 0x19, 0); + ret |= SCCB_Write(sensor->slv_addr, 0x1a, h >> 2); + + // Write LSBs + ret |= SCCB_Write(sensor->slv_addr, 0x1b, 0); + + if ((w <= 320) && (h <= 240)) { + ret |= SCCB_Write(sensor->slv_addr, 0x17, (80 - w / 4)); + ret |= SCCB_Write(sensor->slv_addr, 0x18, (80 + w / 4)); + + ret |= SCCB_Write(sensor->slv_addr, 0x19, (60 - h / 4)); + + ret |= SCCB_Write(sensor->slv_addr, 0x1a, (60 + h / 4)); + + } else if ((w <= 640) && (h <= 480)) { + ret |= SCCB_Write(sensor->slv_addr, 0x17, (80 - w / 8)); + ret |= SCCB_Write(sensor->slv_addr, 0x18, (80 + w / 8)); + + ret |= SCCB_Write(sensor->slv_addr, 0x19, (60 - h / 8)); + + ret |= SCCB_Write(sensor->slv_addr, 0x1a, (60 + h / 8)); + } + + // Delay + vTaskDelay(30 / portTICK_PERIOD_MS); + + return ret; +} + +static int set_hmirror(sensor_t *sensor, int enable) +{ + int ret = 0; + sensor->status.hmirror = enable; + //ret = write_reg(sensor->slv_addr, 0xfe, 0x00); + ret |= set_reg_bits(sensor, 0x4a, 3, 0x01, enable); + if (ret == 0) { + ESP_LOGD(TAG, "Set h-mirror to: %d", enable); + } + return ret; +} + +static int set_vflip(sensor_t *sensor, int enable) +{ + int ret = 0; + sensor->status.vflip = enable; + //ret = write_reg(sensor->slv_addr, 0xfe, 0x00); + ret |= set_reg_bits(sensor, 0x4a, 2, 0x01, enable); + if (ret == 0) { + ESP_LOGD(TAG, "Set v-flip to: %d", enable); + } + return ret; +} + +static int set_colorbar(sensor_t *sensor, int value) +{ + int ret = 0; + ret = write_reg(sensor->slv_addr, 0xb6, value); + if (ret == 0) { + sensor->status.colorbar = value; + ESP_LOGD(TAG, "Set colorbar to: %d", value); + } + return ret; +} + +static int set_sharpness(sensor_t *sensor, int level) +{ + int ret = 0; + ret = SCCB_Write(sensor->slv_addr, 0x70, level); + if (ret == 0) { + ESP_LOGD(TAG, "Set sharpness to: %d", level); + sensor->status.sharpness = level; + } + return ret; +} + +static int get_reg(sensor_t *sensor, int reg, int mask) +{ + int ret = 0; + if (mask > 0xFF) { + ESP_LOGE(TAG, "mask should not more than 0xff"); + } else { + ret = read_reg(sensor->slv_addr, reg); + } + if (ret > 0) { + ret &= mask; + } + return ret; +} + +static int set_reg(sensor_t *sensor, int reg, int mask, int value) +{ + int ret = 0; + if (mask > 0xFF) { + ESP_LOGE(TAG, "mask should not more than 0xff"); + } else { + ret = read_reg(sensor->slv_addr, reg); + } + if (ret < 0) { + return ret; + } + value = (ret & ~mask) | (value & mask); + + if (mask > 0xFF) { + + } else { + ret = write_reg(sensor->slv_addr, reg, value); + } + return ret; +} + +static int init_status(sensor_t *sensor) +{ + // write_reg(sensor->slv_addr, 0xfe, 0x00); + sensor->status.brightness = SCCB_Read(sensor->slv_addr, 0x6f); + sensor->status.contrast = SCCB_Read(sensor->slv_addr, 0xd6); + sensor->status.saturation = 0; + sensor->status.sharpness = SCCB_Read(sensor->slv_addr, 0x70); + sensor->status.denoise = 0; + sensor->status.ae_level = 0; + sensor->status.gainceiling = SCCB_Read(sensor->slv_addr, 0x13); + sensor->status.awb = 0; + sensor->status.dcw = 0; + sensor->status.agc = 0; + sensor->status.aec = 0; + sensor->status.hmirror = 0;// check_reg_mask(sensor->slv_addr, P0_CISCTL_MODE1, 0x01); + sensor->status.vflip = 0;// check_reg_mask(sensor->slv_addr, P0_CISCTL_MODE1, 0x02); + sensor->status.colorbar = 0; + sensor->status.bpc = 0; + sensor->status.wpc = 0; + sensor->status.raw_gma = 0; + sensor->status.lenc = 0; + sensor->status.quality = 0; + sensor->status.special_effect = 0; + sensor->status.wb_mode = 0; + sensor->status.awb_gain = 0; + sensor->status.agc_gain = 0; + sensor->status.aec_value = 0; + sensor->status.aec2 = 0; + return 0; +} + +static int set_dummy(sensor_t *sensor, int val) +{ + ESP_LOGW(TAG, "dummy Unsupported"); + return -1; +} +static int set_gainceiling_dummy(sensor_t *sensor, gainceiling_t val) +{ + ESP_LOGW(TAG, "gainceiling Unsupported"); + return -1; +} + +int bf20a6_detect(int slv_addr, sensor_id_t *id) +{ + if (BF20A6_SCCB_ADDR == slv_addr) { + uint8_t MIDL = SCCB_Read(slv_addr, SENSOR_ID_LOW); + uint8_t MIDH = SCCB_Read(slv_addr, SENSOR_ID_HIGH); + uint16_t PID = MIDH << 8 | MIDL; + if (BF20A6_PID == PID) { + id->PID = PID; + return PID; + } else { + ESP_LOGI(TAG, "Mismatch PID=0x%x", PID); + } + } + return 0; +} + +int bf20a6_init(sensor_t *sensor) +{ + sensor->init_status = init_status; + sensor->reset = reset; + sensor->set_pixformat = set_pixformat; + sensor->set_framesize = set_framesize; + sensor->set_contrast = set_dummy; + sensor->set_brightness = set_dummy; + sensor->set_saturation = set_dummy; + sensor->set_sharpness = set_sharpness; + sensor->set_denoise = set_dummy; + sensor->set_gainceiling = set_gainceiling_dummy; + sensor->set_quality = set_dummy; + sensor->set_colorbar = set_colorbar; + sensor->set_whitebal = set_dummy; + sensor->set_gain_ctrl = set_dummy; + sensor->set_exposure_ctrl = set_dummy; + sensor->set_hmirror = set_hmirror; // set_hmirror; + sensor->set_vflip = set_vflip; // set_vflip; + + sensor->set_aec2 = set_dummy; + sensor->set_awb_gain = set_dummy; + sensor->set_agc_gain = set_dummy; + sensor->set_aec_value = set_dummy; + + sensor->set_special_effect = set_dummy; + sensor->set_wb_mode = set_dummy; + sensor->set_ae_level = set_dummy; + + sensor->set_dcw = set_dummy; + sensor->set_bpc = set_dummy; + sensor->set_wpc = set_dummy; + + sensor->set_raw_gma = set_dummy; + sensor->set_lenc = set_dummy; + + sensor->get_reg = get_reg; + sensor->set_reg = set_reg; + sensor->set_res_raw = NULL; + sensor->set_pll = NULL; + sensor->set_xclk = NULL; + + ESP_LOGD(TAG, "BF20A6 Attached"); + return 0; +} diff --git a/code/components/esp32-camera-master/sensors/gc0308.c b/code/components/esp32-camera-master/sensors/gc0308.c index 8b106a3a..f19025eb 100644 --- a/code/components/esp32-camera-master/sensors/gc0308.c +++ b/code/components/esp32-camera-master/sensors/gc0308.c @@ -88,10 +88,10 @@ static int set_reg_bits(uint8_t slv_addr, uint16_t reg, uint8_t offset, uint8_t return ret; } -static int write_regs(uint8_t slv_addr, const uint16_t (*regs)[2]) +static int write_regs(uint8_t slv_addr, const uint8_t (*regs)[2], size_t regs_size) { int i = 0, ret = 0; - while (!ret && regs[i][0] != REGLIST_TAIL) { + while (!ret && (i < regs_size)) { if (regs[i][0] == REG_DLY) { vTaskDelay(regs[i][1] / portTICK_PERIOD_MS); } else { @@ -132,11 +132,12 @@ static int reset(sensor_t *sensor) ESP_LOGE(TAG, "Software Reset FAILED!"); return ret; } - vTaskDelay(100 / portTICK_PERIOD_MS); - ret = write_regs(sensor->slv_addr, gc0308_sensor_default_regs); + + vTaskDelay(80 / portTICK_PERIOD_MS); + ret = write_regs(sensor->slv_addr, gc0308_sensor_default_regs, sizeof(gc0308_sensor_default_regs)/(sizeof(uint8_t) * 2)); if (ret == 0) { ESP_LOGD(TAG, "Camera defaults loaded"); - vTaskDelay(100 / portTICK_PERIOD_MS); + vTaskDelay(80 / portTICK_PERIOD_MS); write_reg(sensor->slv_addr, 0xfe, 0x00); #ifdef CONFIG_IDF_TARGET_ESP32 set_reg_bits(sensor->slv_addr, 0x28, 4, 0x07, 1); //frequency division for esp32, ensure pclk <= 15MHz diff --git a/code/components/esp32-camera-master/sensors/private_include/bf20a6.h b/code/components/esp32-camera-master/sensors/private_include/bf20a6.h new file mode 100644 index 00000000..8c925eb5 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/bf20a6.h @@ -0,0 +1,27 @@ + +#ifndef __BF20A6_H__ +#define __BF20A6_H__ + +#include "sensor.h" + +/** + * @brief Detect sensor pid + * + * @param slv_addr SCCB address + * @param id Detection result + * @return + * 0: Can't detect this sensor + * Nonzero: This sensor has been detected + */ +int bf20a6_detect(int slv_addr, sensor_id_t *id); + +/** + * @brief initialize sensor function pointers + * + * @param sensor pointer of sensor + * @return + * Always 0 + */ +int bf20a6_init(sensor_t *sensor); + +#endif // __BF20A6_H__ diff --git a/code/components/esp32-camera-master/sensors/private_include/bf20a6_regs.h b/code/components/esp32-camera-master/sensors/private_include/bf20a6_regs.h new file mode 100644 index 00000000..ab1ff69e --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/bf20a6_regs.h @@ -0,0 +1,12 @@ +/* + * BF20A6 register definitions. + */ +#ifndef __BF20A6_REG_REGS_H__ +#define __BF20A6_REG_REGS_H__ + +#define SENSOR_ID_HIGH 0XFC +#define SENSOR_ID_LOW 0XFD +#define RESET_RELATED 0XF2 + + +#endif //__BF20A6_REG_REGS_H__ diff --git a/code/components/esp32-camera-master/sensors/private_include/bf20a6_settings.h b/code/components/esp32-camera-master/sensors/private_include/bf20a6_settings.h new file mode 100644 index 00000000..0414bbac --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/bf20a6_settings.h @@ -0,0 +1,158 @@ + +#include + +#define REG_DLY 0xffff +#define REGLIST_TAIL 0xffff /* Array end token */ + +static const uint16_t bf20a6_default_init_regs[][2] = { + {0xf2,0x01}, + {0x12,0x20}, + {0x3a,0x00}, + {0xe1,0x92}, + {0xe3,0x12},// PLL Control, important for framerate(choice: 0x02\0x12\0x22\0x32\0x82) + {0xe0,0x00}, + {0x2a,0x98}, + {0xcd,0x17}, + {0xc0,0x10}, + {0xc6,0x1d}, + {0x10,0x35}, + {0xe2,0x09}, + {0xe4,0x72}, + {0xe5,0x22}, + {0xe6,0x24}, + {0xe7,0x64}, + {0xe8,0xa2}, // DVP:a2}, SPI:f2 VDDIO=1.8V,E8[2]=1},VDDIO=2.8V,E8[2]=0}, + {0x4a,0x00}, + {0x00,0x03}, + {0x1f,0x02}, + {0x22,0x02}, + {0x0c,0x31}, + + {0x00,0x00}, + {0x60,0x81}, + {0x61,0x81}, + + {0xa0,0x08}, + {0x01,0x1a}, + // {0x01,0x1a}, + // {0x01,0x1a}, + // {0x02,0x15}, + // {0x02,0x15}, + {0x02,0x15}, + {0x13,0x08}, + {0x8a,0x96}, + {0x8b,0x06}, + {0x87,0x18}, + + + {0x34,0x48}, // lens + {0x35,0x40}, + {0x36,0x40}, + + {0x71,0x44}, + {0x72,0x48}, + {0x74,0xa2}, + {0x75,0xa9}, + {0x78,0x12}, + {0x79,0xa0}, + {0x7a,0x94}, + {0x7c,0x97}, + {0x40,0x30}, + {0x41,0x30}, + {0x42,0x28}, + {0x43,0x1f}, + {0x44,0x1c}, + {0x45,0x16}, + {0x46,0x13}, + {0x47,0x10}, + {0x48,0x0D}, + {0x49,0x0C}, + {0x4B,0x0A}, + {0x4C,0x0B}, + {0x4E,0x09}, + {0x4F,0x08}, + {0x50,0x08}, + + + {0x5f,0x29}, + {0x23,0x33}, + {0xa1,0x10}, // AWB + {0xa2,0x0d}, + {0xa3,0x30}, + {0xa4,0x06}, + {0xa5,0x22}, + {0xa6,0x56}, + {0xa7,0x18}, + {0xa8,0x1a}, + {0xa9,0x12}, + {0xaa,0x12}, + {0xab,0x16}, + {0xac,0xb1}, + {0xba,0x12}, + {0xbb,0x12}, + {0xad,0x12}, + {0xae,0x56}, + {0xaf,0x0a}, + {0x3b,0x30}, + {0x3c,0x12}, + {0x3d,0x22}, + {0x3e,0x3f}, + {0x3f,0x28}, + {0xb8,0xc3}, + {0xb9,0xa3}, + {0x39,0x47}, // pure color threshold + {0x26,0x13}, + {0x27,0x16}, + {0x28,0x14}, + {0x29,0x18}, + {0xee,0x0d}, + + + {0x13,0x05}, + {0x24,0x3C}, + {0x81,0x20}, + {0x82,0x40}, + {0x83,0x30}, + {0x84,0x58}, + {0x85,0x30}, + {0x92,0x08}, + {0x86,0x80}, + {0x8a,0x96}, + {0x91,0xff}, + {0x94,0x62}, + {0x9a,0x18}, // outdoor threshold + {0xf0,0x45}, // integral time control, important for framerate(choice: 0x46\0x45\0x44..) + {0x51,0x17}, // color normal + {0x52,0x03}, + {0x53,0x5F}, + {0x54,0x47}, + {0x55,0x66}, + {0x56,0x0F}, + {0x7e,0x14}, + {0x57,0x36}, // color + {0x58,0x2A}, + {0x59,0xAA}, + {0x5a,0xA8}, + {0x5b,0x43}, + {0x5c,0x10}, + {0x5d,0x00}, + {0x7d,0x36}, + {0x5e,0x10}, + + {0xd6,0x88}, // contrast + {0xd5,0x20}, // bright + {0xb0,0x84}, // low light ctrl in gray section + {0xb5,0x08}, // the threshold of GLB_GAIN + {0xb1,0xc8}, // saturation + {0xb2,0xc0}, + {0xb3,0xd0}, + {0xb4,0xB0}, + + {0x32,0x10}, + // {0x8a,0x00}, + // {0x8b,0x10}, + {0xa0,0x09}, + {0x00,0x03}, + {0x0b,0x02}, + {REGLIST_TAIL, 0x00}, +}; diff --git a/code/components/esp32-camera-master/sensors/private_include/gc0308_settings.h b/code/components/esp32-camera-master/sensors/private_include/gc0308_settings.h index 32ef3816..adf5f28d 100644 --- a/code/components/esp32-camera-master/sensors/private_include/gc0308_settings.h +++ b/code/components/esp32-camera-master/sensors/private_include/gc0308_settings.h @@ -3,10 +3,9 @@ #include -#define REG_DLY 0xffff -#define REGLIST_TAIL 0x0000 /* Array end token */ +#define REG_DLY 0xff -static const uint16_t gc0308_sensor_default_regs[][2] = { +static const uint8_t gc0308_sensor_default_regs[][2] = { {0xfe, 0x00}, {0xec, 0x20}, {0x05, 0x00}, @@ -239,7 +238,21 @@ static const uint16_t gc0308_sensor_default_regs[][2] = { {0x65, 0xd3}, {0x66, 0x60}, {0xfe, 0x00}, - {REGLIST_TAIL, 0x00}, + + {0x01, 0x32}, //frame setting + {0x02, 0x0c}, + {0x0f, 0x01}, + {0xe2, 0x00}, + {0xe3, 0x78}, + {0xe4, 0x00}, + {0xe5, 0xfe}, + {0xe6, 0x01}, + {0xe7, 0xe0}, + {0xe8, 0x01}, + {0xe9, 0xe0}, + {0xea, 0x01}, + {0xeb, 0xe0}, + {0xfe, 0x00}, }; #endif diff --git a/code/components/esp32-camera-master/sensors/private_include/ov5640_settings.h b/code/components/esp32-camera-master/sensors/private_include/ov5640_settings.h index fec7d679..f52572fa 100644 --- a/code/components/esp32-camera-master/sensors/private_include/ov5640_settings.h +++ b/code/components/esp32-camera-master/sensors/private_include/ov5640_settings.h @@ -42,7 +42,8 @@ static const DRAM_ATTR uint16_t sensor_default_regs[][2] = { {ISP_CONTROL_01, 0x83}, // turn color matrix, awb and SDE //sys reset - {0x3000, 0x00}, + {0x3000, 0x20}, // reset MCU + {REG_DLY, 10}, // delay 10ms {0x3002, 0x1c}, //clock enable diff --git a/code/components/esp32-camera-master/sensors/private_include/sc030iot.h b/code/components/esp32-camera-master/sensors/private_include/sc030iot.h new file mode 100644 index 00000000..19298b76 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/sc030iot.h @@ -0,0 +1,31 @@ +/* + * + * SC030IOT DVP driver. + * + */ +#ifndef __SC030IOT_H__ +#define __SC030IOT_H__ + +#include "sensor.h" + +/** + * @brief Detect sensor pid + * + * @param slv_addr SCCB address + * @param id Detection result + * @return + * 0: Can't detect this sensor + * Nonzero: This sensor has been detected + */ +int sc030iot_detect(int slv_addr, sensor_id_t *id); + +/** + * @brief initialize sensor function pointers + * + * @param sensor pointer of sensor + * @return + * Always 0 + */ +int sc030iot_init(sensor_t *sensor); + +#endif // __SC030IOT_H__ diff --git a/code/components/esp32-camera-master/sensors/private_include/sc030iot_settings.h b/code/components/esp32-camera-master/sensors/private_include/sc030iot_settings.h new file mode 100644 index 00000000..56f5654c --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/sc030iot_settings.h @@ -0,0 +1,491 @@ +//version: V01P00_20220303 +//Preview Type:0:DVP Raw 10 bit// 1:Raw 8 bit// 2:YUV422// 3:RAW16 +//Preview Type:4:RGB565// 5:Pixart SPI// 6:MIPI 10bit// 7:MIPI 12bit// 8: MTK SPI +//port 0:MIPI// 1:Parallel// 2:MTK// 3:SPI// 4:TEST// 5: HISPI// 6 : Z2P/Z4P +//I2C Mode :0:Normal 8Addr,8Data// 1:Samsung 8 Addr,8Data// 2:Micron 8 Addr,16Data +//I2C Mode :3:Stmicro 16Addr,8Data//4:Micron2 16 Addr,16Data +//Out Format :0:YCbYCr/RG_GB// 1:YCrYCb/GR_BG// 2:CbYCrY/GB_RG// 3:CrYCbY/BG_GR +//MCLK Speed :0:6M//1:8M//2:10M//3:11.4M//4:12M//5:12.5M//6:13.5M//7:15M//8:18M//9:24M +//pin :BIT0 pwdn// BIT1:reset +//avdd 0:3.3V// 1:2.5V// 2:1.8V +//dovdd 0:2.8V// 1:2.5V// 2:1.8V +//dvdd 0:1.8V// 1:1.5V// 2:1.2V + +/* +[DataBase] +DBName=Dothinkey + +[Vendor] +VendorName=SmartSens + +[Sensor] +SensorName=SC031IOT +width=640 +height=480 +port=1 +type=2 +pin=3 +SlaveID=0xd0 +mode=0 +FlagReg=0xf7 +FlagMask=0xff +FlagData=0xfa +FlagReg1=0xf8 +FlagMask1=0xff +FlagData1=0x46 +outformat=0 +mclk=20 +avdd=2.80000 +dovdd=2.800000 +dvdd=1.5 + +Ext0=0 +Ext1=0 +Ext2=0 +AFVCC=0.0000 +VPP=0.000000 +*/ +#include + +static const uint8_t sc030iot_default_init_regs[][2] = { + {0xf0, 0x30}, + {0x01, 0xff}, + {0x02, 0xff}, + {0x22, 0x07}, + {0x19, 0xff}, + {0x3f, 0x82}, + {0x30, 0x02}, + {0xf0, 0x01}, + {0x70, 0x00}, + {0x71, 0x80}, + {0x72, 0x20}, + {0x73, 0x00}, + {0x74, 0xe0}, + {0x75, 0x10}, + {0x76, 0x81}, + {0x77, 0x88}, + {0x78, 0xe1}, + {0x79, 0x01}, + {0xf5, 0x01}, + {0xf4, 0x0a}, + {0xf0, 0x36}, + {0x37, 0x79}, + {0x31, 0x82}, + {0x3e, 0x60}, + {0x30, 0xf0}, + {0x33, 0x33}, + {0xf0, 0x32}, + {0x48, 0x02}, + {0xf0, 0x33}, + {0x02, 0x12}, + {0x7c, 0x02}, + {0x7d, 0x0e}, + {0xa2, 0x04}, + {0x5e, 0x06}, + {0x5f, 0x0a}, + {0x0b, 0x58}, + {0x06, 0x38}, + {0xf0, 0x32}, + {0x48, 0x02}, + {0xf0, 0x39}, + {0x02, 0x70}, + {0xf0, 0x45}, + {0x09, 0x1c}, + {0xf0, 0x37}, + {0x22, 0x0d}, + {0xf0, 0x33}, + {0x33, 0x10}, + {0xb1, 0x80}, + {0x34, 0x40}, + {0x0b, 0x54}, + {0xb2, 0x78}, + {0xf0, 0x36}, + {0x11, 0x80}, + {0xf0, 0x30}, + {0x38, 0x44}, + {0xf0, 0x33}, + {0xb3, 0x51}, + {0x01, 0x10}, + {0x0b, 0x6c}, + {0x06, 0x24}, + {0xf0, 0x36}, + {0x31, 0x82}, + {0x3e, 0x60}, + {0x30, 0xf0}, + {0x33, 0x33}, + {0xf0, 0x34}, + {0x9f, 0x02}, + {0xa6, 0x40}, + {0xa7, 0x47}, + {0xe8, 0x5f}, + {0xa8, 0x51}, + {0xa9, 0x44}, + {0xe9, 0x36}, + {0xf0, 0x33}, + {0xb3, 0x51}, + {0x64, 0x17}, + {0x90, 0x01}, + {0x91, 0x03}, + {0x92, 0x07}, + {0x01, 0x10}, + {0x93, 0x10}, + {0x94, 0x10}, + {0x95, 0x10}, + {0x96, 0x01}, + {0x97, 0x07}, + {0x98, 0x1f}, + {0x99, 0x10}, + {0x9a, 0x20}, + {0x9b, 0x28}, + {0x9c, 0x28}, + {0xf0, 0x36}, + {0x70, 0x54}, + {0xb6, 0x40}, + {0xb7, 0x41}, + {0xb8, 0x43}, + {0xb9, 0x47}, + {0xba, 0x4f}, + {0xb0, 0x8b}, + {0xb1, 0x8b}, + {0xb2, 0x8b}, + {0xb3, 0x9b}, + {0xb4, 0xb8}, + {0xb5, 0xf0}, + {0x7e, 0x41}, + {0x7f, 0x47}, + {0x77, 0x80}, + {0x78, 0x84}, + {0x79, 0x8a}, + {0xa0, 0x47}, + {0xa1, 0x5f}, + {0x96, 0x43}, + {0x97, 0x44}, + {0x98, 0x54}, + {0xf0, 0x00}, + {0xf0, 0x01}, + {0x73, 0x00}, + {0x74, 0xe0}, + {0x70, 0x00}, + {0x71, 0x80}, + {0xf0, 0x36}, + {0x37, 0x74}, + {0xf0, 0x3f}, + {0x03, 0xa1}, + {0xf0, 0x36},//cvbs_off + {0x11, 0x80}, + {0xf0, 0x01}, + {0x79, 0xc1}, + {0xf0, 0x37}, + {0x24, 0x21}, + {0xf0, 0x36}, + {0x41, 0x00}, + {0xea, 0x09}, + {0xeb, 0x03}, + {0xec, 0x19}, + {0xed, 0x38}, + {0xe9, 0x30}, + {0xf0, 0x33}, + {0x33, 0x00}, + {0x34, 0x00}, + {0xb1, 0x00}, + {0xf0, 0x00}, + {0xe0, 0x04}, + {0xf0, 0x01}, + {0x73, 0x00}, + {0x74, 0xe0}, + {0x70, 0x00}, + {0x71, 0x80}, + {0xf0, 0x36}, + {0x32, 0x44}, + {0xf0, 0x36}, + {0x3e, 0xe0}, + {0x70, 0x56}, + {0x7c, 0x43}, + {0x7d, 0x47}, + {0x74, 0x00}, + {0x75, 0x00}, + {0x76, 0x00}, + {0xa0, 0x47}, + {0xa1, 0x5f}, + {0x96, 0x22}, + {0x97, 0x22}, + {0x98, 0x22}, + {0xf0, 0x00}, + {0x72, 0x38}, + {0x7a, 0x80}, + {0x85, 0x18}, + {0x9b, 0x35}, + {0x9e, 0x20}, + {0xd0, 0x66}, + {0xd1, 0x34}, + {0Xd3, 0x44}, + {0xd6, 0x44}, + {0xb0, 0x41}, + {0xb2, 0x48}, + {0xb3, 0xf4}, + {0xb4, 0x0b}, + {0xb5, 0x78}, + {0xba, 0xff}, + {0xbb, 0xc0}, + {0xbc, 0x90}, + {0xbd, 0x3a}, + {0xc1, 0x67}, + {0xf0, 0x01}, + {0x20, 0x11}, + {0x23, 0x90}, + {0x24, 0x15}, + {0x25, 0x87}, + {0xbc, 0x9f}, + {0xbd, 0x3a}, + {0x48, 0xe6}, + {0x49, 0xc0}, + {0x4a, 0xd0}, + {0x4b, 0x48}, + + // [cvbs_on] + {0xf0, 0x36}, + {0x11, 0x00}, + {0xf0, 0x01}, + {0x79, 0xf1}, + + // [cvbs_off] + {0xf0, 0x36}, + {0x11, 0x80}, + {0xf0, 0x01}, + {0x79, 0xc1}, +}; + +/* +[Sensor] +SensorName=SC031IOT +width=640 +height=480 +port=1 +type=2 +pin=3 +SlaveID=0xd0 +mode=0 +FlagReg=0xf7 +FlagMask=0xff +FlagData=0xfa +FlagReg1=0xf8 +FlagMask1=0xff +FlagData1=0x46 +outformat=0 +mclk=27 +avdd=2.80000 +dovdd=2.800000 +dvdd=1.5 + +Ext0=0 +Ext1=0 +Ext2=0 +AFVCC=0.0000 +VPP=0.000000 +*/ +/* 27M MCLK, 30fps +static const uint8_t sc030iot_default_init_regs[][2] = { + {0xf0, 0x30}, + {0x01, 0xff}, + {0x02, 0xff}, + {0x22, 0x07}, + {0x19, 0xff}, + {0x3f, 0x82}, + {0x30, 0x02}, + {0xf0, 0x01}, + {0x70, 0x00}, + {0x71, 0x80}, + {0x72, 0x20}, + {0x73, 0x00}, + {0x74, 0xe0}, + {0x75, 0x10}, + {0x76, 0x81}, + {0x77, 0x88}, + {0x78, 0xe1}, + {0x79, 0x01}, + {0xf5, 0x01}, + {0xf4, 0x0a}, + {0xf0, 0x36}, + {0x37, 0x79}, + {0x31, 0x82}, + {0x3e, 0x60}, + {0x30, 0xf0}, + {0x33, 0x33}, + {0xf0, 0x32}, + {0x48, 0x02}, + {0xf0, 0x33}, + {0x02, 0x12}, + {0x7c, 0x02}, + {0x7d, 0x0e}, + {0xa2, 0x04}, + {0x5e, 0x06}, + {0x5f, 0x0a}, + {0x0b, 0x58}, + {0x06, 0x38}, + {0xf0, 0x32}, + {0x48, 0x02}, + {0xf0, 0x39}, + {0x02, 0x70}, + {0xf0, 0x45}, + {0x09, 0x1c}, + {0xf0, 0x37}, + {0x22, 0x0d}, + {0xf0, 0x33}, + {0x33, 0x10}, + {0xb1, 0x80}, + {0x34, 0x40}, + {0x0b, 0x54}, + {0xb2, 0x78}, + {0xf0, 0x36}, + {0x11, 0x80}, + {0xf0, 0x30}, + {0x38, 0x44}, + {0xf0, 0x33}, + {0xb3, 0x51}, + {0x01, 0x10}, + {0x0b, 0x6c}, + {0x06, 0x24}, + {0xf0, 0x36}, + {0x31, 0x82}, + {0x3e, 0x60}, + {0x30, 0xf0}, + {0x33, 0x33}, + {0xf0, 0x34}, + {0x9f, 0x02}, + {0xa6, 0x40}, + {0xa7, 0x47}, + {0xe8, 0x5f}, + {0xa8, 0x51}, + {0xa9, 0x44}, + {0xe9, 0x36}, + {0xf0, 0x33}, + {0xb3, 0x51}, + {0x64, 0x17}, + {0x90, 0x01}, + {0x91, 0x03}, + {0x92, 0x07}, + {0x01, 0x10}, + {0x93, 0x10}, + {0x94, 0x10}, + {0x95, 0x10}, + {0x96, 0x01}, + {0x97, 0x07}, + {0x98, 0x1f}, + {0x99, 0x10}, + {0x9a, 0x20}, + {0x9b, 0x28}, + {0x9c, 0x28}, + {0xf0, 0x36}, + {0x70, 0x54}, + {0xb6, 0x40}, + {0xb7, 0x41}, + {0xb8, 0x43}, + {0xb9, 0x47}, + {0xba, 0x4f}, + {0xb0, 0x8b}, + {0xb1, 0x8b}, + {0xb2, 0x8b}, + {0xb3, 0x9b}, + {0xb4, 0xb8}, + {0xb5, 0xf0}, + {0x7e, 0x41}, + {0x7f, 0x47}, + {0x77, 0x80}, + {0x78, 0x84}, + {0x79, 0x8a}, + {0xa0, 0x47}, + {0xa1, 0x5f}, + {0x96, 0x43}, + {0x97, 0x44}, + {0x98, 0x54}, + {0xf0, 0x00}, + {0xf0, 0x01}, + {0x73, 0x00}, + {0x74, 0xe0}, + {0x70, 0x00}, + {0x71, 0x80}, + {0xf0, 0x36}, + {0x37, 0x74}, + {0xf0, 0x3f}, + {0x03, 0x93}, + {0xf0, 0x36},//cvbs_off + {0x11, 0x80}, + {0xf0, 0x01}, + {0x79, 0xc1}, + {0xf0, 0x37}, + {0x24, 0x21}, + {0xf0, 0x36}, + {0x41, 0x00}, + {0xe9, 0x2c}, + {0xf0, 0x33}, + {0x33, 0x00}, + {0x34, 0x00}, + {0xb1, 0x00}, + {0xf0, 0x00}, + {0xe0, 0x04}, + {0xf0, 0x01}, + {0x73, 0x00}, + {0x74, 0xe0}, + {0x70, 0x00}, + {0x71, 0x80}, + {0xf0, 0x36}, + {0x32, 0x44}, + {0xf0, 0x36}, + {0x3e, 0xe0}, + {0x70, 0x56}, + {0x7c, 0x43}, + {0x7d, 0x47}, + {0x74, 0x00}, + {0x75, 0x00}, + {0x76, 0x00}, + {0xa0, 0x47}, + {0xa1, 0x5f}, + {0x96, 0x22}, + {0x97, 0x22}, + {0x98, 0x22}, + {0xf0, 0x00}, + {0x72, 0x38}, + {0x7a, 0x80}, + {0x85, 0x18}, + {0x9b, 0x35}, + {0x9e, 0x20}, + {0xd0, 0x66}, + {0xd1, 0x34}, + {0Xd3, 0x44}, + {0xd6, 0x44}, + {0xb0, 0x41}, + {0xb2, 0x48}, + {0xb3, 0xf4}, + {0xb4, 0x0b}, + {0xb5, 0x78}, + {0xba, 0xff}, + {0xbb, 0xc0}, + {0xbc, 0x90}, + {0xbd, 0x3a}, + {0xc1, 0x67}, + {0xf0, 0x01}, + {0x20, 0x11}, + {0x23, 0x90}, + {0x24, 0x15}, + {0x25, 0x87}, + {0xbc, 0x9f}, + {0xbd, 0x3a}, + {0x48, 0xe6}, + {0x49, 0xc0}, + {0x4a, 0xd0}, + {0x4b, 0x48}, + + // [cvbs_on] + {0xf0, 0x36}, + {0x11, 0x00}, + {0xf0, 0x01}, + {0x79, 0xf1}, + + // [cvbs_off] + {0xf0, 0x36}, + {0x11, 0x80}, + {0xf0, 0x01}, + {0x79, 0xc1}, +}; + +*/ \ No newline at end of file diff --git a/code/components/esp32-camera-master/sensors/private_include/sc101iot.h b/code/components/esp32-camera-master/sensors/private_include/sc101iot.h new file mode 100644 index 00000000..85858498 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/sc101iot.h @@ -0,0 +1,31 @@ +/* + * + * SC101IOT DVP driver. + * + */ +#ifndef __SC101IOT_H__ +#define __SC101IOT_H__ + +#include "sensor.h" + +/** + * @brief Detect sensor pid + * + * @param slv_addr SCCB address + * @param id Detection result + * @return + * 0: Can't detect this sensor + * Nonzero: This sensor has been detected + */ +int sc101iot_detect(int slv_addr, sensor_id_t *id); + +/** + * @brief initialize sensor function pointers + * + * @param sensor pointer of sensor + * @return + * Always 0 + */ +int sc101iot_init(sensor_t *sensor); + +#endif // __SC101IOT_H__ diff --git a/code/components/esp32-camera-master/sensors/private_include/sc101iot_settings.h b/code/components/esp32-camera-master/sensors/private_include/sc101iot_settings.h new file mode 100644 index 00000000..2eb14398 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/private_include/sc101iot_settings.h @@ -0,0 +1,257 @@ +//Preview Type:0:DVP Raw 10 bit// 1:Raw 8 bit// 2:YUV422// 3:RAW16 +//Preview Type:4:RGB565// 5:Pixart SPI// 6:MIPI 10bit// 7:MIPI 12bit// 8: MTK SPI +//port 0:MIPI// 1:Parallel// 2:MTK// 3:SPI// 4:TEST// 5: HISPI// 6 : Z2P/Z4P +//I2C Mode :0:Normal 8Addr,8Data// 1:Samsung 8 Addr,8Data// 2:Micron 8 Addr,16Data +//I2C Mode :3:Stmicro 16Addr,8Data//4:Micron2 16 Addr,16Data +//Out Format :0:YCbYCr/RG_GB// 1:YCrYCb/GR_BG// 2:CbYCrY/GB_RG// 3:CrYCbY/BG_GR +//MCLK Speed :0:6M//1:8M//2:10M//3:11.4M//4:12M//5:12.5M//6:13.5M//7:15M//8:18M//9:24M +//pin :BIT0 pwdn// BIT1:reset +//avdd 0:2.8V// 1:2.5V// 2:1.8V +//dovdd 0:2.8V// 1:2.5V// 2:1.8V +//dvdd 0:1.8V// 1:1.5V// 2:1.2V +/* +[DataBase] +DBName=DemoSens + +[Vendor] +VendorName=SmartSens +I2C_CRC=0 + +[Sensor] +SensorName=SC101AP_raw +width=1280 +height=720 +port=1 +type=2 +pin=3 +SlaveID=0xd0 +mode=0 +FlagReg=0xf7 +FlagMask=0xff +FlagData=0xda +FlagReg1=0xf8 +FlagMask1=0xff +FlagData1=0x4a +outformat=0 +mclk=20 +avdd=2.800000 +dovdd=2.800000 +dvdd=1.200000 + +Ext0=0 +Ext1=0 +Ext2=0 +AFVCC=0.00 +VPP=0.000000 +*/ +#include + +static const uint8_t sc101iot_default_init_regs[][2] = { +#if CONFIG_SC101IOT_720P_15FPS_ENABLED // 720P+YUV422+15FPS sensor default regs +/* Here are some test results: +# size xclk fps pic pclk +# ------- ------- ------ --------- ------- --- --- --- --- --- +# 720p 4 3 err +# 720p 8 5 normal 15 +# 720p 10 7.8 normal 19 +# 720p 20 15 warning 37.5 +# VGA 8 6 normal +# VGA 20 16 normal + +*/ + {0xf0, 0x30}, + {0x01, 0xff}, + {0x02, 0xe0}, + {0x30, 0x10}, + {0x3f, 0x81}, + {0xf0, 0x00}, + {0x70, 0x6b}, + {0x72, 0x30}, + {0x84, 0xb4}, + {0x8b, 0x00}, + {0x8c, 0x20}, + {0x8d, 0x02}, + {0x8e, 0xec}, + {0x9e, 0x10}, + {0xb0, 0xc1}, + {0xc8, 0x10}, + {0xc9, 0x10}, + {0xc6, 0x00}, + {0xe0, 0x0f}, + {0xb5, 0xf0}, + {0xde, 0x80}, + {0xb5, 0xf0}, + {0xde, 0x80}, + {0xb2, 0x50}, + {0xb3, 0xfc}, + {0xb4, 0x40}, + {0xb5, 0xc0}, + {0xb6, 0x50}, + {0xb7, 0xfc}, + {0xb8, 0x40}, + {0xb9, 0xc0}, + {0xba, 0xff}, + {0xbb, 0xcc}, + {0xbc, 0xa9}, + {0xbd, 0x7d}, + {0xc1, 0x77}, + {0xf0, 0x01}, + {0x70, 0x02}, + {0x71, 0x02}, + {0x72, 0x50}, + {0x73, 0x02}, + {0x74, 0xd2}, + {0x75, 0x20}, + {0x76, 0x81}, + {0x77, 0x8c}, + {0x78, 0x81}, + {0xf4, 0x01}, + {0xf5, 0x00}, + {0xf6, 0x00}, + {0xf0, 0x36}, + {0x40, 0x03}, + {0x41, 0x01}, + {0xf0, 0x39}, + {0x02, 0x70}, + {0xf0, 0x32}, + {0x41, 0x00}, + {0x43, 0x01}, + {0x48, 0x02}, + {0xf0, 0x45}, + {0x09, 0x20}, + {0xf0, 0x33}, + {0x33, 0x10}, + {0xf0, 0x30}, + {0x38, 0x44}, + {0xf0, 0x39}, + {0x07, 0x00}, + {0x08, 0x19}, + {0x47, 0x00}, + {0x48, 0x00}, + {0xf0, 0x37}, + {0x24, 0x31}, + {0xf0, 0x34}, + {0x9f, 0x02}, + {0xa6, 0x51}, + {0xa7, 0x57}, + {0xe8, 0x5f}, + {0xa8, 0x50}, + {0xa9, 0x50}, + {0xe9, 0x50}, + {0xf0, 0x33}, + {0xb3, 0x58}, + {0xb2, 0x78}, + {0xf0, 0x34}, + {0x9f, 0x03}, + {0xa6, 0x51}, + {0xa7, 0x57}, + {0xaa, 0x01}, + {0xab, 0x28}, + {0xac, 0x01}, + {0xad, 0x38}, + {0xf0, 0x33}, + {0x0a, 0x01}, + {0x0b, 0x28}, + {0xf0, 0x33}, + {0x64, 0x0f}, + {0xec, 0x51}, + {0xed, 0x57}, + {0x06, 0x58}, + {0xe9, 0x58}, + {0xeb, 0x68}, + {0xf0, 0x33}, + {0x64, 0x0f}, + {0xf0, 0x36}, + {0x70, 0xdf}, + {0xb6, 0x40}, + {0xb7, 0x51}, + {0xb8, 0x53}, + {0xb9, 0x57}, + {0xba, 0x5f}, + {0xb0, 0x84}, + {0xb1, 0x82}, + {0xb2, 0x84}, + {0xb3, 0x88}, + {0xb4, 0x90}, + {0xb5, 0x90}, + {0xf0, 0x36}, + {0x7e, 0x50}, + {0x7f, 0x51}, + {0x77, 0x81}, + {0x78, 0x86}, + {0x79, 0x89}, + {0xf0, 0x36}, + {0x70, 0xdf}, + {0x9c, 0x51}, + {0x9d, 0x57}, + {0x90, 0x54}, + {0x91, 0x54}, + {0x92, 0x56}, + {0xf0, 0x36}, + {0xa0, 0x51}, + {0xa1, 0x57}, + {0x96, 0x33}, + {0x97, 0x43}, + {0x98, 0x43}, + {0xf0, 0x36}, + {0x70, 0xdf}, + {0x7c, 0x40}, + {0x7d, 0x53}, + {0x74, 0xd0}, + {0x75, 0xf0}, + {0x76, 0xf0}, + {0xf0, 0x37}, + {0x0f, 0xd5}, + {0x7a, 0x40}, + {0x7b, 0x57}, + {0x71, 0x09}, + {0x72, 0x09}, + {0x73, 0x05}, + {0xf0, 0x33}, + {0x01, 0x44}, + {0xf0, 0x36}, + {0x37, 0xfb}, + {0xf0, 0x36}, + {0x3c, 0x0d}, + {0xf0, 0x33}, + {0x14, 0x95}, + {0xf0, 0x33}, + {0x8f, 0x80}, + {0xf0, 0x37}, + {0x27, 0x14}, + {0x28, 0x03}, + {0xf0, 0x36}, + {0x37, 0xf4}, + {0xf0, 0x33}, + {0x01, 0x44}, + {0xf0, 0x36}, + {0x79, 0x89}, + {0xf0, 0x34}, + {0xac, 0x01}, + {0xad, 0x40}, + {0xf0, 0x33}, + {0xeb, 0x70}, + {0xf0, 0x34}, + {0xa8, 0x50}, + {0xa9, 0x50}, + {0xf0, 0x33}, + {0xb3, 0x58}, + {0xf0, 0x36}, + {0x11, 0x80}, + {0xf0, 0x36}, + {0x41, 0x51}, + {0xf0, 0x3f}, + {0x03, 0x09}, + {0xf0, 0x32}, + {0x0c, 0x06}, + {0x0d, 0x82}, + {0x0e, 0x02}, + {0x0f, 0xee}, + {0xf0, 0x36}, + {0xea, 0x09}, + {0xeb, 0xf5}, + {0xec, 0x11}, + {0xed, 0x27}, + {0xe9, 0x20}, +#endif +}; diff --git a/code/components/esp32-camera-master/sensors/sc030iot.c b/code/components/esp32-camera-master/sensors/sc030iot.c new file mode 100644 index 00000000..86f525f3 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/sc030iot.c @@ -0,0 +1,335 @@ +/* + * SC030IOT driver. + * + * Copyright 2020-2022 Espressif Systems (Shanghai) PTE LTD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +#include +#include +#include +#include +#include "sccb.h" +#include "xclk.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +#include "sc030iot.h" +#include "sc030iot_settings.h" + +#if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) +#include "esp32-hal-log.h" +#else +#include "esp_log.h" +static const char* TAG = "sc030"; +#endif + +#define SC030_SENSOR_ID_HIGH_REG 0XF7 +#define SC030_SENSOR_ID_LOW_REG 0XF8 +#define SC030_MAX_FRAME_WIDTH (640) +#define SC030_MAX_FRAME_HIGH (480) + +// sc030 use "i2c paging mode", so the high byte of the register needs to be written to the 0xf0 reg. +// For more information please refer to the Technical Reference Manual. +static int get_reg(sensor_t *sensor, int reg, int reg_value_mask) +{ + int ret = 0; + uint8_t reg_high = (reg>>8) & 0xFF; + uint8_t reg_low = reg & 0xFF; + + if(SCCB_Write(sensor->slv_addr, 0xf0, reg_high)) { + return -1; + } + + ret = SCCB_Read(sensor->slv_addr, reg_low); + if(ret > 0){ + ret &= reg_value_mask; + } + return ret; +} + +// sc030 use "i2c paging mode", so the high byte of the register needs to be written to the 0xf0 reg. +// For more information please refer to the Technical Reference Manual. +static int set_reg(sensor_t *sensor, int reg, int mask, int value) +{ + int ret = 0; + uint8_t reg_high = (reg>>8) & 0xFF; + uint8_t reg_low = reg & 0xFF; + + if(SCCB_Write(sensor->slv_addr, 0xf0, reg_high)) { + return -1; + } + + ret = SCCB_Write(sensor->slv_addr, reg_low, value & 0xFF); + return ret; +} + +static int set_regs(sensor_t *sensor, const uint8_t (*regs)[2], uint32_t regs_entry_len) +{ + int i=0, res = 0; + while (islv_addr, regs[i][0], regs[i][1]); + if (res) { + return res; + } + i++; + } + return res; +} + +static int set_reg_bits(sensor_t *sensor, int reg, uint8_t offset, uint8_t length, uint8_t value) +{ + int ret = 0; + ret = get_reg(sensor, reg, 0xff); + if(ret < 0){ + return ret; + } + uint8_t mask = ((1 << length) - 1) << offset; + value = (ret & ~mask) | ((value << offset) & mask); + ret = set_reg(sensor, reg & 0xFFFF, 0xFFFF, value); + return ret; +} + +#define WRITE_REGS_OR_RETURN(regs, regs_entry_len) ret = set_regs(sensor, regs, regs_entry_len); if(ret){return ret;} +#define WRITE_REG_OR_RETURN(reg, val) ret = set_reg(sensor, reg, 0xFF, val); if(ret){return ret;} +#define SET_REG_BITS_OR_RETURN(reg, offset, length, val) ret = set_reg_bits(sensor, reg, offset, length, val); if(ret){return ret;} + +static int set_hmirror(sensor_t *sensor, int enable) +{ + int ret = 0; + if(enable) { + SET_REG_BITS_OR_RETURN(0x3221, 1, 2, 0x3); // mirror on + } else { + SET_REG_BITS_OR_RETURN(0x3221, 1, 2, 0x0); // mirror off + } + + return ret; +} + +static int set_vflip(sensor_t *sensor, int enable) +{ + int ret = 0; + if(enable) { + SET_REG_BITS_OR_RETURN(0x3221, 5, 2, 0x3); // flip on + } else { + SET_REG_BITS_OR_RETURN(0x3221, 5, 2, 0x0); // flip off + } + + return ret; +} + +static int set_colorbar(sensor_t *sensor, int enable) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x0100, 7, 1, enable & 0xff); // enable test pattern mode + + return ret; +} + +static int set_sharpness(sensor_t *sensor, int level) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00e0, 1, 1, 1); // enable edge enhancement + WRITE_REG_OR_RETURN(0x00d0, level & 0xFF); // base value + WRITE_REG_OR_RETURN(0x00d2, (level >> 8) & 0xFF); // limit + + return ret; +} + +static int set_agc_gain(sensor_t *sensor, int gain) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x0070, 1, 1, 1); // enable auto agc control + WRITE_REG_OR_RETURN(0x0068, gain & 0xFF); // Window weight setting1 + WRITE_REG_OR_RETURN(0x0069, (gain >> 8) & 0xFF); // Window weight setting2 + WRITE_REG_OR_RETURN(0x006a, (gain >> 16) & 0xFF); // Window weight setting3 + WRITE_REG_OR_RETURN(0x006b, (gain >> 24) & 0xFF); // Window weight setting4 + + return ret; +} + +static int set_aec_value(sensor_t *sensor, int value) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x0070, 0, 1, 1); // enable auto aec control + WRITE_REG_OR_RETURN(0x0072, value & 0xFF); // AE target + + return ret; +} + +static int set_awb_gain(sensor_t *sensor, int value) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00b0, 0, 1, 1); // enable awb control + WRITE_REG_OR_RETURN(0x00c8, value & 0xFF); // blue gain + WRITE_REG_OR_RETURN(0x00c9, (value>>8) & 0XFF); // red gain + return ret; +} + +static int set_saturation(sensor_t *sensor, int level) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00f5, 5, 1, 0); // enable saturation control + WRITE_REG_OR_RETURN(0x0149, level & 0xFF); // blue saturation gain (/128) + WRITE_REG_OR_RETURN(0x014a, (level>>8) & 0XFF); // red saturation gain (/128) + return ret; +} + +static int set_contrast(sensor_t *sensor, int level) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00f5, 6, 1, 0); // enable contrast control + WRITE_REG_OR_RETURN(0x014b, level); // contrast coefficient(/64) + return ret; +} + +static int reset(sensor_t *sensor) +{ + int ret = set_regs(sensor, sc030iot_default_init_regs, sizeof(sc030iot_default_init_regs)/(sizeof(uint8_t) * 2)); + + // Delay + vTaskDelay(50 / portTICK_PERIOD_MS); + + // ESP_LOGI(TAG, "set_reg=%0x", set_reg(sensor, 0x0100, 0xffff, 0x00)); // write 0x80 to enter test mode if you want to test the sensor + // ESP_LOGI(TAG, "0x0100=%0x", get_reg(sensor, 0x0100, 0xffff)); + if (ret) { + ESP_LOGE(TAG, "reset fail"); + } + return ret; +} + +static int set_window(sensor_t *sensor, int offset_x, int offset_y, int w, int h) +{ + int ret = 0; + //sc:H_start={0x0172[1:0],0x0170},H_end={0x0172[5:4],0x0171}, + WRITE_REG_OR_RETURN(0x0170, offset_x & 0xff); + WRITE_REG_OR_RETURN(0x0171, (offset_x+w) & 0xff); + WRITE_REG_OR_RETURN(0x0172, ((offset_x>>8) & 0x03) | (((offset_x+w)>>4)&0x30)); + + //sc:V_start={0x0175[1:0],0x0173},H_end={0x0175[5:4],0x0174}, + WRITE_REG_OR_RETURN(0x0173, offset_y & 0xff); + WRITE_REG_OR_RETURN(0x0174, (offset_y+h) & 0xff); + WRITE_REG_OR_RETURN(0x0175, ((offset_y>>8) & 0x03) | (((offset_y+h)>>4)&0x30)); + + vTaskDelay(10 / portTICK_PERIOD_MS); + + return ret; +} + +static int set_framesize(sensor_t *sensor, framesize_t framesize) +{ + uint16_t w = resolution[framesize].width; + uint16_t h = resolution[framesize].height; + if(w>SC030_MAX_FRAME_WIDTH || h > SC030_MAX_FRAME_HIGH) { + goto err; + } + + uint16_t offset_x = (640-w) /2; + uint16_t offset_y = (480-h) /2; + + if(set_window(sensor, offset_x, offset_y, w, h)) { + goto err; + } + + sensor->status.framesize = framesize; + return 0; +err: + ESP_LOGE(TAG, "frame size err"); + return -1; +} + +static int set_pixformat(sensor_t *sensor, pixformat_t pixformat) +{ + int ret=0; + sensor->pixformat = pixformat; + + switch (pixformat) { + case PIXFORMAT_RGB565: + case PIXFORMAT_RAW: + case PIXFORMAT_GRAYSCALE: + ESP_LOGE(TAG, "Not support"); + break; + case PIXFORMAT_YUV422: // For now, sc030/sc031 sensor only support YUV422. + break; + default: + return -1; + } + + return ret; +} + +static int init_status(sensor_t *sensor) +{ + return 0; +} + +static int set_dummy(sensor_t *sensor, int val){ return -1; } + +static int set_xclk(sensor_t *sensor, int timer, int xclk) +{ + int ret = 0; + sensor->xclk_freq_hz = xclk * 1000000U; + ret = xclk_timer_conf(timer, sensor->xclk_freq_hz); + return ret; +} + +int sc030iot_detect(int slv_addr, sensor_id_t *id) +{ + if (SC030IOT_SCCB_ADDR == slv_addr) { + uint8_t MIDL = SCCB_Read(slv_addr, SC030_SENSOR_ID_LOW_REG); + uint8_t MIDH = SCCB_Read(slv_addr, SC030_SENSOR_ID_HIGH_REG); + uint16_t PID = MIDH << 8 | MIDL; + if (SC030IOT_PID == PID) { + id->PID = PID; + return PID; + } else { + ESP_LOGI(TAG, "Mismatch PID=0x%x", PID); + } + } + return 0; +} + +int sc030iot_init(sensor_t *sensor) +{ + // Set function pointers + sensor->reset = reset; + sensor->init_status = init_status; + sensor->set_pixformat = set_pixformat; + sensor->set_framesize = set_framesize; + + sensor->set_saturation= set_saturation; + sensor->set_colorbar = set_colorbar; + sensor->set_hmirror = set_hmirror; + sensor->set_vflip = set_vflip; + sensor->set_sharpness = set_sharpness; + sensor->set_agc_gain = set_agc_gain; + sensor->set_aec_value = set_aec_value; + sensor->set_awb_gain = set_awb_gain; + sensor->set_contrast = set_contrast; + //not supported + sensor->set_denoise = set_dummy; + sensor->set_quality = set_dummy; + sensor->set_special_effect = set_dummy; + sensor->set_wb_mode = set_dummy; + sensor->set_ae_level = set_dummy; + + + sensor->get_reg = get_reg; + sensor->set_reg = set_reg; + sensor->set_xclk = set_xclk; + + ESP_LOGD(TAG, "sc030iot Attached"); + + return 0; +} \ No newline at end of file diff --git a/code/components/esp32-camera-master/sensors/sc101iot.c b/code/components/esp32-camera-master/sensors/sc101iot.c new file mode 100644 index 00000000..310a0476 --- /dev/null +++ b/code/components/esp32-camera-master/sensors/sc101iot.c @@ -0,0 +1,342 @@ +/* + * SC101IOT driver. + * + * Copyright 2020-2022 Espressif Systems (Shanghai) PTE LTD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +#include +#include +#include +#include +#include "sccb.h" +#include "xclk.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" + +#include "sc101iot.h" +#include "sc101iot_settings.h" + +#if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) +#include "esp32-hal-log.h" +#else +#include "esp_log.h" +static const char* TAG = "sc101"; +#endif + +#define SC101_SENSOR_ID_HIGH_REG 0XF7 +#define SC101_SENSOR_ID_LOW_REG 0XF8 +#define SC101_MAX_FRAME_WIDTH (1280) +#define SC101_MAX_FRAME_HIGH (720) + +// sc101 use "i2c paging mode", so the high byte of the register needs to be written to the 0xf0 reg. +// For more information please refer to the Technical Reference Manual. +static int get_reg(sensor_t *sensor, int reg, int mask) +{ + int ret = 0; + uint8_t reg_high = (reg>>8) & 0xFF; + uint8_t reg_low = reg & 0xFF; + + if(SCCB_Write(sensor->slv_addr, 0xf0, reg_high)) { + return -1; + } + + ret = SCCB_Read(sensor->slv_addr, reg_low); + if(ret > 0){ + ret &= mask; + } + return ret; +} + +// sc101 use "i2c paging mode", so the high byte of the register needs to be written to the 0xf0 reg. +// For more information please refer to the Technical Reference Manual. +static int set_reg(sensor_t *sensor, int reg, int mask, int value) +{ + int ret = 0; + uint8_t reg_high = (reg>>8) & 0xFF; + uint8_t reg_low = reg & 0xFF; + + if(SCCB_Write(sensor->slv_addr, 0xf0, reg_high)) { + return -1; + } + + ret = SCCB_Write(sensor->slv_addr, reg_low, value & 0xFF); + return ret; +} + +static int set_regs(sensor_t *sensor, const uint8_t (*regs)[2], uint32_t regs_entry_len) +{ + int i=0, res = 0; + while (islv_addr, regs[i][0], regs[i][1]); + if (res) { + return res; + } + i++; + } + return res; +} + +static int set_reg_bits(sensor_t *sensor, int reg, uint8_t offset, uint8_t length, uint8_t value) +{ + int ret = 0; + ret = get_reg(sensor, reg, 0xff); + if(ret < 0){ + return ret; + } + uint8_t mask = ((1 << length) - 1) << offset; + value = (ret & ~mask) | ((value << offset) & mask); + ret = set_reg(sensor, reg & 0xFFFF, 0xFFFF, value); + return ret; +} + +#define WRITE_REGS_OR_RETURN(regs, regs_entry_len) ret = set_regs(sensor, regs, regs_entry_len); if(ret){return ret;} +#define WRITE_REG_OR_RETURN(reg, val) ret = set_reg(sensor, reg, 0xFF, val); if(ret){return ret;} +#define SET_REG_BITS_OR_RETURN(reg, offset, length, val) ret = set_reg_bits(sensor, reg, offset, length, val); if(ret){return ret;} + +static int set_hmirror(sensor_t *sensor, int enable) +{ + int ret = 0; + if(enable) { + SET_REG_BITS_OR_RETURN(0x3221, 1, 2, 0x3); // enable mirror + } else { + SET_REG_BITS_OR_RETURN(0x3221, 1, 2, 0x0); // disable mirror + } + + return ret; +} + +static int set_vflip(sensor_t *sensor, int enable) +{ + int ret = 0; + if(enable) { + SET_REG_BITS_OR_RETURN(0x3221, 5, 2, 0x3); // flip on + } else { + SET_REG_BITS_OR_RETURN(0x3221, 5, 2, 0x0); // flip off + } + + return ret; +} + +static int set_colorbar(sensor_t *sensor, int enable) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x0100, 7, 1, enable & 0xff); // enable colorbar mode + return ret; +} + +static int set_raw_gma(sensor_t *sensor, int enable) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00f5, 1, 1, enable & 0xff); // enable gamma compensation + + return ret; +} + +static int set_sharpness(sensor_t *sensor, int level) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00e0, 1, 1, 1); // enable edge enhancement + WRITE_REG_OR_RETURN(0x00d0, level & 0xFF); // base value + WRITE_REG_OR_RETURN(0x00d2, (level >> 8) & 0xFF); // limit + + return ret; +} + +static int set_agc_gain(sensor_t *sensor, int gain) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x0070, 1, 1, 1); // enable auto agc control + WRITE_REG_OR_RETURN(0x0068, gain & 0xFF); // Window weight setting1 + WRITE_REG_OR_RETURN(0x0069, (gain >> 8) & 0xFF); // Window weight setting2 + WRITE_REG_OR_RETURN(0x006a, (gain >> 16) & 0xFF); // Window weight setting3 + WRITE_REG_OR_RETURN(0x006b, (gain >> 24) & 0xFF); // Window weight setting4 + + return ret; +} + +static int set_aec_value(sensor_t *sensor, int value) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x0070, 0, 1, 1); // enable auto aec control + WRITE_REG_OR_RETURN(0x0072, value & 0xFF); // AE target + + return ret; +} + +static int set_awb_gain(sensor_t *sensor, int value) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00b0, 0, 1, 1); // enable awb control + WRITE_REG_OR_RETURN(0x00c8, value & 0xFF); // blue gain + WRITE_REG_OR_RETURN(0x00c9, (value>>8) & 0XFF); // red gain + return ret; +} + +static int set_saturation(sensor_t *sensor, int level) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00f5, 5, 1, 0); // enable saturation control + WRITE_REG_OR_RETURN(0x0149, level & 0xFF); // blue saturation gain (/128) + WRITE_REG_OR_RETURN(0x014a, (level>>8) & 0XFF); // red saturation gain (/128) + return ret; +} + +static int set_contrast(sensor_t *sensor, int level) +{ + int ret = 0; + SET_REG_BITS_OR_RETURN(0x00f5, 6, 1, 0); // enable contrast control + WRITE_REG_OR_RETURN(0x014b, level); // contrast coefficient(/64) + return ret; +} + +static int reset(sensor_t *sensor) +{ + int ret = set_regs(sensor, sc101iot_default_init_regs, sizeof(sc101iot_default_init_regs)/(sizeof(uint8_t) * 2)); + + // Delay + vTaskDelay(50 / portTICK_PERIOD_MS); + + // ESP_LOGI(TAG, "set_reg=%0x", set_reg(sensor, 0x0100, 0xffff, 0x00)); // write 0x80 to enter test mode if you want to test the sensor + // ESP_LOGI(TAG, "0x0100=%0x", get_reg(sensor, 0x0100, 0xffff)); + if (ret) { + ESP_LOGE(TAG, "reset fail"); + } + return ret; +} + +static int set_window(sensor_t *sensor, int offset_x, int offset_y, int w, int h) +{ + int ret = 0; + //sc:H_start={0x0172[3:0],0x0170},H_end={0x0172[7:4],0x0171}, + WRITE_REG_OR_RETURN(0x0170, offset_x & 0xff); + WRITE_REG_OR_RETURN(0x0171, (offset_x+w) & 0xff); + WRITE_REG_OR_RETURN(0x0172, ((offset_x>>8) & 0x0f) | (((offset_x+w)>>4)&0xf0)); + + //sc:V_start={0x0175[3:0],0x0173},H_end={0x0175[7:4],0x0174}, + WRITE_REG_OR_RETURN(0x0173, offset_y & 0xff); + WRITE_REG_OR_RETURN(0x0174, (offset_y+h) & 0xff); + WRITE_REG_OR_RETURN(0x0175, ((offset_y>>8) & 0x0f) | (((offset_y+h)>>4)&0xf0)); + + vTaskDelay(10 / portTICK_PERIOD_MS); + + return ret; +} + +static int set_framesize(sensor_t *sensor, framesize_t framesize) +{ + uint16_t w = resolution[framesize].width; + uint16_t h = resolution[framesize].height; + if(w>SC101_MAX_FRAME_WIDTH || h > SC101_MAX_FRAME_HIGH) { + goto err; + } + + uint16_t offset_x = (SC101_MAX_FRAME_WIDTH-w) /2; + uint16_t offset_y = (SC101_MAX_FRAME_HIGH-h) /2; + + if(set_window(sensor, offset_x, offset_y, w, h)) { + goto err; + } + + sensor->status.framesize = framesize; + return 0; +err: + ESP_LOGE(TAG, "frame size err"); + return -1; +} + +static int set_pixformat(sensor_t *sensor, pixformat_t pixformat) +{ + int ret=0; + sensor->pixformat = pixformat; + + switch (pixformat) { + case PIXFORMAT_RGB565: + case PIXFORMAT_RAW: + case PIXFORMAT_GRAYSCALE: + ESP_LOGE(TAG, "Not support"); + break; + case PIXFORMAT_YUV422: // For now, sc101 sensor only support YUV422. + break; + default: + ret = -1; + } + + return ret; +} + +static int init_status(sensor_t *sensor) +{ + return 0; +} + +static int set_dummy(sensor_t *sensor, int val){ return -1; } + +static int set_xclk(sensor_t *sensor, int timer, int xclk) +{ + int ret = 0; + sensor->xclk_freq_hz = xclk * 1000000U; + ret = xclk_timer_conf(timer, sensor->xclk_freq_hz); + return ret; +} + +int sc101iot_detect(int slv_addr, sensor_id_t *id) +{ + if (SC101IOT_SCCB_ADDR == slv_addr) { + uint8_t MIDL = SCCB_Read(slv_addr, SC101_SENSOR_ID_LOW_REG); + uint8_t MIDH = SCCB_Read(slv_addr, SC101_SENSOR_ID_HIGH_REG); + uint16_t PID = MIDH << 8 | MIDL; + if (SC101IOT_PID == PID) { + id->PID = PID; + return PID; + } else { + ESP_LOGI(TAG, "Mismatch PID=0x%x", PID); + } + } + return 0; +} + +int sc101iot_init(sensor_t *sensor) +{ + // Set function pointers + sensor->reset = reset; + sensor->init_status = init_status; + sensor->set_pixformat = set_pixformat; + sensor->set_framesize = set_framesize; + sensor->set_hmirror = set_hmirror; + sensor->set_vflip = set_vflip; + sensor->set_colorbar = set_colorbar; + sensor->set_raw_gma = set_raw_gma; + sensor->set_sharpness = set_sharpness; + sensor->set_agc_gain = set_agc_gain; + sensor->set_aec_value = set_aec_value; + sensor->set_awb_gain = set_awb_gain; + sensor->set_saturation= set_saturation; + sensor->set_contrast = set_contrast; + + sensor->set_denoise = set_dummy; + sensor->set_quality = set_dummy; + sensor->set_special_effect = set_dummy; + sensor->set_wb_mode = set_dummy; + sensor->set_ae_level = set_dummy; + + + sensor->get_reg = get_reg; + sensor->set_reg = set_reg; + sensor->set_xclk = set_xclk; + + ESP_LOGD(TAG, "sc101iot Attached"); + + return 0; +} \ No newline at end of file diff --git a/code/components/esp32-camera-master/target/esp32/ll_cam.c b/code/components/esp32-camera-master/target/esp32/ll_cam.c index d0f0c862..ed7f9413 100644 --- a/code/components/esp32-camera-master/target/esp32/ll_cam.c +++ b/code/components/esp32-camera-master/target/esp32/ll_cam.c @@ -34,10 +34,14 @@ static inline int gpio_ll_get_level(gpio_dev_t *hw, int gpio_num) #include "xclk.h" #include "cam_hal.h" +#if (ESP_IDF_VERSION_MAJOR >= 4) && (ESP_IDF_VERSION_MINOR >= 3) +#include "esp_rom_gpio.h" +#endif + #if (ESP_IDF_VERSION_MAJOR >= 5) #define GPIO_PIN_INTR_POSEDGE GPIO_INTR_POSEDGE #define GPIO_PIN_INTR_NEGEDGE GPIO_INTR_NEGEDGE -#define gpio_matrix_in(a,b,c) gpio_iomux_in(a,b) +#define gpio_matrix_in(a,b,c) esp_rom_gpio_connect_in_signal(a,b,c) #endif static const char *TAG = "esp32 ll_cam"; @@ -233,7 +237,7 @@ static void IRAM_ATTR ll_cam_dma_isr(void *arg) //DBG_PIN_SET(0); } -bool ll_cam_stop(cam_obj_t *cam) +bool IRAM_ATTR ll_cam_stop(cam_obj_t *cam) { I2S0.conf.rx_start = 0; I2S_ISR_DISABLE(in_suc_eof); @@ -308,7 +312,7 @@ esp_err_t ll_cam_config(cam_obj_t *cam, const camera_config_t *config) I2S0.clkm_conf.clkm_div_a = 0; I2S0.clkm_conf.clkm_div_b = 0; I2S0.clkm_conf.clkm_div_num = 2; - + I2S0.fifo_conf.dscr_en = 1; I2S0.fifo_conf.rx_fifo_mod = sampling_mode; I2S0.fifo_conf.rx_fifo_mod_force_en = 1; @@ -442,9 +446,12 @@ static bool ll_cam_calc_rgb_dma(cam_obj_t *cam){ } // Calculate DMA size dma_buffer_size =(dma_buffer_max / dma_half_buffer) * dma_half_buffer; - - ESP_LOGI(TAG, "node_size: %4u, nodes_per_line: %u, lines_per_node: %u, dma_half_buffer_min: %5u, dma_half_buffer: %5u, lines_per_half_buffer: %2u, dma_buffer_size: %5u, image_size: %u", - node_size * cam->dma_bytes_per_item, nodes_per_line, lines_per_node, dma_half_buffer_min * cam->dma_bytes_per_item, dma_half_buffer * cam->dma_bytes_per_item, lines_per_half_buffer, dma_buffer_size * cam->dma_bytes_per_item, image_size); + + ESP_LOGI(TAG, "node_size: %4u, nodes_per_line: %u, lines_per_node: %u, dma_half_buffer_min: %5u, dma_half_buffer: %5u," + "lines_per_half_buffer: %2u, dma_buffer_size: %5u, image_size: %u", + (unsigned) (node_size * cam->dma_bytes_per_item), (unsigned) nodes_per_line, (unsigned) lines_per_node, + (unsigned) (dma_half_buffer_min * cam->dma_bytes_per_item), (unsigned) (dma_half_buffer * cam->dma_bytes_per_item), + (unsigned) (lines_per_half_buffer), (unsigned) (dma_buffer_size * cam->dma_bytes_per_item), (unsigned) image_size); cam->dma_buffer_size = dma_buffer_size * cam->dma_bytes_per_item; cam->dma_half_buffer_size = dma_half_buffer * cam->dma_bytes_per_item; diff --git a/code/components/esp32-camera-master/target/esp32s2/ll_cam.c b/code/components/esp32-camera-master/target/esp32s2/ll_cam.c index e54b81f0..b6f0a92b 100644 --- a/code/components/esp32-camera-master/target/esp32s2/ll_cam.c +++ b/code/components/esp32-camera-master/target/esp32s2/ll_cam.c @@ -21,10 +21,15 @@ #include "xclk.h" #include "cam_hal.h" +#if (ESP_IDF_VERSION_MAJOR >= 4) && (ESP_IDF_VERSION_MINOR >= 3) +#include "esp_rom_gpio.h" +#endif + #if (ESP_IDF_VERSION_MAJOR >= 5) #define GPIO_PIN_INTR_POSEDGE GPIO_INTR_POSEDGE #define GPIO_PIN_INTR_NEGEDGE GPIO_INTR_NEGEDGE -#define gpio_matrix_in(a,b,c) gpio_iomux_in(a,b) +#define gpio_matrix_in(a,b,c) esp_rom_gpio_connect_in_signal(a,b,c) +#define ets_delay_us(a) esp_rom_delay_us(a) #endif static const char *TAG = "s2 ll_cam"; @@ -70,7 +75,7 @@ static void IRAM_ATTR ll_cam_dma_isr(void *arg) } } -bool ll_cam_stop(cam_obj_t *cam) +bool IRAM_ATTR ll_cam_stop(cam_obj_t *cam) { I2S0.conf.rx_start = 0; @@ -119,7 +124,7 @@ bool ll_cam_start(cam_obj_t *cam, int frame_pos) } else { I2S0.in_link.addr = ((uint32_t)&cam->frames[frame_pos].dma[0]) & 0xfffff; } - + I2S0.in_link.start = 1; I2S0.conf.rx_start = 1; return true; @@ -299,8 +304,8 @@ static bool ll_cam_calc_rgb_dma(cam_obj_t *cam){ } } - ESP_LOGI(TAG, "node_size: %4u, nodes_per_line: %u, lines_per_node: %u", - node_size * cam->dma_bytes_per_item, nodes_per_line, lines_per_node); + ESP_LOGI(TAG, "node_size: %4u, nodes_per_line: %u, lines_per_node: %u", + (unsigned) (node_size * cam->dma_bytes_per_item), nodes_per_line, lines_per_node); cam->dma_node_buffer_size = node_size * cam->dma_bytes_per_item; @@ -332,9 +337,10 @@ static bool ll_cam_calc_rgb_dma(cam_obj_t *cam){ size_t dma_buffer_max = 2 * dma_half_buffer_max; size_t dma_buffer_size = dma_buffer_max; dma_buffer_size =(dma_buffer_max / dma_half_buffer) * dma_half_buffer; - - ESP_LOGI(TAG, "dma_half_buffer_min: %5u, dma_half_buffer: %5u, lines_per_half_buffer: %2u, dma_buffer_size: %5u", - dma_half_buffer_min * cam->dma_bytes_per_item, dma_half_buffer * cam->dma_bytes_per_item, lines_per_half_buffer, dma_buffer_size * cam->dma_bytes_per_item); + + ESP_LOGI(TAG, "dma_half_buffer_min: %5u, dma_half_buffer: %5u, lines_per_half_buffer: %2u, dma_buffer_size: %5u", + (unsigned) (dma_half_buffer_min * cam->dma_bytes_per_item), (unsigned) (dma_half_buffer * cam->dma_bytes_per_item), + (unsigned) lines_per_half_buffer, (unsigned) (dma_buffer_size * cam->dma_bytes_per_item)); cam->dma_buffer_size = dma_buffer_size * cam->dma_bytes_per_item; cam->dma_half_buffer_size = dma_half_buffer * cam->dma_bytes_per_item; diff --git a/code/components/esp32-camera-master/target/esp32s3/ll_cam.c b/code/components/esp32-camera-master/target/esp32s3/ll_cam.c index ce405d16..7520cac3 100644 --- a/code/components/esp32-camera-master/target/esp32s3/ll_cam.c +++ b/code/components/esp32-camera-master/target/esp32s3/ll_cam.c @@ -22,10 +22,15 @@ #include "soc/gdma_reg.h" #include "ll_cam.h" #include "cam_hal.h" +#include "esp_rom_gpio.h" #if (ESP_IDF_VERSION_MAJOR >= 5) -#define gpio_matrix_in(a,b,c) gpio_iomux_in(a,b) -#define gpio_matrix_out(a,b,c,d) gpio_iomux_out(a,b,c) +#include "soc/gpio_sig_map.h" +#include "soc/gpio_periph.h" +#include "soc/io_mux_reg.h" +#define gpio_matrix_in(a,b,c) esp_rom_gpio_connect_in_signal(a,b,c) +#define gpio_matrix_out(a,b,c,d) esp_rom_gpio_connect_out_signal(a,b,c,d) +#define ets_delay_us(a) esp_rom_delay_us(a) #endif static const char *TAG = "s3 ll_cam"; @@ -74,7 +79,7 @@ static void IRAM_ATTR ll_cam_dma_isr(void *arg) } } -bool ll_cam_stop(cam_obj_t *cam) +bool IRAM_ATTR ll_cam_stop(cam_obj_t *cam) { if (cam->jpeg_mode || !cam->psram_mode) { GDMA.channel[cam->dma_num].in.int_ena.in_suc_eof = 0; @@ -170,6 +175,7 @@ static esp_err_t ll_cam_dma_init(cam_obj_t *cam) } GDMA.channel[cam->dma_num].in.conf1.in_check_owner = 0; + // GDMA.channel[cam->dma_num].in.conf1.in_ext_mem_bk_size = 2; GDMA.channel[cam->dma_num].in.peri_sel.sel = 5; //GDMA.channel[cam->dma_num].in.pri.rx_pri = 1;//rx prio 0-15 @@ -178,8 +184,57 @@ static esp_err_t ll_cam_dma_init(cam_obj_t *cam) return ESP_OK; } +#if CONFIG_CAMERA_CONVERTER_ENABLED +static esp_err_t ll_cam_converter_config(cam_obj_t *cam, const camera_config_t *config) +{ + esp_err_t ret = ESP_OK; + + switch (config->conv_mode) { + case YUV422_TO_YUV420: + if (config->pixel_format != PIXFORMAT_YUV422) { + ret = ESP_FAIL; + } else { + ESP_LOGI(TAG, "YUV422 to YUV420 mode"); + LCD_CAM.cam_rgb_yuv.cam_conv_yuv2yuv_mode = 1; + LCD_CAM.cam_rgb_yuv.cam_conv_yuv_mode = 0; + LCD_CAM.cam_rgb_yuv.cam_conv_trans_mode = 1; + } + break; + case YUV422_TO_RGB565: + if (config->pixel_format != PIXFORMAT_YUV422) { + ret = ESP_FAIL; + } else { + ESP_LOGI(TAG, "YUV422 to RGB565 mode"); + LCD_CAM.cam_rgb_yuv.cam_conv_yuv2yuv_mode = 3; + LCD_CAM.cam_rgb_yuv.cam_conv_yuv_mode = 0; + LCD_CAM.cam_rgb_yuv.cam_conv_trans_mode = 0; + } + break; + default: + break; + } +#if CONFIG_LCD_CAM_CONV_BT709_ENABLED + LCD_CAM.cam_rgb_yuv.cam_conv_protocol_mode = 1; +#else + LCD_CAM.cam_rgb_yuv.cam_conv_protocol_mode = 0; +#endif +#if CONFIG_LCD_CAM_CONV_FULL_RANGE_ENABLED + LCD_CAM.cam_rgb_yuv.cam_conv_data_out_mode = 1; + LCD_CAM.cam_rgb_yuv.cam_conv_data_in_mode = 1; +#else + LCD_CAM.cam_rgb_yuv.cam_conv_data_out_mode = 0; + LCD_CAM.cam_rgb_yuv.cam_conv_data_in_mode = 0; +#endif + LCD_CAM.cam_rgb_yuv.cam_conv_mode_8bits_on = 1; + LCD_CAM.cam_rgb_yuv.cam_conv_bypass = 1; + cam->conv_mode = config->conv_mode; + return ret; +} +#endif + esp_err_t ll_cam_config(cam_obj_t *cam, const camera_config_t *config) { + esp_err_t ret = ESP_OK; if (REG_GET_BIT(SYSTEM_PERIP_CLK_EN1_REG, SYSTEM_LCD_CAM_CLK_EN) == 0) { REG_CLR_BIT(SYSTEM_PERIP_CLK_EN1_REG, SYSTEM_LCD_CAM_CLK_EN); REG_SET_BIT(SYSTEM_PERIP_CLK_EN1_REG, SYSTEM_LCD_CAM_CLK_EN); @@ -188,7 +243,7 @@ esp_err_t ll_cam_config(cam_obj_t *cam, const camera_config_t *config) } LCD_CAM.cam_ctrl.val = 0; - + LCD_CAM.cam_ctrl.cam_clkm_div_b = 0; LCD_CAM.cam_ctrl.cam_clkm_div_a = 0; LCD_CAM.cam_ctrl.cam_clkm_div_num = 160000000 / config->xclk_freq_hz; @@ -215,15 +270,21 @@ esp_err_t ll_cam_config(cam_obj_t *cam, const camera_config_t *config) LCD_CAM.cam_rgb_yuv.val = 0; +#if CONFIG_CAMERA_CONVERTER_ENABLED + if (config->conv_mode) { + ret = ll_cam_converter_config(cam, config); + if(ret != ESP_OK) { + return ret; + } + } +#endif + LCD_CAM.cam_ctrl.cam_update = 1; LCD_CAM.cam_ctrl1.cam_start = 1; - esp_err_t err = ll_cam_dma_init(cam); - if(err != ESP_OK) { - return err; - } - - return ESP_OK; + ret = ll_cam_dma_init(cam); + + return ret; } void ll_cam_vsync_intr_enable(cam_obj_t *cam, bool en) @@ -262,11 +323,12 @@ esp_err_t ll_cam_set_pin(cam_obj_t *cam, const camera_config_t *config) gpio_set_pull_mode(data_pins[i], GPIO_FLOATING); gpio_matrix_in(data_pins[i], CAM_DATA_IN0_IDX + i, false); } - - PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[config->pin_xclk], PIN_FUNC_GPIO); - gpio_set_direction(config->pin_xclk, GPIO_MODE_OUTPUT); - gpio_set_pull_mode(config->pin_xclk, GPIO_FLOATING); - gpio_matrix_out(config->pin_xclk, CAM_CLK_IDX, false, false); + if (config->pin_xclk >= 0) { + PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[config->pin_xclk], PIN_FUNC_GPIO); + gpio_set_direction(config->pin_xclk, GPIO_MODE_OUTPUT); + gpio_set_pull_mode(config->pin_xclk, GPIO_FLOATING); + gpio_matrix_out(config->pin_xclk, CAM_CLK_IDX, false, false); + } return ESP_OK; } @@ -338,8 +400,8 @@ static bool ll_cam_calc_rgb_dma(cam_obj_t *cam){ } } - ESP_LOGI(TAG, "node_size: %4u, nodes_per_line: %u, lines_per_node: %u", - node_size * cam->dma_bytes_per_item, nodes_per_line, lines_per_node); + ESP_LOGI(TAG, "node_size: %4u, nodes_per_line: %u, lines_per_node: %u", + (unsigned) (node_size * cam->dma_bytes_per_item), (unsigned) nodes_per_line, (unsigned) lines_per_node); cam->dma_node_buffer_size = node_size * cam->dma_bytes_per_item; @@ -371,9 +433,10 @@ static bool ll_cam_calc_rgb_dma(cam_obj_t *cam){ if (!cam->psram_mode) { dma_buffer_size =(dma_buffer_max / dma_half_buffer) * dma_half_buffer; } - - ESP_LOGI(TAG, "dma_half_buffer_min: %5u, dma_half_buffer: %5u, lines_per_half_buffer: %2u, dma_buffer_size: %5u", - dma_half_buffer_min * cam->dma_bytes_per_item, dma_half_buffer * cam->dma_bytes_per_item, lines_per_half_buffer, dma_buffer_size * cam->dma_bytes_per_item); + + ESP_LOGI(TAG, "dma_half_buffer_min: %5u, dma_half_buffer: %5u, lines_per_half_buffer: %2u, dma_buffer_size: %5u", + (unsigned) (dma_half_buffer_min * cam->dma_bytes_per_item), (unsigned) (dma_half_buffer * cam->dma_bytes_per_item), + (unsigned) lines_per_half_buffer, (unsigned) (dma_buffer_size * cam->dma_bytes_per_item)); cam->dma_buffer_size = dma_buffer_size * cam->dma_bytes_per_item; cam->dma_half_buffer_size = dma_half_buffer * cam->dma_bytes_per_item; @@ -382,7 +445,7 @@ static bool ll_cam_calc_rgb_dma(cam_obj_t *cam){ } bool ll_cam_dma_sizes(cam_obj_t *cam) -{ +{ cam->dma_bytes_per_item = 1; if (cam->jpeg_mode) { if (cam->psram_mode) { @@ -433,8 +496,22 @@ esp_err_t ll_cam_set_sample_mode(cam_obj_t *cam, pixformat_t pix_format, uint32_ } cam->fb_bytes_per_pixel = 1; // frame buffer stores Y8 } else if (pix_format == PIXFORMAT_YUV422 || pix_format == PIXFORMAT_RGB565) { - cam->in_bytes_per_pixel = 2; // camera sends YU/YV +#if CONFIG_CAMERA_CONVERTER_ENABLED + switch (cam->conv_mode) { + case YUV422_TO_YUV420: + cam->in_bytes_per_pixel = 1.5; // for DMA receive + cam->fb_bytes_per_pixel = 1.5; // frame buffer stores YUV420 + break; + case YUV422_TO_RGB565: + default: + cam->in_bytes_per_pixel = 2; // for DMA receive cam->fb_bytes_per_pixel = 2; // frame buffer stores YU/YV/RGB565 + break; + } +#else + cam->in_bytes_per_pixel = 2; // for DMA receive + cam->fb_bytes_per_pixel = 2; // frame buffer stores YU/YV/RGB565 +#endif } else if (pix_format == PIXFORMAT_JPEG) { cam->in_bytes_per_pixel = 1; cam->fb_bytes_per_pixel = 1; diff --git a/code/components/esp32-camera-master/target/private_include/ll_cam.h b/code/components/esp32-camera-master/target/private_include/ll_cam.h index 7d30c370..34c8da36 100644 --- a/code/components/esp32-camera-master/target/private_include/ll_cam.h +++ b/code/components/esp32-camera-master/target/private_include/ll_cam.h @@ -101,7 +101,7 @@ typedef struct { QueueHandle_t frame_buffer_queue; TaskHandle_t task_handle; intr_handle_t cam_intr_handle; - + uint8_t dma_num;//ESP32-S3 intr_handle_t dma_intr_handle;//ESP32-S3 @@ -116,8 +116,14 @@ typedef struct { //for RGB/YUV modes uint16_t width; uint16_t height; +#if CONFIG_CAMERA_CONVERTER_ENABLED + float in_bytes_per_pixel; + float fb_bytes_per_pixel; + camera_conv_mode_t conv_mode; +#else uint8_t in_bytes_per_pixel; uint8_t fb_bytes_per_pixel; +#endif uint32_t fb_size; cam_state_t state; @@ -134,7 +140,7 @@ esp_err_t ll_cam_init_isr(cam_obj_t *cam); void ll_cam_do_vsync(cam_obj_t *cam); uint8_t ll_cam_get_dma_align(cam_obj_t *cam); bool ll_cam_dma_sizes(cam_obj_t *cam); -size_t IRAM_ATTR ll_cam_memcpy(cam_obj_t *cam, uint8_t *out, const uint8_t *in, size_t len); +size_t ll_cam_memcpy(cam_obj_t *cam, uint8_t *out, const uint8_t *in, size_t len); esp_err_t ll_cam_set_sample_mode(cam_obj_t *cam, pixformat_t pix_format, uint32_t xclk_freq_hz, uint16_t sensor_pid); // implemented in cam_hal diff --git a/code/components/esp32-camera-master/test/test_camera.c b/code/components/esp32-camera-master/test/test_camera.c index 89ad0619..f03b7c6a 100644 --- a/code/components/esp32-camera-master/test/test_camera.c +++ b/code/components/esp32-camera-master/test/test_camera.c @@ -6,6 +6,7 @@ #include "unity.h" #include #include "esp_log.h" +#include "driver/i2c.h" #include "esp_camera.h" @@ -105,11 +106,16 @@ #endif +#define I2C_MASTER_SCL_IO 4 /*!< GPIO number used for I2C master clock */ +#define I2C_MASTER_SDA_IO 5 /*!< GPIO number used for I2C master data */ +#define I2C_MASTER_NUM 0 /*!< I2C master i2c port number, the number of i2c peripheral interfaces available will depend on the chip */ +#define I2C_MASTER_FREQ_HZ 100000 /*!< I2C master clock frequency */ + static const char *TAG = "test camera"; typedef void (*decode_func_t)(uint8_t *jpegbuffer, uint32_t size, uint8_t *outbuffer); -static esp_err_t init_camera(uint32_t xclk_freq_hz, pixformat_t pixel_format, framesize_t frame_size, uint8_t fb_count) +static esp_err_t init_camera(uint32_t xclk_freq_hz, pixformat_t pixel_format, framesize_t frame_size, uint8_t fb_count, int sccb_sda_gpio_num, int sccb_port) { framesize_t size_bak = frame_size; if (PIXFORMAT_JPEG == pixel_format && FRAMESIZE_SVGA > frame_size) { @@ -119,8 +125,9 @@ static esp_err_t init_camera(uint32_t xclk_freq_hz, pixformat_t pixel_format, fr .pin_pwdn = PWDN_GPIO_NUM, .pin_reset = RESET_GPIO_NUM, .pin_xclk = XCLK_GPIO_NUM, - .pin_sscb_sda = SIOD_GPIO_NUM, - .pin_sscb_scl = SIOC_GPIO_NUM, + .pin_sccb_sda = sccb_sda_gpio_num, // If pin_sccb_sda is -1, sccb will use the already initialized i2c port specified by `sccb_i2c_port`. + .pin_sccb_scl = SIOC_GPIO_NUM, + .sccb_i2c_port = sccb_port, .pin_d7 = Y9_GPIO_NUM, .pin_d6 = Y8_GPIO_NUM, @@ -226,7 +233,7 @@ static void camera_performance_test(uint32_t xclk_freq, uint32_t pic_num) { esp_err_t ret = ESP_OK; //detect sensor information - TEST_ESP_OK(init_camera(20000000, PIXFORMAT_RGB565, FRAMESIZE_QVGA, 2)); + TEST_ESP_OK(init_camera(20000000, PIXFORMAT_RGB565, FRAMESIZE_QVGA, 2, SIOD_GPIO_NUM, -1)); sensor_t *s = esp_camera_sensor_get(); camera_sensor_info_t *info = esp_camera_sensor_get_info(&s->id); TEST_ASSERT_NOT_NULL(info); @@ -249,7 +256,7 @@ static void camera_performance_test(uint32_t xclk_freq, uint32_t pic_num) for (; format_s <= format_e; format_s++) { for (size_t i = 0; i <= max_size; i++) { ESP_LOGI(TAG, "\n\n===> Testing format:%s resolution: %d x %d <===", get_cam_format_name(*format_s), resolution[i].width, resolution[i].height); - ret = init_camera(xclk_freq, *format_s, i, 2); + ret = init_camera(xclk_freq, *format_s, i, 2, SIOD_GPIO_NUM, -1); vTaskDelay(100 / portTICK_RATE_MS); if (ESP_OK != ret) { ESP_LOGW(TAG, "Testing init failed :-(, skip this item"); @@ -276,7 +283,7 @@ static void camera_performance_test(uint32_t xclk_freq, uint32_t pic_num) TEST_CASE("Camera driver init, deinit test", "[camera]") { uint64_t t1 = esp_timer_get_time(); - TEST_ESP_OK(init_camera(20000000, PIXFORMAT_RGB565, FRAMESIZE_QVGA, 2)); + TEST_ESP_OK(init_camera(20000000, PIXFORMAT_RGB565, FRAMESIZE_QVGA, 2, SIOD_GPIO_NUM, -1)); uint64_t t2 = esp_timer_get_time(); ESP_LOGI(TAG, "Camera init time %llu ms", (t2 - t1) / 1000); @@ -285,7 +292,7 @@ TEST_CASE("Camera driver init, deinit test", "[camera]") TEST_CASE("Camera driver take RGB565 picture test", "[camera]") { - TEST_ESP_OK(init_camera(10000000, PIXFORMAT_RGB565, FRAMESIZE_QVGA, 2)); + TEST_ESP_OK(init_camera(10000000, PIXFORMAT_RGB565, FRAMESIZE_QVGA, 2, SIOD_GPIO_NUM, -1)); vTaskDelay(500 / portTICK_RATE_MS); ESP_LOGI(TAG, "Taking picture..."); camera_fb_t *pic = esp_camera_fb_get(); @@ -301,7 +308,7 @@ TEST_CASE("Camera driver take RGB565 picture test", "[camera]") TEST_CASE("Camera driver take YUV422 picture test", "[camera]") { - TEST_ESP_OK(init_camera(10000000, PIXFORMAT_YUV422, FRAMESIZE_QVGA, 2)); + TEST_ESP_OK(init_camera(10000000, PIXFORMAT_YUV422, FRAMESIZE_QVGA, 2, SIOD_GPIO_NUM, -1)); vTaskDelay(500 / portTICK_RATE_MS); ESP_LOGI(TAG, "Taking picture..."); camera_fb_t *pic = esp_camera_fb_get(); @@ -317,7 +324,7 @@ TEST_CASE("Camera driver take YUV422 picture test", "[camera]") TEST_CASE("Camera driver take JPEG picture test", "[camera]") { - TEST_ESP_OK(init_camera(20000000, PIXFORMAT_JPEG, FRAMESIZE_QVGA, 2)); + TEST_ESP_OK(init_camera(20000000, PIXFORMAT_JPEG, FRAMESIZE_QVGA, 2, SIOD_GPIO_NUM, -1)); vTaskDelay(500 / portTICK_RATE_MS); ESP_LOGI(TAG, "Taking picture..."); camera_fb_t *pic = esp_camera_fb_get(); @@ -484,6 +491,25 @@ static void img_jpeg_decode_test(uint16_t pic_index, uint16_t lib_index) jpg_decode_test(lib_index, DECODE_RGB565, imgs[pic_index].buf, imgs[pic_index].length, imgs[pic_index].w, imgs[pic_index].h, 16); } +/** + * @brief i2c master initialization + */ +static esp_err_t i2c_master_init(int i2c_port) +{ + i2c_config_t conf = { + .mode = I2C_MODE_MASTER, + .sda_io_num = I2C_MASTER_SDA_IO, + .scl_io_num = I2C_MASTER_SCL_IO, + .sda_pullup_en = GPIO_PULLUP_ENABLE, + .scl_pullup_en = GPIO_PULLUP_ENABLE, + .master.clk_speed = I2C_MASTER_FREQ_HZ, + }; + + i2c_param_config(i2c_port, &conf); + + return i2c_driver_install(i2c_port, conf.mode, 0, 0, 0); +} + TEST_CASE("Conversions image 227x149 jpeg decode test", "[camera]") { img_jpeg_decode_test(0, 0); @@ -498,3 +524,12 @@ TEST_CASE("Conversions image 480x320 jpeg decode test", "[camera]") { img_jpeg_decode_test(2, 0); } + +TEST_CASE("Camera driver uses an i2c port initialized by other devices test", "[camera]") +{ + TEST_ESP_OK(i2c_master_init(I2C_MASTER_NUM)); + TEST_ESP_OK(init_camera(20000000, PIXFORMAT_JPEG, FRAMESIZE_QVGA, 2, -1, I2C_MASTER_NUM)); + vTaskDelay(500 / portTICK_RATE_MS); + TEST_ESP_OK(esp_camera_deinit()); + TEST_ESP_OK(i2c_driver_delete(I2C_MASTER_NUM)); +} diff --git a/code/components/esp32-camera-master_20220924.zip b/code/components/esp32-camera-master_20220924.zip new file mode 100644 index 0000000000000000000000000000000000000000..0ed83dd17863cf05ccb4c0e31893ffa9da7658e1 GIT binary patch literal 291065 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%0A%&l0%!p%DZ=^iP(A(FmnlzrkJ|x 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 z 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ȊKog3r?E(NbH)c8Hr)sa``L#2c{t|J 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

!K zq@AS5J6Dlua9wF$Gw~IOc{Ghi8JhaVq0D6@+WQy-&eDv$1IYuNS4r@LTv4rm!Y`^D zjVDnSvo)>t+$^e&%5xJ&aCS=>+4U-ZrmGdZYg&Gzs@VSkXY*uPSen1J%_5?Xgg4jjV-@B-rFsD?dWu<+RZDQUMJG+yjO0P7aEM#_quMJ^8J>| z$j#<(?nqT(j2HW$cH`2#XTh4C$A>iwePTF%)g8duDUo=dGUP}BV~l_S$RO_9j@9dN z__tZ{ZI6hr()KG$y*f6UDWwE5yH13%l5k&xk74VI?R-Cb;jfFH1k`j}JrQj6IHdDU z)UEreo<%7pJg^Hk;k+OiX2JW%2ans$`km$OnPDqj zUg}uL8AvMI{P#YG0a9 zl`g;HcG-FQ+eR*0U-6sZkYnRua8Npc&ou)6T7?6 zF09%a+&V&vh6J$iXv{{Vxez1Q^zzG-wFHhCIZZ+4`v7iMEu zR&_iwsL97#_Ar=Q6)3q@f_vR=pDvMacJ8%H&(K=#d!3c4!*88{aroEKf3a&Q@s_+W z%^|T*koW!NeBv%-Bm3+}2N=zL6Z;X6JbB_WWE+iye=q&CALsF}rp12-U)NJ=Z{JAz z?#wl&pv+G4-F-Urt*e<8?Fj?7TIVLaFzV=lZVW%IYFxV_jh}RmMSScfWYOu)7ipiA z{{Zk&Xf*pj+6rrin&vC!(e1=(96-e9GN{XL2RwRqA4>U(_Tt{hMp^B(*~Y4FS~t^{ zCs2@u8(+-M)02_6sK$HO+aK^y>uWiFBu9Gii6uTA4gR^44wB7`fN*~*`D0Sopw)k8 zjSESR&cpjo&r>oi(S;XsBYD}~+^%;1p4IgDU1&k0%c{S5B+gqy@on|Ii6r+|ETCZI z2LyYL_1t)C;vJ&hFplQp!sM|FaFOOW9fJ&U_=EUYms-T;&RyY>X!ql@DH#6%8oi}S zGPp6m8{I+vb*z%yl)59@rudFEDZjFH+dDm0(EREhHzs;+9OYZw5No0Ehl9L4_kMPt z8>CD#<;+7BK7fv+>(AG%dCrGy+NI1=O2A0CQ}O|k_*buJkVR>3M?;R)(N4V7eVbB~*?UexW@ zSQL(j`=-9X{fJ=`d@k_?qX8nWuFO@2attw#=~IYyrroX-TT@z}3tM=PT=26eh5UJI zH;8;Pa4qL)*>0@=0NRFJoxF7iswL5#wS5m!yw$urauuz$3rPo=Zp|XE zmh05G8Tn4!o`m=P0Qj~0F=$>pvo}_d!D)0s4GBy}=kWWczA*8(!LJy65%C$l@Z^_P zZb0*F*p`M>;NYpsu>32?oMw~uZ%)Ur8Plz0Q-0^0>sB+LCg5CLyBQMR=0+&FLo2Q& zWnIu6v5%DQC+2R071jRFe-HGXd*cK;2CEnLhMg^g$k}NlV8dzQfeZ*E2mS?&sZ&;y zQ_=n-S-}O3snPsXV9~hIWPOV!*DT9xE^?&qEw#gR0eIl+d?~(%!M_=oTGbL=BHG@? zp_*&eXxcUkfM;;Y>A*cQ7mx*ILUL7N-P&9K0AJVQJVhlMZAB}+tbJdm{2A~@f)v>J zV@_EV=XB5snEgxS*4C^9I#i1kO9ICcj6?uXqiMhc^6BYZ9RC2c$AKSDlIAZE+pG(4 z)`iF=nbZPE8028}u4`BQto|O0fp2N5ytgtWo32bmtZJx9Ex3&I;0~s~tLqd}(Vjol z@eTY8x1(O&+x$P%tkMUvcx>T6XkoYkxp9No@P7*IG+z&DcY3@x+EvunvRWAC5=$66 zpPZ69o;c@^t$B5a#=8da;)CJu5?x1Zv4@;kZH_Y7C;;t{!w0F)TKXgQeDSIAoz|$r z!uLdxOfo%=qZwIbjH%kd5HPc{a{!2Buc@n6KY_bG2SpQX<^UBW1CT^x^42yQC}#-9~@P2ukqYPNRK=yTg!nG9(< zD3EPDDJ93}ir_vQc+U6Yx9vTkU27Uum6V!hgLU#+km>Wd8;QvoIjvtU?WxAOpHtf- z_`9q|N1x%TO7}5cDgOY_lvSwyH7W!4tpieodZ>;}eoiX)#9d2I@II86-`I_*s}>C$ zG8o7KbCH3~dHeij@SaeT*j^Nt$U;!v_Ps(`uSI<|T550Jc!+J`|&`7xF^RJ{nKWR{DHrf!hU6F^BoE-D= ze}#DX)8uIx%P?%`=C3}pN_IQx#_>&_bEzX)_!CsKy0wxxC(wE5?nC>zO)Bx*rmc8AN&feW%#^uiL)~7S^LdrXK zH*-$z%KkzYQn9LmpObR#!3+pIbt1SeGr~64_qNxU%^VgFbVPt0DU7QgG21vFjdx!i zzA0aLzfy|YZIGLPm247EFh&UAo~pkt(Xbu}Ju86l*0lwg^RA&XO5QJYlhb%drj;F)^CZEA}*M{EBU(d_91xpqn;AH0jbtkDTdFfrwq2j}R z@LpXXRI^XC-AVSDyqlEsnr)^?q?I=3?#LIG$Qyte2E0#E@dd7-8HP|Ig&D%I2cS8| zdh&apZ%XUq@e%ONjfR$%@muORYlNF2pA*END|P6+j^LK1Qc_V|%J2NO{{V+6wzN#g zwVYh|p6WzFG%qik9AhoN(ML`&KpE+QUDl~9Nu*pPw(-Q}Rqgz-wPOm|``s`H8RxBY zIt|6Pn3qKrBSn>B^Kdxb-1~9(WO`NUwOB1QyR9!#jnOS5RJ3veHzl2cTzuJM$s`p3 z4s(k0>nB!AO%=bd%j9mOrsc>iZ6v+0Pc+rXPmbvs9Uc+NoC_52OTL;s-*d1^uP7}ekK#8Hm@=Wv|C%7i&HGGaTS`R@`V8w z3^q4&$_B4=ia zVP_a&w+D>5D~tlCsKBll!usa1;5}N%-C5sVXlxiF$g3m`8B#=wampV~ojc|_Eu8uM`YYLmo64^`ef-uBg9^xEB%S`!Xf zzRdH>oh)egc8vu7L&R93$05pqaHl;~@sXayax2v|eOF!a2AOkp4ZW6*XIR$N=XO(h zGJrR32OG{ZGB%P37_UCpwOtoe)g|*LZ9Y4)OgA1&%8b1SDn3!b`fll6kAgMC@SM7S zl^o{hGbE!@`w5cT&37hDWaE3BXAOWr;~6#T=XG4EK~je_)4iINyY%;4PTStv+fz@1 zdLw(`{eiIfr=ZzSaInXA6=!1M)*xOo6yTBaNL8|Zd-bn2zws}LbbV`6I-auHZJoUL zFx#f36pa`OAwE*=Q;g?!(boX>71rq5#8#gY_1PY1Q&G~=;`qTLowqE_6Sl$zLNt56 zQ_ye0>0WK)EjmvX_{&hX7aD|6Pb{~N(xW;E-JVFoqLNsR;Z6r*_|_(yt40#7%WdA5 z^|tzcX7wY@X%cwTP}Y{;K(V~jqQAA1N?Y$X5Xxg;F~osf5*acxk~kxbbDu%@IpaMi zNYJ${Gfsn5Z8l3w+0t93icc#MmSKfZ=O=d==qr=>iQy@=eJ8>4T12{Sy_S)0XMJ}p z!4$hRrHMdyZ9gd=FC~cN*P-|_-q*qU)|=oB9qw(6T3yZE{nY59dF1;njso$8+m##> z_pzS2*OG+mswt-1(I;)UZ_?}UG5BuT%xfC0jQGHX3j*3SOwHko0%ob3~d6l}w( zXjOLQ5TD{BJu3$P0K`yu+rw6xcAuuCI+mL?-NS(xVHLUg@w*uc3C7XD+~*wTxJA>3 zlVuK|lP0Lo7t1s;hCs}IUuk|Y%QwfSoXi?+++mZ<15`owZ?&;r}_N#vgUFzQl?rtou zE*|b{&oT6H@LDu;ZQ^xj&g>&N+qD2E+b76In7$;{VAJnqYa8tfW`^l*ZPquCsUgXk zU4xOHag67T*9IC(6zWD!_HHkwt<^6*HdcKuJ0&E0H^ct`2i;z3cK#}ZM!D53cX>9m z-bV1jbvq${-^jcEXvx|n1Li2ZvBf*b_Ifvgd?q|Cd8-KSd_yx|>N>5vH_3bDoy#6V zmQC5?kD2#!4RAgS@n4U12D`P2{wpmyYq+&dI_lYkk;1W%ii()sw*^n#0J3w-8uSfs z#S%fJ>8A5cj?+=RM7Nsw+AOgfxJvq*Y$W72R2T;%0C3_dS9q>PJLr<`?XItHJ952J zPewQIE13QYz0dSTM*th7LHayN`+~Wvy6USV;5OPq??*Bp!9UHuYps0OJg&arF1ab1FE$Z69NJ zyWOW}Yb!44Ue5N_`q<`jlXg0rl)KVymwf9iEs>HiS01(W7wkiOpNQJPXH^nuz>eF$ zc)#PC`O^DZTbrw;0h!VEV1tZ%dVOo#e`5=?KgC(Xuu_(8&O6`{$LcHZF;V@@tZzl$ zYUj~E9)2=t9}B!m;h41_62+tHS2r-aSWE^k?Yz}Vz{;GkR>%rNWDcV>?wf<6k;o#y zIDg=#7Ar5u4}+HyoI?{cImZ|mF%$Y%=$@0QTWYo`J+!GbWN^{2BD_kJ;|f&fx0U|@ zGtp9RZZDzpN9|ktCy$OdZK>&3QP}G7SW9lHGG-}Q?qwv7SCV-iy*+*ugZ4x5=fmrA zd_kZck>vT-(yYpI*zM0@+qkdSyR*JRGlFn2`O_z{it5X3stGHD$6kN^RjwZsI7gSD zs?&^}&zrnC`wRRs__6S_!uJ<8x0+t1bEQIF_Rc`EZfMk!Ljn&yk81goLryJGuiYsO=RyM(qkOqId zp60%{{f1}q{43(L>Js`EKG{M)_FDOGRJJkOY+G@JV9SqRU)H{#{e(f1%f;5Lpbs+L zo8O5lsxD|WjN@ePeMn0iR2k_ee+sXy_)ALhmX?;Fy0$xrfTOXvcs4 zy-B4`B#H$GgB@|x_i7}~Wvp(Gk3Ks7#p|dw)~BN(I~#Oz+wm%34oCy_72+BewX97f zeh~PV;e_#alF-Qt>T#$`q(wqWcVYyAKm=|ef};mD`irzPdsmD6dH7+XUwl0A9qbwv zoz|qVosh_UxTa<*HogJ*Pkui-)~y)7d1%gzE+$ZtgVkt!ov&GG+HC$Hir>NC4J~bk zml_1rE~7~D`HyhIx(#RH&Z?jAkePlFcqhwCi#cNk^FB;#2^^mMkk(570N3JuER~b7>@r^X%EwOC zP2Y+9D{K;L8yQwRNj^yS#fdqa@Y+Vx&KkW__EPbDo-pxui!LraMg6#KZSAd5qte>V z5Gv)B!({oOwi$9UmH9?%=bLYX8lImW^zir>!Mb^aTD0=yY37zoX+L-S)or7Cf726; zZt5{z4}?BBf5NiyzPojOs7vtz>rrz6UkzJ?Na8R;%O(`IS%Pi**vgCn-%1TeqHO2H z##5mv$A9=^)cz=HrqALQyBWN(l}gA~86Z2Cra>V_N8)SDe`m=qw2#^r{{UEq8+W$1 zvWnL33l)4v9I~nh87C!Ol(u>e*y)P#-5$%rx?jXAEqhAvZ;Y>|Z{FLTYI8FQBtl~+ za0+wteedQg)xT$di5lLS@e{;au9e{@xx2fH7$>s2Wq`&SGb}{_#7Tfq!oe6vhcAaK9(&9XxfamTfJL>>~h)NZX`PoGg;N*532EW|}P z2aqr@S3GC>8kfw|&?n7`Y%1 znEU!wD7+J>+<1>k)r1HwCXpX;kbK!dIUkK|tcA?H)4oxB zmgRuQIsP0P#`uHbT_?c49kBt>A)P;HX}^xMs=V5I83_=z7eWpNDks6kTgg2BG2`YuGgFE1g4Wj@ZVVc3n3%p*4|-0*)FS?IRb%=&ba-AizH$vwjDY?IIrpvd+$%Ii9H)Hb1AUeU-@DJj}m z5X3e(`Eie5LN=%fffSLCm3Ul|KD{c09vRj=NvvE$BvTi3 zns8h*FUqXqJd%2R8N0?0hYqrt1Io?U^N$c-j7MT=t z-FcdWqe!5V=yM|wpe_%mPoNb-`%|_1C5$#vN#_V7StVvYfCWH32OL$M15WkPRR8;1j`XR#n*ER2+-gJi6)?)VevVlI{HaeFHf=CCc z&(L#SU7v)ti|+(Q;#;;$>l=o776@B=7cK@42g`yxk zM%k^@v~KYyn97IOYPlZA-o4Yn2%2VxtZ4CFFWGGF?bgJG$Da-3sYi4G5jz(wl%%)-8-dAA1G%o{SK6>7D^K$mvC=QkqtNc4<9b zw%7g{noo^z90SCsjar5ncIjsE~c%c`Xp9$4P}yZM%?o{&k1A=)3enzxBJ>ji(=IUr*(=H9o(Uw+;LdvnIcGWAqa8wn+!0c-`SA9m~#2U_%X$+dAUucnnyp9$)Os9J&&nJ~5KCOTa zb2W*t8gZ#RJ$>CZS5~`PSuO3*)wg?JL)AQe;QLEY0ci(QkIeF{>}EG92Qtpv*bM#B zqbx8;9N?UqZ-TsJx}V2i25K6ViE%Qo_F_YCdL>Pys%9 z!8OIr=h|&8BDa(TP@Y^{z;yY63RIJT56!%G#ai&Lp=YPu=_#pLu+**ZQsx`wkViKB z@+49+M&5D8F`OLcy0F+fFvlwDeA80Ve=3!ew!bk-DXBA*ifu1P(l21sba-V%4<)ta ztnW0Nh};{Ig(?_*(Sk9armc8?#230;mhov9t);_l0EOd81XAzX%%nC(>(sv++0ZZcUwHD z7%2tV?{TzsAd*N>7ZvGFq*W=(tRF77PhVe`;cp_=i8N+->J4LFm%`Wjbkf;0u*z%k0~+ak<LIXsb3-d+73T*a zs44?+MNsiZxvBVK{{Tl#B3oN)^o^YTjA6Eujp--4k;?J`{JH-C8+=y3(sbPp2t2#J zF5Xhnq~)A6g@ZDcVs{}p45VP~t|(E&sKH^ZqkHSUwRYR3)wTZsgPgA$@}8gIh*wIm zvhdWmmfzX7Q^DfUiayRh&pO6YSTT`6B#wh59gKyW5}atwwo7P+ZE}B8ZaPC6J~YAx~8p`Fb4Ux#N{bnpJ8g8Oycor1xp) z_3Qrt4|fO47OZ*?#7_a-_6z$ z;di3gzIl6eZ2ILzcr|7I&r9d|p0p!+vbT|D;Ns|Y?a$*=ZS&w{Ck01QSso(2xv^K8 z*4gi6Mc?*xV67m?$OQ48d*E?e_Go3cSqhaqc~jJT8qR~dXsVhr_KR?0)1XIPvt;ml z;NaFj#SJMnPlnzuwaHa|KI9yG#?>)*oNO*}yNq=i9M(6Ebql*+4C<=~?`{6YFnIg6 zROFNR*L6Hx6_Yt=~LlB!@g@8yV)jyFj=E$s;E_ z*!uy=uXM4AC$!qxD&Cdry&E{zwj+-J08zI^&D@O`zyP-Fd-Gn2@cZM3ivA0HJ@H3~ zd_Cpd-yKg+w`lGFC}U&*9YEs0xhx35>*cRZA9~>LBHDH!;EZCow3~FB;UA2WKo`or z(_bgs?F0JK_}429ozKxvg5EpS{x5ti@ZXECZ6mP0zJQr6?cBUumCBrF2L~TfU7neD zHk~YSTtHPuS9s~_KT7kT*v3IO?Car0Q;>q;0SBfhdiN%YSwX-*TD68!YH8|b>e)Ek zLp#wxMLJTCv z)C?a{mAmd=Cz{s@mCUp9t?XORLRpJ6m!uA&r@q zFkU8gVq=T=)UH(Hg%y+V+r>T~@n3>8jX%UbG9DSzbgS5H?yar0b898quy_6HsoWI` zs8$3Vx#S9?@drz5UmT1700(?no&|$cAZiz$A$g=i19?v4kWeTp7z2=gVsp=*2WP9Z zKBlKt9e<>I5cqwoBO9rH8qJH1WHfSJ__|p#v1FCF9EXT(`9KYfEM+*SB{f)-6@7y!Tjb_d8Dl4WP3ErH3c)0gP8Y;Qa$q9uts!OZc;QeQW)*u<4^w zD-Fe~i55e+0M8qhKn!iPbKKx%_@l*M4DfG^Bhh>-eW>5uUCVz8Tv*&0=V+T^M5cFF z%s@x(0_Ty8)_UI2*ItIPOO?54qcrq8TWj0GBvQBHF{i$?2uMzw_xYhK@H{R)TM=CQ)=nMswWzGo53-fdR)9YSa zd8_Jv2mPSD7jb8(NvWmB+fq$FX$acBTx!QM462S!)g4slIOCo8q5E{$+UpvJh4c>( z+UxdrYWB@Emkf%f#@&oI;5Q@?PaJ2`y&5v7Difzv`OL--+Qw0PuhpDy#Gl%Fe-L;n z`~#!Mb*tZ7+%#tPH!Nk^2+q(s>*zXzTqlOK9ZKiKnj6QdM|X6p&2bzXOg8F4+WBrl z+kim?f-zoY;ahtP3yZj<@g1j!yi*f0O1gq?hE#KaGOGJo419tVJeq_LD$S)$9Lpk-Lk1%_C!cW z!xpP3rnzLgdT4uiWUAkhoq+MDhOB&e*B3hWoeXfRM9(GC3_q9-(lf!ps@^B@--oq- z2WlE-o#MMIE9G$2F68 z;vEhcq=~hSHaS^XM=RW;6(n)NJf3q@=P4%_)b+lrNp(I_v(;=g{{S6p))#k{tF3EB z3stg68sOW&Vstx|S8*XQ2>v45j&oe)x4_waJ$ZSi!)dGDUbU-@I%Kf8Rh`tQnY(ZV zt02!EFr%e=CYA8R!4P~#yVqs$0lAtuQV2lVDV)jkNbctaoHls}fZzeZuU*mnOX2G+ zGfqpbPtUowR#l&F<{)GYuu^lh0B~y=)USBP5KVP=vtKJa{pjP43JJF-)cAYAzq9X& zEq)^DxB8cb?@hhDkzJ%q7>G)#Is?0T3-c;79p1$AU1quP!^6HG(e-DIbxrN2joq2`rf1A zkBD9#)$EpiKTn=(OM;SKNb#tYqar@?xWGP~^!BNo`C5b4_ji6@@a270l1|M0z@JG* z^2Ma_%2@{TdhXB6Kd0wfHX3lb#k=hyiwKyInh;OnvDe zNqiT%(|kMd?^)Ae@dWW|3uN+!GYIYNa#w!-?#u%y0Q4ij72~=;jxY3Y8Q3a)mr%FU zpp#9udH!hH1!s72Fmtz%0m;whS&!ly#?zM4!WTaSB zp=yw87SNxw3Bx2#p_Pno8FIMjz)Csv_OCvj300JpYc(ZhrpngV+UtMN?s7_;ZPWVw z3#)zop=oP*J2Vrt!XpA_<_n$UBflf_{Pgu5GFdf0?FoeTcZEwwYTyRhpOo$GkfiqQ zz|LzSHLvXlgd()J>SUGWo0V*++kuWaC!YLv6qepIy1dmEElS9`#;s|TVvV^KM)Jow zBriGlp~kCCMSQ;f2h9sEXSpT4#-f^XiY zE5GYgLtU3Zyzo`T7FRH6PaU>WRNn10Y^ZV^e8hvC0iJWf8LkEVb7d*gZmw-eNTm@= zH0n@F*dT5~+jn$405SR3J>v~s&E@Tk)6E5zpOpJP!5N=pw%zBJE%RVw7#)51+r+lI zFbyc1JHQc|d0ez{N=WG3;BW^{rnAD}9AoVHMk{(9mo(6bqj#noC0E9Hh@eSsmr`+lvV6(n} z%RH)8Bz6dJ0Kw#*F^ccLEoinr81N;hg>+fq)Ne$hd#hh5n92&cF6RSj8OT5EkH@lq zy_-?8kLPk!-T7~!<@!H~Pm1*a01y8FXvICuEpaWZl3NcopUhxeVvYl6djc_%-TGIg zX}%xQd@ZGm`&*qtJ#lRB652v!Mv$l;T9ECGW9A_^1-fIW8}ORqEf&jCg3m`cRx*_> z9I&juQDVEh;g{}o=LC_{oLytY`ksS*d!$Ew_KQJ!^22d0)?7lQU_{3%>QJFmoDe#2 zG38dkD72|NF007eP?tKAdNTKnyhE+U;~R)uOM87}DU7t4n$lK{+EAemcSPHW&Ug+D zd9BZi9C)(HlG5JMTIoXDAvlCFz)_ySFazmcg>~fk)xO_3x%(BmeT1N4EygljNLg?O z(!>`y7(9VoMxmiaKZzGoTM1%$S$@$4#sj4BIOmR=f`;x6=f-hb(WOqEZ*2|lXT9B; z^V-{X`IAyJX|&G2QPOp7W8!a(ZR{)s^~JsW&jcIxhuqU-X{T- zRIUpzIo-uX)HN8 zCmp?NeJA2qjBR`?FNdz7y1daYaS&!K?{Ah27;ZSn%h2(Tm^{{yO(pD|?`5meTejfZ zY|`;3!;cE-wy>D>o2m8alr!3Wn60pnaT|=89FBvJ?+&14{u&JTzgIibHcIcPBZg*3d8aCrK$LPNz$J3Q+aPZI5$lZ2+{9l3UmBlE^u>zN3C

4fkri~P)TW=bo0Z+}?WdBmT7EudJv2w9X>YD+8cEh# z_U3Im2KxlpGm|ngR#31sQUG~S6dVp0kGonLzmBZ#^w@O!%{6qZ3qhM>rT`%@d$@IaDfu3*%eQQSk`pUyX(zNMx zAeSv1%|F^CGDcXC6KBi{jk|N4@q_A5Jl`ag6{Tl%m6f#L*Iy-Pw|tvPtDXJvXmX0O z08b%1kH)`}4gUam zyvR;HVR2sNZ{f<_jUc_{bE5wMf|_a4UTJ;YCi30Te39nJjibj<=g~Je^sqJOU07cU^`qB!Tc(mj(*yUjE9Cm ze?wN1zzJb~Q+Lcqu{BtIwEnd-to`A!5gg1E;EZGP6gSgo#-8ic6(b*9{{W40$}T0}O%KD%3qLFE1aK6(5+DW{{Uv9oA;~} zS|4`)!_sg4p0ofkc3fSr)A!74=p_dOJ%xPb`vtg@;01_bv7^*3ml^*6Z$H+)j|+kA zUZpLO!9R(S$P}`YdUUTi{h}<*=fJNW!iX519^@`SApY&U8uXVRFgWS!T!+Qmf3*B6 z@pM1l(r!jS?UPfIx@aKzWSRI?<8K7P90yU7(j>Xcp>^By4tjybCx-qVCB?k6$n4wG zs};fB~I77J*tnMuQifZ z>7qXH_|su|ru;t9wH-C?BD@|D5Jq6eB6#BxqlMUaFk#0d9)~8rPd^8zz3?8P;tdkz zZ}m(4{{Y%|yKy$w`Ih56To%}6tP(98Z4HxYCcx+YRZU) zM+2;XH$4x0it}giHnrgUczjjix&Hv+CP@{g)kd5|meQ#?Bq-%upO=G>I+L8%7NmJp zZ>h~UJ87}=zK^Qi{4&#gKQ4|E!u4S?BgTVz7G?}Ld*t`;Uu5Zj2Yh+)BSp2>E%jSZ z3~Le1_JYwo?+ov^8`%|?C6@r?{c~SD{6+BBhJ15vq-#1Kh_wAK7mba@we+Gkjkjds zdi!JYuhNeOeVa`1R*Cjs-@9 z!C87>oc)t=&Fq_gwAfjx5Gm0);=(^S5;I>e1MNpfLLKmqc{oPty++7z8}(b)QeoOX=S_BE&@AVE92!{jIP`+J-hmG+NXu@F5@>=@HP;Y zl~Hh|mm7#5&+03ZROzU-QeThacvDJJZYx9Ev@JhH@hjOStch=Up**;@;LN9hRA&pw zC#VDar?=5w3h<_ad_D!q`*e#4X<)s)4q$9@p;rU0c_Y7i_>aKt_DhISqDOa>7fFW& zv(ykWIL92<)Seyi72&jJheEKi-{qL+VIY-2PV7x2gH*R|LVL&6 zY!R^_D#tPf338qE%rwwAIb zp5wYQU;$o6IKg5+iybfrIjjB%@r?Gq5PK_~Mr&J$#K{%hFz@q;I2;nYNMX-Cy@h$4 zmk;7r)8IFev@bMFg=Sb%GFK>El6e^<=NQkWKV8suKZmkLk8aaTa~RB)vx%cicLNQ- z10*=^IRN0|zDhEkDSJ0ReXXBW)oOE7ty7sbvE(|pjC9lSD&tUw#7AdrOg>GddlSvv zO0mvCEJHCo^)%Q#A#x|WG5PY=@4i43i%7g6lG2-RTk%uT6iZ^x`e|dtpd2VcDIgA&K6zE83XVK9^U+Q zo;uO|KPzh5Mw2r|FtoOk2(DH_&2boZbWjxMCO|WgI-YS|7r>tlCatLH*O#u5%YA7& z#dCPX!yM?6GCP34_Qz3;-om{y%i+$8XLG7*daArvHwqVjQu8ZPpsC4y6(%N>rK#ZXN@j&@7Jr7gQwR&Bb zggilgtj#0YL2DtFD~quqRE`DbAg@MXpqzW0S08(&X#O7YkBD^URxyd0tlfg4O~WH` zIK~J)f4lEqx8aR;{wq5pI;_^_+Ce)sftr1>Y>boFkbw2%k?CDnmuUX#I<~j|x)B_SR4Wf#zt2h3=jq?uA#13>$aCRR1P#Pp|%yZ5G#|J$#T~@OtwXUgl z_Uh{Zj4WtC1^!W&Jw|Xzz^*q2;ao@eZ)&@iXMP46(1y3l2cX)aN6hJuB3H2kDY&53gF>T&2V^+s0zcw!p`D$@C{^ z>0Vi_iS)C79A*63Z>TE>c8x9%A4UcP0wj7S)qblvI4e)VVKb?%d( z_|H(*6IPb*QMmI#qsu0o)3?ja=1NK4_qi{^`K8kQ zMW;;5b1j9mifUQ7R5S<;hndP^d-OH+@w-GKB z`9Sh{>(>?2d^6Q&&^5b>t!+#<6R1`4^2f_KIAvkb_2aLhu5aQ#mX_W&T_IBH=F3m= zqLsqzbvqQJ1G|tFkdS(SP6rsutxsyBDsoo7x8JwlbGDqhwTSC$-v>U0sn}Yr&8^Hs z&wCq-!yL*a5r-pS+VTC?$mKvh9&uXE-C)+V7%m{T*DO)Lv)j#YEj-LN#`7{V4&v(P zsOi$VpB`wDNvzrGk=(?WF<4vMNceEfe32U~sUI#vo_ZXQt!mi>@UD$1y0~3##^pZG zZ55I!oMPO$ySD86r_=9OHJoFuw^D+`?8v_=5wRkxDb>B?m9*LGw)<(){%1T}RGswbcJgWR z_`5>4mUtnzBrG=*%1MuC-I22&c$|U)o&fgGkZS(`4O^AD48Kg%TX` zh2-sFj+x{Ryw{*X@h$Yb%WFMWTb&0?jEgsvFp^t<7kcdn8(R#D&7A&5x|#0$GpJ|+ z>rlP6)3355iSBKdTS(X{tb3GXoUo7*!vp0wIOmTD>*14=(haM1w!14m?Wgr)I9>b8 zW5#u_4eBGn+D@Z+tjBX{d3`Ou`*dldQ6NpK*duEIu6f4_dSanphk9PM<9#o~@#->N zO?4bf#d7g0?EnzU#~^?>&NJSWz!W^!6QJ{Qv7T@v3+)g+hAJLkG#VvG=S1YuZ!z>pc7o{W0beiw&Bztpe%TjCj) zPPIu}PSf;q{{U%~fQ+j$4Zpl3fVtV+^uSxoeLZyF58PfQ{nnuJhccFO1Zsq_ z+q(pB2cKN#w>}H$S~i=dthYK?x|UcA&wX|Cvj^$&x66Sh4hK#TBv+YzLlW<+sLqg1PE@ zS7-1=+TY_3g(hI2E&2t+XCb~`m>BC{q14t7(Cvz}k?P;@QN3Dg4}yAJ2!+MYwG3s4 z@Zu?3{{UsLqdp7FCiqL>mM0|Wwpl*ExItbm`+Z9G{{RFcFxlJPJo=mvZk{10l&l|f zCVDmjT=oom*RA{tb9L}v!19(Gn@6+5u1ACgpqinfxm2$oyK=?f%c=zY;=6+`hO| z{{Vj)y&p)nhC6t`QM_~0kSmb!ov5|=lj8_>kkRUwOaB0oTDn~(;U|tWxQ0YfPp=j9 zvX@kO(M9|GMId8^&uZ&_A0d;&9}w0s3pS4f?fPCp{x!wiOm3wr$_P<_YqGo&r9Q!^COA#2^s?NWfq5ie>lD7lizG3}=Zd&KzCakP} zc=d@1A6TL_^yuIZt$S3Tx{oe;Ns7ao=YAqaW$+(~6Z_hA!2bZqZCwfFYa_*|X7HA> zn8|xN*B?}2T9UUv8Ff2xb)jCFuofc|1D?5T5&nHDnbVt8MR3GCYFB7D3_r%C*BRmP z_NlXw79!t4Di8ge^{w9n>FjO%`9k?44fFRn>0SgbllA=(?8?orL+{Un*3fEFcp%LZ zO0A|{#KFK|K}%=B{Ofw>;0~Rmc#>Uf!k72H7rSyAdutcPrN^%LPs`7!!K@#F7cox{ zg5*xVUCMrTmaYC3^bF_&hxWnEdDeHjdlIE>8Tlje#qWGU@ef*fwEKA3HCxMlwo#Og z%1N-uS0@Fw?l|sqU#cDfNe{zM3}8gHCe}xGJhK?ol7AZZ@OE`4-pKWH4ri6& zTiH2&XOI5fpAYoyQ}%iBHPm*I3)r3urk6We!pw!Tet_5GXN={#`$dhLPaoN#X&qFs z9$xQKdmrmxwEqCN#p2n1%zh_!kjJ^8jaW80GOh=>JwF=!Vb;7WdE-q?+S*FL+7l@@ z(XsykS+PN6_Bc5i^u>0`#x;|c);y|orB?-~^L~Rg?K0;`hTh?(j_EFQ6jR!`k#aaA zra>HW#|N$rdI!TDb5gR@X4CGbL1TPb7_x>~<-pp+`ZhM6*ykBhTGpQeb#D&*G4RdC zqo`@^buHwM@O`Nj?P55=V$1++sKD#Zc0LmDuAdg4=IT2Av@yiT=d-tY!!sSKq-7Vm z83(=zub#|tF^g^qNj(mEU}~pnD?QFnL5|wm;^IeuHQlwwY_Sq3)%$@I<<`p*Gj{!b6=rp$j>8JFPYo;`@**VAco%JIpmIOXxK#zOcXh60tv?) zcm8$rl%noQ@2oB?pp(szZGn&PROk3P>M_uD0OVKF^Ijz6Z6TGi6z7Z@;k921=z1E9 z*(@)0LS0fjXtKme&Hk_)WFEOW$Kzi)j=(z8RVcKdQ(k9l9yj3qH|%d%q2M z;L2mVv5pBrF@Wp)mSMd}3{OlB{{Wp&tG%t>t#rC@wp5hd8x@V6-AGdKp;ZG1j0QPV zk;xz$_=?z0dcOXxY2>{;*K;_@(^?(Zi|!yghM3l?1XjdG-cH?$g*Pg$PdyJj;GSx) z#cd-`()?*BiuJU+vTbHdZ8kX~d>Enfq%s8vXl>eK&V!Z09+o<=GsCy_Ls?eiQgGT|uYc+s}Cwta_!A?T*gk zNqos;mNij;!zvwf##H3b4ToBKBE zZ?#8bbaJa4jIIxvoE#*9Rn+8nUU6P-A-q-=6*pJb)_rZQ`df9=OO(?}$sRA`Ukpuk z<5-^N4kS!TDya!_U3UgtfsvAX3~uN+uEjLT;_%3ZPbS9N5FmnSB;C9R$qF!Y$vpJt zx{r+>71j0D)Y{utv)iPs%Viz9fctQd$8r@;ayaYHO7ZP0Up^P{RfEmCZ9X{}Ru)e% zs_h}42l%qYgW9o+sZuv?&Nuf{eKzUa$ih*SW##&vUH5~pWzx)d4``&2%V#MMxdSLx zVbj+=zFbxP5B6Qxt~`C9+r7J5TI#k_{hZ4zXlHnB{Pune1yjfv=WgFzp1a|Gp{@9f zL9)5EO)AdwPShp3ZAIZyRCzKVEx;LN1$kbFrw6aln$DqNtb9lKKdiOGTZQo}X+qOG zztOylh~#bHeBNciY@FqXmzw$vj}JPkbt@#IoxNT6^!)3v^;@2{@i`q0{mEyYy%KU(Fk57Nry|ds-6x6k-8~1SSj(FKu0B#My z9?Thk16WYjs=5l^>{>*=6T7n2Z6O!ikuIayUNAmf_uIyC*j4QZNVUFuy*+g(Y_0B{ zk{g@Y#9~YWz#b0WzziP5jP%WO)@-&qTp}_Z6>@}U1#$>KmMFN@Zem##RSYr6%42W{ zDtQOg9=wcos;`D~mDIFbE|(=eH9a5UzK<2AxAsfO;d>aH%#vXH*<&gRR>|z3jAN^N z^FPJiI>$@#SB-U+)MH5XeOaySVTw(dj6xO`QaIWrUSsa1xanM{!pDkF7g^XuzICoM!uI`lU|bJ!nPBlT*)f=7j5Q7tO;K$005xnc>CMC8uO~l z*u}=AcWYIm*Q>kN(AtXD@jU+kQq≥`d1@c9(O(9G7h@Ko}Kp1_0!f$D#K1)6h<( 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 tzdniSNAf>Dl5>fCopaque_delegate_builder = new TfLiteOpaqueDelegateBuilder{}; + *(result->opaque_delegate_builder) = *opaque_delegate_builder; + + return reinterpret_cast(result); +} + +void TfLiteOpaqueDelegateDelete( + const struct TfLiteOpaqueDelegateStruct* opaque_delegate) { + if (!opaque_delegate) return; + + const TfLiteDelegate* tflite_delegate = + reinterpret_cast(opaque_delegate); + delete tflite_delegate->opaque_delegate_builder; + delete tflite_delegate; +} + } // extern "C" diff --git a/code/components/tflite-lib/tensorflow/lite/c/common.h b/code/components/tflite-lib/tensorflow/lite/c/common.h index cc856f9a..f60b65ed 100644 --- a/code/components/tflite-lib/tensorflow/lite/c/common.h +++ b/code/components/tflite-lib/tensorflow/lite/c/common.h @@ -63,6 +63,8 @@ typedef enum TfLiteExternalContextType { struct TfLiteContext; struct TfLiteDelegate; struct TfLiteRegistration; +struct TfLiteOpaqueDelegateStruct; +struct TfLiteOpaqueDelegateBuilder; // An external context is a collection of information unrelated to the TF Lite // framework, but useful to a subset of the ops. TF Lite knows very little @@ -973,7 +975,7 @@ typedef enum TfLiteDelegateFlags { typedef struct TfLiteDelegate { // Data that delegate needs to identify itself. This data is owned by the // delegate. The delegate is owned in the user code, so the delegate is - // responsible for doing this when it is destroyed. + // responsible for deallocating this when it is destroyed. void* data_; // Invoked by ModifyGraphWithDelegate. This prepare is called, giving the @@ -1010,12 +1012,83 @@ typedef struct TfLiteDelegate { // Bitmask flags. See the comments in `TfLiteDelegateFlags`. int64_t flags; + + // The opaque delegate builder associated with this object. If set then the + // TF Lite runtime will give precedence to this field. E.g. instead of + // invoking 'Prepare' via the function pointer inside the 'TfLiteDelegate' + // object, the runtime will first check if the corresponding function + // pointer inside 'opaque_delegate_builder' is set and if so invoke that. + // + // If this field is non-null, then the 'Prepare' field (of the + // 'TfLiteDelegate') should be null. + struct TfLiteOpaqueDelegateBuilder* opaque_delegate_builder; } TfLiteDelegate; // Build a 'null' delegate, with all the fields properly set to their default // values. TfLiteDelegate TfLiteDelegateCreate(void); +// `TfLiteOpaqueDelegateBuilder` is used for constructing +// `TfLiteOpaqueDelegateStruct`, see `TfLiteOpaqueDelegateCreate` below. Note: +// This struct is not ABI stable. +// +// For forward source compatibility `TfLiteOpaqueDelegateBuilder` objects should +// be brace-initialized, so that all fields (including any that might be added +// in the future) get zero-initialized. The purpose of each field is exactly +// the same as with `TfLiteDelegate`. +// +// WARNING: This is an experimental interface that is subject to change. +typedef struct TfLiteOpaqueDelegateBuilder { + // Data that delegate needs to identify itself. This data is owned by the + // delegate. The delegate is owned in the user code, so the delegate is + // responsible for deallocating this when it is destroyed. + void* data; + // Invoked by ModifyGraphWithDelegate. This prepare is called, giving the + // delegate a view of the current graph through TfLiteContext*. It typically + // will look at the nodes and call ReplaceNodeSubsetsWithDelegateKernels() + // to ask the TensorFlow lite runtime to create macro-nodes to represent + // delegated subgraphs of the original graph. + TfLiteStatus (*Prepare)(TfLiteOpaqueContext* context, // NOLINT + struct TfLiteOpaqueDelegateStruct* delegate, + void* data); + // Copies the data from delegate buffer handle into raw memory of the given + // 'tensor'. Note that the delegate is allowed to allocate the raw bytes as + // long as it follows the rules for kTfLiteDynamic tensors, in which case this + // cannot be null. + TfLiteStatus (*CopyFromBufferHandle)( // NOLINT + TfLiteOpaqueContext* context, struct TfLiteOpaqueDelegateStruct* delegate, + void* data, TfLiteBufferHandle buffer_handle, TfLiteOpaqueTensor* tensor); + // Copies the data from raw memory of the given 'tensor' to delegate buffer + // handle. This can be null if the delegate doesn't use its own buffer. + TfLiteStatus (*CopyToBufferHandle)( // NOLINT + TfLiteOpaqueContext* context, struct TfLiteOpaqueDelegateStruct* delegate, + void* data, TfLiteBufferHandle buffer_handle, TfLiteOpaqueTensor* tensor); + // Frees the Delegate Buffer Handle. Note: This only frees the handle, but + // this doesn't release the underlying resource (e.g. textures). The + // resources are either owned by application layer or the delegate. + // This can be null if the delegate doesn't use its own buffer. + void (*FreeBufferHandle)(TfLiteOpaqueContext* context, // NOLINT + struct TfLiteOpaqueDelegateStruct* delegate, + void* data, TfLiteBufferHandle* handle); + // Bitmask flags. See the comments in `TfLiteDelegateFlags`. + int64_t flags; +} TfLiteOpaqueDelegateBuilder; + +// Creates an opaque delegate and returns its address. The opaque delegate will +// behave according to the provided 'opaque_delegate_builder'. The lifetime of +// the fields within the 'opaque_delegate_builder' must outlive any interaction +// between the runtime and the returned 'TfLiteOpaqueDelegateStruct'. The +// returned address should be passed to 'TfLiteOpaqueDelegateDelete' for +// deletion. If 'opaque_delegate_builder' is a null pointer, then a null +// pointer will be returned. +struct TfLiteOpaqueDelegateStruct* TfLiteOpaqueDelegateCreate( + const TfLiteOpaqueDelegateBuilder* opaque_delegate_builder); + +// Deletes the provided opaque 'delegate'. This function has no effect if the +// 'delegate' is a null pointer. +void TfLiteOpaqueDelegateDelete( + const struct TfLiteOpaqueDelegateStruct* delegate); + #ifdef __cplusplus } // extern "C" #endif // __cplusplus diff --git a/code/components/tflite-lib/tensorflow/lite/context_util.h b/code/components/tflite-lib/tensorflow/lite/context_util.h index 7c8a5abd..ed42cc73 100644 --- a/code/components/tflite-lib/tensorflow/lite/context_util.h +++ b/code/components/tflite-lib/tensorflow/lite/context_util.h @@ -12,8 +12,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -// This provides a few C++ helpers that are useful for manipulating C structures -// in C++. +/// \file +/// This provides a few C++ helpers that are useful for manipulating C +/// structures in C++. #ifndef TENSORFLOW_LITE_CONTEXT_UTIL_H_ #define TENSORFLOW_LITE_CONTEXT_UTIL_H_ @@ -23,13 +24,14 @@ limitations under the License. namespace tflite { -// Provide a range iterable wrapper for TfLiteIntArray* (C lists that TfLite -// C api uses. Can't use the google array_view, since we can't depend on even +/// Provides a range iterable wrapper for TfLiteIntArray* (C lists) that TfLite +/// C api uses. +// Can't use the google array_view, since we can't depend on even // absl for embedded device reasons. class TfLiteIntArrayView { public: - // Construct a view of a TfLiteIntArray*. Note, `int_array` should be non-null - // and this view does not take ownership of it. + /// Construct a view of a TfLiteIntArray*. Note, `int_array` should be + /// non-null and this view does not take ownership of it. explicit TfLiteIntArrayView(const TfLiteIntArray* int_array) : int_array_(int_array) {} diff --git a/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.cc b/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.cc index 1ecefa47..37d7661c 100644 --- a/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.cc +++ b/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.cc @@ -457,6 +457,10 @@ TfLiteStatus ParseOpDataTfLite(const Operator* op, BuiltinOperator op_type, return ParseRsqrt(op, error_reporter, allocator, builtin_data); } + case BuiltinOperator_SELECT_V2: { + return ParseSelectV2(op, error_reporter, allocator, builtin_data); + } + case BuiltinOperator_SHAPE: { return ParseShape(op, error_reporter, allocator, builtin_data); } @@ -865,7 +869,6 @@ TfLiteStatus ParseOpDataTfLite(const Operator* op, BuiltinOperator op_type, case BuiltinOperator_RELU_0_TO_1: case BuiltinOperator_SCATTER_ND: case BuiltinOperator_SELECT: - case BuiltinOperator_SELECT_V2: case BuiltinOperator_SLICE: case BuiltinOperator_TILE: case BuiltinOperator_TOPK_V2: @@ -881,6 +884,7 @@ TfLiteStatus ParseOpDataTfLite(const Operator* op, BuiltinOperator op_type, case BuiltinOperator_UNSORTED_SEGMENT_PROD: case BuiltinOperator_UNSORTED_SEGMENT_SUM: case BuiltinOperator_ATAN2: + case BuiltinOperator_SIGN: case BuiltinOperator_WHERE: return kTfLiteOk; case BuiltinOperator_PLACEHOLDER_FOR_GREATER_OP_CODES: @@ -1982,6 +1986,14 @@ TfLiteStatus ParseRsqrt(const Operator*, ErrorReporter*, BuiltinDataAllocator*, return kTfLiteOk; } +// We have this parse function instead of directly returning kTfLiteOk from the +// switch-case in ParseOpData because this function is used as part of the +// selective registration for the OpResolver implementation in micro. +TfLiteStatus ParseSelectV2(const Operator*, ErrorReporter*, + BuiltinDataAllocator*, void**) { + return kTfLiteOk; +} + TfLiteStatus ParseShape(const Operator* op, ErrorReporter* error_reporter, BuiltinDataAllocator* allocator, void** builtin_data) { SafeBuiltinDataAllocator safe_allocator(allocator); diff --git a/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.h b/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.h index ed317b81..c7653f01 100644 --- a/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.h +++ b/code/components/tflite-lib/tensorflow/lite/core/api/flatbuffer_conversions.h @@ -319,6 +319,10 @@ TfLiteStatus ParseRound(const Operator* op, ErrorReporter* error_reporter, TfLiteStatus ParseRsqrt(const Operator* op, ErrorReporter* error_reporter, BuiltinDataAllocator* allocator, void** builtin_data); +TfLiteStatus ParseSelectV2(const Operator* op, ErrorReporter* error_reporter, + BuiltinDataAllocator* allocator, + void** builtin_data); + TfLiteStatus ParseShape(const Operator* op, ErrorReporter* error_reporter, BuiltinDataAllocator* allocator, void** builtin_data); diff --git a/code/components/tflite-lib/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc b/code/components/tflite-lib/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc index 55457f4d..f1e781b2 100644 --- a/code/components/tflite-lib/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc +++ b/code/components/tflite-lib/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.cc @@ -1,3 +1,5 @@ +#include + #include "tensorflow/lite/experimental/microfrontend/lib/kiss_fft_common.h" #define FIXED_POINT 16 diff --git a/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/hard_swish.h b/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/hard_swish.h index d9fe32e9..81fcd63e 100644 --- a/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/hard_swish.h +++ b/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/hard_swish.h @@ -12,8 +12,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_ACTIVATIONS_H_ -#define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_ACTIVATIONS_H_ +#ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_HARD_SWISH_H_ +#define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_HARD_SWISH_H_ #include @@ -165,4 +165,4 @@ inline void HardSwish(const HardSwishParams& params, } // namespace reference_ops } // namespace tflite -#endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CONV_H_ +#endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_HARD_SWISH_H_ diff --git a/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/mul.h b/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/mul.h index b977104c..53197732 100644 --- a/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/mul.h +++ b/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/mul.h @@ -16,6 +16,7 @@ limitations under the License. #define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_MUL_H_ #include +#include #include "tensorflow/lite/kernels/internal/common.h" @@ -61,6 +62,20 @@ inline void Mul(const ArithmeticParams& params, } } +inline void Mul(const ArithmeticParams& params, + const RuntimeShape& input1_shape, + const std::complex* input1_data, + const RuntimeShape& input2_shape, + const std::complex* input2_data, + const RuntimeShape& output_shape, + std::complex* output_data) { + const int flat_size = + MatchingExtendedShapeFlatSize(input1_shape, input2_shape, output_shape); + for (int i = 0; i < flat_size; ++i) { + output_data[i] = input1_data[i] * input2_data[i]; + } +} + inline void Mul(const ArithmeticParams& params, const RuntimeShape& input1_shape, const uint8_t* input1_data, const RuntimeShape& input2_shape, const uint8_t* input2_data, @@ -162,6 +177,37 @@ void BroadcastMul4DSlow(const ArithmeticParams& params, } } +inline void BroadcastMul4DSlow(const ArithmeticParams& params, + const RuntimeShape& unextended_input1_shape, + const std::complex* input1_data, + const RuntimeShape& unextended_input2_shape, + const std::complex* input2_data, + const RuntimeShape& unextended_output_shape, + std::complex* output_data) { + TFLITE_DCHECK_LE(unextended_input1_shape.DimensionsCount(), 4); + TFLITE_DCHECK_LE(unextended_input2_shape.DimensionsCount(), 4); + TFLITE_DCHECK_LE(unextended_output_shape.DimensionsCount(), 4); + const RuntimeShape output_shape = + RuntimeShape::ExtendedShape(4, unextended_output_shape); + + NdArrayDesc<4> desc1; + NdArrayDesc<4> desc2; + NdArrayDescsForElementwiseBroadcast(unextended_input1_shape, + unextended_input2_shape, &desc1, &desc2); + + for (int b = 0; b < output_shape.Dims(0); ++b) { + for (int y = 0; y < output_shape.Dims(1); ++y) { + for (int x = 0; x < output_shape.Dims(2); ++x) { + for (int c = 0; c < output_shape.Dims(3); ++c) { + output_data[Offset(output_shape, b, y, x, c)] = + input1_data[SubscriptToIndex(desc1, b, y, x, c)] * + input2_data[SubscriptToIndex(desc2, b, y, x, c)]; + } + } + } + } +} + } // namespace reference_ops } // namespace tflite diff --git a/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/select.h b/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/select.h new file mode 100644 index 00000000..82b6097c --- /dev/null +++ b/code/components/tflite-lib/tensorflow/lite/kernels/internal/reference/select.h @@ -0,0 +1,151 @@ +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ +#ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_SELECT_H_ +#define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_SELECT_H_ + +#include + +#include "ruy/profiler/instrumentation.h" // from @ruy +#include "tensorflow/lite/kernels/internal/common.h" +#include "tensorflow/lite/kernels/internal/types.h" + +namespace tflite { +namespace reference_ops { + +template +void Select(const RuntimeShape& input_condition_shape, + const D* input_condition_data, const RuntimeShape& input_x_shape, + const T* input_x_data, const RuntimeShape& input_y_shape, + const T* input_y_data, const RuntimeShape& output_shape, + T* output_data) { + ruy::profiler::ScopeLabel label("Select"); + int64_t flatsize; + // Allow select operator executions on mixed scalar tensors and one element + // tensors. + if (input_condition_shape.FlatSize() == 1 && input_x_shape.FlatSize() == 1 && + input_y_shape.FlatSize() == 1 && output_shape.FlatSize() == 1) { + flatsize = 1; + } else { + flatsize = MatchingFlatSize(input_condition_shape, input_x_shape, + input_y_shape, output_shape); + } + for (int64_t i = 0; i < flatsize; ++i) { + output_data[i] = + input_condition_data[i] ? input_x_data[i] : input_y_data[i]; + } +} + +template +void RankOneSelect(const RuntimeShape& input_condition_shape, + const D* input_condition_data, + const RuntimeShape& input_x_shape, const T* input_x_data, + const RuntimeShape& input_y_shape, const T* input_y_data, + const RuntimeShape& output_shape, T* output_data) { + ruy::profiler::ScopeLabel label("Select/RankOneSelect"); + const int64_t outer_size = input_condition_shape.FlatSize(); + int64_t inner_size; + if (input_condition_shape.DimensionsCount() == 0) { + inner_size = MatchingFlatSize(input_x_shape, input_y_shape, output_shape); + } else { + TFLITE_DCHECK_EQ( + MatchingDim(input_x_shape, 0, input_y_shape, 0, output_shape, 0), + outer_size); + inner_size = + MatchingFlatSizeSkipDim(input_x_shape, 0, input_y_shape, output_shape); + } + + int64_t offset = 0; + for (int64_t i = 0; i < outer_size; i++) { + const T* input_data = input_condition_data[i] ? input_x_data : input_y_data; + memcpy(output_data + offset, input_data + offset, inner_size * sizeof(T)); + offset += inner_size; + } +} + +template +void BroadcastSelect5DSlow(const RuntimeShape& input_condition_shape, + const D* input_condition_data, + const RuntimeShape& input_x_shape, + const T* input_x_data, + const RuntimeShape& input_y_shape, + const T* input_y_data, + const RuntimeShape& output_shape, T* output_data) { + ruy::profiler::ScopeLabel label("Select/BroadcastSelectSlow"); + TFLITE_DCHECK_LE(input_condition_shape.DimensionsCount(), 5); + TFLITE_DCHECK_LE(input_x_shape.DimensionsCount(), 5); + TFLITE_DCHECK_LE(input_y_shape.DimensionsCount(), 5); + TFLITE_DCHECK_LE(output_shape.DimensionsCount(), 5); + + NdArrayDesc<5> desc_condition; + NdArrayDesc<5> desc_x; + NdArrayDesc<5> desc_y; + NdArrayDesc<5> desc_output; + const RuntimeShape extended_output_shape = + RuntimeShape::ExtendedShape(5, output_shape); + CopyDimsToDesc(extended_output_shape, &desc_output); + NdArrayDescsForElementwiseBroadcast(input_condition_shape, input_x_shape, + input_y_shape, &desc_condition, &desc_x, + &desc_y); + + // In Tensorflow, the dimensions are canonically named (batch_number, row, + // col, channel), with extents (batches, height, width, depth), with the + // trailing dimension changing most rapidly (channels has the smallest + // stride, typically 1 element). + // + // In generated C code, we store arrays with the dimensions reversed. The + // first dimension has smallest stride. + // + // We name our variables by their Tensorflow convention, but generate C code + // nesting loops such that the innermost loop has the smallest stride for + // the best cache behavior. + for (int n = 0; n < desc_output.extents[0]; ++n) { + int out_idx_n = desc_output.extents[1] * n; + int cond_idx_n = desc_condition.strides[0] * n; + int in_idx1_n = desc_x.strides[0] * n; + int in_idx2_n = desc_y.strides[0] * n; + for (int b = 0; b < desc_output.extents[1]; ++b) { + int out_idx_b = (out_idx_n + b) * desc_output.extents[2]; + int cond_idx_b = cond_idx_n + desc_condition.strides[1] * b; + int in_idx1_b = in_idx1_n + desc_x.strides[1] * b; + int in_idx2_b = in_idx2_n + desc_y.strides[1] * b; + for (int y = 0; y < desc_output.extents[2]; ++y) { + int out_idx_y = (out_idx_b + y) * desc_output.extents[3]; + int cond_idx_y = cond_idx_b + desc_condition.strides[2] * y; + int in_idx1_y = in_idx1_b + desc_x.strides[2] * y; + int in_idx2_y = in_idx2_b + desc_y.strides[2] * y; + for (int x = 0; x < desc_output.extents[3]; ++x) { + int out_idx = (out_idx_y + x) * desc_output.extents[4]; + int cond_idx = cond_idx_y + desc_condition.strides[3] * x; + int in_idx1 = in_idx1_y + desc_x.strides[3] * x; + int in_idx2 = in_idx2_y + desc_y.strides[3] * x; + for (int c = 0; c < desc_output.extents[4]; ++c) { + output_data[out_idx] = input_condition_data[cond_idx] + ? input_x_data[in_idx1] + : input_y_data[in_idx2]; + out_idx++; + cond_idx += desc_condition.strides[4]; + in_idx1 += desc_x.strides[4]; + in_idx2 += desc_y.strides[4]; + } + } + } + } + } +} + +} // namespace reference_ops +} // namespace tflite + +#endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_SELECT_H_ diff --git a/code/components/tflite-lib/tensorflow/lite/micro/all_ops_resolver.cc b/code/components/tflite-lib/tensorflow/lite/micro/all_ops_resolver.cc index abbe34e7..df792264 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/all_ops_resolver.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/all_ops_resolver.cc @@ -92,6 +92,7 @@ AllOpsResolver::AllOpsResolver() { AddResizeNearestNeighbor(); AddRound(); AddRsqrt(); + AddSelectV2(); AddShape(); AddSin(); AddSlice(); @@ -102,6 +103,7 @@ AllOpsResolver::AllOpsResolver() { AddSplitV(); AddSqrt(); AddSquare(); + AddSquaredDifference(); AddSqueeze(); AddStridedSlice(); AddSub(); @@ -110,6 +112,7 @@ AllOpsResolver::AllOpsResolver() { AddTanh(); AddTranspose(); AddTransposeConv(); + AddUnidirectionalSequenceLSTM(); AddUnpack(); AddVarHandle(); AddWhile(); diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/add.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/add.h index 88526153..e2e5d23b 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/add.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/add.h @@ -1,4 +1,4 @@ -/* Copyright 2021 The TensorFlow Authors. All Rights Reserved. +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,6 +59,19 @@ TfLiteStatus CalculateOpDataAdd(TfLiteContext* context, TfLiteAddParams* params, TfLiteStatus AddPrepare(TfLiteContext* context, TfLiteNode* node); +// Generic must define registration function. +TfLiteRegistration Register_ADD(); + +#if defined(CMSIS_NN) +TfLiteRegistration Register_ADD_INT8(); + +TfLiteRegistration Register_ADD_INT16(); +#else +// Fallback registration +inline TfLiteRegistration Register_ADD_INT8() { return Register_ADD(); } + +inline TfLiteRegistration Register_ADD_INT16() { return Register_ADD(); } +#endif } // namespace tflite #endif // TENSORFLOW_LITE_MICRO_KERNELS_ADD_H_ diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/add_n.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/add_n.cc index ce064687..35336681 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/add_n.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/add_n.cc @@ -121,8 +121,8 @@ TfLiteStatus CalculateOpData(TfLiteContext* context, TfLiteNode* node) { context, kTfLiteActNone, output, &data->output_activation_min, &data->output_activation_max)); } else { - TF_LITE_KERNEL_LOG(context, "ADD_N only supports FLOAT32 and INT8, got %s.", - TfLiteTypeGetName(output->type)); + MicroPrintf("ADD_N only supports FLOAT32 and INT8, got %s.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } @@ -198,8 +198,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } else if (output->type == kTfLiteInt8) { EvalAddNQuantized(context, node, output); } else { - TF_LITE_KERNEL_LOG(context, "ADD_N only supports FLOAT32 and INT8, got %s.", - TfLiteTypeGetName(output->type)); + MicroPrintf("ADD_N only supports FLOAT32 and INT8, got %s.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/arg_min_max.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/arg_min_max.cc index a8aa5a48..d06b94a6 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/arg_min_max.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/arg_min_max.cc @@ -70,21 +70,20 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node, bool is_arg_max) { TF_LITE_ARG_MIN_MAX(int8_t, int32_t, int32_t); break; default: - TF_LITE_KERNEL_LOG(context, - "Only float32, uint8_t and int8_t are " - "supported currently, got %s.", - TfLiteTypeGetName(input->type)); + MicroPrintf( + "Only float32, uint8_t and int8_t are " + "supported currently, got %s.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } } else { - TF_LITE_KERNEL_LOG(context, - "Only int32_t are supported currently, got %s.", - TfLiteTypeGetName(output->type)); + MicroPrintf("Only int32_t are supported currently, got %s.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } } else { - TF_LITE_KERNEL_LOG(context, "Only int32_t are supported currently, got %s.", - TfLiteTypeGetName(axis->type)); + MicroPrintf("Only int32_t are supported currently, got %s.", + TfLiteTypeGetName(axis->type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/batch_to_space_nd.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/batch_to_space_nd.cc index be82d942..eebf7c68 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/batch_to_space_nd.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/batch_to_space_nd.cc @@ -95,8 +95,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(output)); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/circular_buffer.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/circular_buffer.cc index 399d1648..a45a8d26 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/circular_buffer.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/circular_buffer.cc @@ -90,7 +90,7 @@ TfLiteStatus CircularBufferEval(TfLiteContext* context, TfLiteNode* node) { EvalInt8(tflite::micro::GetTensorData(input), num_slots, depth, tflite::micro::GetTensorData(output)); } else { - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), input->type); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/comparisons.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/comparisons.cc index cff15e4d..409373fb 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/comparisons.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/comparisons.cc @@ -118,8 +118,8 @@ TfLiteStatus EqualEval(TfLiteContext* context, TfLiteNode* node) { output_data); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input1->type), input1->type); + MicroPrintf("Type %s (%d) not supported.", + TfLiteTypeGetName(input1->type), input1->type); return kTfLiteError; } return kTfLiteOk; @@ -210,8 +210,8 @@ TfLiteStatus NotEqualEval(TfLiteContext* context, TfLiteNode* node) { output_data); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input1->type), input1->type); + MicroPrintf("Type %s (%d) not supported.", + TfLiteTypeGetName(input1->type), input1->type); return kTfLiteError; } return kTfLiteOk; @@ -288,8 +288,8 @@ TfLiteStatus GreaterEval(TfLiteContext* context, TfLiteNode* node) { output_data); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input1->type), input1->type); + MicroPrintf("Type %s (%d) not supported.", + TfLiteTypeGetName(input1->type), input1->type); return kTfLiteError; } return kTfLiteOk; @@ -366,8 +366,8 @@ TfLiteStatus GreaterEqualEval(TfLiteContext* context, TfLiteNode* node) { output_data); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input1->type), input1->type); + MicroPrintf("Type %s (%d) not supported.", + TfLiteTypeGetName(input1->type), input1->type); return kTfLiteError; } return kTfLiteOk; @@ -444,8 +444,8 @@ TfLiteStatus LessEval(TfLiteContext* context, TfLiteNode* node) { output_data); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input1->type), input1->type); + MicroPrintf("Type %s (%d) not supported.", + TfLiteTypeGetName(input1->type), input1->type); return kTfLiteError; } return kTfLiteOk; @@ -522,8 +522,8 @@ TfLiteStatus LessEqualEval(TfLiteContext* context, TfLiteNode* node) { output_data); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input1->type), input1->type); + MicroPrintf("Type %s (%d) not supported.", + TfLiteTypeGetName(input1->type), input1->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/concatenation.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/concatenation.cc index 34622c22..8b4d68d9 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/concatenation.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/concatenation.cc @@ -133,7 +133,7 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { TF_LITE_ENSURE(context, input_type == kTfLiteFloat32 || input_type == kTfLiteInt8 || input_type == kTfLiteInt16 || input_type == kTfLiteInt32 || - input_type == kTfLiteInt64); + input_type == kTfLiteInt64 || input_type == kTfLiteBool); // Output type must match input type TF_LITE_ENSURE_EQ(context, output_type, input_type); @@ -149,8 +149,7 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { int num_dimensions = NumDimensions(input); if (num_dimensions > RuntimeShape::kMaxSmallSize) { - TF_LITE_KERNEL_LOG( - context, + MicroPrintf( "Op Concatenation does not currently support num dimensions > %d " "Tensor has %d dimensions.", RuntimeShape::kMaxSmallSize, num_dimensions); @@ -168,6 +167,7 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { TF_LITE_ENSURE(context, output != nullptr); switch (output_type) { // Already know in/outtypes are same. + case kTfLiteBool: case kTfLiteFloat32: case kTfLiteInt16: case kTfLiteInt32: @@ -205,9 +205,8 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { break; } default: - TF_LITE_KERNEL_LOG( - context, "Op Concatenation does not currently support Type '%s'.", - TfLiteTypeGetName(output_type)); + MicroPrintf("Op Concatenation does not currently support Type '%s'.", + TfLiteTypeGetName(output_type)); return kTfLiteError; } @@ -238,11 +237,13 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { case kTfLiteInt16: EvalUnquantized(context, node); break; + case kTfLiteBool: + EvalUnquantized(context, node); + break; default: - TF_LITE_KERNEL_LOG( - context, "Op Concatenation does not currently support Type '%s'.", - TfLiteTypeGetName(output_type)); + MicroPrintf("Op Concatenation does not currently support Type '%s'.", + TfLiteTypeGetName(output_type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/cumsum.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/cumsum.cc index eedc61fd..751654fe 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/cumsum.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/cumsum.cc @@ -123,7 +123,7 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { if (axis < 0) axis += input_shape.DimensionsCount(); if (axis < 0 || axis >= input_shape.DimensionsCount()) { - TF_LITE_KERNEL_LOG(context, "CUMSUM Invalid axis: %d", axis); + MicroPrintf("CUMSUM Invalid axis: %d", axis); return kTfLiteError; } @@ -156,9 +156,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } break; default: { - TF_LITE_KERNEL_LOG(context, - "CUMSUM only supports FLOAT32 and INT8, got %s.", - TfLiteTypeGetName(output->type)); + MicroPrintf("CUMSUM only supports FLOAT32 and INT8, got %s.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/depth_to_space.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/depth_to_space.cc index ec000540..4dda7192 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/depth_to_space.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/depth_to_space.cc @@ -124,9 +124,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(output)); break; default: - TF_LITE_KERNEL_LOG( - context, "DEPTH_TO_SPACE only supports FLOAT32 and INT8, got %s.", - TfLiteTypeGetName(output->type)); + MicroPrintf("DEPTH_TO_SPACE only supports FLOAT32 and INT8, got %s.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/depthwise_conv.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/depthwise_conv.cc index d2468ff9..c2ed8892 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/depthwise_conv.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/depthwise_conv.cc @@ -82,8 +82,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { break; } default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/div.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/div.cc index 099c0225..34bf6d7c 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/div.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/div.cc @@ -162,8 +162,7 @@ TfLiteStatus EvalQuantized(TfLiteContext* context, TfLiteNode* node, } #undef TF_LITE_DIV } else { - TF_LITE_KERNEL_LOG( - context, "Unsupported combination of input and output types in DIV."); + MicroPrintf("Unsupported combination of input and output types in DIV."); return kTfLiteError; } @@ -189,10 +188,10 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { TF_LITE_ENSURE_OK(context, EvalQuantized(context, node, params, data, input1, input2, output)); } else { - TF_LITE_KERNEL_LOG(context, - "DIV only supports FLOAT32, quantized INT8 " - "now, got type %s (%d).", - TfLiteTypeGetName(output->type), output->type); + MicroPrintf( + "DIV only supports FLOAT32, quantized INT8 " + "now, got type %s (%d).", + TfLiteTypeGetName(output->type), output->type); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/elementwise.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/elementwise.cc index b1cb1dcb..bb3c6545 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/elementwise.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/elementwise.cc @@ -90,8 +90,8 @@ TfLiteStatus GenericPrepare(TfLiteContext* context, TfLiteNode* node) { TF_LITE_ENSURE(context, output != nullptr); TF_LITE_ENSURE_TYPES_EQ(context, input->type, output->type); if (!IsSupportedType(input->type)) { - TF_LITE_KERNEL_LOG(context, "Input data type %s (%d) is not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Input data type %s (%d) is not supported.", + TfLiteTypeGetName(input->type), input->type); return kTfLiteError; } @@ -112,8 +112,8 @@ TfLiteStatus PrepareAbsRsqrt(TfLiteContext* context, TfLiteNode* node) { TF_LITE_ENSURE(context, output != nullptr); TF_LITE_ENSURE_TYPES_EQ(context, input->type, output->type); if (!IsSupportedType(input->type)) { - TF_LITE_KERNEL_LOG(context, "Input data type %s (%d) is not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Input data type %s (%d) is not supported.", + TfLiteTypeGetName(input->type), input->type); return kTfLiteError; } @@ -317,8 +317,8 @@ TfLiteStatus AbsEval(TfLiteContext* context, TfLiteNode* node) { type); break; default: - TF_LITE_KERNEL_LOG(context, "Current data type %s is not supported.", - TfLiteTypeGetName(type)); + MicroPrintf("Current data type %s is not supported.", + TfLiteTypeGetName(type)); return kTfLiteError; break; } @@ -355,8 +355,8 @@ TfLiteStatus RsqrtEval(TfLiteContext* context, TfLiteNode* node) { elementwise::validate_input_func, type); default: - TF_LITE_KERNEL_LOG(context, "Current data type %s is not supported.", - TfLiteTypeGetName(type)); + MicroPrintf("Current data type %s is not supported.", + TfLiteTypeGetName(type)); return kTfLiteError; } } @@ -426,4 +426,4 @@ TfLiteRegistration Register_LOGICAL_NOT() { } // namespace micro } // namespace ops -} // namespace tflite \ No newline at end of file +} // namespace tflite diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/elu.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/elu.cc index 0b64e89d..7d1169d1 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/elu.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/elu.cc @@ -25,7 +25,6 @@ limitations under the License. #include "tensorflow/lite/kernels/internal/types.h" #include "tensorflow/lite/kernels/kernel_util.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" -#include "tensorflow/lite/micro/micro_error_reporter.h" namespace tflite { namespace { @@ -136,9 +135,8 @@ TfLiteStatus EluEval(TfLiteContext* context, TfLiteNode* node) { return kTfLiteOk; } default: - TF_LITE_KERNEL_LOG( - context, "ELU only supports float32 and int8 currently, got %s.", - TfLiteTypeGetName(input->type)); + MicroPrintf("ELU only supports float32 and int8 currently, got %s.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/conv.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/conv.cc index 919dd006..b442e8ed 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/conv.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/conv.cc @@ -26,7 +26,6 @@ limitations under the License. #include "tensorflow/lite/kernels/padding.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" -#include "freertos/FreeRTOS.h" #include #if ESP_NN diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/depthwise_conv.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/depthwise_conv.cc index a2460248..41a2bff7 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/depthwise_conv.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/depthwise_conv.cc @@ -27,7 +27,6 @@ limitations under the License. #include "tensorflow/lite/kernels/padding.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" -#include "freertos/FreeRTOS.h" #include #if ESP_NN diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/softmax.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/softmax.cc index 9a967839..df0da908 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/softmax.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/esp_nn/softmax.cc @@ -25,7 +25,6 @@ limitations under the License. #include "tensorflow/lite/kernels/op_macros.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" -#include "freertos/FreeRTOS.h" #include #if ESP_NN diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/exp.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/exp.cc index ae26f636..64de090e 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/exp.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/exp.cc @@ -19,6 +19,7 @@ limitations under the License. #include "tensorflow/lite/kernels/internal/tensor_ctypes.h" #include "tensorflow/lite/kernels/kernel_util.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" +#include "tensorflow/lite/micro/micro_error_reporter.h" namespace tflite { namespace { @@ -63,8 +64,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { static_cast(flat_size), tflite::micro::GetTensorData(output)); } else { - TF_LITE_KERNEL_LOG(context, "Type %s (%d) currently not supported by Exp.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) currently not supported by Exp.", + TfLiteTypeGetName(input->type), input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/expand_dims.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/expand_dims.cc index 4b105bf6..85e3e37c 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/expand_dims.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/expand_dims.cc @@ -31,8 +31,7 @@ TfLiteStatus GetAxisValueFromTensor(TfLiteContext* context, int32_t* axis_value) { const int axis_dims = (tflite::GetTensorShape(axis)).DimensionsCount(); if (axis_dims > 1) { - TF_LITE_KERNEL_LOG(context, "Axis has only one element for Expand_Dims.", - axis_dims); + MicroPrintf("Axis has only one element for Expand_Dims.", axis_dims); return kTfLiteError; } @@ -41,9 +40,8 @@ TfLiteStatus GetAxisValueFromTensor(TfLiteContext* context, *axis_value = axis_ptr[0]; return kTfLiteOk; } else { - TF_LITE_KERNEL_LOG(context, - "Axis type %s (%d) not supported by Expand_Dims.", - TfLiteTypeGetName(axis->type), axis->type); + MicroPrintf("Axis type %s (%d) not supported by Expand_Dims.", + TfLiteTypeGetName(axis->type), axis->type); return kTfLiteError; } } @@ -99,8 +97,7 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { TF_LITE_ENSURE(context, output != nullptr); output->type = input->type; if (IsDynamicTensor(axis)) { - TF_LITE_KERNEL_LOG(context, - "DynamicTensor is not yet supported by Expand_Dims."); + MicroPrintf("DynamicTensor is not yet supported by Expand_Dims."); return kTfLiteError; } TF_LITE_ENSURE_OK(context, VerifyTensorDim(context, input, axis, output)); @@ -135,8 +132,7 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(input), flat_size); } break; default: - TF_LITE_KERNEL_LOG( - context, + MicroPrintf( "Expand_Dims only currently supports int8 and float32, got %d.", input->type); return kTfLiteError; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/fill.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/fill.cc index 9f438b89..1191eba8 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/fill.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/fill.cc @@ -53,9 +53,8 @@ TfLiteStatus EnsureEq(TfLiteContext* context, const TfLiteIntArray* array, case kTfLiteInt64: return EnsureEqImpl(context, array, tensor); default: - TF_LITE_KERNEL_LOG(context, - "cannot compare int array to tensor of type %d.", - tensor->type); + MicroPrintf("cannot compare int array to tensor of type %d.", + tensor->type); return kTfLiteError; } } @@ -123,9 +122,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { FillImpl(value, output); break; default: - TF_LITE_KERNEL_LOG( - context, "Fill only currently supports float32 for input 1, got %d.", - TfLiteTypeGetName(value->type)); + MicroPrintf("Fill only currently supports float32 for input 1, got %d.", + TfLiteTypeGetName(value->type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_div.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_div.cc index 333a1eba..d8a96734 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_div.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_div.cc @@ -74,7 +74,7 @@ TfLiteStatus EvalFloorDiv(TfLiteContext* context, // Validate the denominator. for (int i = 0; i < tflite::ElementCount(*input2->dims); ++i) { if (std::equal_to()(denominator_data[i], 0)) { - TF_LITE_KERNEL_LOG(context, "Division by 0"); + MicroPrintf("Division by 0"); return kTfLiteError; } } @@ -113,8 +113,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { return EvalFloorDiv(context, input1, input2, output); } default: { - TF_LITE_KERNEL_LOG(context, "Type '%s' is not supported by FLOOR_DIV.", - TfLiteTypeGetName(input1->type)); + MicroPrintf("Type '%s' is not supported by FLOOR_DIV.", + TfLiteTypeGetName(input1->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_mod.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_mod.cc index 9bb49497..ca12800c 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_mod.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/floor_mod.cc @@ -111,8 +111,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { output); } default: { - TF_LITE_KERNEL_LOG(context, "Type '%s' is not supported by FLOOR_MOD.", - TfLiteTypeGetName(input1->type)); + MicroPrintf("Type '%s' is not supported by FLOOR_MOD.", + TfLiteTypeGetName(input1->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/fully_connected.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/fully_connected.cc index a083edd7..82d87284 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/fully_connected.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/fully_connected.cc @@ -141,8 +141,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } default: { - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather.cc index 6035efa7..ec4e2e5a 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather.cc @@ -118,9 +118,8 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { case kTfLiteInt32: break; default: - TF_LITE_KERNEL_LOG(context, - "Positions of type '%s' are not supported by gather.", - TfLiteTypeGetName(coords->type)); + MicroPrintf("Positions of type '%s' are not supported by gather.", + TfLiteTypeGetName(coords->type)); return kTfLiteError; break; } @@ -134,8 +133,8 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { case kTfLiteInt8: break; default: - TF_LITE_KERNEL_LOG(context, "Type '%s' is not supported by gather.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Type '%s' is not supported by gather.", + TfLiteTypeGetName(input->type)); return kTfLiteError; break; } @@ -207,8 +206,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { return Gather(params, input, coords, output); break; default: - TF_LITE_KERNEL_LOG(context, "Type '%s' is not supported by gather.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Type '%s' is not supported by gather.", + TfLiteTypeGetName(input->type)); return kTfLiteError; break; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather_nd.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather_nd.cc index 4327177d..5bb4dd84 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather_nd.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/gather_nd.cc @@ -47,9 +47,8 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { case kTfLiteInt8: break; default: - TF_LITE_KERNEL_LOG(context, - "Params of type '%s' are not supported by gather_nd.", - TfLiteTypeGetName(params->type)); + MicroPrintf("Params of type '%s' are not supported by gather_nd.", + TfLiteTypeGetName(params->type)); return kTfLiteError; break; } @@ -57,9 +56,8 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { case kTfLiteInt32: break; default: - TF_LITE_KERNEL_LOG(context, - "Indices of type '%s' are not supported by gather_nd.", - TfLiteTypeGetName(indices->type)); + MicroPrintf("Indices of type '%s' are not supported by gather_nd.", + TfLiteTypeGetName(indices->type)); return kTfLiteError; } @@ -67,22 +65,20 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { const int indices_rank = NumDimensions(indices); const int indices_nd = SizeOfDimension(indices, indices_rank - 1); if (params_rank < 1) { - TF_LITE_KERNEL_LOG(context, "Params must be at least a vector."); + MicroPrintf("Params must be at least a vector."); return kTfLiteError; } if (indices_rank < 1) { - TF_LITE_KERNEL_LOG(context, "Indices must be at least a vector."); + MicroPrintf("Indices must be at least a vector."); return kTfLiteError; } if (indices_nd > params_rank) { - TF_LITE_KERNEL_LOG( - context, "Index innermost dimension length must be <= params rank."); + MicroPrintf("Index innermost dimension length must be <= params rank."); return kTfLiteError; } if (indices_nd > MAX_INDICES_ND) { - TF_LITE_KERNEL_LOG(context, - "Index innermost dimension length must not exceed %d.", - MAX_INDICES_ND); + MicroPrintf("Index innermost dimension length must not exceed %d.", + MAX_INDICES_ND); return kTfLiteError; } @@ -171,13 +167,12 @@ TfLiteStatus EvalGatherNd(TfLiteContext* context, status = GatherNd(params, indices, output); break; default: - TF_LITE_KERNEL_LOG(context, - "Params type '%s' are not supported by gather_nd.", - TfLiteTypeGetName(params->type)); + MicroPrintf("Params type '%s' are not supported by gather_nd.", + TfLiteTypeGetName(params->type)); return kTfLiteError; } if (status != kTfLiteOk) { - TF_LITE_KERNEL_LOG(context, "gather_nd index out of bounds"); + MicroPrintf("gather_nd index out of bounds"); } return status; } @@ -195,9 +190,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { return EvalGatherNd(context, params, indices, output); break; default: - TF_LITE_KERNEL_LOG(context, - "Indices of type '%s' are not supported by gather_nd.", - TfLiteTypeGetName(indices->type)); + MicroPrintf("Indices of type '%s' are not supported by gather_nd.", + TfLiteTypeGetName(indices->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.cc index dd4c14f4..7e61ef29 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.cc @@ -106,5 +106,17 @@ TfLiteStatus KernelRunner::Invoke() { return kTfLiteOk; } +TfLiteStatus KernelRunner::Free() { + tflite::micro::ClearBufferApi(&context_); + context_.GetScratchBuffer = MicroContextGetScratchBuffer; + + if (registration_.free == nullptr) { + MicroPrintf("TfLiteRegistration missing free function pointer!"); + return kTfLiteError; + } + + registration_.free(&context_, node_.user_data); + return kTfLiteOk; +} } // namespace micro -} // namespace tflite +} // namespace tflite \ No newline at end of file diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.h index 4482b70e..c7d53c3a 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_runner.h @@ -48,6 +48,11 @@ class KernelRunner { // passed into the constructor of this class. TfLiteStatus Invoke(); + // Calls Free on a given TfLiteRegistration pointer(if it's implemented). + // After successful Free, kTfLiteOk status will be returned. If Free is not + // implemented for a given kernel kTfLiteError will be returned. + TfLiteStatus Free(); + // Returns a pointer to the internal MockMicroGraph which KernelRunner uses // to stub out MicroGraph methods and track invocations on each subgraph. MockMicroGraph* GetMockGraph() { return &mock_micro_graph_; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.cc index 91c0bc91..a8e88d30 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.cc @@ -17,6 +17,7 @@ limitations under the License. #include "tensorflow/lite/c/common.h" #include "tensorflow/lite/micro/memory_helpers.h" +#include "tensorflow/lite/micro/micro_error_reporter.h" namespace tflite { namespace micro { @@ -39,9 +40,10 @@ int ValidateTensorIndexing(const TfLiteContext* context, int index, TfLiteRegistration RegisterOp( void* (*init)(TfLiteContext* context, const char* buffer, size_t length), TfLiteStatus (*prepare)(TfLiteContext* context, TfLiteNode* node), - TfLiteStatus (*invoke)(TfLiteContext* context, TfLiteNode* node)) { + TfLiteStatus (*invoke)(TfLiteContext* context, TfLiteNode* node), + void (*free)(TfLiteContext* context, void* buffer)) { return {/*init=*/init, - /*free=*/nullptr, + /*free=*/free, /*prepare=*/prepare, /*invoke=*/invoke, /*profiling_string=*/nullptr, @@ -160,6 +162,46 @@ TfLiteStatus CopyOpInputsToOpOutputs(TfLiteContext* context, TfLiteNode* node) { return kTfLiteOk; } +// Args: +// 1. int8_t tensor_data - int8_t buffer of unknown size who's data you'd +// like +// to print +// 2. int n_btyes - a small int representing number of bytes you want to +// print +// to debug output. It should always be <= tensor_data's size. +// 3. prefix - optional message you'd like to print before printing bytes +// +// Purpose: +// Function takes in paramaters above and prints n_bytes bytes from the +// tensor_data buffer. This can be use to debug the output of a model and it's +// op. + +void PrintNBytes(const int8_t* tensor_data, int n_bytes, const char* prefix) { + if (prefix != nullptr) { + MicroPrintf("%s", prefix); + } + + for (int i = 0; i < n_bytes; ++i) { + MicroPrintf(" %x", tensor_data[i]); + } + MicroPrintf("\n"); +} + +// same as the PrintNBytes above but the buffer needs to be extracted out of the +// TfLiteEvalTensor* +void PrintNBytes(const TfLiteEvalTensor* tensor, int n_bytes, + const char* prefix) { + const int8_t* tensor_data = tflite::micro::GetTensorData(tensor); + PrintNBytes(tensor_data, n_bytes, prefix); +} + +// same as the PrintNBytes above but the buffer needs to be extracted out of the +// TfLiteEvalTensor* +void PrintNBytes(const TfLiteTensor* tensor, int n_bytes, const char* prefix) { + const int8_t* tensor_data = tflite::GetTensorData(tensor); + PrintNBytes(tensor_data, n_bytes, prefix); +} + TfLiteStatus CopyOpInputsToSubgraphInputs(TfLiteContext* context, TfLiteNode* node, MicroGraph* graph_info, diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.h index d6f20c72..6ac1cb36 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/kernel_util.h @@ -21,8 +21,10 @@ limitations under the License. #include "tensorflow/lite/c/builtin_op_data.h" #include "tensorflow/lite/c/common.h" #include "tensorflow/lite/kernels/internal/compatibility.h" +#include "tensorflow/lite/kernels/internal/tensor_ctypes.h" #include "tensorflow/lite/kernels/internal/types.h" #include "tensorflow/lite/micro/micro_context.h" +#include "tensorflow/lite/micro/micro_error_reporter.h" namespace tflite { namespace micro { @@ -30,7 +32,20 @@ namespace micro { TfLiteRegistration RegisterOp( void* (*init)(TfLiteContext* context, const char* buffer, size_t length), TfLiteStatus (*prepare)(TfLiteContext* context, TfLiteNode* node), - TfLiteStatus (*invoke)(TfLiteContext* context, TfLiteNode* node)); + TfLiteStatus (*invoke)(TfLiteContext* context, TfLiteNode* node), + void (*free)(TfLiteContext* context, void* buffer) = nullptr); + +// Prints out n bytes in a int8_t buffer as hex +void PrintNBytes(const int8_t* tensor_data, int n_bytes, + const char* prefix = nullptr); + +// Prints out the the n bytes in a TfLiteEvalTensor as hex +void PrintNBytes(const TfLiteEvalTensor* tensor, int n_bytes, + const char* prefix = nullptr); + +// Prints out the the n bytes in a TfLiteTensor as hex +void PrintNBytes(const TfLiteTensor* tensor, int n_bytes, + const char* prefix = nullptr); // Returns a mutable tensor for a given input index. is_variable must be checked // during prepare when the full TfLiteTensor is available. diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2_pool_2d.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2_pool_2d.cc index 2b2a27bf..fbba4e0b 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2_pool_2d.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2_pool_2d.cc @@ -125,9 +125,8 @@ TfLiteStatus L2Eval(TfLiteContext* context, TfLiteNode* node) { L2EvalFloat(*params, *input, &op_params, output); break; default: - TF_LITE_KERNEL_LOG(context, - "L2_POOL_2D only supports float32 currently, got %s.", - TfLiteTypeGetName(input->type)); + MicroPrintf("L2_POOL_2D only supports float32 currently, got %s.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2norm.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2norm.cc index 45858e78..e8ce4ec0 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2norm.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/l2norm.cc @@ -126,8 +126,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(input), tflite::micro::GetTensorData(output)); } else { - TF_LITE_KERNEL_LOG(context, "Output type is %s, requires float.", - TfLiteTypeGetName(output->type)); + MicroPrintf("Output type is %s, requires float.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/log_softmax.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/log_softmax.cc index 5fd87612..5958319a 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/log_softmax.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/log_softmax.cc @@ -132,9 +132,8 @@ TfLiteStatus LogSoftmaxEval(TfLiteContext* context, TfLiteNode* node) { return kTfLiteOk; } default: - TF_LITE_KERNEL_LOG(context, - "LOG_SOFTMAX only supports float32, int8, got %s.", - TfLiteTypeGetName(input->type)); + MicroPrintf("LOG_SOFTMAX only supports float32, int8, got %s.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/lstm_eval.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/lstm_eval.cc index f157a8d0..58484638 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/lstm_eval.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/lstm_eval.cc @@ -22,6 +22,8 @@ limitations under the License. #include "tensorflow/lite/c/builtin_op_data.h" #include "tensorflow/lite/c/common.h" #include "tensorflow/lite/kernels/internal/compatibility.h" +#include "tensorflow/lite/kernels/internal/reference/integer_ops/logistic.h" +#include "tensorflow/lite/kernels/internal/reference/integer_ops/tanh.h" #include "tensorflow/lite/kernels/internal/tensor_ctypes.h" #include "tensorflow/lite/kernels/op_macros.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" @@ -530,11 +532,20 @@ void CalculateLstmGateInteger8x8_16( // Apply activation switch (activation) { case kTfLiteActSigmoid: - micro_tensor_utils::ApplySigmoid(gate, n_batch, n_cell, gate); - break; - case kTfLiteActTanh: - micro_tensor_utils::ApplyTanh(3, gate, n_batch, n_cell, gate); + + reference_integer_ops::Logistic( + 0 /*data->input_multiplier*/, 0 /*data->input_left_shift */, + n_batch * n_cell /*NumElements(input->dims)*/, + gate /* tflite::micro::GetTensorData(input) */, + gate /*tflite::micro::GetTensorData(output) */); + break; + case kTfLiteActTanh: { + int32_t dims_data = n_batch * n_cell; + RuntimeShape tanh_inp_shape = RuntimeShape(1, &dims_data); + reference_integer_ops::Tanh(0, 0, tanh_inp_shape, gate, tanh_inp_shape, + gate); + } break; default: // Only Sigmoid or Tanh is used. TFLITE_ASSERT_FALSE; @@ -599,7 +610,7 @@ void UpdateLstmCellInteger(int n_batch, int n_cell, int16_t* cell_state, // - scratch1: scratch area of size n_batch*n_cell // - scratch2: scratch area used by MatrixBatchVectorMultiplyAccumulate void CalculateLstmOutputInteger8x8_16( - int n_batch, int n_cell, int n_output, const int16_t* cell_state, + int n_batch, int n_cell, int n_output, int16_t* cell_state, int32_t cell_state_scale, const int16_t* output_gate, int32_t hidden_scale_a, int32_t hidden_scale_b, int32_t hidden_zp, const int8_t* projection_weights, int32_t proj_scale_a, @@ -607,8 +618,23 @@ void CalculateLstmOutputInteger8x8_16( int32_t output_state_zp, int8_t quantized_proj_clip, int8_t* output_state, int16_t* scratch0, int8_t* scratch1, int32_t* scratch2) { // Note: unlike float/hybrid, the activation is always Tanh. - micro_tensor_utils::ApplyTanh(15 + cell_state_scale, cell_state, n_batch, - n_cell, scratch0); + + { + int32_t tanh_input_left_shift = (15 + cell_state_scale) - 3; + int32_t dims_data = n_batch * n_cell; + if (tanh_input_left_shift < 0) /* handling negative shift value */ + { + int32_t i; + tanh_input_left_shift = -tanh_input_left_shift; + for (i = 0; i < dims_data; i++) { + cell_state[i] = cell_state[i] >> tanh_input_left_shift; + } + tanh_input_left_shift = 0; + } + RuntimeShape tanh_inp_shape = RuntimeShape(1, &dims_data); + reference_integer_ops::Tanh(0, tanh_input_left_shift, tanh_inp_shape, + cell_state, tanh_inp_shape, scratch0); + } micro_tensor_utils::CwiseMul(output_gate, scratch0, hidden_scale_a, hidden_scale_b, n_batch, n_cell, hidden_zp, scratch1); diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/maximum_minimum.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/maximum_minimum.cc index 7964f1e6..cb3cae24 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/maximum_minimum.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/maximum_minimum.cc @@ -98,15 +98,13 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { TFLiteOperation(context, node, op_context); break; default: - TF_LITE_KERNEL_LOG(context, - "Type %s (%d) is not supported by Maximum/Minimum.", - TfLiteTypeGetName(op_context.output->type), - op_context.output->type); + MicroPrintf("Type %s (%d) is not supported by Maximum/Minimum.", + TfLiteTypeGetName(op_context.output->type), + op_context.output->type); return kTfLiteError; } } else { - TF_LITE_KERNEL_LOG(context, - "Kernel type not supported by Maximum/Minimum."); + MicroPrintf("Kernel type not supported by Maximum/Minimum."); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_ops.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_ops.h index c4dec92d..68583f75 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_ops.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_ops.h @@ -72,6 +72,7 @@ TfLiteRegistration Register_READ_VARIABLE(); TfLiteRegistration Register_RELU(); TfLiteRegistration Register_RELU6(); TfLiteRegistration Register_RESIZE_BILINEAR(); +TfLiteRegistration Register_SELECT_V2(); TfLiteRegistration Register_SHAPE(); TfLiteRegistration Register_SLICE(); TfLiteRegistration Register_SPACE_TO_BATCH_ND(); @@ -79,6 +80,7 @@ TfLiteRegistration Register_SPACE_TO_DEPTH(); TfLiteRegistration Register_SQUARED_DIFFERENCE(); TfLiteRegistration Register_SQUEEZE(); TfLiteRegistration Register_SUB(); +TfLiteRegistration Register_SUM(); TfLiteRegistration Register_SVDF(); TfLiteRegistration Register_TRANSPOSE(); TfLiteRegistration Register_TRANSPOSE_CONV(); diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_tensor_utils.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_tensor_utils.cc index 88b097c7..32c68121 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_tensor_utils.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/micro_tensor_utils.cc @@ -663,7 +663,7 @@ void PortableCwiseMul(const int16_t* input_1, const int16_t* input_2, const int16_t b = input_2[index]; int32_t value = static_cast(a) * static_cast(b); value = MultiplyByQuantizedMultiplier(value, multiplier, shift); - value -= output_zp; + value += output_zp; value = std::min(std::max(static_cast(-128), value), static_cast(127)); diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/mul.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/mul.h index e6d1a9b1..0c6379e1 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/mul.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/mul.h @@ -1,4 +1,4 @@ -/* Copyright 2021 The TensorFlow Authors. All Rights Reserved. +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -60,6 +60,15 @@ void EvalMulFloatReference(TfLiteContext* context, TfLiteNode* node, const TfLiteEvalTensor* input2, TfLiteEvalTensor* output); +// Generic must define registration function. +TfLiteRegistration Register_MUL(); + +#if defined(CMSIS_NN) +TfLiteRegistration Register_MUL_INT8(); +#else +// Fallback registration +inline TfLiteRegistration Register_MUL_INT8() { return Register_MUL(); } +#endif } // namespace tflite #endif // TENSORFLOW_LITE_MICRO_KERNELS_MUL_H_ diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/neg.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/neg.cc index 59dd8cb8..03cbbb09 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/neg.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/neg.cc @@ -41,8 +41,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(output)); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pack.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pack.cc index 56f3b96e..01d62f77 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pack.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pack.cc @@ -95,8 +95,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { data->axis); } default: { - TF_LITE_KERNEL_LOG(context, "Type '%s' is not supported by pack.", - TfLiteTypeGetName(output->type)); + MicroPrintf("Type '%s' is not supported by pack.", + TfLiteTypeGetName(output->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pad.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pad.cc index b645f983..61c304bf 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pad.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pad.cc @@ -213,8 +213,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { } break; default: - TF_LITE_KERNEL_LOG(context, "Type %s not currently supported by Pad.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Type %s not currently supported by Pad.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.cc index a2ef8b62..f32014e8 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.cc @@ -45,8 +45,8 @@ TfLiteStatus AverageEval(TfLiteContext* context, TfLiteNode* node) { AveragePoolingEvalQuantized(context, node, params, data, input, output); break; default: - TF_LITE_KERNEL_LOG(context, "Input type %s is not currently supported", - TfLiteTypeGetName(input->type)); + MicroPrintf("Input type %s is not currently supported", + TfLiteTypeGetName(input->type)); return kTfLiteError; } return kTfLiteOk; @@ -73,8 +73,8 @@ TfLiteStatus MaxEval(TfLiteContext* context, TfLiteNode* node) { MaxPoolingEvalQuantized(context, node, params, data, input, output); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s not currently supported.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Type %s not currently supported.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.h index a80f1f59..493250ee 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/pooling.h @@ -1,4 +1,4 @@ -/* Copyright 2021 The TensorFlow Authors. All Rights Reserved. +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ limitations under the License. #include "tensorflow/lite/c/builtin_op_data.h" #include "tensorflow/lite/c/common.h" +#include "tensorflow/lite/micro/kernels/micro_ops.h" namespace tflite { @@ -66,6 +67,19 @@ void MaxPoolingEvalQuantized(TfLiteContext* context, TfLiteNode* node, const TfLiteEvalTensor* input, TfLiteEvalTensor* output); +#if defined(CMSIS_NN) +TfLiteRegistration Register_AVERAGE_POOL_2D_INT8(); + +TfLiteRegistration Register_MAX_POOL_2D_INT8(); +#else +inline TfLiteRegistration Register_AVERAGE_POOL_2D_INT8() { + return tflite::Register_AVERAGE_POOL_2D(); +} + +inline TfLiteRegistration Register_MAX_POOL_2D_INT8() { + return tflite::Register_MAX_POOL_2D(); +} +#endif } // namespace tflite #endif // TENSORFLOW_LITE_MICRO_KERNELS_POOLING_H_ diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/prelu.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/prelu.cc index 54cc0e02..6c5a8a4f 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/prelu.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/prelu.cc @@ -61,9 +61,8 @@ TfLiteStatus PreluEval(TfLiteContext* context, TfLiteNode* node) { return kTfLiteOk; } break; default: - TF_LITE_KERNEL_LOG( - context, "Only float32 and uint8_t are supported currently, got %d.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Only float32 and uint8_t are supported currently, got %d.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/reduce_common.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/reduce_common.cc index a6f940c6..b191ba21 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/reduce_common.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/reduce_common.cc @@ -28,7 +28,7 @@ limitations under the License. namespace tflite { -const int kMaxNumberOfAxis = 4; +const int kMaxNumberOfAxis = 5; const int kMaxNumberOfReducedAxis = 2; TfLiteStatus PrepareSimple(TfLiteContext* context, TfLiteNode* node, diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_bilinear.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_bilinear.cc index a90057b9..f2acd9f4 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_bilinear.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_bilinear.cc @@ -55,8 +55,7 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { auto* params = reinterpret_cast(node->builtin_data); if (params->half_pixel_centers && params->align_corners) { - TF_LITE_KERNEL_LOG( - context, "If half_pixel_centers is True, align_corners must be False."); + MicroPrintf("If half_pixel_centers is True, align_corners must be False."); return kTfLiteError; } @@ -100,8 +99,7 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorShape(output), tflite::micro::GetTensorData(output)); } else { - TF_LITE_KERNEL_LOG(context, "Output type is %d, requires float or int8.", - output->type); + MicroPrintf("Output type is %d, requires float or int8.", output->type); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cc index ce507445..aa3b8fa1 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/resize_nearest_neighbor.cc @@ -21,7 +21,6 @@ limitations under the License. #include "tensorflow/lite/kernels/kernel_util.h" #include "tensorflow/lite/kernels/op_macros.h" #include "tensorflow/lite/micro/kernels/kernel_util.h" -#include "tensorflow/lite/micro/micro_error_reporter.h" namespace tflite { namespace ops { @@ -55,7 +54,7 @@ TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { output->type = input->type; if (!IsConstantTensor(size)) { - TF_LITE_KERNEL_LOG(context, "Dynamic tensors are unsupported in tfmicro."); + MicroPrintf("Dynamic tensors are unsupported in tfmicro."); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/select.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/select.cc new file mode 100644 index 00000000..0bcbfbea --- /dev/null +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/select.cc @@ -0,0 +1,196 @@ +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ +#include "tensorflow/lite/kernels/internal/reference/select.h" + +#include +#include + +#include "tensorflow/lite/c/common.h" +#include "tensorflow/lite/kernels/internal/tensor_ctypes.h" +#include "tensorflow/lite/kernels/kernel_util.h" +#include "tensorflow/lite/micro/kernels/kernel_util.h" + +namespace tflite { + +constexpr int kInputTensorCondition = 0; +constexpr int kInputTensorX = 1; +constexpr int kInputTensorY = 2; +constexpr int kOutputTensor = 0; + +struct OpData { + bool requires_broadcast; + // True if input condition is scalar or input condition has rank one and + // matches the first dimension of other inputs. + bool has_low_rank_input_condition; +}; + +void* SelectInit(TfLiteContext* context, const char* buffer, size_t length) { + TFLITE_DCHECK(context->AllocatePersistentBuffer != nullptr); + auto* data = static_cast( + context->AllocatePersistentBuffer(context, sizeof(OpData))); + data->requires_broadcast = false; + data->has_low_rank_input_condition = false; + return data; +} + +TfLiteStatus CheckBroadcastShape(TfLiteContext* context, + const TfLiteTensor* input1, + const TfLiteTensor* input2, + const TfLiteTensor* input3, + const TfLiteIntArray* output_shape) { + const int dims1 = NumDimensions(input1); + const int dims2 = NumDimensions(input2); + const int dims3 = NumDimensions(input3); + const int out_dims = std::max(std::max(dims1, dims2), dims3); + TF_LITE_ENSURE_EQ(context, out_dims, output_shape->size); + + for (int i = 0; i < out_dims; ++i) { + const int d1 = i >= dims1 ? 1 : SizeOfDimension(input1, dims1 - i - 1); + const int d2 = i >= dims2 ? 1 : SizeOfDimension(input2, dims2 - i - 1); + const int d3 = i >= dims3 ? 1 : SizeOfDimension(input3, dims3 - i - 1); + const int min_value = std::min(std::min(d1, d2), d3); + int max_value = std::max(std::max(d1, d2), d3); + // If one dimention is 0, others must be 0 or 1. + if (min_value == 0) max_value = 0; + if (!(d1 == 1 || d1 == max_value) || !(d2 == 1 || d2 == max_value) || + !(d3 == 1 || d3 == max_value)) { + MicroPrintf("Given shapes are not broadcastable."); + return kTfLiteError; + } + TF_LITE_ENSURE_EQ(context, output_shape->data[out_dims - i - 1], max_value); + } + return kTfLiteOk; +} + +TfLiteStatus SelectPrepare(TfLiteContext* context, TfLiteNode* node) { + OpData* data = reinterpret_cast(node->user_data); + + TF_LITE_ENSURE_EQ(context, NumInputs(node), 3); + TF_LITE_ENSURE_EQ(context, NumOutputs(node), 1); + + MicroContext* micro_context = GetMicroContext(context); + TfLiteTensor* input_condition = + micro_context->AllocateTempInputTensor(node, kInputTensorCondition); + + TfLiteTensor* input_x = + micro_context->AllocateTempInputTensor(node, kInputTensorX); + + TfLiteTensor* input_y = + micro_context->AllocateTempInputTensor(node, kInputTensorY); + + TfLiteTensor* output = + micro_context->AllocateTempOutputTensor(node, kOutputTensor); + + // Input must be bool. + TF_LITE_ENSURE_TYPES_EQ(context, input_condition->type, kTfLiteBool); + TF_LITE_ENSURE_TYPES_EQ(context, input_x->type, input_y->type); + output->type = input_x->type; + + // Respect the original output shape when there are mixed shapes to represent + // a scalar data. + if (GetTensorShape(input_condition).FlatSize() == 1 && + GetTensorShape(input_x).FlatSize() == 1 && + GetTensorShape(input_y).FlatSize() == 1 && + GetTensorShape(output).FlatSize() == 1) { + return kTfLiteOk; + } + + bool same_shape = HaveSameShapes(input_condition, input_x) && + HaveSameShapes(input_x, input_y); + if (!same_shape) { + TF_LITE_ENSURE_OK( + context, CheckBroadcastShape(context, input_condition, input_x, input_y, + output->dims)); + data->requires_broadcast = true; + } + + micro_context->DeallocateTempTfLiteTensor(input_condition); + micro_context->DeallocateTempTfLiteTensor(input_x); + micro_context->DeallocateTempTfLiteTensor(input_y); + micro_context->DeallocateTempTfLiteTensor(output); + + return kTfLiteOk; +} + +TfLiteStatus SelectEval(TfLiteContext* context, TfLiteNode* node) { + OpData* data = static_cast(node->user_data); + MicroContext* micro_context = GetMicroContext(context); + + TfLiteTensor* input_condition = + micro_context->AllocateTempInputTensor(node, kInputTensorCondition); + + TfLiteTensor* input_x = + micro_context->AllocateTempInputTensor(node, kInputTensorX); + + TfLiteTensor* input_y = + micro_context->AllocateTempInputTensor(node, kInputTensorY); + + TfLiteTensor* output = + micro_context->AllocateTempOutputTensor(node, kOutputTensor); + +#define TF_LITE_SELECT(type, op) \ + reference_ops::op(GetTensorShape(input_condition), \ + GetTensorData(input_condition), \ + GetTensorShape(input_x), GetTensorData(input_x), \ + GetTensorShape(input_y), GetTensorData(input_y), \ + GetTensorShape(output), GetTensorData(output)); + +#define TF_LITE_SWITCH(type, op) \ + switch (type) { \ + case kTfLiteFloat32: \ + TF_LITE_SELECT(float, op); \ + break; \ + case kTfLiteInt8: \ + TF_LITE_SELECT(int8_t, op); \ + break; \ + case kTfLiteInt16: \ + TF_LITE_SELECT(int16_t, op); \ + break; \ + default: \ + MicroPrintf("Does not support type other than %s, but got %s", \ + "int8|int16|float32", TfLiteTypeGetName(type)); \ + return kTfLiteError; \ + } + + if (data->has_low_rank_input_condition) { + MicroPrintf("Not yet implemented."); + return kTfLiteError; + } else if (data->requires_broadcast) { + TF_LITE_SWITCH(input_x->type, BroadcastSelect5DSlow); + } else { + TF_LITE_SWITCH(input_x->type, Select); + } + +#undef TF_LITE_SELECT +#undef TF_LITE_SWITCH + micro_context->DeallocateTempTfLiteTensor(input_condition); + micro_context->DeallocateTempTfLiteTensor(input_x); + micro_context->DeallocateTempTfLiteTensor(input_y); + micro_context->DeallocateTempTfLiteTensor(output); + + return kTfLiteOk; +} + +// SelectV2 op selects values of 'x' if the corresponding value of 'condition' +// is true or the value of 'y' if false. There are valid condition input sizes: +// +// 1. Either the same shape (in which case the select is elementwise), or +// 2. Broadcastable shapes between 'condition', 'x' and 'y'. +TfLiteRegistration Register_SELECT_V2() { + return tflite::micro::RegisterOp(tflite::SelectInit, tflite::SelectPrepare, + tflite::SelectEval); +} + +} // namespace tflite diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/shape.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/shape.cc index 02f663a8..b8bd5544 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/shape.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/shape.cc @@ -47,8 +47,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { TfLiteEvalTensor* output = tflite::micro::GetEvalOutput(context, node, kOutputTensor); if (output->type != kTfLiteInt32) { - TF_LITE_KERNEL_LOG(context, "Output type %s (%d) not supported.", - TfLiteTypeGetName(output->type), output->type); + MicroPrintf("Output type %s (%d) not supported.", + TfLiteTypeGetName(output->type), output->type); return kTfLiteError; } else { ExtractShape(input, tflite::micro::GetTensorData(output)); diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/slice.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/slice.cc index 212cf47f..a6ecd935 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/slice.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/slice.cc @@ -106,8 +106,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { GetBeginAndSizeVectors(input->dims->size, begin, size, op_params.begin, op_params.size); } else { - TF_LITE_KERNEL_LOG(context, "Begin tensor type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Begin tensor type %s (%d) not supported.", + TfLiteTypeGetName(input->type), input->type); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/softmax.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/softmax.cc index c2cee3c5..1ad5be0c 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/softmax.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/softmax.cc @@ -75,8 +75,8 @@ TfLiteStatus SoftmaxEval(TfLiteContext* context, TfLiteNode* node) { return kTfLiteOk; } default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_batch_nd.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_batch_nd.cc index 21f81312..7a7f61e9 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_batch_nd.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_batch_nd.cc @@ -104,8 +104,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(output)); break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_depth.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_depth.cc index 30519b27..b8635de8 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_depth.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/space_to_depth.cc @@ -109,9 +109,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { micro::GetTensorData(output)); break; default: - TF_LITE_KERNEL_LOG( - context, "SPACE_TO_DEPTH only supports FLOAT32 and INT8, got %s.", - TfLiteTypeGetName(input->type)); + MicroPrintf("SPACE_TO_DEPTH only supports FLOAT32 and INT8, got %s.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/split_v.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/split_v.cc index 3ea35130..959796c3 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/split_v.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/split_v.cc @@ -111,8 +111,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { return SplitImpl(context, node, input, axis_value); } default: - TF_LITE_KERNEL_LOG(context, "Type %s currently not supported.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Type %s currently not supported.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/squeeze.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/squeeze.cc index e81b5b56..86841753 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/squeeze.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/squeeze.cc @@ -90,8 +90,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { const TfLiteEvalTensor* input = tflite::micro::GetEvalInput(context, node, 0); if (input->type == kTfLiteString) { - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/strided_slice.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/strided_slice.cc index 832e2ccd..344698d6 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/strided_slice.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/strided_slice.cc @@ -183,9 +183,16 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorShape(output), tflite::micro::GetTensorData(output)); break; + case kTfLiteBool: + reference_ops::StridedSlice(op_params, + tflite::micro::GetTensorShape(input), + tflite::micro::GetTensorData(input), + tflite::micro::GetTensorShape(output), + tflite::micro::GetTensorData(output)); + break; default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/svdf.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/svdf.h index 7a04a5c6..0915c9fd 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/svdf.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/svdf.h @@ -1,4 +1,4 @@ -/* Copyright 2020 The TensorFlow Authors. All Rights Reserved. +/* Copyright 2022 The TensorFlow Authors. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -82,7 +82,7 @@ TfLiteStatus PrepareSvdf(TfLiteContext* context, TfLiteNode* node); // (reference or optimized) must define this function. TfLiteRegistration Register_SVDF(); -#if defined(HEXAGON) +#if defined(HEXAGON) || defined(CMSIS_NN) TfLiteRegistration Register_SVDF_INT8(); #else diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/tanh.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/tanh.cc index e97a9035..bb4133bf 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/tanh.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/tanh.cc @@ -185,9 +185,9 @@ TfLiteStatus TanhEval(TfLiteContext* context, TfLiteNode* node) { return kTfLiteOk; } break; default: - TF_LITE_KERNEL_LOG(context, "Input %s, output %s not supported.", - TfLiteTypeGetName(input->type), - TfLiteTypeGetName(output->type)); + MicroPrintf("Input %s, output %s not supported.", + TfLiteTypeGetName(input->type), + TfLiteTypeGetName(output->type), context); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose.cc index 9f77e04d..740ef5f9 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose.cc @@ -103,10 +103,10 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { tflite::micro::GetTensorData(output)); break; default: - TF_LITE_KERNEL_LOG(context, - "Type %s is currently not supported by Transpose. " - "Only float32 and int8 is supported", - TfLiteTypeGetName(input->type)); + MicroPrintf( + "Type %s is currently not supported by Transpose. " + "Only float32 and int8 is supported", + TfLiteTypeGetName(input->type)); return kTfLiteError; } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose_conv.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose_conv.cc index 0b2afd5b..1b1e8b3b 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose_conv.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/transpose_conv.cc @@ -327,8 +327,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { break; } default: - TF_LITE_KERNEL_LOG(context, "Type %s (%d) not supported.", - TfLiteTypeGetName(input->type), input->type); + MicroPrintf("Type %s (%d) not supported.", TfLiteTypeGetName(input->type), + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm_test_config.h b/code/components/tflite-lib/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm_test_config.h index e37c0efd..24c838fa 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm_test_config.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm_test_config.h @@ -24,7 +24,7 @@ namespace testing { // kernel is reconciled with reference kernel #if !defined(XTENSA) -typedef struct LstmIntegerTestConfig { +struct LstmIntegerTestConfig { const int n_batch; const int n_input; const int n_cell; @@ -100,9 +100,9 @@ typedef struct LstmIntegerTestConfig { bool asymmetric_quantize_inputs; const float ranges[25][2]; -} LstmIntegerTestConfig; +}; -typedef struct LstmFloatTestConfig { +struct LstmFloatTestConfig { const int n_batch; const int n_input; const int n_cell; @@ -153,9 +153,9 @@ typedef struct LstmFloatTestConfig { float* output; const float* expected_output_original; float* expected_output; -} LstmFloatTestConfig; +}; -typedef struct LstmWeightQuantizationBuffers { +struct LstmWeightQuantizationBuffers { int8_t* lstm_i2i_quant; float* lstm_i2i_scale; int* lstm_i2i_zp; @@ -215,7 +215,7 @@ typedef struct LstmWeightQuantizationBuffers { float* lstm_proj_w_scale; int* lstm_proj_w_zp; TfLiteAffineQuantization* lstm_proj_w_qparam; -} LstmWeightQuantizationBuffers; +}; extern LstmIntegerTestConfig lstm_integer_no_peephole_config; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/unpack.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/unpack.cc index d199add0..9a0ef177 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/unpack.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/unpack.cc @@ -91,8 +91,8 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { return UnpackImpl(context, node, input, data->num, data->axis); } default: { - TF_LITE_KERNEL_LOG(context, "Type '%s' is not supported by unpack.", - TfLiteTypeGetName(input->type)); + MicroPrintf("Type '%s' is not supported by unpack.", + TfLiteTypeGetName(input->type)); return kTfLiteError; } } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/kernels/zeros_like.cc b/code/components/tflite-lib/tensorflow/lite/micro/kernels/zeros_like.cc index fd6e6612..9c77e7ad 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/kernels/zeros_like.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/kernels/zeros_like.cc @@ -70,10 +70,10 @@ TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { resetZeros(tflite::micro::GetTensorData(output), flat_size); break; default: - TF_LITE_KERNEL_LOG(context, - "ZerosLike only currently supports int64, int32, " - "and float32, got %d.", - input->type); + MicroPrintf( + "ZerosLike only currently supports int64, int32, " + "and float32, got %d.", + input->type); return kTfLiteError; } return kTfLiteOk; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_allocation_info.cc b/code/components/tflite-lib/tensorflow/lite/micro/micro_allocation_info.cc index edab2b83..c1ebac3f 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_allocation_info.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_allocation_info.cc @@ -323,8 +323,12 @@ TfLiteStatus AllocationInfoBuilder::GetOfflinePlannedOffsets( if (model_->metadata()) { for (size_t i = 0; i < model_->metadata()->size(); ++i) { auto metadata = model_->metadata()->Get(i); - if (strncmp(metadata->name()->c_str(), kOfflineMemAllocMetadata, - strlen(kOfflineMemAllocMetadata)) == 0) { + const size_t metadata_name_size = (size_t)metadata->name()->size(); + + if ((strncmp(metadata->name()->c_str(), kOfflineMemAllocMetadata, + std::min(metadata_name_size, + strlen(kOfflineMemAllocMetadata))) == 0) && + metadata_name_size == strlen(kOfflineMemAllocMetadata)) { const flatbuffers::Vector>* buffers = model_->buffers(); auto* buffer = (*buffers)[metadata->buffer()]; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.cc b/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.cc index 6b78fdc0..707f2e83 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.cc @@ -509,14 +509,15 @@ TfLiteStatus MicroAllocator::FinishModelAllocation( return kTfLiteError; } - // Allocate scratch buffer metadata and buffers for variable tensors. + // Allocate scratch buffer metadata. + TF_LITE_ENSURE_STATUS(AllocateScratchBufferHandles( + scratch_buffer_handles, scratch_buffer_request_count_)); + + // Allocate buffers for variable tensors. for (size_t subgraph_idx = 0; subgraph_idx < model->subgraphs()->size(); subgraph_idx++) { const SubGraph* subgraph = model->subgraphs()->Get(subgraph_idx); TFLITE_DCHECK(subgraph != nullptr); - - TF_LITE_ENSURE_STATUS(AllocateScratchBufferHandles( - scratch_buffer_handles, scratch_buffer_request_count_)); TF_LITE_ENSURE_STATUS(AllocateVariables( subgraph, subgraph_allocations[subgraph_idx].tensors)); } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.h b/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.h index 7381489d..f9bd8b75 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_allocator.h @@ -54,7 +54,7 @@ TfLiteStatus InitializeTfLiteTensorFromFlatbuffer( // of a sequential, array of ScratchBufferHandle allocations in the tail // section. These allocations are indexed by the request API defined in the // TfLiteContext struct. -typedef struct { +struct ScratchBufferRequest { // Number of bytes required by the buffer. The actual allocated size might be // greater than `bytes` due to buffer alignment. size_t bytes; @@ -63,29 +63,29 @@ typedef struct { // have `before` = node_idx and `after` = node_idx. int node_idx; int subgraph_idx; -} ScratchBufferRequest; +}; } // namespace internal -typedef struct { +struct NodeAndRegistration { TfLiteNode node; const TfLiteRegistration* registration; -} NodeAndRegistration; +}; // Holds a pointer to a buffer for a scratch buffer requested by a kernel during // the model prepare stage. This struct is allocated in-place and allows for // quick pointer-indexed lookup for speed during model inference. -typedef struct { +struct ScratchBufferHandle { // Pointer to location of the scratch buffer: uint8_t* data; -} ScratchBufferHandle; +}; // Stores all per-subgraph allocations. This includes the node and registration -// array, tensor list and scratch buffer handles for each subgraph. -typedef struct { +// array, and tensor list for each subgraph. +struct SubgraphAllocations { NodeAndRegistration* node_and_registrations; TfLiteEvalTensor* tensors; -} SubgraphAllocations; +}; // Allocator responsible for allocating memory for all intermediate tensors // necessary to invoke a model. diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.cc b/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.cc index f726a5f3..50fe7911 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.cc @@ -317,7 +317,17 @@ TfLiteTensor* MicroInterpreter::output(size_t index) { } return output_tensors_[index]; } +// Repurposing free subgraphs to reset state for some ops for now +// will reset api is made. See b/220940833#comment25 for more context. +TfLiteStatus MicroInterpreter::Reset() { + TfLiteStatus status = graph_.FreeSubgraphs(); + if (status != kTfLiteOk) { + return status; + } + return graph_.ResetVariableTensors(); +} +// TODO: remove this API completely in favor of MicroInterpreter::Reset TfLiteStatus MicroInterpreter::ResetVariableTensors() { return graph_.ResetVariableTensors(); } diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.h b/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.h index aa409386..285a890f 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_interpreter.h @@ -31,7 +31,7 @@ limitations under the License. #include "tensorflow/lite/portable_type_to_tflitetype.h" #include "tensorflow/lite/schema/schema_generated.h" -// Copied from tensorflow/lite/version.h to avoid a dependency chain into +/// Copied from tensorflow/lite/version.h to avoid a dependency chain into // tensorflow/core. #define TFLITE_SCHEMA_VERSION (3) @@ -116,6 +116,11 @@ class MicroInterpreter { return nullptr; } + // Reset the state to be what you would expect when the interpreter is first + // created. i.e. after Init and Prepare is called for the very first time. + TfLiteStatus Reset(); + + // TODO(b/244457206): remove this in favor of Reset() // Reset all variable tensors to the default value. TfLiteStatus ResetVariableTensors(); diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_mutable_op_resolver.h b/code/components/tflite-lib/tensorflow/lite/micro/micro_mutable_op_resolver.h index 4b273417..738cd4fb 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_mutable_op_resolver.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_mutable_op_resolver.h @@ -24,11 +24,13 @@ limitations under the License. #include "tensorflow/lite/kernels/internal/compatibility.h" #include "tensorflow/lite/kernels/op_macros.h" #include "tensorflow/lite/micro/compatibility.h" +#include "tensorflow/lite/micro/kernels/add.h" #include "tensorflow/lite/micro/kernels/conv.h" #include "tensorflow/lite/micro/kernels/depthwise_conv.h" #include "tensorflow/lite/micro/kernels/ethosu.h" #include "tensorflow/lite/micro/kernels/fully_connected.h" #include "tensorflow/lite/micro/kernels/micro_ops.h" +#include "tensorflow/lite/micro/kernels/pooling.h" #include "tensorflow/lite/micro/kernels/reduce.h" #include "tensorflow/lite/micro/kernels/softmax.h" #include "tensorflow/lite/micro/micro_error_reporter.h" @@ -140,9 +142,9 @@ class MicroMutableOpResolver : public MicroOpResolver { tflite::Register_ASSIGN_VARIABLE(), ParseAssignVariable); } - TfLiteStatus AddAveragePool2D() { - return AddBuiltin(BuiltinOperator_AVERAGE_POOL_2D, - tflite::Register_AVERAGE_POOL_2D(), ParsePool); + TfLiteStatus AddAveragePool2D( + const TfLiteRegistration& registration = Register_AVERAGE_POOL_2D()) { + return AddBuiltin(BuiltinOperator_AVERAGE_POOL_2D, registration, ParsePool); } TfLiteStatus AddBatchToSpaceNd() { @@ -363,9 +365,9 @@ class MicroMutableOpResolver : public MicroOpResolver { tflite::ops::micro::Register_MAXIMUM(), ParseMaximum); } - TfLiteStatus AddMaxPool2D() { - return AddBuiltin(BuiltinOperator_MAX_POOL_2D, - tflite::Register_MAX_POOL_2D(), ParsePool); + TfLiteStatus AddMaxPool2D( + const TfLiteRegistration& registration = Register_MAX_POOL_2D()) { + return AddBuiltin(BuiltinOperator_MAX_POOL_2D, registration, ParsePool); } TfLiteStatus AddMirrorPad() { @@ -382,8 +384,8 @@ class MicroMutableOpResolver : public MicroOpResolver { tflite::ops::micro::Register_MINIMUM(), ParseMinimum); } - TfLiteStatus AddMul() { - return AddBuiltin(BuiltinOperator_MUL, tflite::Register_MUL(), ParseMul); + TfLiteStatus AddMul(const TfLiteRegistration& registration = Register_MUL()) { + return AddBuiltin(BuiltinOperator_MUL, registration, ParseMul); } TfLiteStatus AddNeg() { @@ -466,6 +468,11 @@ class MicroMutableOpResolver : public MicroOpResolver { tflite::ops::micro::Register_RSQRT(), ParseRsqrt); } + TfLiteStatus AddSelectV2() { + return AddBuiltin(BuiltinOperator_SELECT_V2, Register_SELECT_V2(), + ParseSelectV2); + } + TfLiteStatus AddShape() { return AddBuiltin(BuiltinOperator_SHAPE, Register_SHAPE(), ParseShape); } @@ -519,6 +526,12 @@ class MicroMutableOpResolver : public MicroOpResolver { tflite::ops::micro::Register_SQUARE(), ParseSquare); } + TfLiteStatus AddSquaredDifference() { + return AddBuiltin(BuiltinOperator_SQUARED_DIFFERENCE, + tflite::Register_SQUARED_DIFFERENCE(), + ParseSquaredDifference); + } + TfLiteStatus AddStridedSlice() { return AddBuiltin(BuiltinOperator_STRIDED_SLICE, tflite::ops::micro::Register_STRIDED_SLICE(), diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.cc b/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.cc index 72f3d37f..86b1ebbb 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.cc @@ -16,6 +16,7 @@ limitations under the License. #include #include +#include #include "tensorflow/lite/kernels/internal/compatibility.h" #include "tensorflow/lite/micro/micro_error_reporter.h" @@ -67,4 +68,48 @@ void MicroProfiler::LogCsv() const { #endif } +void MicroProfiler::LogTicksPerTagCsv() { +#if !defined(TF_LITE_STRIP_ERROR_STRINGS) + MicroPrintf( + "\"Unique Tag\",\"Total ticks across all events with that tag.\""); + int total_ticks = 0; + for (int i = 0; i < num_events_; ++i) { + uint32_t ticks = end_ticks_[i] - start_ticks_[i]; + TFLITE_DCHECK(tags_[i] != nullptr); + int position = FindExistingOrNextPosition(tags_[i]); + TFLITE_DCHECK(position >= 0); + total_ticks_per_tag[position].tag = tags_[i]; + total_ticks_per_tag[position].ticks = + total_ticks_per_tag[position].ticks + ticks; + total_ticks += ticks; + } + + for (int i = 0; i < num_events_; ++i) { + TicksPerTag each_tag_entry = total_ticks_per_tag[i]; + if (each_tag_entry.tag == nullptr) { + break; + } + MicroPrintf("%s, %d", each_tag_entry.tag, each_tag_entry.ticks); + } + MicroPrintf("total number of ticks, %d", total_ticks); +#endif +} + +// This method finds a particular array element in the total_ticks_per_tag array +// with the matching tag_name passed in the method. If it can find a +// matching array element that has the same tag_name, then it will return the +// position of the matching element. But if it unable to find a matching element +// with the given tag_name, it will return the next available empty position +// from the array. +int MicroProfiler::FindExistingOrNextPosition(const char* tag_name) { + int pos = 0; + for (; pos < num_events_; pos++) { + TicksPerTag each_tag_entry = total_ticks_per_tag[pos]; + if (each_tag_entry.tag == nullptr || + strcmp(each_tag_entry.tag, tag_name) == 0) { + return pos; + } + } + return pos < num_events_ ? pos : -1; +} } // namespace tflite diff --git a/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.h b/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.h index 41f41a35..c37978a0 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.h +++ b/code/components/tflite-lib/tensorflow/lite/micro/micro_profiler.h @@ -61,6 +61,11 @@ class MicroProfiler { // Separated Value) form. void LogCsv() const; + // Prints total ticks for each unique tag in CSV format. + // Output will have one row for each unique tag along with the + // total ticks summed across all events with that particular tag. + void LogTicksPerTagCsv(); + private: // Maximum number of events that this class can keep track of. If we call // AddEvent more than kMaxEvents number of times, then the oldest event's @@ -72,6 +77,17 @@ class MicroProfiler { uint32_t end_ticks_[kMaxEvents]; int num_events_ = 0; + struct TicksPerTag { + const char* tag; + uint32_t ticks; + }; + // In practice, the number of tags will be much lower than the number of + // events. But it is theoretically possible that each event to be unique and + // hence we allow total_ticks_per_tag to have kMaxEvents entries. + TicksPerTag total_ticks_per_tag[kMaxEvents] = {}; + + int FindExistingOrNextPosition(const char* tag_name); + TF_LITE_REMOVE_VIRTUAL_DELETE; }; diff --git a/code/components/tflite-lib/tensorflow/lite/micro/recording_micro_allocator.cc b/code/components/tflite-lib/tensorflow/lite/micro/recording_micro_allocator.cc index 61f7816a..cdfcc272 100644 --- a/code/components/tflite-lib/tensorflow/lite/micro/recording_micro_allocator.cc +++ b/code/components/tflite-lib/tensorflow/lite/micro/recording_micro_allocator.cc @@ -163,10 +163,12 @@ TfLiteStatus RecordingMicroAllocator::AllocateNodeAndRegistrations( TfLiteStatus status = MicroAllocator::AllocateNodeAndRegistrations(model, subgraph_allocations); + + RecordAllocationUsage(allocations, + recorded_node_and_registration_array_data_); + for (size_t subgraph_idx = 0; subgraph_idx < model->subgraphs()->size(); subgraph_idx++) { - RecordAllocationUsage(allocations, - recorded_node_and_registration_array_data_); // The allocation count in SingleArenaBufferAllocator will only be 1. To // provide better logging, decrement by 1 and add in the actual number of // operators used in the graph: The allocation for this recording will @@ -176,8 +178,12 @@ TfLiteStatus RecordingMicroAllocator::AllocateNodeAndRegistrations( // potential for fragmentation, manually adjust the accounting by // decrementing by 1 and adding the actual number of nodes used in the // graph: - recorded_node_and_registration_array_data_.count += - model->subgraphs()->Get(subgraph_idx)->operators()->size() - 1; + if (model->subgraphs()->Get(subgraph_idx)->operators()) { + recorded_node_and_registration_array_data_.count += + model->subgraphs()->Get(subgraph_idx)->operators()->size() - 1; + } else { + recorded_node_and_registration_array_data_.count -= 1; + } } return status; } @@ -188,9 +194,11 @@ TfLiteStatus RecordingMicroAllocator::AllocateTfLiteEvalTensors( TfLiteStatus status = MicroAllocator::AllocateTfLiteEvalTensors(model, subgraph_allocations); + + RecordAllocationUsage(allocations, recorded_tflite_eval_tensor_data_); + for (size_t subgraph_idx = 0; subgraph_idx < model->subgraphs()->size(); subgraph_idx++) { - RecordAllocationUsage(allocations, recorded_tflite_eval_tensor_data_); // The allocation for this recording will always be 1. This is because the // parent class mallocs one large allocation for the number of tensors in // the graph (e.g. sizeof(TfLiteEvalTensor) * num_tensors). To prevent extra diff --git a/code/components/tflite-lib/tensorflow/lite/schema/schema_generated.h b/code/components/tflite-lib/tensorflow/lite/schema/schema_generated.h index 5d1cee85..b3a6831a 100644 --- a/code/components/tflite-lib/tensorflow/lite/schema/schema_generated.h +++ b/code/components/tflite-lib/tensorflow/lite/schema/schema_generated.h @@ -6,6 +6,13 @@ #include "flatbuffers/flatbuffers.h" +// Ensure the included flatbuffers.h is the same version as when this file was +// generated, otherwise it may not be compatible. +static_assert(FLATBUFFERS_VERSION_MAJOR == 2 && + FLATBUFFERS_VERSION_MINOR == 0 && + FLATBUFFERS_VERSION_REVISION == 6, + "Non-compatible flatbuffers version included"); + namespace tflite { struct CustomQuantization; @@ -36,6 +43,10 @@ struct SparsityParameters; struct SparsityParametersBuilder; struct SparsityParametersT; +struct VariantSubType; +struct VariantSubTypeBuilder; +struct VariantSubTypeT; + struct Tensor; struct TensorBuilder; struct TensorT; @@ -528,6 +539,10 @@ struct UnsortedSegmentMinOptions; struct UnsortedSegmentMinOptionsBuilder; struct UnsortedSegmentMinOptionsT; +struct SignOptions; +struct SignOptionsBuilder; +struct SignOptionsT; + struct OperatorCode; struct OperatorCodeBuilder; struct OperatorCodeT; @@ -560,7 +575,7 @@ struct Model; struct ModelBuilder; struct ModelT; -enum TensorType { +enum TensorType : int8_t { TensorType_FLOAT32 = 0, TensorType_FLOAT16 = 1, TensorType_INT32 = 2, @@ -635,7 +650,7 @@ inline const char *EnumNameTensorType(TensorType e) { return EnumNamesTensorType()[index]; } -enum QuantizationDetails { +enum QuantizationDetails : uint8_t { QuantizationDetails_NONE = 0, QuantizationDetails_CustomQuantization = 1, QuantizationDetails_MIN = QuantizationDetails_NONE, @@ -673,6 +688,14 @@ template<> struct QuantizationDetailsTraits { static const QuantizationDetails enum_value = QuantizationDetails_CustomQuantization; }; +template struct QuantizationDetailsUnionTraits { + static const QuantizationDetails enum_value = QuantizationDetails_NONE; +}; + +template<> struct QuantizationDetailsUnionTraits { + static const QuantizationDetails enum_value = QuantizationDetails_CustomQuantization; +}; + struct QuantizationDetailsUnion { QuantizationDetails type; void *value; @@ -690,17 +713,15 @@ struct QuantizationDetailsUnion { void Reset(); -#ifndef FLATBUFFERS_CPP98_STL template void Set(T&& val) { - using RT = typename std::remove_reference::type; + typedef typename std::remove_reference::type RT; Reset(); - type = QuantizationDetailsTraits::enum_value; + type = QuantizationDetailsUnionTraits::enum_value; if (type != QuantizationDetails_NONE) { value = new RT(std::forward(val)); } } -#endif // FLATBUFFERS_CPP98_STL static void *UnPack(const void *obj, QuantizationDetails type, const flatbuffers::resolver_function_t *resolver); flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; @@ -718,7 +739,7 @@ struct QuantizationDetailsUnion { bool VerifyQuantizationDetails(flatbuffers::Verifier &verifier, const void *obj, QuantizationDetails type); bool VerifyQuantizationDetailsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); -enum DimensionType { +enum DimensionType : int8_t { DimensionType_DENSE = 0, DimensionType_SPARSE_CSR = 1, DimensionType_MIN = DimensionType_DENSE, @@ -748,7 +769,7 @@ inline const char *EnumNameDimensionType(DimensionType e) { return EnumNamesDimensionType()[index]; } -enum SparseIndexVector { +enum SparseIndexVector : uint8_t { SparseIndexVector_NONE = 0, SparseIndexVector_Int32Vector = 1, SparseIndexVector_Uint16Vector = 2, @@ -800,6 +821,22 @@ template<> struct SparseIndexVectorTraits { static const SparseIndexVector enum_value = SparseIndexVector_Uint8Vector; }; +template struct SparseIndexVectorUnionTraits { + static const SparseIndexVector enum_value = SparseIndexVector_NONE; +}; + +template<> struct SparseIndexVectorUnionTraits { + static const SparseIndexVector enum_value = SparseIndexVector_Int32Vector; +}; + +template<> struct SparseIndexVectorUnionTraits { + static const SparseIndexVector enum_value = SparseIndexVector_Uint16Vector; +}; + +template<> struct SparseIndexVectorUnionTraits { + static const SparseIndexVector enum_value = SparseIndexVector_Uint8Vector; +}; + struct SparseIndexVectorUnion { SparseIndexVector type; void *value; @@ -817,17 +854,15 @@ struct SparseIndexVectorUnion { void Reset(); -#ifndef FLATBUFFERS_CPP98_STL template void Set(T&& val) { - using RT = typename std::remove_reference::type; + typedef typename std::remove_reference::type RT; Reset(); - type = SparseIndexVectorTraits::enum_value; + type = SparseIndexVectorUnionTraits::enum_value; if (type != SparseIndexVector_NONE) { value = new RT(std::forward(val)); } } -#endif // FLATBUFFERS_CPP98_STL static void *UnPack(const void *obj, SparseIndexVector type, const flatbuffers::resolver_function_t *resolver); flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; @@ -861,7 +896,7 @@ struct SparseIndexVectorUnion { bool VerifySparseIndexVector(flatbuffers::Verifier &verifier, const void *obj, SparseIndexVector type); bool VerifySparseIndexVectorVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); -enum BuiltinOperator { +enum BuiltinOperator : int32_t { BuiltinOperator_ADD = 0, BuiltinOperator_AVERAGE_POOL_2D = 1, BuiltinOperator_CONCATENATION = 2, @@ -1020,11 +1055,12 @@ enum BuiltinOperator { BuiltinOperator_UNSORTED_SEGMENT_SUM = 155, BuiltinOperator_ATAN2 = 156, BuiltinOperator_UNSORTED_SEGMENT_MIN = 157, + BuiltinOperator_SIGN = 158, BuiltinOperator_MIN = BuiltinOperator_ADD, - BuiltinOperator_MAX = BuiltinOperator_UNSORTED_SEGMENT_MIN + BuiltinOperator_MAX = BuiltinOperator_SIGN }; -inline const BuiltinOperator (&EnumValuesBuiltinOperator())[158] { +inline const BuiltinOperator (&EnumValuesBuiltinOperator())[159] { static const BuiltinOperator values[] = { BuiltinOperator_ADD, BuiltinOperator_AVERAGE_POOL_2D, @@ -1183,13 +1219,14 @@ inline const BuiltinOperator (&EnumValuesBuiltinOperator())[158] { BuiltinOperator_UNSORTED_SEGMENT_MAX, BuiltinOperator_UNSORTED_SEGMENT_SUM, BuiltinOperator_ATAN2, - BuiltinOperator_UNSORTED_SEGMENT_MIN + BuiltinOperator_UNSORTED_SEGMENT_MIN, + BuiltinOperator_SIGN }; return values; } inline const char * const *EnumNamesBuiltinOperator() { - static const char * const names[159] = { + static const char * const names[160] = { "ADD", "AVERAGE_POOL_2D", "CONCATENATION", @@ -1348,18 +1385,19 @@ inline const char * const *EnumNamesBuiltinOperator() { "UNSORTED_SEGMENT_SUM", "ATAN2", "UNSORTED_SEGMENT_MIN", + "SIGN", nullptr }; return names; } inline const char *EnumNameBuiltinOperator(BuiltinOperator e) { - if (flatbuffers::IsOutRange(e, BuiltinOperator_ADD, BuiltinOperator_UNSORTED_SEGMENT_MIN)) return ""; + if (flatbuffers::IsOutRange(e, BuiltinOperator_ADD, BuiltinOperator_SIGN)) return ""; const size_t index = static_cast(e); return EnumNamesBuiltinOperator()[index]; } -enum BuiltinOptions { +enum BuiltinOptions : uint8_t { BuiltinOptions_NONE = 0, BuiltinOptions_Conv2DOptions = 1, BuiltinOptions_DepthwiseConv2DOptions = 2, @@ -1483,11 +1521,12 @@ enum BuiltinOptions { BuiltinOptions_UnsortedSegmentMinOptions = 120, BuiltinOptions_UnsortedSegmentSumOptions = 121, BuiltinOptions_ATan2Options = 122, + BuiltinOptions_SignOptions = 123, BuiltinOptions_MIN = BuiltinOptions_NONE, - BuiltinOptions_MAX = BuiltinOptions_ATan2Options + BuiltinOptions_MAX = BuiltinOptions_SignOptions }; -inline const BuiltinOptions (&EnumValuesBuiltinOptions())[123] { +inline const BuiltinOptions (&EnumValuesBuiltinOptions())[124] { static const BuiltinOptions values[] = { BuiltinOptions_NONE, BuiltinOptions_Conv2DOptions, @@ -1611,13 +1650,14 @@ inline const BuiltinOptions (&EnumValuesBuiltinOptions())[123] { BuiltinOptions_UnsortedSegmentMaxOptions, BuiltinOptions_UnsortedSegmentMinOptions, BuiltinOptions_UnsortedSegmentSumOptions, - BuiltinOptions_ATan2Options + BuiltinOptions_ATan2Options, + BuiltinOptions_SignOptions }; return values; } inline const char * const *EnumNamesBuiltinOptions() { - static const char * const names[124] = { + static const char * const names[125] = { "NONE", "Conv2DOptions", "DepthwiseConv2DOptions", @@ -1741,13 +1781,14 @@ inline const char * const *EnumNamesBuiltinOptions() { "UnsortedSegmentMinOptions", "UnsortedSegmentSumOptions", "ATan2Options", + "SignOptions", nullptr }; return names; } inline const char *EnumNameBuiltinOptions(BuiltinOptions e) { - if (flatbuffers::IsOutRange(e, BuiltinOptions_NONE, BuiltinOptions_ATan2Options)) return ""; + if (flatbuffers::IsOutRange(e, BuiltinOptions_NONE, BuiltinOptions_SignOptions)) return ""; const size_t index = static_cast(e); return EnumNamesBuiltinOptions()[index]; } @@ -2244,6 +2285,506 @@ template<> struct BuiltinOptionsTraits { static const BuiltinOptions enum_value = BuiltinOptions_ATan2Options; }; +template<> struct BuiltinOptionsTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SignOptions; +}; + +template struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_NONE; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_Conv2DOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DepthwiseConv2DOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ConcatEmbeddingsOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LSHProjectionOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_Pool2DOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SVDFOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_RNNOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_FullyConnectedOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SoftmaxOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ConcatenationOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_AddOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_L2NormOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LocalResponseNormalizationOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LSTMOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ResizeBilinearOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_CallOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ReshapeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SkipGramOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SpaceToDepthOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_EmbeddingLookupSparseOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_MulOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_PadOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_GatherOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_BatchToSpaceNDOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SpaceToBatchNDOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_TransposeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ReducerOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SubOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DivOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SqueezeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SequenceRNNOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_StridedSliceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ExpOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_TopKV2Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SplitOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LogSoftmaxOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_CastOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DequantizeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_MaximumMinimumOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ArgMaxOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LessOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_NegOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_PadV2Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_GreaterOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_GreaterEqualOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LessEqualOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SelectOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SliceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_TransposeConvOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SparseToDenseOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_TileOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ExpandDimsOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_EqualOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_NotEqualOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ShapeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_PowOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ArgMinOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_FakeQuantOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_PackOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LogicalOrOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_OneHotOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LogicalAndOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LogicalNotOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UnpackOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_FloorDivOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SquareOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ZerosLikeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_FillOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_BidirectionalSequenceLSTMOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_BidirectionalSequenceRNNOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UnidirectionalSequenceLSTMOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_FloorModOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_RangeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ResizeNearestNeighborOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_LeakyReluOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SquaredDifferenceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_MirrorPadOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_AbsOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SplitVOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UniqueOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ReverseV2Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_AddNOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_GatherNdOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_CosOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_WhereOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_RankOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ReverseSequenceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_MatrixDiagOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_QuantizeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_MatrixSetDiagOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_HardSwishOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_IfOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_WhileOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DepthToSpaceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_NonMaxSuppressionV4Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_NonMaxSuppressionV5Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ScatterNdOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SelectV2Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DensifyOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SegmentSumOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_BatchMatMulOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_CumsumOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_CallOnceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_BroadcastToOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_Rfft2dOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_Conv3DOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_HashtableOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_HashtableFindOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_HashtableImportOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_HashtableSizeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_VarHandleOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ReadVariableOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_AssignVariableOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_RandomOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_BucketizeOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_GeluOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DynamicUpdateSliceOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UnsortedSegmentProdOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UnsortedSegmentMaxOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UnsortedSegmentMinOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_UnsortedSegmentSumOptions; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_ATan2Options; +}; + +template<> struct BuiltinOptionsUnionTraits { + static const BuiltinOptions enum_value = BuiltinOptions_SignOptions; +}; + struct BuiltinOptionsUnion { BuiltinOptions type; void *value; @@ -2261,17 +2802,15 @@ struct BuiltinOptionsUnion { void Reset(); -#ifndef FLATBUFFERS_CPP98_STL template void Set(T&& val) { - using RT = typename std::remove_reference::type; + typedef typename std::remove_reference::type RT; Reset(); - type = BuiltinOptionsTraits::enum_value; + type = BuiltinOptionsUnionTraits::enum_value; if (type != BuiltinOptions_NONE) { value = new RT(std::forward(val)); } } -#endif // FLATBUFFERS_CPP98_STL static void *UnPack(const void *obj, BuiltinOptions type, const flatbuffers::resolver_function_t *resolver); flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; @@ -3252,12 +3791,20 @@ struct BuiltinOptionsUnion { return type == BuiltinOptions_ATan2Options ? reinterpret_cast(value) : nullptr; } + tflite::SignOptionsT *AsSignOptions() { + return type == BuiltinOptions_SignOptions ? + reinterpret_cast(value) : nullptr; + } + const tflite::SignOptionsT *AsSignOptions() const { + return type == BuiltinOptions_SignOptions ? + reinterpret_cast(value) : nullptr; + } }; bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type); bool VerifyBuiltinOptionsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); -enum Padding { +enum Padding : int8_t { Padding_SAME = 0, Padding_VALID = 1, Padding_MIN = Padding_SAME, @@ -3287,7 +3834,7 @@ inline const char *EnumNamePadding(Padding e) { return EnumNamesPadding()[index]; } -enum ActivationFunctionType { +enum ActivationFunctionType : int8_t { ActivationFunctionType_NONE = 0, ActivationFunctionType_RELU = 1, ActivationFunctionType_RELU_N1_TO_1 = 2, @@ -3329,7 +3876,7 @@ inline const char *EnumNameActivationFunctionType(ActivationFunctionType e) { return EnumNamesActivationFunctionType()[index]; } -enum LSHProjectionType { +enum LSHProjectionType : int8_t { LSHProjectionType_UNKNOWN = 0, LSHProjectionType_SPARSE = 1, LSHProjectionType_DENSE = 2, @@ -3362,7 +3909,7 @@ inline const char *EnumNameLSHProjectionType(LSHProjectionType e) { return EnumNamesLSHProjectionType()[index]; } -enum FullyConnectedOptionsWeightsFormat { +enum FullyConnectedOptionsWeightsFormat : int8_t { FullyConnectedOptionsWeightsFormat_DEFAULT = 0, FullyConnectedOptionsWeightsFormat_SHUFFLED4x16INT8 = 1, FullyConnectedOptionsWeightsFormat_MIN = FullyConnectedOptionsWeightsFormat_DEFAULT, @@ -3392,7 +3939,7 @@ inline const char *EnumNameFullyConnectedOptionsWeightsFormat(FullyConnectedOpti return EnumNamesFullyConnectedOptionsWeightsFormat()[index]; } -enum LSTMKernelType { +enum LSTMKernelType : int8_t { LSTMKernelType_FULL = 0, LSTMKernelType_BASIC = 1, LSTMKernelType_MIN = LSTMKernelType_FULL, @@ -3422,7 +3969,7 @@ inline const char *EnumNameLSTMKernelType(LSTMKernelType e) { return EnumNamesLSTMKernelType()[index]; } -enum CombinerType { +enum CombinerType : int8_t { CombinerType_SUM = 0, CombinerType_MEAN = 1, CombinerType_SQRTN = 2, @@ -3455,7 +4002,7 @@ inline const char *EnumNameCombinerType(CombinerType e) { return EnumNamesCombinerType()[index]; } -enum MirrorPadMode { +enum MirrorPadMode : int8_t { MirrorPadMode_REFLECT = 0, MirrorPadMode_SYMMETRIC = 1, MirrorPadMode_MIN = MirrorPadMode_REFLECT, @@ -3485,7 +4032,7 @@ inline const char *EnumNameMirrorPadMode(MirrorPadMode e) { return EnumNamesMirrorPadMode()[index]; } -enum CustomOptionsFormat { +enum CustomOptionsFormat : int8_t { CustomOptionsFormat_FLEXBUFFERS = 0, CustomOptionsFormat_MIN = CustomOptionsFormat_FLEXBUFFERS, CustomOptionsFormat_MAX = CustomOptionsFormat_FLEXBUFFERS @@ -3514,9 +4061,7 @@ inline const char *EnumNameCustomOptionsFormat(CustomOptionsFormat e) { struct CustomQuantizationT : public flatbuffers::NativeTable { typedef CustomQuantization TableType; - std::vector custom; - CustomQuantizationT() { - } + std::vector custom{}; }; struct CustomQuantization FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -3550,7 +4095,6 @@ struct CustomQuantizationBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - CustomQuantizationBuilder &operator=(const CustomQuantizationBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -3580,15 +4124,12 @@ flatbuffers::Offset CreateCustomQuantization(flatbuffers::Fl struct QuantizationParametersT : public flatbuffers::NativeTable { typedef QuantizationParameters TableType; - std::vector min; - std::vector max; - std::vector scale; - std::vector zero_point; - tflite::QuantizationDetailsUnion details; - int32_t quantized_dimension; - QuantizationParametersT() - : quantized_dimension(0) { - } + std::vector min{}; + std::vector max{}; + std::vector scale{}; + std::vector zero_point{}; + tflite::QuantizationDetailsUnion details{}; + int32_t quantized_dimension = 0; }; struct QuantizationParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -3638,10 +4179,10 @@ struct QuantizationParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab verifier.VerifyVector(scale()) && VerifyOffset(verifier, VT_ZERO_POINT) && verifier.VerifyVector(zero_point()) && - VerifyField(verifier, VT_DETAILS_TYPE) && + VerifyField(verifier, VT_DETAILS_TYPE, 1) && VerifyOffset(verifier, VT_DETAILS) && VerifyQuantizationDetails(verifier, details(), details_type()) && - VerifyField(verifier, VT_QUANTIZED_DIMENSION) && + VerifyField(verifier, VT_QUANTIZED_DIMENSION, 4) && verifier.EndTable(); } QuantizationParametersT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -3682,7 +4223,6 @@ struct QuantizationParametersBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - QuantizationParametersBuilder &operator=(const QuantizationParametersBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -3738,9 +4278,7 @@ flatbuffers::Offset CreateQuantizationParameters(flatbuf struct Int32VectorT : public flatbuffers::NativeTable { typedef Int32Vector TableType; - std::vector values; - Int32VectorT() { - } + std::vector values{}; }; struct Int32Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -3774,7 +4312,6 @@ struct Int32VectorBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Int32VectorBuilder &operator=(const Int32VectorBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -3803,9 +4340,7 @@ flatbuffers::Offset CreateInt32Vector(flatbuffers::FlatBufferBuilde struct Uint16VectorT : public flatbuffers::NativeTable { typedef Uint16Vector TableType; - std::vector values; - Uint16VectorT() { - } + std::vector values{}; }; struct Uint16Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -3839,7 +4374,6 @@ struct Uint16VectorBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Uint16VectorBuilder &operator=(const Uint16VectorBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -3869,9 +4403,7 @@ flatbuffers::Offset CreateUint16Vector(flatbuffers::FlatBufferBuil struct Uint8VectorT : public flatbuffers::NativeTable { typedef Uint8Vector TableType; - std::vector values; - Uint8VectorT() { - } + std::vector values{}; }; struct Uint8Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -3905,7 +4437,6 @@ struct Uint8VectorBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Uint8VectorBuilder &operator=(const Uint8VectorBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -3935,14 +4466,10 @@ flatbuffers::Offset CreateUint8Vector(flatbuffers::FlatBufferBuilde struct DimensionMetadataT : public flatbuffers::NativeTable { typedef DimensionMetadata TableType; - tflite::DimensionType format; - int32_t dense_size; - tflite::SparseIndexVectorUnion array_segments; - tflite::SparseIndexVectorUnion array_indices; - DimensionMetadataT() - : format(tflite::DimensionType_DENSE), - dense_size(0) { - } + tflite::DimensionType format = tflite::DimensionType_DENSE; + int32_t dense_size = 0; + tflite::SparseIndexVectorUnion array_segments{}; + tflite::SparseIndexVectorUnion array_indices{}; }; struct DimensionMetadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -3996,12 +4523,12 @@ struct DimensionMetadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FORMAT) && - VerifyField(verifier, VT_DENSE_SIZE) && - VerifyField(verifier, VT_ARRAY_SEGMENTS_TYPE) && + VerifyField(verifier, VT_FORMAT, 1) && + VerifyField(verifier, VT_DENSE_SIZE, 4) && + VerifyField(verifier, VT_ARRAY_SEGMENTS_TYPE, 1) && VerifyOffset(verifier, VT_ARRAY_SEGMENTS) && VerifySparseIndexVector(verifier, array_segments(), array_segments_type()) && - VerifyField(verifier, VT_ARRAY_INDICES_TYPE) && + VerifyField(verifier, VT_ARRAY_INDICES_TYPE, 1) && VerifyOffset(verifier, VT_ARRAY_INDICES) && VerifySparseIndexVector(verifier, array_indices(), array_indices_type()) && verifier.EndTable(); @@ -4061,7 +4588,6 @@ struct DimensionMetadataBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DimensionMetadataBuilder &operator=(const DimensionMetadataBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4091,11 +4617,13 @@ flatbuffers::Offset CreateDimensionMetadata(flatbuffers::Flat struct SparsityParametersT : public flatbuffers::NativeTable { typedef SparsityParameters TableType; - std::vector traversal_order; - std::vector block_map; - std::vector> dim_metadata; - SparsityParametersT() { - } + std::vector traversal_order{}; + std::vector block_map{}; + std::vector> dim_metadata{}; + SparsityParametersT() = default; + SparsityParametersT(const SparsityParametersT &o); + SparsityParametersT(SparsityParametersT&&) FLATBUFFERS_NOEXCEPT = default; + SparsityParametersT &operator=(SparsityParametersT o) FLATBUFFERS_NOEXCEPT; }; struct SparsityParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4148,7 +4676,6 @@ struct SparsityParametersBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SparsityParametersBuilder &operator=(const SparsityParametersBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4185,23 +4712,110 @@ inline flatbuffers::Offset CreateSparsityParametersDirect( flatbuffers::Offset CreateSparsityParameters(flatbuffers::FlatBufferBuilder &_fbb, const SparsityParametersT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +struct VariantSubTypeT : public flatbuffers::NativeTable { + typedef VariantSubType TableType; + std::vector shape{}; + tflite::TensorType type = tflite::TensorType_FLOAT32; + bool has_rank = false; +}; + +struct VariantSubType FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef VariantSubTypeT NativeTableType; + typedef VariantSubTypeBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SHAPE = 4, + VT_TYPE = 6, + VT_HAS_RANK = 8 + }; + const flatbuffers::Vector *shape() const { + return GetPointer *>(VT_SHAPE); + } + tflite::TensorType type() const { + return static_cast(GetField(VT_TYPE, 0)); + } + bool has_rank() const { + return GetField(VT_HAS_RANK, 0) != 0; + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_SHAPE) && + verifier.VerifyVector(shape()) && + VerifyField(verifier, VT_TYPE, 1) && + VerifyField(verifier, VT_HAS_RANK, 1) && + verifier.EndTable(); + } + VariantSubTypeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(VariantSubTypeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const VariantSubTypeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct VariantSubTypeBuilder { + typedef VariantSubType Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_shape(flatbuffers::Offset> shape) { + fbb_.AddOffset(VariantSubType::VT_SHAPE, shape); + } + void add_type(tflite::TensorType type) { + fbb_.AddElement(VariantSubType::VT_TYPE, static_cast(type), 0); + } + void add_has_rank(bool has_rank) { + fbb_.AddElement(VariantSubType::VT_HAS_RANK, static_cast(has_rank), 0); + } + explicit VariantSubTypeBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateVariantSubType( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset> shape = 0, + tflite::TensorType type = tflite::TensorType_FLOAT32, + bool has_rank = false) { + VariantSubTypeBuilder builder_(_fbb); + builder_.add_shape(shape); + builder_.add_has_rank(has_rank); + builder_.add_type(type); + return builder_.Finish(); +} + +inline flatbuffers::Offset CreateVariantSubTypeDirect( + flatbuffers::FlatBufferBuilder &_fbb, + const std::vector *shape = nullptr, + tflite::TensorType type = tflite::TensorType_FLOAT32, + bool has_rank = false) { + auto shape__ = shape ? _fbb.CreateVector(*shape) : 0; + return tflite::CreateVariantSubType( + _fbb, + shape__, + type, + has_rank); +} + +flatbuffers::Offset CreateVariantSubType(flatbuffers::FlatBufferBuilder &_fbb, const VariantSubTypeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + struct TensorT : public flatbuffers::NativeTable { typedef Tensor TableType; - std::vector shape; - tflite::TensorType type; - uint32_t buffer; - std::string name; - std::unique_ptr quantization; - bool is_variable; - std::unique_ptr sparsity; - std::vector shape_signature; - bool has_rank; - TensorT() - : type(tflite::TensorType_FLOAT32), - buffer(0), - is_variable(false), - has_rank(false) { - } + std::vector shape{}; + tflite::TensorType type = tflite::TensorType_FLOAT32; + uint32_t buffer = 0; + std::string name{}; + std::unique_ptr quantization{}; + bool is_variable = false; + std::unique_ptr sparsity{}; + std::vector shape_signature{}; + bool has_rank = false; + std::vector> variant_tensors{}; + TensorT() = default; + TensorT(const TensorT &o); + TensorT(TensorT&&) FLATBUFFERS_NOEXCEPT = default; + TensorT &operator=(TensorT o) FLATBUFFERS_NOEXCEPT; }; struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4216,7 +4830,8 @@ struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_IS_VARIABLE = 14, VT_SPARSITY = 16, VT_SHAPE_SIGNATURE = 18, - VT_HAS_RANK = 20 + VT_HAS_RANK = 20, + VT_VARIANT_TENSORS = 22 }; const flatbuffers::Vector *shape() const { return GetPointer *>(VT_SHAPE); @@ -4245,22 +4860,28 @@ struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool has_rank() const { return GetField(VT_HAS_RANK, 0) != 0; } + const flatbuffers::Vector> *variant_tensors() const { + return GetPointer> *>(VT_VARIANT_TENSORS); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_SHAPE) && verifier.VerifyVector(shape()) && - VerifyField(verifier, VT_TYPE) && - VerifyField(verifier, VT_BUFFER) && + VerifyField(verifier, VT_TYPE, 1) && + VerifyField(verifier, VT_BUFFER, 4) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && VerifyOffset(verifier, VT_QUANTIZATION) && verifier.VerifyTable(quantization()) && - VerifyField(verifier, VT_IS_VARIABLE) && + VerifyField(verifier, VT_IS_VARIABLE, 1) && VerifyOffset(verifier, VT_SPARSITY) && verifier.VerifyTable(sparsity()) && VerifyOffset(verifier, VT_SHAPE_SIGNATURE) && verifier.VerifyVector(shape_signature()) && - VerifyField(verifier, VT_HAS_RANK) && + VerifyField(verifier, VT_HAS_RANK, 1) && + VerifyOffset(verifier, VT_VARIANT_TENSORS) && + verifier.VerifyVector(variant_tensors()) && + verifier.VerifyVectorOfTables(variant_tensors()) && verifier.EndTable(); } TensorT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -4299,11 +4920,13 @@ struct TensorBuilder { void add_has_rank(bool has_rank) { fbb_.AddElement(Tensor::VT_HAS_RANK, static_cast(has_rank), 0); } + void add_variant_tensors(flatbuffers::Offset>> variant_tensors) { + fbb_.AddOffset(Tensor::VT_VARIANT_TENSORS, variant_tensors); + } explicit TensorBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - TensorBuilder &operator=(const TensorBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4321,8 +4944,10 @@ inline flatbuffers::Offset CreateTensor( bool is_variable = false, flatbuffers::Offset sparsity = 0, flatbuffers::Offset> shape_signature = 0, - bool has_rank = false) { + bool has_rank = false, + flatbuffers::Offset>> variant_tensors = 0) { TensorBuilder builder_(_fbb); + builder_.add_variant_tensors(variant_tensors); builder_.add_shape_signature(shape_signature); builder_.add_sparsity(sparsity); builder_.add_quantization(quantization); @@ -4345,10 +4970,12 @@ inline flatbuffers::Offset CreateTensorDirect( bool is_variable = false, flatbuffers::Offset sparsity = 0, const std::vector *shape_signature = nullptr, - bool has_rank = false) { + bool has_rank = false, + const std::vector> *variant_tensors = nullptr) { auto shape__ = shape ? _fbb.CreateVector(*shape) : 0; auto name__ = name ? _fbb.CreateString(name) : 0; auto shape_signature__ = shape_signature ? _fbb.CreateVector(*shape_signature) : 0; + auto variant_tensors__ = variant_tensors ? _fbb.CreateVector>(*variant_tensors) : 0; return tflite::CreateTensor( _fbb, shape__, @@ -4359,27 +4986,20 @@ inline flatbuffers::Offset CreateTensorDirect( is_variable, sparsity, shape_signature__, - has_rank); + has_rank, + variant_tensors__); } flatbuffers::Offset CreateTensor(flatbuffers::FlatBufferBuilder &_fbb, const TensorT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); struct Conv2DOptionsT : public flatbuffers::NativeTable { typedef Conv2DOptions TableType; - tflite::Padding padding; - int32_t stride_w; - int32_t stride_h; - tflite::ActivationFunctionType fused_activation_function; - int32_t dilation_w_factor; - int32_t dilation_h_factor; - Conv2DOptionsT() - : padding(tflite::Padding_SAME), - stride_w(0), - stride_h(0), - fused_activation_function(tflite::ActivationFunctionType_NONE), - dilation_w_factor(1), - dilation_h_factor(1) { - } + tflite::Padding padding = tflite::Padding_SAME; + int32_t stride_w = 0; + int32_t stride_h = 0; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + int32_t dilation_w_factor = 1; + int32_t dilation_h_factor = 1; }; struct Conv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4413,12 +5033,12 @@ struct Conv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_PADDING) && - VerifyField(verifier, VT_STRIDE_W) && - VerifyField(verifier, VT_STRIDE_H) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_DILATION_W_FACTOR) && - VerifyField(verifier, VT_DILATION_H_FACTOR) && + VerifyField(verifier, VT_PADDING, 1) && + VerifyField(verifier, VT_STRIDE_W, 4) && + VerifyField(verifier, VT_STRIDE_H, 4) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_DILATION_W_FACTOR, 4) && + VerifyField(verifier, VT_DILATION_H_FACTOR, 4) && verifier.EndTable(); } Conv2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -4452,7 +5072,6 @@ struct Conv2DOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Conv2DOptionsBuilder &operator=(const Conv2DOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4482,24 +5101,14 @@ flatbuffers::Offset CreateConv2DOptions(flatbuffers::FlatBufferBu struct Conv3DOptionsT : public flatbuffers::NativeTable { typedef Conv3DOptions TableType; - tflite::Padding padding; - int32_t stride_d; - int32_t stride_w; - int32_t stride_h; - tflite::ActivationFunctionType fused_activation_function; - int32_t dilation_d_factor; - int32_t dilation_w_factor; - int32_t dilation_h_factor; - Conv3DOptionsT() - : padding(tflite::Padding_SAME), - stride_d(0), - stride_w(0), - stride_h(0), - fused_activation_function(tflite::ActivationFunctionType_NONE), - dilation_d_factor(1), - dilation_w_factor(1), - dilation_h_factor(1) { - } + tflite::Padding padding = tflite::Padding_SAME; + int32_t stride_d = 0; + int32_t stride_w = 0; + int32_t stride_h = 0; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + int32_t dilation_d_factor = 1; + int32_t dilation_w_factor = 1; + int32_t dilation_h_factor = 1; }; struct Conv3DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4541,14 +5150,14 @@ struct Conv3DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_PADDING) && - VerifyField(verifier, VT_STRIDE_D) && - VerifyField(verifier, VT_STRIDE_W) && - VerifyField(verifier, VT_STRIDE_H) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_DILATION_D_FACTOR) && - VerifyField(verifier, VT_DILATION_W_FACTOR) && - VerifyField(verifier, VT_DILATION_H_FACTOR) && + VerifyField(verifier, VT_PADDING, 1) && + VerifyField(verifier, VT_STRIDE_D, 4) && + VerifyField(verifier, VT_STRIDE_W, 4) && + VerifyField(verifier, VT_STRIDE_H, 4) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_DILATION_D_FACTOR, 4) && + VerifyField(verifier, VT_DILATION_W_FACTOR, 4) && + VerifyField(verifier, VT_DILATION_H_FACTOR, 4) && verifier.EndTable(); } Conv3DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -4588,7 +5197,6 @@ struct Conv3DOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Conv3DOptionsBuilder &operator=(const Conv3DOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4622,20 +5230,12 @@ flatbuffers::Offset CreateConv3DOptions(flatbuffers::FlatBufferBu struct Pool2DOptionsT : public flatbuffers::NativeTable { typedef Pool2DOptions TableType; - tflite::Padding padding; - int32_t stride_w; - int32_t stride_h; - int32_t filter_width; - int32_t filter_height; - tflite::ActivationFunctionType fused_activation_function; - Pool2DOptionsT() - : padding(tflite::Padding_SAME), - stride_w(0), - stride_h(0), - filter_width(0), - filter_height(0), - fused_activation_function(tflite::ActivationFunctionType_NONE) { - } + tflite::Padding padding = tflite::Padding_SAME; + int32_t stride_w = 0; + int32_t stride_h = 0; + int32_t filter_width = 0; + int32_t filter_height = 0; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; }; struct Pool2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4669,12 +5269,12 @@ struct Pool2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_PADDING) && - VerifyField(verifier, VT_STRIDE_W) && - VerifyField(verifier, VT_STRIDE_H) && - VerifyField(verifier, VT_FILTER_WIDTH) && - VerifyField(verifier, VT_FILTER_HEIGHT) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && + VerifyField(verifier, VT_PADDING, 1) && + VerifyField(verifier, VT_STRIDE_W, 4) && + VerifyField(verifier, VT_STRIDE_H, 4) && + VerifyField(verifier, VT_FILTER_WIDTH, 4) && + VerifyField(verifier, VT_FILTER_HEIGHT, 4) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && verifier.EndTable(); } Pool2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -4708,7 +5308,6 @@ struct Pool2DOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Pool2DOptionsBuilder &operator=(const Pool2DOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4738,22 +5337,13 @@ flatbuffers::Offset CreatePool2DOptions(flatbuffers::FlatBufferBu struct DepthwiseConv2DOptionsT : public flatbuffers::NativeTable { typedef DepthwiseConv2DOptions TableType; - tflite::Padding padding; - int32_t stride_w; - int32_t stride_h; - int32_t depth_multiplier; - tflite::ActivationFunctionType fused_activation_function; - int32_t dilation_w_factor; - int32_t dilation_h_factor; - DepthwiseConv2DOptionsT() - : padding(tflite::Padding_SAME), - stride_w(0), - stride_h(0), - depth_multiplier(0), - fused_activation_function(tflite::ActivationFunctionType_NONE), - dilation_w_factor(1), - dilation_h_factor(1) { - } + tflite::Padding padding = tflite::Padding_SAME; + int32_t stride_w = 0; + int32_t stride_h = 0; + int32_t depth_multiplier = 0; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + int32_t dilation_w_factor = 1; + int32_t dilation_h_factor = 1; }; struct DepthwiseConv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4791,13 +5381,13 @@ struct DepthwiseConv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_PADDING) && - VerifyField(verifier, VT_STRIDE_W) && - VerifyField(verifier, VT_STRIDE_H) && - VerifyField(verifier, VT_DEPTH_MULTIPLIER) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_DILATION_W_FACTOR) && - VerifyField(verifier, VT_DILATION_H_FACTOR) && + VerifyField(verifier, VT_PADDING, 1) && + VerifyField(verifier, VT_STRIDE_W, 4) && + VerifyField(verifier, VT_STRIDE_H, 4) && + VerifyField(verifier, VT_DEPTH_MULTIPLIER, 4) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_DILATION_W_FACTOR, 4) && + VerifyField(verifier, VT_DILATION_H_FACTOR, 4) && verifier.EndTable(); } DepthwiseConv2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -4834,7 +5424,6 @@ struct DepthwiseConv2DOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DepthwiseConv2DOptionsBuilder &operator=(const DepthwiseConv2DOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4866,12 +5455,9 @@ flatbuffers::Offset CreateDepthwiseConv2DOptions(flatbuf struct ConcatEmbeddingsOptionsT : public flatbuffers::NativeTable { typedef ConcatEmbeddingsOptions TableType; - int32_t num_channels; - std::vector num_columns_per_channel; - std::vector embedding_dim_per_channel; - ConcatEmbeddingsOptionsT() - : num_channels(0) { - } + int32_t num_channels = 0; + std::vector num_columns_per_channel{}; + std::vector embedding_dim_per_channel{}; }; struct ConcatEmbeddingsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4893,7 +5479,7 @@ struct ConcatEmbeddingsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_NUM_CHANNELS) && + VerifyField(verifier, VT_NUM_CHANNELS, 4) && VerifyOffset(verifier, VT_NUM_COLUMNS_PER_CHANNEL) && verifier.VerifyVector(num_columns_per_channel()) && VerifyOffset(verifier, VT_EMBEDDING_DIM_PER_CHANNEL) && @@ -4922,7 +5508,6 @@ struct ConcatEmbeddingsOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ConcatEmbeddingsOptionsBuilder &operator=(const ConcatEmbeddingsOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -4960,10 +5545,7 @@ flatbuffers::Offset CreateConcatEmbeddingsOptions(flatb struct LSHProjectionOptionsT : public flatbuffers::NativeTable { typedef LSHProjectionOptions TableType; - tflite::LSHProjectionType type; - LSHProjectionOptionsT() - : type(tflite::LSHProjectionType_UNKNOWN) { - } + tflite::LSHProjectionType type = tflite::LSHProjectionType_UNKNOWN; }; struct LSHProjectionOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -4977,7 +5559,7 @@ struct LSHProjectionOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_TYPE) && + VerifyField(verifier, VT_TYPE, 1) && verifier.EndTable(); } LSHProjectionOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -4996,7 +5578,6 @@ struct LSHProjectionOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LSHProjectionOptionsBuilder &operator=(const LSHProjectionOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5016,14 +5597,9 @@ flatbuffers::Offset CreateLSHProjectionOptions(flatbuffers struct SVDFOptionsT : public flatbuffers::NativeTable { typedef SVDFOptions TableType; - int32_t rank; - tflite::ActivationFunctionType fused_activation_function; - bool asymmetric_quantize_inputs; - SVDFOptionsT() - : rank(0), - fused_activation_function(tflite::ActivationFunctionType_NONE), - asymmetric_quantize_inputs(false) { - } + int32_t rank = 0; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + bool asymmetric_quantize_inputs = false; }; struct SVDFOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5045,9 +5621,9 @@ struct SVDFOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_RANK) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_RANK, 4) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } SVDFOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5072,7 +5648,6 @@ struct SVDFOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SVDFOptionsBuilder &operator=(const SVDFOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5096,12 +5671,8 @@ flatbuffers::Offset CreateSVDFOptions(flatbuffers::FlatBufferBuilde struct RNNOptionsT : public flatbuffers::NativeTable { typedef RNNOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - bool asymmetric_quantize_inputs; - RNNOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - asymmetric_quantize_inputs(false) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + bool asymmetric_quantize_inputs = false; }; struct RNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5119,8 +5690,8 @@ struct RNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } RNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5142,7 +5713,6 @@ struct RNNOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - RNNOptionsBuilder &operator=(const RNNOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5164,14 +5734,9 @@ flatbuffers::Offset CreateRNNOptions(flatbuffers::FlatBufferBuilder struct SequenceRNNOptionsT : public flatbuffers::NativeTable { typedef SequenceRNNOptions TableType; - bool time_major; - tflite::ActivationFunctionType fused_activation_function; - bool asymmetric_quantize_inputs; - SequenceRNNOptionsT() - : time_major(false), - fused_activation_function(tflite::ActivationFunctionType_NONE), - asymmetric_quantize_inputs(false) { - } + bool time_major = false; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + bool asymmetric_quantize_inputs = false; }; struct SequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5193,9 +5758,9 @@ struct SequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_TIME_MAJOR) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_TIME_MAJOR, 1) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } SequenceRNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5220,7 +5785,6 @@ struct SequenceRNNOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SequenceRNNOptionsBuilder &operator=(const SequenceRNNOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5244,16 +5808,10 @@ flatbuffers::Offset CreateSequenceRNNOptions(flatbuffers::Fl struct BidirectionalSequenceRNNOptionsT : public flatbuffers::NativeTable { typedef BidirectionalSequenceRNNOptions TableType; - bool time_major; - tflite::ActivationFunctionType fused_activation_function; - bool merge_outputs; - bool asymmetric_quantize_inputs; - BidirectionalSequenceRNNOptionsT() - : time_major(false), - fused_activation_function(tflite::ActivationFunctionType_NONE), - merge_outputs(false), - asymmetric_quantize_inputs(false) { - } + bool time_major = false; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + bool merge_outputs = false; + bool asymmetric_quantize_inputs = false; }; struct BidirectionalSequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5279,10 +5837,10 @@ struct BidirectionalSequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuf } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_TIME_MAJOR) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_MERGE_OUTPUTS) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_TIME_MAJOR, 1) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_MERGE_OUTPUTS, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } BidirectionalSequenceRNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5310,7 +5868,6 @@ struct BidirectionalSequenceRNNOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BidirectionalSequenceRNNOptionsBuilder &operator=(const BidirectionalSequenceRNNOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5336,16 +5893,10 @@ flatbuffers::Offset CreateBidirectionalSequence struct FullyConnectedOptionsT : public flatbuffers::NativeTable { typedef FullyConnectedOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - tflite::FullyConnectedOptionsWeightsFormat weights_format; - bool keep_num_dims; - bool asymmetric_quantize_inputs; - FullyConnectedOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - weights_format(tflite::FullyConnectedOptionsWeightsFormat_DEFAULT), - keep_num_dims(false), - asymmetric_quantize_inputs(false) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + tflite::FullyConnectedOptionsWeightsFormat weights_format = tflite::FullyConnectedOptionsWeightsFormat_DEFAULT; + bool keep_num_dims = false; + bool asymmetric_quantize_inputs = false; }; struct FullyConnectedOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5371,10 +5922,10 @@ struct FullyConnectedOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_WEIGHTS_FORMAT) && - VerifyField(verifier, VT_KEEP_NUM_DIMS) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_WEIGHTS_FORMAT, 1) && + VerifyField(verifier, VT_KEEP_NUM_DIMS, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } FullyConnectedOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5402,7 +5953,6 @@ struct FullyConnectedOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - FullyConnectedOptionsBuilder &operator=(const FullyConnectedOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5428,10 +5978,7 @@ flatbuffers::Offset CreateFullyConnectedOptions(flatbuffe struct SoftmaxOptionsT : public flatbuffers::NativeTable { typedef SoftmaxOptions TableType; - float beta; - SoftmaxOptionsT() - : beta(0.0f) { - } + float beta = 0.0f; }; struct SoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5445,7 +5992,7 @@ struct SoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_BETA) && + VerifyField(verifier, VT_BETA, 4) && verifier.EndTable(); } SoftmaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5464,7 +6011,6 @@ struct SoftmaxOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SoftmaxOptionsBuilder &operator=(const SoftmaxOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5484,12 +6030,8 @@ flatbuffers::Offset CreateSoftmaxOptions(flatbuffers::FlatBuffer struct ConcatenationOptionsT : public flatbuffers::NativeTable { typedef ConcatenationOptions TableType; - int32_t axis; - tflite::ActivationFunctionType fused_activation_function; - ConcatenationOptionsT() - : axis(0), - fused_activation_function(tflite::ActivationFunctionType_NONE) { - } + int32_t axis = 0; + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; }; struct ConcatenationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5507,8 +6049,8 @@ struct ConcatenationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_AXIS) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && + VerifyField(verifier, VT_AXIS, 4) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && verifier.EndTable(); } ConcatenationOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5530,7 +6072,6 @@ struct ConcatenationOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ConcatenationOptionsBuilder &operator=(const ConcatenationOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5552,12 +6093,8 @@ flatbuffers::Offset CreateConcatenationOptions(flatbuffers struct AddOptionsT : public flatbuffers::NativeTable { typedef AddOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - bool pot_scale_int16; - AddOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - pot_scale_int16(true) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + bool pot_scale_int16 = true; }; struct AddOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5575,8 +6112,8 @@ struct AddOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_POT_SCALE_INT16) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_POT_SCALE_INT16, 1) && verifier.EndTable(); } AddOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5598,7 +6135,6 @@ struct AddOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - AddOptionsBuilder &operator=(const AddOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5620,10 +6156,7 @@ flatbuffers::Offset CreateAddOptions(flatbuffers::FlatBufferBuilder struct MulOptionsT : public flatbuffers::NativeTable { typedef MulOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - MulOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; }; struct MulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5637,7 +6170,7 @@ struct MulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && verifier.EndTable(); } MulOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5656,7 +6189,6 @@ struct MulOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - MulOptionsBuilder &operator=(const MulOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5676,10 +6208,7 @@ flatbuffers::Offset CreateMulOptions(flatbuffers::FlatBufferBuilder struct L2NormOptionsT : public flatbuffers::NativeTable { typedef L2NormOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - L2NormOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; }; struct L2NormOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5693,7 +6222,7 @@ struct L2NormOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && verifier.EndTable(); } L2NormOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5712,7 +6241,6 @@ struct L2NormOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - L2NormOptionsBuilder &operator=(const L2NormOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5732,16 +6260,10 @@ flatbuffers::Offset CreateL2NormOptions(flatbuffers::FlatBufferBu struct LocalResponseNormalizationOptionsT : public flatbuffers::NativeTable { typedef LocalResponseNormalizationOptions TableType; - int32_t radius; - float bias; - float alpha; - float beta; - LocalResponseNormalizationOptionsT() - : radius(0), - bias(0.0f), - alpha(0.0f), - beta(0.0f) { - } + int32_t radius = 0; + float bias = 0.0f; + float alpha = 0.0f; + float beta = 0.0f; }; struct LocalResponseNormalizationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5767,10 +6289,10 @@ struct LocalResponseNormalizationOptions FLATBUFFERS_FINAL_CLASS : private flatb } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_RADIUS) && - VerifyField(verifier, VT_BIAS) && - VerifyField(verifier, VT_ALPHA) && - VerifyField(verifier, VT_BETA) && + VerifyField(verifier, VT_RADIUS, 4) && + VerifyField(verifier, VT_BIAS, 4) && + VerifyField(verifier, VT_ALPHA, 4) && + VerifyField(verifier, VT_BETA, 4) && verifier.EndTable(); } LocalResponseNormalizationOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5798,7 +6320,6 @@ struct LocalResponseNormalizationOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LocalResponseNormalizationOptionsBuilder &operator=(const LocalResponseNormalizationOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5824,18 +6345,11 @@ flatbuffers::Offset CreateLocalResponseNormal struct LSTMOptionsT : public flatbuffers::NativeTable { typedef LSTMOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - float cell_clip; - float proj_clip; - tflite::LSTMKernelType kernel_type; - bool asymmetric_quantize_inputs; - LSTMOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - cell_clip(0.0f), - proj_clip(0.0f), - kernel_type(tflite::LSTMKernelType_FULL), - asymmetric_quantize_inputs(false) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + float cell_clip = 0.0f; + float proj_clip = 0.0f; + tflite::LSTMKernelType kernel_type = tflite::LSTMKernelType_FULL; + bool asymmetric_quantize_inputs = false; }; struct LSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5865,11 +6379,11 @@ struct LSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_CELL_CLIP) && - VerifyField(verifier, VT_PROJ_CLIP) && - VerifyField(verifier, VT_KERNEL_TYPE) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_CELL_CLIP, 4) && + VerifyField(verifier, VT_PROJ_CLIP, 4) && + VerifyField(verifier, VT_KERNEL_TYPE, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } LSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5900,7 +6414,6 @@ struct LSTMOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LSTMOptionsBuilder &operator=(const LSTMOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -5928,18 +6441,11 @@ flatbuffers::Offset CreateLSTMOptions(flatbuffers::FlatBufferBuilde struct UnidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable { typedef UnidirectionalSequenceLSTMOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - float cell_clip; - float proj_clip; - bool time_major; - bool asymmetric_quantize_inputs; - UnidirectionalSequenceLSTMOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - cell_clip(0.0f), - proj_clip(0.0f), - time_major(false), - asymmetric_quantize_inputs(false) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + float cell_clip = 0.0f; + float proj_clip = 0.0f; + bool time_major = false; + bool asymmetric_quantize_inputs = false; }; struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5969,11 +6475,11 @@ struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatb } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_CELL_CLIP) && - VerifyField(verifier, VT_PROJ_CLIP) && - VerifyField(verifier, VT_TIME_MAJOR) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_CELL_CLIP, 4) && + VerifyField(verifier, VT_PROJ_CLIP, 4) && + VerifyField(verifier, VT_TIME_MAJOR, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } UnidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6004,7 +6510,6 @@ struct UnidirectionalSequenceLSTMOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UnidirectionalSequenceLSTMOptionsBuilder &operator=(const UnidirectionalSequenceLSTMOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6032,20 +6537,12 @@ flatbuffers::Offset CreateUnidirectionalSeque struct BidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable { typedef BidirectionalSequenceLSTMOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - float cell_clip; - float proj_clip; - bool merge_outputs; - bool time_major; - bool asymmetric_quantize_inputs; - BidirectionalSequenceLSTMOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - cell_clip(0.0f), - proj_clip(0.0f), - merge_outputs(false), - time_major(true), - asymmetric_quantize_inputs(false) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + float cell_clip = 0.0f; + float proj_clip = 0.0f; + bool merge_outputs = false; + bool time_major = true; + bool asymmetric_quantize_inputs = false; }; struct BidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6079,12 +6576,12 @@ struct BidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbu } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_CELL_CLIP) && - VerifyField(verifier, VT_PROJ_CLIP) && - VerifyField(verifier, VT_MERGE_OUTPUTS) && - VerifyField(verifier, VT_TIME_MAJOR) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_CELL_CLIP, 4) && + VerifyField(verifier, VT_PROJ_CLIP, 4) && + VerifyField(verifier, VT_MERGE_OUTPUTS, 1) && + VerifyField(verifier, VT_TIME_MAJOR, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } BidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6118,7 +6615,6 @@ struct BidirectionalSequenceLSTMOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BidirectionalSequenceLSTMOptionsBuilder &operator=(const BidirectionalSequenceLSTMOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6148,12 +6644,8 @@ flatbuffers::Offset CreateBidirectionalSequenc struct ResizeBilinearOptionsT : public flatbuffers::NativeTable { typedef ResizeBilinearOptions TableType; - bool align_corners; - bool half_pixel_centers; - ResizeBilinearOptionsT() - : align_corners(false), - half_pixel_centers(false) { - } + bool align_corners = false; + bool half_pixel_centers = false; }; struct ResizeBilinearOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6171,8 +6663,8 @@ struct ResizeBilinearOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_ALIGN_CORNERS) && - VerifyField(verifier, VT_HALF_PIXEL_CENTERS) && + VerifyField(verifier, VT_ALIGN_CORNERS, 1) && + VerifyField(verifier, VT_HALF_PIXEL_CENTERS, 1) && verifier.EndTable(); } ResizeBilinearOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6194,7 +6686,6 @@ struct ResizeBilinearOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ResizeBilinearOptionsBuilder &operator=(const ResizeBilinearOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6216,12 +6707,8 @@ flatbuffers::Offset CreateResizeBilinearOptions(flatbuffe struct ResizeNearestNeighborOptionsT : public flatbuffers::NativeTable { typedef ResizeNearestNeighborOptions TableType; - bool align_corners; - bool half_pixel_centers; - ResizeNearestNeighborOptionsT() - : align_corners(false), - half_pixel_centers(false) { - } + bool align_corners = false; + bool half_pixel_centers = false; }; struct ResizeNearestNeighborOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6239,8 +6726,8 @@ struct ResizeNearestNeighborOptions FLATBUFFERS_FINAL_CLASS : private flatbuffer } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_ALIGN_CORNERS) && - VerifyField(verifier, VT_HALF_PIXEL_CENTERS) && + VerifyField(verifier, VT_ALIGN_CORNERS, 1) && + VerifyField(verifier, VT_HALF_PIXEL_CENTERS, 1) && verifier.EndTable(); } ResizeNearestNeighborOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6262,7 +6749,6 @@ struct ResizeNearestNeighborOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ResizeNearestNeighborOptionsBuilder &operator=(const ResizeNearestNeighborOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6284,10 +6770,7 @@ flatbuffers::Offset CreateResizeNearestNeighborOpt struct CallOptionsT : public flatbuffers::NativeTable { typedef CallOptions TableType; - uint32_t subgraph; - CallOptionsT() - : subgraph(0) { - } + uint32_t subgraph = 0; }; struct CallOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6301,7 +6784,7 @@ struct CallOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_SUBGRAPH) && + VerifyField(verifier, VT_SUBGRAPH, 4) && verifier.EndTable(); } CallOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6320,7 +6803,6 @@ struct CallOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - CallOptionsBuilder &operator=(const CallOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6340,8 +6822,6 @@ flatbuffers::Offset CreateCallOptions(flatbuffers::FlatBufferBuilde struct PadOptionsT : public flatbuffers::NativeTable { typedef PadOptions TableType; - PadOptionsT() { - } }; struct PadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6364,7 +6844,6 @@ struct PadOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - PadOptionsBuilder &operator=(const PadOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6382,8 +6861,6 @@ flatbuffers::Offset CreatePadOptions(flatbuffers::FlatBufferBuilder struct PadV2OptionsT : public flatbuffers::NativeTable { typedef PadV2Options TableType; - PadV2OptionsT() { - } }; struct PadV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6406,7 +6883,6 @@ struct PadV2OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - PadV2OptionsBuilder &operator=(const PadV2OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6424,9 +6900,7 @@ flatbuffers::Offset CreatePadV2Options(flatbuffers::FlatBufferBuil struct ReshapeOptionsT : public flatbuffers::NativeTable { typedef ReshapeOptions TableType; - std::vector new_shape; - ReshapeOptionsT() { - } + std::vector new_shape{}; }; struct ReshapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6460,7 +6934,6 @@ struct ReshapeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ReshapeOptionsBuilder &operator=(const ReshapeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6489,8 +6962,6 @@ flatbuffers::Offset CreateReshapeOptions(flatbuffers::FlatBuffer struct SpaceToBatchNDOptionsT : public flatbuffers::NativeTable { typedef SpaceToBatchNDOptions TableType; - SpaceToBatchNDOptionsT() { - } }; struct SpaceToBatchNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6513,7 +6984,6 @@ struct SpaceToBatchNDOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SpaceToBatchNDOptionsBuilder &operator=(const SpaceToBatchNDOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6531,8 +7001,6 @@ flatbuffers::Offset CreateSpaceToBatchNDOptions(flatbuffe struct BatchToSpaceNDOptionsT : public flatbuffers::NativeTable { typedef BatchToSpaceNDOptions TableType; - BatchToSpaceNDOptionsT() { - } }; struct BatchToSpaceNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6555,7 +7023,6 @@ struct BatchToSpaceNDOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BatchToSpaceNDOptionsBuilder &operator=(const BatchToSpaceNDOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6573,14 +7040,9 @@ flatbuffers::Offset CreateBatchToSpaceNDOptions(flatbuffe struct SkipGramOptionsT : public flatbuffers::NativeTable { typedef SkipGramOptions TableType; - int32_t ngram_size; - int32_t max_skip_size; - bool include_all_ngrams; - SkipGramOptionsT() - : ngram_size(0), - max_skip_size(0), - include_all_ngrams(false) { - } + int32_t ngram_size = 0; + int32_t max_skip_size = 0; + bool include_all_ngrams = false; }; struct SkipGramOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6602,9 +7064,9 @@ struct SkipGramOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_NGRAM_SIZE) && - VerifyField(verifier, VT_MAX_SKIP_SIZE) && - VerifyField(verifier, VT_INCLUDE_ALL_NGRAMS) && + VerifyField(verifier, VT_NGRAM_SIZE, 4) && + VerifyField(verifier, VT_MAX_SKIP_SIZE, 4) && + VerifyField(verifier, VT_INCLUDE_ALL_NGRAMS, 1) && verifier.EndTable(); } SkipGramOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6629,7 +7091,6 @@ struct SkipGramOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SkipGramOptionsBuilder &operator=(const SkipGramOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6653,10 +7114,7 @@ flatbuffers::Offset CreateSkipGramOptions(flatbuffers::FlatBuff struct SpaceToDepthOptionsT : public flatbuffers::NativeTable { typedef SpaceToDepthOptions TableType; - int32_t block_size; - SpaceToDepthOptionsT() - : block_size(0) { - } + int32_t block_size = 0; }; struct SpaceToDepthOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6670,7 +7128,7 @@ struct SpaceToDepthOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_BLOCK_SIZE) && + VerifyField(verifier, VT_BLOCK_SIZE, 4) && verifier.EndTable(); } SpaceToDepthOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6689,7 +7147,6 @@ struct SpaceToDepthOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SpaceToDepthOptionsBuilder &operator=(const SpaceToDepthOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6709,10 +7166,7 @@ flatbuffers::Offset CreateSpaceToDepthOptions(flatbuffers:: struct DepthToSpaceOptionsT : public flatbuffers::NativeTable { typedef DepthToSpaceOptions TableType; - int32_t block_size; - DepthToSpaceOptionsT() - : block_size(0) { - } + int32_t block_size = 0; }; struct DepthToSpaceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6726,7 +7180,7 @@ struct DepthToSpaceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_BLOCK_SIZE) && + VerifyField(verifier, VT_BLOCK_SIZE, 4) && verifier.EndTable(); } DepthToSpaceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6745,7 +7199,6 @@ struct DepthToSpaceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DepthToSpaceOptionsBuilder &operator=(const DepthToSpaceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6765,12 +7218,8 @@ flatbuffers::Offset CreateDepthToSpaceOptions(flatbuffers:: struct SubOptionsT : public flatbuffers::NativeTable { typedef SubOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - bool pot_scale_int16; - SubOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE), - pot_scale_int16(true) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + bool pot_scale_int16 = true; }; struct SubOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6788,8 +7237,8 @@ struct SubOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && - VerifyField(verifier, VT_POT_SCALE_INT16) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + VerifyField(verifier, VT_POT_SCALE_INT16, 1) && verifier.EndTable(); } SubOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6811,7 +7260,6 @@ struct SubOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SubOptionsBuilder &operator=(const SubOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6833,10 +7281,7 @@ flatbuffers::Offset CreateSubOptions(flatbuffers::FlatBufferBuilder struct DivOptionsT : public flatbuffers::NativeTable { typedef DivOptions TableType; - tflite::ActivationFunctionType fused_activation_function; - DivOptionsT() - : fused_activation_function(tflite::ActivationFunctionType_NONE) { - } + tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; }; struct DivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6850,7 +7295,7 @@ struct DivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && + VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && verifier.EndTable(); } DivOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6869,7 +7314,6 @@ struct DivOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DivOptionsBuilder &operator=(const DivOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6889,8 +7333,6 @@ flatbuffers::Offset CreateDivOptions(flatbuffers::FlatBufferBuilder struct TopKV2OptionsT : public flatbuffers::NativeTable { typedef TopKV2Options TableType; - TopKV2OptionsT() { - } }; struct TopKV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6913,7 +7355,6 @@ struct TopKV2OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - TopKV2OptionsBuilder &operator=(const TopKV2OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6931,10 +7372,7 @@ flatbuffers::Offset CreateTopKV2Options(flatbuffers::FlatBufferBu struct EmbeddingLookupSparseOptionsT : public flatbuffers::NativeTable { typedef EmbeddingLookupSparseOptions TableType; - tflite::CombinerType combiner; - EmbeddingLookupSparseOptionsT() - : combiner(tflite::CombinerType_SUM) { - } + tflite::CombinerType combiner = tflite::CombinerType_SUM; }; struct EmbeddingLookupSparseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -6948,7 +7386,7 @@ struct EmbeddingLookupSparseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffer } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_COMBINER) && + VerifyField(verifier, VT_COMBINER, 1) && verifier.EndTable(); } EmbeddingLookupSparseOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -6967,7 +7405,6 @@ struct EmbeddingLookupSparseOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - EmbeddingLookupSparseOptionsBuilder &operator=(const EmbeddingLookupSparseOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -6987,12 +7424,8 @@ flatbuffers::Offset CreateEmbeddingLookupSparseOpt struct GatherOptionsT : public flatbuffers::NativeTable { typedef GatherOptions TableType; - int32_t axis; - int32_t batch_dims; - GatherOptionsT() - : axis(0), - batch_dims(0) { - } + int32_t axis = 0; + int32_t batch_dims = 0; }; struct GatherOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7010,8 +7443,8 @@ struct GatherOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_AXIS) && - VerifyField(verifier, VT_BATCH_DIMS) && + VerifyField(verifier, VT_AXIS, 4) && + VerifyField(verifier, VT_BATCH_DIMS, 4) && verifier.EndTable(); } GatherOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7033,7 +7466,6 @@ struct GatherOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - GatherOptionsBuilder &operator=(const GatherOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7055,8 +7487,6 @@ flatbuffers::Offset CreateGatherOptions(flatbuffers::FlatBufferBu struct TransposeOptionsT : public flatbuffers::NativeTable { typedef TransposeOptions TableType; - TransposeOptionsT() { - } }; struct TransposeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7079,7 +7509,6 @@ struct TransposeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - TransposeOptionsBuilder &operator=(const TransposeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7097,8 +7526,6 @@ flatbuffers::Offset CreateTransposeOptions(flatbuffers::FlatBu struct ExpOptionsT : public flatbuffers::NativeTable { typedef ExpOptions TableType; - ExpOptionsT() { - } }; struct ExpOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7121,7 +7548,6 @@ struct ExpOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ExpOptionsBuilder &operator=(const ExpOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7139,8 +7565,6 @@ flatbuffers::Offset CreateExpOptions(flatbuffers::FlatBufferBuilder struct CosOptionsT : public flatbuffers::NativeTable { typedef CosOptions TableType; - CosOptionsT() { - } }; struct CosOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7163,7 +7587,6 @@ struct CosOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - CosOptionsBuilder &operator=(const CosOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7181,10 +7604,7 @@ flatbuffers::Offset CreateCosOptions(flatbuffers::FlatBufferBuilder struct ReducerOptionsT : public flatbuffers::NativeTable { typedef ReducerOptions TableType; - bool keep_dims; - ReducerOptionsT() - : keep_dims(false) { - } + bool keep_dims = false; }; struct ReducerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7198,7 +7618,7 @@ struct ReducerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_KEEP_DIMS) && + VerifyField(verifier, VT_KEEP_DIMS, 1) && verifier.EndTable(); } ReducerOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7217,7 +7637,6 @@ struct ReducerOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ReducerOptionsBuilder &operator=(const ReducerOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7237,9 +7656,7 @@ flatbuffers::Offset CreateReducerOptions(flatbuffers::FlatBuffer struct SqueezeOptionsT : public flatbuffers::NativeTable { typedef SqueezeOptions TableType; - std::vector squeeze_dims; - SqueezeOptionsT() { - } + std::vector squeeze_dims{}; }; struct SqueezeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7273,7 +7690,6 @@ struct SqueezeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SqueezeOptionsBuilder &operator=(const SqueezeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7302,10 +7718,7 @@ flatbuffers::Offset CreateSqueezeOptions(flatbuffers::FlatBuffer struct SplitOptionsT : public flatbuffers::NativeTable { typedef SplitOptions TableType; - int32_t num_splits; - SplitOptionsT() - : num_splits(0) { - } + int32_t num_splits = 0; }; struct SplitOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7319,7 +7732,7 @@ struct SplitOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_NUM_SPLITS) && + VerifyField(verifier, VT_NUM_SPLITS, 4) && verifier.EndTable(); } SplitOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7338,7 +7751,6 @@ struct SplitOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SplitOptionsBuilder &operator=(const SplitOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7358,10 +7770,7 @@ flatbuffers::Offset CreateSplitOptions(flatbuffers::FlatBufferBuil struct SplitVOptionsT : public flatbuffers::NativeTable { typedef SplitVOptions TableType; - int32_t num_splits; - SplitVOptionsT() - : num_splits(0) { - } + int32_t num_splits = 0; }; struct SplitVOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7375,7 +7784,7 @@ struct SplitVOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_NUM_SPLITS) && + VerifyField(verifier, VT_NUM_SPLITS, 4) && verifier.EndTable(); } SplitVOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7394,7 +7803,6 @@ struct SplitVOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SplitVOptionsBuilder &operator=(const SplitVOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7414,18 +7822,11 @@ flatbuffers::Offset CreateSplitVOptions(flatbuffers::FlatBufferBu struct StridedSliceOptionsT : public flatbuffers::NativeTable { typedef StridedSliceOptions TableType; - int32_t begin_mask; - int32_t end_mask; - int32_t ellipsis_mask; - int32_t new_axis_mask; - int32_t shrink_axis_mask; - StridedSliceOptionsT() - : begin_mask(0), - end_mask(0), - ellipsis_mask(0), - new_axis_mask(0), - shrink_axis_mask(0) { - } + int32_t begin_mask = 0; + int32_t end_mask = 0; + int32_t ellipsis_mask = 0; + int32_t new_axis_mask = 0; + int32_t shrink_axis_mask = 0; }; struct StridedSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7455,11 +7856,11 @@ struct StridedSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_BEGIN_MASK) && - VerifyField(verifier, VT_END_MASK) && - VerifyField(verifier, VT_ELLIPSIS_MASK) && - VerifyField(verifier, VT_NEW_AXIS_MASK) && - VerifyField(verifier, VT_SHRINK_AXIS_MASK) && + VerifyField(verifier, VT_BEGIN_MASK, 4) && + VerifyField(verifier, VT_END_MASK, 4) && + VerifyField(verifier, VT_ELLIPSIS_MASK, 4) && + VerifyField(verifier, VT_NEW_AXIS_MASK, 4) && + VerifyField(verifier, VT_SHRINK_AXIS_MASK, 4) && verifier.EndTable(); } StridedSliceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7490,7 +7891,6 @@ struct StridedSliceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - StridedSliceOptionsBuilder &operator=(const StridedSliceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7518,8 +7918,6 @@ flatbuffers::Offset CreateStridedSliceOptions(flatbuffers:: struct LogSoftmaxOptionsT : public flatbuffers::NativeTable { typedef LogSoftmaxOptions TableType; - LogSoftmaxOptionsT() { - } }; struct LogSoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7542,7 +7940,6 @@ struct LogSoftmaxOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LogSoftmaxOptionsBuilder &operator=(const LogSoftmaxOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7560,12 +7957,8 @@ flatbuffers::Offset CreateLogSoftmaxOptions(flatbuffers::Flat struct CastOptionsT : public flatbuffers::NativeTable { typedef CastOptions TableType; - tflite::TensorType in_data_type; - tflite::TensorType out_data_type; - CastOptionsT() - : in_data_type(tflite::TensorType_FLOAT32), - out_data_type(tflite::TensorType_FLOAT32) { - } + tflite::TensorType in_data_type = tflite::TensorType_FLOAT32; + tflite::TensorType out_data_type = tflite::TensorType_FLOAT32; }; struct CastOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7583,8 +7976,8 @@ struct CastOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_IN_DATA_TYPE) && - VerifyField(verifier, VT_OUT_DATA_TYPE) && + VerifyField(verifier, VT_IN_DATA_TYPE, 1) && + VerifyField(verifier, VT_OUT_DATA_TYPE, 1) && verifier.EndTable(); } CastOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7606,7 +7999,6 @@ struct CastOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - CastOptionsBuilder &operator=(const CastOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7628,8 +8020,6 @@ flatbuffers::Offset CreateCastOptions(flatbuffers::FlatBufferBuilde struct DequantizeOptionsT : public flatbuffers::NativeTable { typedef DequantizeOptions TableType; - DequantizeOptionsT() { - } }; struct DequantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7652,7 +8042,6 @@ struct DequantizeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DequantizeOptionsBuilder &operator=(const DequantizeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7670,8 +8059,6 @@ flatbuffers::Offset CreateDequantizeOptions(flatbuffers::Flat struct MaximumMinimumOptionsT : public flatbuffers::NativeTable { typedef MaximumMinimumOptions TableType; - MaximumMinimumOptionsT() { - } }; struct MaximumMinimumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7694,7 +8081,6 @@ struct MaximumMinimumOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - MaximumMinimumOptionsBuilder &operator=(const MaximumMinimumOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7712,8 +8098,6 @@ flatbuffers::Offset CreateMaximumMinimumOptions(flatbuffe struct TileOptionsT : public flatbuffers::NativeTable { typedef TileOptions TableType; - TileOptionsT() { - } }; struct TileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7736,7 +8120,6 @@ struct TileOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - TileOptionsBuilder &operator=(const TileOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7754,10 +8137,7 @@ flatbuffers::Offset CreateTileOptions(flatbuffers::FlatBufferBuilde struct ArgMaxOptionsT : public flatbuffers::NativeTable { typedef ArgMaxOptions TableType; - tflite::TensorType output_type; - ArgMaxOptionsT() - : output_type(tflite::TensorType_FLOAT32) { - } + tflite::TensorType output_type = tflite::TensorType_FLOAT32; }; struct ArgMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7771,7 +8151,7 @@ struct ArgMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_OUTPUT_TYPE) && + VerifyField(verifier, VT_OUTPUT_TYPE, 1) && verifier.EndTable(); } ArgMaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7790,7 +8170,6 @@ struct ArgMaxOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ArgMaxOptionsBuilder &operator=(const ArgMaxOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7810,10 +8189,7 @@ flatbuffers::Offset CreateArgMaxOptions(flatbuffers::FlatBufferBu struct ArgMinOptionsT : public flatbuffers::NativeTable { typedef ArgMinOptions TableType; - tflite::TensorType output_type; - ArgMinOptionsT() - : output_type(tflite::TensorType_FLOAT32) { - } + tflite::TensorType output_type = tflite::TensorType_FLOAT32; }; struct ArgMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7827,7 +8203,7 @@ struct ArgMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_OUTPUT_TYPE) && + VerifyField(verifier, VT_OUTPUT_TYPE, 1) && verifier.EndTable(); } ArgMinOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -7846,7 +8222,6 @@ struct ArgMinOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ArgMinOptionsBuilder &operator=(const ArgMinOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7866,8 +8241,6 @@ flatbuffers::Offset CreateArgMinOptions(flatbuffers::FlatBufferBu struct GreaterOptionsT : public flatbuffers::NativeTable { typedef GreaterOptions TableType; - GreaterOptionsT() { - } }; struct GreaterOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7890,7 +8263,6 @@ struct GreaterOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - GreaterOptionsBuilder &operator=(const GreaterOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7908,8 +8280,6 @@ flatbuffers::Offset CreateGreaterOptions(flatbuffers::FlatBuffer struct GreaterEqualOptionsT : public flatbuffers::NativeTable { typedef GreaterEqualOptions TableType; - GreaterEqualOptionsT() { - } }; struct GreaterEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7932,7 +8302,6 @@ struct GreaterEqualOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - GreaterEqualOptionsBuilder &operator=(const GreaterEqualOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7950,8 +8319,6 @@ flatbuffers::Offset CreateGreaterEqualOptions(flatbuffers:: struct LessOptionsT : public flatbuffers::NativeTable { typedef LessOptions TableType; - LessOptionsT() { - } }; struct LessOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -7974,7 +8341,6 @@ struct LessOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LessOptionsBuilder &operator=(const LessOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -7992,8 +8358,6 @@ flatbuffers::Offset CreateLessOptions(flatbuffers::FlatBufferBuilde struct LessEqualOptionsT : public flatbuffers::NativeTable { typedef LessEqualOptions TableType; - LessEqualOptionsT() { - } }; struct LessEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8016,7 +8380,6 @@ struct LessEqualOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LessEqualOptionsBuilder &operator=(const LessEqualOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8034,8 +8397,6 @@ flatbuffers::Offset CreateLessEqualOptions(flatbuffers::FlatBu struct NegOptionsT : public flatbuffers::NativeTable { typedef NegOptions TableType; - NegOptionsT() { - } }; struct NegOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8058,7 +8419,6 @@ struct NegOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - NegOptionsBuilder &operator=(const NegOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8076,8 +8436,6 @@ flatbuffers::Offset CreateNegOptions(flatbuffers::FlatBufferBuilder struct SelectOptionsT : public flatbuffers::NativeTable { typedef SelectOptions TableType; - SelectOptionsT() { - } }; struct SelectOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8100,7 +8458,6 @@ struct SelectOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SelectOptionsBuilder &operator=(const SelectOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8118,8 +8475,6 @@ flatbuffers::Offset CreateSelectOptions(flatbuffers::FlatBufferBu struct SliceOptionsT : public flatbuffers::NativeTable { typedef SliceOptions TableType; - SliceOptionsT() { - } }; struct SliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8142,7 +8497,6 @@ struct SliceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SliceOptionsBuilder &operator=(const SliceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8160,14 +8514,9 @@ flatbuffers::Offset CreateSliceOptions(flatbuffers::FlatBufferBuil struct TransposeConvOptionsT : public flatbuffers::NativeTable { typedef TransposeConvOptions TableType; - tflite::Padding padding; - int32_t stride_w; - int32_t stride_h; - TransposeConvOptionsT() - : padding(tflite::Padding_SAME), - stride_w(0), - stride_h(0) { - } + tflite::Padding padding = tflite::Padding_SAME; + int32_t stride_w = 0; + int32_t stride_h = 0; }; struct TransposeConvOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8189,9 +8538,9 @@ struct TransposeConvOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_PADDING) && - VerifyField(verifier, VT_STRIDE_W) && - VerifyField(verifier, VT_STRIDE_H) && + VerifyField(verifier, VT_PADDING, 1) && + VerifyField(verifier, VT_STRIDE_W, 4) && + VerifyField(verifier, VT_STRIDE_H, 4) && verifier.EndTable(); } TransposeConvOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -8216,7 +8565,6 @@ struct TransposeConvOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - TransposeConvOptionsBuilder &operator=(const TransposeConvOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8240,8 +8588,6 @@ flatbuffers::Offset CreateTransposeConvOptions(flatbuffers struct ExpandDimsOptionsT : public flatbuffers::NativeTable { typedef ExpandDimsOptions TableType; - ExpandDimsOptionsT() { - } }; struct ExpandDimsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8264,7 +8610,6 @@ struct ExpandDimsOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ExpandDimsOptionsBuilder &operator=(const ExpandDimsOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8282,10 +8627,7 @@ flatbuffers::Offset CreateExpandDimsOptions(flatbuffers::Flat struct SparseToDenseOptionsT : public flatbuffers::NativeTable { typedef SparseToDenseOptions TableType; - bool validate_indices; - SparseToDenseOptionsT() - : validate_indices(false) { - } + bool validate_indices = false; }; struct SparseToDenseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8299,7 +8641,7 @@ struct SparseToDenseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VALIDATE_INDICES) && + VerifyField(verifier, VT_VALIDATE_INDICES, 1) && verifier.EndTable(); } SparseToDenseOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -8318,7 +8660,6 @@ struct SparseToDenseOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SparseToDenseOptionsBuilder &operator=(const SparseToDenseOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8338,8 +8679,6 @@ flatbuffers::Offset CreateSparseToDenseOptions(flatbuffers struct EqualOptionsT : public flatbuffers::NativeTable { typedef EqualOptions TableType; - EqualOptionsT() { - } }; struct EqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8362,7 +8701,6 @@ struct EqualOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - EqualOptionsBuilder &operator=(const EqualOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8380,8 +8718,6 @@ flatbuffers::Offset CreateEqualOptions(flatbuffers::FlatBufferBuil struct NotEqualOptionsT : public flatbuffers::NativeTable { typedef NotEqualOptions TableType; - NotEqualOptionsT() { - } }; struct NotEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8404,7 +8740,6 @@ struct NotEqualOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - NotEqualOptionsBuilder &operator=(const NotEqualOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8422,10 +8757,7 @@ flatbuffers::Offset CreateNotEqualOptions(flatbuffers::FlatBuff struct ShapeOptionsT : public flatbuffers::NativeTable { typedef ShapeOptions TableType; - tflite::TensorType out_type; - ShapeOptionsT() - : out_type(tflite::TensorType_FLOAT32) { - } + tflite::TensorType out_type = tflite::TensorType_FLOAT32; }; struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8439,7 +8771,7 @@ struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_OUT_TYPE) && + VerifyField(verifier, VT_OUT_TYPE, 1) && verifier.EndTable(); } ShapeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -8458,7 +8790,6 @@ struct ShapeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ShapeOptionsBuilder &operator=(const ShapeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8478,8 +8809,6 @@ flatbuffers::Offset CreateShapeOptions(flatbuffers::FlatBufferBuil struct RankOptionsT : public flatbuffers::NativeTable { typedef RankOptions TableType; - RankOptionsT() { - } }; struct RankOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8502,7 +8831,6 @@ struct RankOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - RankOptionsBuilder &operator=(const RankOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8520,8 +8848,6 @@ flatbuffers::Offset CreateRankOptions(flatbuffers::FlatBufferBuilde struct PowOptionsT : public flatbuffers::NativeTable { typedef PowOptions TableType; - PowOptionsT() { - } }; struct PowOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8544,7 +8870,6 @@ struct PowOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - PowOptionsBuilder &operator=(const PowOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8562,16 +8887,10 @@ flatbuffers::Offset CreatePowOptions(flatbuffers::FlatBufferBuilder struct FakeQuantOptionsT : public flatbuffers::NativeTable { typedef FakeQuantOptions TableType; - float min; - float max; - int32_t num_bits; - bool narrow_range; - FakeQuantOptionsT() - : min(0.0f), - max(0.0f), - num_bits(0), - narrow_range(false) { - } + float min = 0.0f; + float max = 0.0f; + int32_t num_bits = 0; + bool narrow_range = false; }; struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8597,10 +8916,10 @@ struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_MIN) && - VerifyField(verifier, VT_MAX) && - VerifyField(verifier, VT_NUM_BITS) && - VerifyField(verifier, VT_NARROW_RANGE) && + VerifyField(verifier, VT_MIN, 4) && + VerifyField(verifier, VT_MAX, 4) && + VerifyField(verifier, VT_NUM_BITS, 4) && + VerifyField(verifier, VT_NARROW_RANGE, 1) && verifier.EndTable(); } FakeQuantOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -8628,7 +8947,6 @@ struct FakeQuantOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - FakeQuantOptionsBuilder &operator=(const FakeQuantOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8654,12 +8972,8 @@ flatbuffers::Offset CreateFakeQuantOptions(flatbuffers::FlatBu struct PackOptionsT : public flatbuffers::NativeTable { typedef PackOptions TableType; - int32_t values_count; - int32_t axis; - PackOptionsT() - : values_count(0), - axis(0) { - } + int32_t values_count = 0; + int32_t axis = 0; }; struct PackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8677,8 +8991,8 @@ struct PackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VALUES_COUNT) && - VerifyField(verifier, VT_AXIS) && + VerifyField(verifier, VT_VALUES_COUNT, 4) && + VerifyField(verifier, VT_AXIS, 4) && verifier.EndTable(); } PackOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -8700,7 +9014,6 @@ struct PackOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - PackOptionsBuilder &operator=(const PackOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8722,8 +9035,6 @@ flatbuffers::Offset CreatePackOptions(flatbuffers::FlatBufferBuilde struct LogicalOrOptionsT : public flatbuffers::NativeTable { typedef LogicalOrOptions TableType; - LogicalOrOptionsT() { - } }; struct LogicalOrOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8746,7 +9057,6 @@ struct LogicalOrOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LogicalOrOptionsBuilder &operator=(const LogicalOrOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8764,10 +9074,7 @@ flatbuffers::Offset CreateLogicalOrOptions(flatbuffers::FlatBu struct OneHotOptionsT : public flatbuffers::NativeTable { typedef OneHotOptions TableType; - int32_t axis; - OneHotOptionsT() - : axis(0) { - } + int32_t axis = 0; }; struct OneHotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8781,7 +9088,7 @@ struct OneHotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_AXIS) && + VerifyField(verifier, VT_AXIS, 4) && verifier.EndTable(); } OneHotOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -8800,7 +9107,6 @@ struct OneHotOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - OneHotOptionsBuilder &operator=(const OneHotOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8820,8 +9126,6 @@ flatbuffers::Offset CreateOneHotOptions(flatbuffers::FlatBufferBu struct AbsOptionsT : public flatbuffers::NativeTable { typedef AbsOptions TableType; - AbsOptionsT() { - } }; struct AbsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8844,7 +9148,6 @@ struct AbsOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - AbsOptionsBuilder &operator=(const AbsOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8862,8 +9165,6 @@ flatbuffers::Offset CreateAbsOptions(flatbuffers::FlatBufferBuilder struct HardSwishOptionsT : public flatbuffers::NativeTable { typedef HardSwishOptions TableType; - HardSwishOptionsT() { - } }; struct HardSwishOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8886,7 +9187,6 @@ struct HardSwishOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - HardSwishOptionsBuilder &operator=(const HardSwishOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8904,8 +9204,6 @@ flatbuffers::Offset CreateHardSwishOptions(flatbuffers::FlatBu struct LogicalAndOptionsT : public flatbuffers::NativeTable { typedef LogicalAndOptions TableType; - LogicalAndOptionsT() { - } }; struct LogicalAndOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8928,7 +9226,6 @@ struct LogicalAndOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LogicalAndOptionsBuilder &operator=(const LogicalAndOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8946,8 +9243,6 @@ flatbuffers::Offset CreateLogicalAndOptions(flatbuffers::Flat struct LogicalNotOptionsT : public flatbuffers::NativeTable { typedef LogicalNotOptions TableType; - LogicalNotOptionsT() { - } }; struct LogicalNotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -8970,7 +9265,6 @@ struct LogicalNotOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LogicalNotOptionsBuilder &operator=(const LogicalNotOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -8988,12 +9282,8 @@ flatbuffers::Offset CreateLogicalNotOptions(flatbuffers::Flat struct UnpackOptionsT : public flatbuffers::NativeTable { typedef UnpackOptions TableType; - int32_t num; - int32_t axis; - UnpackOptionsT() - : num(0), - axis(0) { - } + int32_t num = 0; + int32_t axis = 0; }; struct UnpackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9011,8 +9301,8 @@ struct UnpackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_NUM) && - VerifyField(verifier, VT_AXIS) && + VerifyField(verifier, VT_NUM, 4) && + VerifyField(verifier, VT_AXIS, 4) && verifier.EndTable(); } UnpackOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9034,7 +9324,6 @@ struct UnpackOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UnpackOptionsBuilder &operator=(const UnpackOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9056,8 +9345,6 @@ flatbuffers::Offset CreateUnpackOptions(flatbuffers::FlatBufferBu struct FloorDivOptionsT : public flatbuffers::NativeTable { typedef FloorDivOptions TableType; - FloorDivOptionsT() { - } }; struct FloorDivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9080,7 +9367,6 @@ struct FloorDivOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - FloorDivOptionsBuilder &operator=(const FloorDivOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9098,8 +9384,6 @@ flatbuffers::Offset CreateFloorDivOptions(flatbuffers::FlatBuff struct SquareOptionsT : public flatbuffers::NativeTable { typedef SquareOptions TableType; - SquareOptionsT() { - } }; struct SquareOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9122,7 +9406,6 @@ struct SquareOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SquareOptionsBuilder &operator=(const SquareOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9140,8 +9423,6 @@ flatbuffers::Offset CreateSquareOptions(flatbuffers::FlatBufferBu struct ZerosLikeOptionsT : public flatbuffers::NativeTable { typedef ZerosLikeOptions TableType; - ZerosLikeOptionsT() { - } }; struct ZerosLikeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9164,7 +9445,6 @@ struct ZerosLikeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ZerosLikeOptionsBuilder &operator=(const ZerosLikeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9182,8 +9462,6 @@ flatbuffers::Offset CreateZerosLikeOptions(flatbuffers::FlatBu struct FillOptionsT : public flatbuffers::NativeTable { typedef FillOptions TableType; - FillOptionsT() { - } }; struct FillOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9206,7 +9484,6 @@ struct FillOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - FillOptionsBuilder &operator=(const FillOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9224,8 +9501,6 @@ flatbuffers::Offset CreateFillOptions(flatbuffers::FlatBufferBuilde struct FloorModOptionsT : public flatbuffers::NativeTable { typedef FloorModOptions TableType; - FloorModOptionsT() { - } }; struct FloorModOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9248,7 +9523,6 @@ struct FloorModOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - FloorModOptionsBuilder &operator=(const FloorModOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9266,8 +9540,6 @@ flatbuffers::Offset CreateFloorModOptions(flatbuffers::FlatBuff struct RangeOptionsT : public flatbuffers::NativeTable { typedef RangeOptions TableType; - RangeOptionsT() { - } }; struct RangeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9290,7 +9562,6 @@ struct RangeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - RangeOptionsBuilder &operator=(const RangeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9308,10 +9579,7 @@ flatbuffers::Offset CreateRangeOptions(flatbuffers::FlatBufferBuil struct LeakyReluOptionsT : public flatbuffers::NativeTable { typedef LeakyReluOptions TableType; - float alpha; - LeakyReluOptionsT() - : alpha(0.0f) { - } + float alpha = 0.0f; }; struct LeakyReluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9325,7 +9593,7 @@ struct LeakyReluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_ALPHA) && + VerifyField(verifier, VT_ALPHA, 4) && verifier.EndTable(); } LeakyReluOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9344,7 +9612,6 @@ struct LeakyReluOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - LeakyReluOptionsBuilder &operator=(const LeakyReluOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9364,8 +9631,6 @@ flatbuffers::Offset CreateLeakyReluOptions(flatbuffers::FlatBu struct SquaredDifferenceOptionsT : public flatbuffers::NativeTable { typedef SquaredDifferenceOptions TableType; - SquaredDifferenceOptionsT() { - } }; struct SquaredDifferenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9388,7 +9653,6 @@ struct SquaredDifferenceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SquaredDifferenceOptionsBuilder &operator=(const SquaredDifferenceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9406,10 +9670,7 @@ flatbuffers::Offset CreateSquaredDifferenceOptions(fla struct MirrorPadOptionsT : public flatbuffers::NativeTable { typedef MirrorPadOptions TableType; - tflite::MirrorPadMode mode; - MirrorPadOptionsT() - : mode(tflite::MirrorPadMode_REFLECT) { - } + tflite::MirrorPadMode mode = tflite::MirrorPadMode_REFLECT; }; struct MirrorPadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9423,7 +9684,7 @@ struct MirrorPadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_MODE) && + VerifyField(verifier, VT_MODE, 1) && verifier.EndTable(); } MirrorPadOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9442,7 +9703,6 @@ struct MirrorPadOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - MirrorPadOptionsBuilder &operator=(const MirrorPadOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9462,10 +9722,7 @@ flatbuffers::Offset CreateMirrorPadOptions(flatbuffers::FlatBu struct UniqueOptionsT : public flatbuffers::NativeTable { typedef UniqueOptions TableType; - tflite::TensorType idx_out_type; - UniqueOptionsT() - : idx_out_type(tflite::TensorType_INT32) { - } + tflite::TensorType idx_out_type = tflite::TensorType_INT32; }; struct UniqueOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9479,7 +9736,7 @@ struct UniqueOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_IDX_OUT_TYPE) && + VerifyField(verifier, VT_IDX_OUT_TYPE, 1) && verifier.EndTable(); } UniqueOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9498,7 +9755,6 @@ struct UniqueOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UniqueOptionsBuilder &operator=(const UniqueOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9518,8 +9774,6 @@ flatbuffers::Offset CreateUniqueOptions(flatbuffers::FlatBufferBu struct ReverseV2OptionsT : public flatbuffers::NativeTable { typedef ReverseV2Options TableType; - ReverseV2OptionsT() { - } }; struct ReverseV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9542,7 +9796,6 @@ struct ReverseV2OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ReverseV2OptionsBuilder &operator=(const ReverseV2OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9560,8 +9813,6 @@ flatbuffers::Offset CreateReverseV2Options(flatbuffers::FlatBu struct AddNOptionsT : public flatbuffers::NativeTable { typedef AddNOptions TableType; - AddNOptionsT() { - } }; struct AddNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9584,7 +9835,6 @@ struct AddNOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - AddNOptionsBuilder &operator=(const AddNOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9602,8 +9852,6 @@ flatbuffers::Offset CreateAddNOptions(flatbuffers::FlatBufferBuilde struct GatherNdOptionsT : public flatbuffers::NativeTable { typedef GatherNdOptions TableType; - GatherNdOptionsT() { - } }; struct GatherNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9626,7 +9874,6 @@ struct GatherNdOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - GatherNdOptionsBuilder &operator=(const GatherNdOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9644,8 +9891,6 @@ flatbuffers::Offset CreateGatherNdOptions(flatbuffers::FlatBuff struct WhereOptionsT : public flatbuffers::NativeTable { typedef WhereOptions TableType; - WhereOptionsT() { - } }; struct WhereOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9668,7 +9913,6 @@ struct WhereOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - WhereOptionsBuilder &operator=(const WhereOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9686,12 +9930,8 @@ flatbuffers::Offset CreateWhereOptions(flatbuffers::FlatBufferBuil struct ReverseSequenceOptionsT : public flatbuffers::NativeTable { typedef ReverseSequenceOptions TableType; - int32_t seq_dim; - int32_t batch_dim; - ReverseSequenceOptionsT() - : seq_dim(0), - batch_dim(0) { - } + int32_t seq_dim = 0; + int32_t batch_dim = 0; }; struct ReverseSequenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9709,8 +9949,8 @@ struct ReverseSequenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_SEQ_DIM) && - VerifyField(verifier, VT_BATCH_DIM) && + VerifyField(verifier, VT_SEQ_DIM, 4) && + VerifyField(verifier, VT_BATCH_DIM, 4) && verifier.EndTable(); } ReverseSequenceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9732,7 +9972,6 @@ struct ReverseSequenceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ReverseSequenceOptionsBuilder &operator=(const ReverseSequenceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9754,8 +9993,6 @@ flatbuffers::Offset CreateReverseSequenceOptions(flatbuf struct MatrixDiagOptionsT : public flatbuffers::NativeTable { typedef MatrixDiagOptions TableType; - MatrixDiagOptionsT() { - } }; struct MatrixDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9778,7 +10015,6 @@ struct MatrixDiagOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - MatrixDiagOptionsBuilder &operator=(const MatrixDiagOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9796,8 +10032,6 @@ flatbuffers::Offset CreateMatrixDiagOptions(flatbuffers::Flat struct QuantizeOptionsT : public flatbuffers::NativeTable { typedef QuantizeOptions TableType; - QuantizeOptionsT() { - } }; struct QuantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9820,7 +10054,6 @@ struct QuantizeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - QuantizeOptionsBuilder &operator=(const QuantizeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9838,8 +10071,6 @@ flatbuffers::Offset CreateQuantizeOptions(flatbuffers::FlatBuff struct MatrixSetDiagOptionsT : public flatbuffers::NativeTable { typedef MatrixSetDiagOptions TableType; - MatrixSetDiagOptionsT() { - } }; struct MatrixSetDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9862,7 +10093,6 @@ struct MatrixSetDiagOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - MatrixSetDiagOptionsBuilder &operator=(const MatrixSetDiagOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9880,12 +10110,8 @@ flatbuffers::Offset CreateMatrixSetDiagOptions(flatbuffers struct IfOptionsT : public flatbuffers::NativeTable { typedef IfOptions TableType; - int32_t then_subgraph_index; - int32_t else_subgraph_index; - IfOptionsT() - : then_subgraph_index(0), - else_subgraph_index(0) { - } + int32_t then_subgraph_index = 0; + int32_t else_subgraph_index = 0; }; struct IfOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9903,8 +10129,8 @@ struct IfOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_THEN_SUBGRAPH_INDEX) && - VerifyField(verifier, VT_ELSE_SUBGRAPH_INDEX) && + VerifyField(verifier, VT_THEN_SUBGRAPH_INDEX, 4) && + VerifyField(verifier, VT_ELSE_SUBGRAPH_INDEX, 4) && verifier.EndTable(); } IfOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9926,7 +10152,6 @@ struct IfOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - IfOptionsBuilder &operator=(const IfOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -9948,10 +10173,7 @@ flatbuffers::Offset CreateIfOptions(flatbuffers::FlatBufferBuilder &_ struct CallOnceOptionsT : public flatbuffers::NativeTable { typedef CallOnceOptions TableType; - int32_t init_subgraph_index; - CallOnceOptionsT() - : init_subgraph_index(0) { - } + int32_t init_subgraph_index = 0; }; struct CallOnceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -9965,7 +10187,7 @@ struct CallOnceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_INIT_SUBGRAPH_INDEX) && + VerifyField(verifier, VT_INIT_SUBGRAPH_INDEX, 4) && verifier.EndTable(); } CallOnceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -9984,7 +10206,6 @@ struct CallOnceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - CallOnceOptionsBuilder &operator=(const CallOnceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10004,12 +10225,8 @@ flatbuffers::Offset CreateCallOnceOptions(flatbuffers::FlatBuff struct WhileOptionsT : public flatbuffers::NativeTable { typedef WhileOptions TableType; - int32_t cond_subgraph_index; - int32_t body_subgraph_index; - WhileOptionsT() - : cond_subgraph_index(0), - body_subgraph_index(0) { - } + int32_t cond_subgraph_index = 0; + int32_t body_subgraph_index = 0; }; struct WhileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10027,8 +10244,8 @@ struct WhileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_COND_SUBGRAPH_INDEX) && - VerifyField(verifier, VT_BODY_SUBGRAPH_INDEX) && + VerifyField(verifier, VT_COND_SUBGRAPH_INDEX, 4) && + VerifyField(verifier, VT_BODY_SUBGRAPH_INDEX, 4) && verifier.EndTable(); } WhileOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -10050,7 +10267,6 @@ struct WhileOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - WhileOptionsBuilder &operator=(const WhileOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10072,8 +10288,6 @@ flatbuffers::Offset CreateWhileOptions(flatbuffers::FlatBufferBuil struct NonMaxSuppressionV4OptionsT : public flatbuffers::NativeTable { typedef NonMaxSuppressionV4Options TableType; - NonMaxSuppressionV4OptionsT() { - } }; struct NonMaxSuppressionV4Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10096,7 +10310,6 @@ struct NonMaxSuppressionV4OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - NonMaxSuppressionV4OptionsBuilder &operator=(const NonMaxSuppressionV4OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10114,8 +10327,6 @@ flatbuffers::Offset CreateNonMaxSuppressionV4Options struct NonMaxSuppressionV5OptionsT : public flatbuffers::NativeTable { typedef NonMaxSuppressionV5Options TableType; - NonMaxSuppressionV5OptionsT() { - } }; struct NonMaxSuppressionV5Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10138,7 +10349,6 @@ struct NonMaxSuppressionV5OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - NonMaxSuppressionV5OptionsBuilder &operator=(const NonMaxSuppressionV5OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10156,8 +10366,6 @@ flatbuffers::Offset CreateNonMaxSuppressionV5Options struct ScatterNdOptionsT : public flatbuffers::NativeTable { typedef ScatterNdOptions TableType; - ScatterNdOptionsT() { - } }; struct ScatterNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10180,7 +10388,6 @@ struct ScatterNdOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ScatterNdOptionsBuilder &operator=(const ScatterNdOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10198,8 +10405,6 @@ flatbuffers::Offset CreateScatterNdOptions(flatbuffers::FlatBu struct SelectV2OptionsT : public flatbuffers::NativeTable { typedef SelectV2Options TableType; - SelectV2OptionsT() { - } }; struct SelectV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10222,7 +10427,6 @@ struct SelectV2OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SelectV2OptionsBuilder &operator=(const SelectV2OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10240,8 +10444,6 @@ flatbuffers::Offset CreateSelectV2Options(flatbuffers::FlatBuff struct DensifyOptionsT : public flatbuffers::NativeTable { typedef DensifyOptions TableType; - DensifyOptionsT() { - } }; struct DensifyOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10264,7 +10466,6 @@ struct DensifyOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DensifyOptionsBuilder &operator=(const DensifyOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10282,8 +10483,6 @@ flatbuffers::Offset CreateDensifyOptions(flatbuffers::FlatBuffer struct SegmentSumOptionsT : public flatbuffers::NativeTable { typedef SegmentSumOptions TableType; - SegmentSumOptionsT() { - } }; struct SegmentSumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10306,7 +10505,6 @@ struct SegmentSumOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SegmentSumOptionsBuilder &operator=(const SegmentSumOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10324,14 +10522,9 @@ flatbuffers::Offset CreateSegmentSumOptions(flatbuffers::Flat struct BatchMatMulOptionsT : public flatbuffers::NativeTable { typedef BatchMatMulOptions TableType; - bool adj_x; - bool adj_y; - bool asymmetric_quantize_inputs; - BatchMatMulOptionsT() - : adj_x(false), - adj_y(false), - asymmetric_quantize_inputs(false) { - } + bool adj_x = false; + bool adj_y = false; + bool asymmetric_quantize_inputs = false; }; struct BatchMatMulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10353,9 +10546,9 @@ struct BatchMatMulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_ADJ_X) && - VerifyField(verifier, VT_ADJ_Y) && - VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && + VerifyField(verifier, VT_ADJ_X, 1) && + VerifyField(verifier, VT_ADJ_Y, 1) && + VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && verifier.EndTable(); } BatchMatMulOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -10380,7 +10573,6 @@ struct BatchMatMulOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BatchMatMulOptionsBuilder &operator=(const BatchMatMulOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10404,12 +10596,8 @@ flatbuffers::Offset CreateBatchMatMulOptions(flatbuffers::Fl struct CumsumOptionsT : public flatbuffers::NativeTable { typedef CumsumOptions TableType; - bool exclusive; - bool reverse; - CumsumOptionsT() - : exclusive(false), - reverse(false) { - } + bool exclusive = false; + bool reverse = false; }; struct CumsumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10427,8 +10615,8 @@ struct CumsumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_EXCLUSIVE) && - VerifyField(verifier, VT_REVERSE) && + VerifyField(verifier, VT_EXCLUSIVE, 1) && + VerifyField(verifier, VT_REVERSE, 1) && verifier.EndTable(); } CumsumOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -10450,7 +10638,6 @@ struct CumsumOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - CumsumOptionsBuilder &operator=(const CumsumOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10472,8 +10659,6 @@ flatbuffers::Offset CreateCumsumOptions(flatbuffers::FlatBufferBu struct BroadcastToOptionsT : public flatbuffers::NativeTable { typedef BroadcastToOptions TableType; - BroadcastToOptionsT() { - } }; struct BroadcastToOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10496,7 +10681,6 @@ struct BroadcastToOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BroadcastToOptionsBuilder &operator=(const BroadcastToOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10514,8 +10698,6 @@ flatbuffers::Offset CreateBroadcastToOptions(flatbuffers::Fl struct Rfft2dOptionsT : public flatbuffers::NativeTable { typedef Rfft2dOptions TableType; - Rfft2dOptionsT() { - } }; struct Rfft2dOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10538,7 +10720,6 @@ struct Rfft2dOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - Rfft2dOptionsBuilder &operator=(const Rfft2dOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10556,14 +10737,9 @@ flatbuffers::Offset CreateRfft2dOptions(flatbuffers::FlatBufferBu struct HashtableOptionsT : public flatbuffers::NativeTable { typedef HashtableOptions TableType; - int32_t table_id; - tflite::TensorType key_dtype; - tflite::TensorType value_dtype; - HashtableOptionsT() - : table_id(0), - key_dtype(tflite::TensorType_FLOAT32), - value_dtype(tflite::TensorType_FLOAT32) { - } + int32_t table_id = 0; + tflite::TensorType key_dtype = tflite::TensorType_FLOAT32; + tflite::TensorType value_dtype = tflite::TensorType_FLOAT32; }; struct HashtableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10585,9 +10761,9 @@ struct HashtableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_TABLE_ID) && - VerifyField(verifier, VT_KEY_DTYPE) && - VerifyField(verifier, VT_VALUE_DTYPE) && + VerifyField(verifier, VT_TABLE_ID, 4) && + VerifyField(verifier, VT_KEY_DTYPE, 1) && + VerifyField(verifier, VT_VALUE_DTYPE, 1) && verifier.EndTable(); } HashtableOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -10612,7 +10788,6 @@ struct HashtableOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - HashtableOptionsBuilder &operator=(const HashtableOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10636,8 +10811,6 @@ flatbuffers::Offset CreateHashtableOptions(flatbuffers::FlatBu struct HashtableFindOptionsT : public flatbuffers::NativeTable { typedef HashtableFindOptions TableType; - HashtableFindOptionsT() { - } }; struct HashtableFindOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10660,7 +10833,6 @@ struct HashtableFindOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - HashtableFindOptionsBuilder &operator=(const HashtableFindOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10678,8 +10850,6 @@ flatbuffers::Offset CreateHashtableFindOptions(flatbuffers struct HashtableImportOptionsT : public flatbuffers::NativeTable { typedef HashtableImportOptions TableType; - HashtableImportOptionsT() { - } }; struct HashtableImportOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10702,7 +10872,6 @@ struct HashtableImportOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - HashtableImportOptionsBuilder &operator=(const HashtableImportOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10720,8 +10889,6 @@ flatbuffers::Offset CreateHashtableImportOptions(flatbuf struct HashtableSizeOptionsT : public flatbuffers::NativeTable { typedef HashtableSizeOptions TableType; - HashtableSizeOptionsT() { - } }; struct HashtableSizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10744,7 +10911,6 @@ struct HashtableSizeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - HashtableSizeOptionsBuilder &operator=(const HashtableSizeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10762,10 +10928,8 @@ flatbuffers::Offset CreateHashtableSizeOptions(flatbuffers struct VarHandleOptionsT : public flatbuffers::NativeTable { typedef VarHandleOptions TableType; - std::string container; - std::string shared_name; - VarHandleOptionsT() { - } + std::string container{}; + std::string shared_name{}; }; struct VarHandleOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10808,7 +10972,6 @@ struct VarHandleOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - VarHandleOptionsBuilder &operator=(const VarHandleOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10842,8 +11005,6 @@ flatbuffers::Offset CreateVarHandleOptions(flatbuffers::FlatBu struct ReadVariableOptionsT : public flatbuffers::NativeTable { typedef ReadVariableOptions TableType; - ReadVariableOptionsT() { - } }; struct ReadVariableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10866,7 +11027,6 @@ struct ReadVariableOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ReadVariableOptionsBuilder &operator=(const ReadVariableOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10884,8 +11044,6 @@ flatbuffers::Offset CreateReadVariableOptions(flatbuffers:: struct AssignVariableOptionsT : public flatbuffers::NativeTable { typedef AssignVariableOptions TableType; - AssignVariableOptionsT() { - } }; struct AssignVariableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10908,7 +11066,6 @@ struct AssignVariableOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - AssignVariableOptionsBuilder &operator=(const AssignVariableOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10926,12 +11083,8 @@ flatbuffers::Offset CreateAssignVariableOptions(flatbuffe struct RandomOptionsT : public flatbuffers::NativeTable { typedef RandomOptions TableType; - int64_t seed; - int64_t seed2; - RandomOptionsT() - : seed(0), - seed2(0) { - } + int64_t seed = 0; + int64_t seed2 = 0; }; struct RandomOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -10949,8 +11102,8 @@ struct RandomOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_SEED) && - VerifyField(verifier, VT_SEED2) && + VerifyField(verifier, VT_SEED, 8) && + VerifyField(verifier, VT_SEED2, 8) && verifier.EndTable(); } RandomOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -10972,7 +11125,6 @@ struct RandomOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - RandomOptionsBuilder &operator=(const RandomOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -10994,9 +11146,7 @@ flatbuffers::Offset CreateRandomOptions(flatbuffers::FlatBufferBu struct BucketizeOptionsT : public flatbuffers::NativeTable { typedef BucketizeOptions TableType; - std::vector boundaries; - BucketizeOptionsT() { - } + std::vector boundaries{}; }; struct BucketizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11030,7 +11180,6 @@ struct BucketizeOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BucketizeOptionsBuilder &operator=(const BucketizeOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11059,10 +11208,7 @@ flatbuffers::Offset CreateBucketizeOptions(flatbuffers::FlatBu struct GeluOptionsT : public flatbuffers::NativeTable { typedef GeluOptions TableType; - bool approximate; - GeluOptionsT() - : approximate(false) { - } + bool approximate = false; }; struct GeluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11076,7 +11222,7 @@ struct GeluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_APPROXIMATE) && + VerifyField(verifier, VT_APPROXIMATE, 1) && verifier.EndTable(); } GeluOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -11095,7 +11241,6 @@ struct GeluOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - GeluOptionsBuilder &operator=(const GeluOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11115,8 +11260,6 @@ flatbuffers::Offset CreateGeluOptions(flatbuffers::FlatBufferBuilde struct DynamicUpdateSliceOptionsT : public flatbuffers::NativeTable { typedef DynamicUpdateSliceOptions TableType; - DynamicUpdateSliceOptionsT() { - } }; struct DynamicUpdateSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11139,7 +11282,6 @@ struct DynamicUpdateSliceOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - DynamicUpdateSliceOptionsBuilder &operator=(const DynamicUpdateSliceOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11157,8 +11299,6 @@ flatbuffers::Offset CreateDynamicUpdateSliceOptions(f struct UnsortedSegmentProdOptionsT : public flatbuffers::NativeTable { typedef UnsortedSegmentProdOptions TableType; - UnsortedSegmentProdOptionsT() { - } }; struct UnsortedSegmentProdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11181,7 +11321,6 @@ struct UnsortedSegmentProdOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UnsortedSegmentProdOptionsBuilder &operator=(const UnsortedSegmentProdOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11199,8 +11338,6 @@ flatbuffers::Offset CreateUnsortedSegmentProdOptions struct UnsortedSegmentMaxOptionsT : public flatbuffers::NativeTable { typedef UnsortedSegmentMaxOptions TableType; - UnsortedSegmentMaxOptionsT() { - } }; struct UnsortedSegmentMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11223,7 +11360,6 @@ struct UnsortedSegmentMaxOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UnsortedSegmentMaxOptionsBuilder &operator=(const UnsortedSegmentMaxOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11241,8 +11377,6 @@ flatbuffers::Offset CreateUnsortedSegmentMaxOptions(f struct UnsortedSegmentSumOptionsT : public flatbuffers::NativeTable { typedef UnsortedSegmentSumOptions TableType; - UnsortedSegmentSumOptionsT() { - } }; struct UnsortedSegmentSumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11265,7 +11399,6 @@ struct UnsortedSegmentSumOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UnsortedSegmentSumOptionsBuilder &operator=(const UnsortedSegmentSumOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11283,8 +11416,6 @@ flatbuffers::Offset CreateUnsortedSegmentSumOptions(f struct ATan2OptionsT : public flatbuffers::NativeTable { typedef ATan2Options TableType; - ATan2OptionsT() { - } }; struct ATan2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11307,7 +11438,6 @@ struct ATan2OptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ATan2OptionsBuilder &operator=(const ATan2OptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11325,8 +11455,6 @@ flatbuffers::Offset CreateATan2Options(flatbuffers::FlatBufferBuil struct UnsortedSegmentMinOptionsT : public flatbuffers::NativeTable { typedef UnsortedSegmentMinOptions TableType; - UnsortedSegmentMinOptionsT() { - } }; struct UnsortedSegmentMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11349,7 +11477,6 @@ struct UnsortedSegmentMinOptionsBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - UnsortedSegmentMinOptionsBuilder &operator=(const UnsortedSegmentMinOptionsBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11365,17 +11492,51 @@ inline flatbuffers::Offset CreateUnsortedSegmentMinOp flatbuffers::Offset CreateUnsortedSegmentMinOptions(flatbuffers::FlatBufferBuilder &_fbb, const UnsortedSegmentMinOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +struct SignOptionsT : public flatbuffers::NativeTable { + typedef SignOptions TableType; +}; + +struct SignOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SignOptionsT NativeTableType; + typedef SignOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); + } + SignOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(SignOptionsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const SignOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct SignOptionsBuilder { + typedef SignOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SignOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateSignOptions( + flatbuffers::FlatBufferBuilder &_fbb) { + SignOptionsBuilder builder_(_fbb); + return builder_.Finish(); +} + +flatbuffers::Offset CreateSignOptions(flatbuffers::FlatBufferBuilder &_fbb, const SignOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + struct OperatorCodeT : public flatbuffers::NativeTable { typedef OperatorCode TableType; - int8_t deprecated_builtin_code; - std::string custom_code; - int32_t version; - tflite::BuiltinOperator builtin_code; - OperatorCodeT() - : deprecated_builtin_code(0), - version(1), - builtin_code(tflite::BuiltinOperator_ADD) { - } + int8_t deprecated_builtin_code = 0; + std::string custom_code{}; + int32_t version = 1; + tflite::BuiltinOperator builtin_code = tflite::BuiltinOperator_ADD; }; struct OperatorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11401,11 +11562,11 @@ struct OperatorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_DEPRECATED_BUILTIN_CODE) && + VerifyField(verifier, VT_DEPRECATED_BUILTIN_CODE, 1) && VerifyOffset(verifier, VT_CUSTOM_CODE) && verifier.VerifyString(custom_code()) && - VerifyField(verifier, VT_VERSION) && - VerifyField(verifier, VT_BUILTIN_CODE) && + VerifyField(verifier, VT_VERSION, 4) && + VerifyField(verifier, VT_BUILTIN_CODE, 4) && verifier.EndTable(); } OperatorCodeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -11433,7 +11594,6 @@ struct OperatorCodeBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - OperatorCodeBuilder &operator=(const OperatorCodeBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -11474,18 +11634,14 @@ flatbuffers::Offset CreateOperatorCode(flatbuffers::FlatBufferBuil struct OperatorT : public flatbuffers::NativeTable { typedef Operator TableType; - uint32_t opcode_index; - std::vector inputs; - std::vector outputs; - tflite::BuiltinOptionsUnion builtin_options; - std::vector custom_options; - tflite::CustomOptionsFormat custom_options_format; - std::vector mutating_variable_inputs; - std::vector intermediates; - OperatorT() - : opcode_index(0), - custom_options_format(tflite::CustomOptionsFormat_FLEXBUFFERS) { - } + uint32_t opcode_index = 0; + std::vector inputs{}; + std::vector outputs{}; + tflite::BuiltinOptionsUnion builtin_options{}; + std::vector custom_options{}; + tflite::CustomOptionsFormat custom_options_format = tflite::CustomOptionsFormat_FLEXBUFFERS; + std::vector mutating_variable_inputs{}; + std::vector intermediates{}; }; struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -11884,6 +12040,9 @@ struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const tflite::ATan2Options *builtin_options_as_ATan2Options() const { return builtin_options_type() == tflite::BuiltinOptions_ATan2Options ? static_cast(builtin_options()) : nullptr; } + const tflite::SignOptions *builtin_options_as_SignOptions() const { + return builtin_options_type() == tflite::BuiltinOptions_SignOptions ? static_cast(builtin_options()) : nullptr; + } const flatbuffers::Vector *custom_options() const { return GetPointer *>(VT_CUSTOM_OPTIONS); } @@ -11898,17 +12057,17 @@ struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_OPCODE_INDEX) && + VerifyField(verifier, VT_OPCODE_INDEX, 4) && VerifyOffset(verifier, VT_INPUTS) && verifier.VerifyVector(inputs()) && VerifyOffset(verifier, VT_OUTPUTS) && verifier.VerifyVector(outputs()) && - VerifyField(verifier, VT_BUILTIN_OPTIONS_TYPE) && + VerifyField(verifier, VT_BUILTIN_OPTIONS_TYPE, 1) && VerifyOffset(verifier, VT_BUILTIN_OPTIONS) && VerifyBuiltinOptions(verifier, builtin_options(), builtin_options_type()) && VerifyOffset(verifier, VT_CUSTOM_OPTIONS) && verifier.VerifyVector(custom_options()) && - VerifyField(verifier, VT_CUSTOM_OPTIONS_FORMAT) && + VerifyField(verifier, VT_CUSTOM_OPTIONS_FORMAT, 1) && VerifyOffset(verifier, VT_MUTATING_VARIABLE_INPUTS) && verifier.VerifyVector(mutating_variable_inputs()) && VerifyOffset(verifier, VT_INTERMEDIATES) && @@ -12408,6 +12567,10 @@ template<> inline const tflite::ATan2Options *Operator::builtin_options_as inline const tflite::SignOptions *Operator::builtin_options_as() const { + return builtin_options_as_SignOptions(); +} + struct OperatorBuilder { typedef Operator Table; flatbuffers::FlatBufferBuilder &fbb_; @@ -12443,7 +12606,6 @@ struct OperatorBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - OperatorBuilder &operator=(const OperatorBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -12508,13 +12670,15 @@ flatbuffers::Offset CreateOperator(flatbuffers::FlatBufferBuilder &_fb struct SubGraphT : public flatbuffers::NativeTable { typedef SubGraph TableType; - std::vector> tensors; - std::vector inputs; - std::vector outputs; - std::vector> operators; - std::string name; - SubGraphT() { - } + std::vector> tensors{}; + std::vector inputs{}; + std::vector outputs{}; + std::vector> operators{}; + std::string name{}; + SubGraphT() = default; + SubGraphT(const SubGraphT &o); + SubGraphT(SubGraphT&&) FLATBUFFERS_NOEXCEPT = default; + SubGraphT &operator=(SubGraphT o) FLATBUFFERS_NOEXCEPT; }; struct SubGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -12586,7 +12750,6 @@ struct SubGraphBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SubGraphBuilder &operator=(const SubGraphBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -12635,9 +12798,7 @@ flatbuffers::Offset CreateSubGraph(flatbuffers::FlatBufferBuilder &_fb struct BufferT : public flatbuffers::NativeTable { typedef Buffer TableType; - std::vector data; - BufferT() { - } + std::vector data{}; }; struct Buffer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -12671,7 +12832,6 @@ struct BufferBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - BufferBuilder &operator=(const BufferBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -12701,11 +12861,8 @@ flatbuffers::Offset CreateBuffer(flatbuffers::FlatBufferBuilder &_fbb, c struct MetadataT : public flatbuffers::NativeTable { typedef Metadata TableType; - std::string name; - uint32_t buffer; - MetadataT() - : buffer(0) { - } + std::string name{}; + uint32_t buffer = 0; }; struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -12725,7 +12882,7 @@ struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && - VerifyField(verifier, VT_BUFFER) && + VerifyField(verifier, VT_BUFFER, 4) && verifier.EndTable(); } MetadataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -12747,7 +12904,6 @@ struct MetadataBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - MetadataBuilder &operator=(const MetadataBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -12780,11 +12936,8 @@ flatbuffers::Offset CreateMetadata(flatbuffers::FlatBufferBuilder &_fb struct TensorMapT : public flatbuffers::NativeTable { typedef TensorMap TableType; - std::string name; - uint32_t tensor_index; - TensorMapT() - : tensor_index(0) { - } + std::string name{}; + uint32_t tensor_index = 0; }; struct TensorMap FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -12804,7 +12957,7 @@ struct TensorMap FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && - VerifyField(verifier, VT_TENSOR_INDEX) && + VerifyField(verifier, VT_TENSOR_INDEX, 4) && verifier.EndTable(); } TensorMapT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -12826,7 +12979,6 @@ struct TensorMapBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - TensorMapBuilder &operator=(const TensorMapBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -12859,13 +13011,14 @@ flatbuffers::Offset CreateTensorMap(flatbuffers::FlatBufferBuilder &_ struct SignatureDefT : public flatbuffers::NativeTable { typedef SignatureDef TableType; - std::vector> inputs; - std::vector> outputs; - std::string signature_key; - uint32_t subgraph_index; - SignatureDefT() - : subgraph_index(0) { - } + std::vector> inputs{}; + std::vector> outputs{}; + std::string signature_key{}; + uint32_t subgraph_index = 0; + SignatureDefT() = default; + SignatureDefT(const SignatureDefT &o); + SignatureDefT(SignatureDefT&&) FLATBUFFERS_NOEXCEPT = default; + SignatureDefT &operator=(SignatureDefT o) FLATBUFFERS_NOEXCEPT; }; struct SignatureDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -12899,7 +13052,7 @@ struct SignatureDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVectorOfTables(outputs()) && VerifyOffset(verifier, VT_SIGNATURE_KEY) && verifier.VerifyString(signature_key()) && - VerifyField(verifier, VT_SUBGRAPH_INDEX) && + VerifyField(verifier, VT_SUBGRAPH_INDEX, 4) && verifier.EndTable(); } SignatureDefT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -12927,7 +13080,6 @@ struct SignatureDefBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - SignatureDefBuilder &operator=(const SignatureDefBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -12970,17 +13122,18 @@ flatbuffers::Offset CreateSignatureDef(flatbuffers::FlatBufferBuil struct ModelT : public flatbuffers::NativeTable { typedef Model TableType; - uint32_t version; - std::vector> operator_codes; - std::vector> subgraphs; - std::string description; - std::vector> buffers; - std::vector metadata_buffer; - std::vector> metadata; - std::vector> signature_defs; - ModelT() - : version(0) { - } + uint32_t version = 0; + std::vector> operator_codes{}; + std::vector> subgraphs{}; + std::string description{}; + std::vector> buffers{}; + std::vector metadata_buffer{}; + std::vector> metadata{}; + std::vector> signature_defs{}; + ModelT() = default; + ModelT(const ModelT &o); + ModelT(ModelT&&) FLATBUFFERS_NOEXCEPT = default; + ModelT &operator=(ModelT o) FLATBUFFERS_NOEXCEPT; }; struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -13022,7 +13175,7 @@ struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && - VerifyField(verifier, VT_VERSION) && + VerifyField(verifier, VT_VERSION, 4) && VerifyOffset(verifier, VT_OPERATOR_CODES) && verifier.VerifyVector(operator_codes()) && verifier.VerifyVectorOfTables(operator_codes()) && @@ -13081,7 +13234,6 @@ struct ModelBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - ModelBuilder &operator=(const ModelBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); @@ -13143,7 +13295,7 @@ inline flatbuffers::Offset CreateModelDirect( flatbuffers::Offset CreateModel(flatbuffers::FlatBufferBuilder &_fbb, const ModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); inline CustomQuantizationT *CustomQuantization::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new CustomQuantizationT()); + auto _o = std::unique_ptr(new CustomQuantizationT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13151,7 +13303,7 @@ inline CustomQuantizationT *CustomQuantization::UnPack(const flatbuffers::resolv inline void CustomQuantization::UnPackTo(CustomQuantizationT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = custom(); if (_e) { _o->custom.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->custom[_i] = _e->Get(_i); } } } + { auto _e = custom(); if (_e) { _o->custom.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->custom.begin()); } } } inline flatbuffers::Offset CustomQuantization::Pack(flatbuffers::FlatBufferBuilder &_fbb, const CustomQuantizationT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -13170,7 +13322,7 @@ inline flatbuffers::Offset CreateCustomQuantization(flatbuff } inline QuantizationParametersT *QuantizationParameters::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new QuantizationParametersT()); + auto _o = std::unique_ptr(new QuantizationParametersT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13214,7 +13366,7 @@ inline flatbuffers::Offset CreateQuantizationParameters( } inline Int32VectorT *Int32Vector::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Int32VectorT()); + auto _o = std::unique_ptr(new Int32VectorT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13240,7 +13392,7 @@ inline flatbuffers::Offset CreateInt32Vector(flatbuffers::FlatBuffe } inline Uint16VectorT *Uint16Vector::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Uint16VectorT()); + auto _o = std::unique_ptr(new Uint16VectorT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13267,7 +13419,7 @@ inline flatbuffers::Offset CreateUint16Vector(flatbuffers::FlatBuf } inline Uint8VectorT *Uint8Vector::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Uint8VectorT()); + auto _o = std::unique_ptr(new Uint8VectorT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13275,7 +13427,7 @@ inline Uint8VectorT *Uint8Vector::UnPack(const flatbuffers::resolver_function_t inline void Uint8Vector::UnPackTo(Uint8VectorT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = values(); if (_e) { _o->values.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->values[_i] = _e->Get(_i); } } } + { auto _e = values(); if (_e) { _o->values.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->values.begin()); } } } inline flatbuffers::Offset Uint8Vector::Pack(flatbuffers::FlatBufferBuilder &_fbb, const Uint8VectorT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -13294,7 +13446,7 @@ inline flatbuffers::Offset CreateUint8Vector(flatbuffers::FlatBuffe } inline DimensionMetadataT *DimensionMetadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DimensionMetadataT()); + auto _o = std::unique_ptr(new DimensionMetadataT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13334,8 +13486,22 @@ inline flatbuffers::Offset CreateDimensionMetadata(flatbuffer _array_indices); } +inline SparsityParametersT::SparsityParametersT(const SparsityParametersT &o) + : traversal_order(o.traversal_order), + block_map(o.block_map) { + dim_metadata.reserve(o.dim_metadata.size()); + for (const auto &dim_metadata_ : o.dim_metadata) { dim_metadata.emplace_back((dim_metadata_) ? new tflite::DimensionMetadataT(*dim_metadata_) : nullptr); } +} + +inline SparsityParametersT &SparsityParametersT::operator=(SparsityParametersT o) FLATBUFFERS_NOEXCEPT { + std::swap(traversal_order, o.traversal_order); + std::swap(block_map, o.block_map); + std::swap(dim_metadata, o.dim_metadata); + return *this; +} + inline SparsityParametersT *SparsityParameters::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SparsityParametersT()); + auto _o = std::unique_ptr(new SparsityParametersT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13345,7 +13511,7 @@ inline void SparsityParameters::UnPackTo(SparsityParametersT *_o, const flatbuff (void)_resolver; { auto _e = traversal_order(); if (_e) { _o->traversal_order.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->traversal_order[_i] = _e->Get(_i); } } } { auto _e = block_map(); if (_e) { _o->block_map.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->block_map[_i] = _e->Get(_i); } } } - { auto _e = dim_metadata(); if (_e) { _o->dim_metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dim_metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = dim_metadata(); if (_e) { _o->dim_metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->dim_metadata[_i]) { _e->Get(_i)->UnPackTo(_o->dim_metadata[_i].get(), _resolver); } else { _o->dim_metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } } inline flatbuffers::Offset SparsityParameters::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SparsityParametersT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -13366,8 +13532,68 @@ inline flatbuffers::Offset CreateSparsityParameters(flatbuff _dim_metadata); } +inline VariantSubTypeT *VariantSubType::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new VariantSubTypeT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void VariantSubType::UnPackTo(VariantSubTypeT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = shape(); if (_e) { _o->shape.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->shape[_i] = _e->Get(_i); } } } + { auto _e = type(); _o->type = _e; } + { auto _e = has_rank(); _o->has_rank = _e; } +} + +inline flatbuffers::Offset VariantSubType::Pack(flatbuffers::FlatBufferBuilder &_fbb, const VariantSubTypeT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateVariantSubType(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateVariantSubType(flatbuffers::FlatBufferBuilder &_fbb, const VariantSubTypeT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const VariantSubTypeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _shape = _o->shape.size() ? _fbb.CreateVector(_o->shape) : 0; + auto _type = _o->type; + auto _has_rank = _o->has_rank; + return tflite::CreateVariantSubType( + _fbb, + _shape, + _type, + _has_rank); +} + +inline TensorT::TensorT(const TensorT &o) + : shape(o.shape), + type(o.type), + buffer(o.buffer), + name(o.name), + quantization((o.quantization) ? new tflite::QuantizationParametersT(*o.quantization) : nullptr), + is_variable(o.is_variable), + sparsity((o.sparsity) ? new tflite::SparsityParametersT(*o.sparsity) : nullptr), + shape_signature(o.shape_signature), + has_rank(o.has_rank) { + variant_tensors.reserve(o.variant_tensors.size()); + for (const auto &variant_tensors_ : o.variant_tensors) { variant_tensors.emplace_back((variant_tensors_) ? new tflite::VariantSubTypeT(*variant_tensors_) : nullptr); } +} + +inline TensorT &TensorT::operator=(TensorT o) FLATBUFFERS_NOEXCEPT { + std::swap(shape, o.shape); + std::swap(type, o.type); + std::swap(buffer, o.buffer); + std::swap(name, o.name); + std::swap(quantization, o.quantization); + std::swap(is_variable, o.is_variable); + std::swap(sparsity, o.sparsity); + std::swap(shape_signature, o.shape_signature); + std::swap(has_rank, o.has_rank); + std::swap(variant_tensors, o.variant_tensors); + return *this; +} + inline TensorT *Tensor::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new TensorT()); + auto _o = std::unique_ptr(new TensorT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13379,11 +13605,12 @@ inline void Tensor::UnPackTo(TensorT *_o, const flatbuffers::resolver_function_t { auto _e = type(); _o->type = _e; } { auto _e = buffer(); _o->buffer = _e; } { auto _e = name(); if (_e) _o->name = _e->str(); } - { auto _e = quantization(); if (_e) _o->quantization = std::unique_ptr(_e->UnPack(_resolver)); } + { auto _e = quantization(); if (_e) { if(_o->quantization) { _e->UnPackTo(_o->quantization.get(), _resolver); } else { _o->quantization = std::unique_ptr(_e->UnPack(_resolver)); } } } { auto _e = is_variable(); _o->is_variable = _e; } - { auto _e = sparsity(); if (_e) _o->sparsity = std::unique_ptr(_e->UnPack(_resolver)); } + { auto _e = sparsity(); if (_e) { if(_o->sparsity) { _e->UnPackTo(_o->sparsity.get(), _resolver); } else { _o->sparsity = std::unique_ptr(_e->UnPack(_resolver)); } } } { auto _e = shape_signature(); if (_e) { _o->shape_signature.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->shape_signature[_i] = _e->Get(_i); } } } { auto _e = has_rank(); _o->has_rank = _e; } + { auto _e = variant_tensors(); if (_e) { _o->variant_tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->variant_tensors[_i]) { _e->Get(_i)->UnPackTo(_o->variant_tensors[_i].get(), _resolver); } else { _o->variant_tensors[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } } inline flatbuffers::Offset Tensor::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TensorT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -13403,6 +13630,7 @@ inline flatbuffers::Offset CreateTensor(flatbuffers::FlatBufferBuilder & auto _sparsity = _o->sparsity ? CreateSparsityParameters(_fbb, _o->sparsity.get(), _rehasher) : 0; auto _shape_signature = _o->shape_signature.size() ? _fbb.CreateVector(_o->shape_signature) : 0; auto _has_rank = _o->has_rank; + auto _variant_tensors = _o->variant_tensors.size() ? _fbb.CreateVector> (_o->variant_tensors.size(), [](size_t i, _VectorArgs *__va) { return CreateVariantSubType(*__va->__fbb, __va->__o->variant_tensors[i].get(), __va->__rehasher); }, &_va ) : 0; return tflite::CreateTensor( _fbb, _shape, @@ -13413,11 +13641,12 @@ inline flatbuffers::Offset CreateTensor(flatbuffers::FlatBufferBuilder & _is_variable, _sparsity, _shape_signature, - _has_rank); + _has_rank, + _variant_tensors); } inline Conv2DOptionsT *Conv2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Conv2DOptionsT()); + auto _o = std::unique_ptr(new Conv2DOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13458,7 +13687,7 @@ inline flatbuffers::Offset CreateConv2DOptions(flatbuffers::FlatB } inline Conv3DOptionsT *Conv3DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Conv3DOptionsT()); + auto _o = std::unique_ptr(new Conv3DOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13505,7 +13734,7 @@ inline flatbuffers::Offset CreateConv3DOptions(flatbuffers::FlatB } inline Pool2DOptionsT *Pool2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Pool2DOptionsT()); + auto _o = std::unique_ptr(new Pool2DOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13546,7 +13775,7 @@ inline flatbuffers::Offset CreatePool2DOptions(flatbuffers::FlatB } inline DepthwiseConv2DOptionsT *DepthwiseConv2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DepthwiseConv2DOptionsT()); + auto _o = std::unique_ptr(new DepthwiseConv2DOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13590,7 +13819,7 @@ inline flatbuffers::Offset CreateDepthwiseConv2DOptions( } inline ConcatEmbeddingsOptionsT *ConcatEmbeddingsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ConcatEmbeddingsOptionsT()); + auto _o = std::unique_ptr(new ConcatEmbeddingsOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13622,7 +13851,7 @@ inline flatbuffers::Offset CreateConcatEmbeddingsOption } inline LSHProjectionOptionsT *LSHProjectionOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LSHProjectionOptionsT()); + auto _o = std::unique_ptr(new LSHProjectionOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13648,7 +13877,7 @@ inline flatbuffers::Offset CreateLSHProjectionOptions(flat } inline SVDFOptionsT *SVDFOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SVDFOptionsT()); + auto _o = std::unique_ptr(new SVDFOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13680,7 +13909,7 @@ inline flatbuffers::Offset CreateSVDFOptions(flatbuffers::FlatBuffe } inline RNNOptionsT *RNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new RNNOptionsT()); + auto _o = std::unique_ptr(new RNNOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13709,7 +13938,7 @@ inline flatbuffers::Offset CreateRNNOptions(flatbuffers::FlatBufferB } inline SequenceRNNOptionsT *SequenceRNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SequenceRNNOptionsT()); + auto _o = std::unique_ptr(new SequenceRNNOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13741,7 +13970,7 @@ inline flatbuffers::Offset CreateSequenceRNNOptions(flatbuff } inline BidirectionalSequenceRNNOptionsT *BidirectionalSequenceRNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BidirectionalSequenceRNNOptionsT()); + auto _o = std::unique_ptr(new BidirectionalSequenceRNNOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13776,7 +14005,7 @@ inline flatbuffers::Offset CreateBidirectionalS } inline FullyConnectedOptionsT *FullyConnectedOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new FullyConnectedOptionsT()); + auto _o = std::unique_ptr(new FullyConnectedOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13811,7 +14040,7 @@ inline flatbuffers::Offset CreateFullyConnectedOptions(fl } inline SoftmaxOptionsT *SoftmaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SoftmaxOptionsT()); + auto _o = std::unique_ptr(new SoftmaxOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13837,7 +14066,7 @@ inline flatbuffers::Offset CreateSoftmaxOptions(flatbuffers::Fla } inline ConcatenationOptionsT *ConcatenationOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ConcatenationOptionsT()); + auto _o = std::unique_ptr(new ConcatenationOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13866,7 +14095,7 @@ inline flatbuffers::Offset CreateConcatenationOptions(flat } inline AddOptionsT *AddOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new AddOptionsT()); + auto _o = std::unique_ptr(new AddOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13895,7 +14124,7 @@ inline flatbuffers::Offset CreateAddOptions(flatbuffers::FlatBufferB } inline MulOptionsT *MulOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new MulOptionsT()); + auto _o = std::unique_ptr(new MulOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13921,7 +14150,7 @@ inline flatbuffers::Offset CreateMulOptions(flatbuffers::FlatBufferB } inline L2NormOptionsT *L2NormOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new L2NormOptionsT()); + auto _o = std::unique_ptr(new L2NormOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13947,7 +14176,7 @@ inline flatbuffers::Offset CreateL2NormOptions(flatbuffers::FlatB } inline LocalResponseNormalizationOptionsT *LocalResponseNormalizationOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LocalResponseNormalizationOptionsT()); + auto _o = std::unique_ptr(new LocalResponseNormalizationOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -13982,7 +14211,7 @@ inline flatbuffers::Offset CreateLocalRespons } inline LSTMOptionsT *LSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LSTMOptionsT()); + auto _o = std::unique_ptr(new LSTMOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14020,7 +14249,7 @@ inline flatbuffers::Offset CreateLSTMOptions(flatbuffers::FlatBuffe } inline UnidirectionalSequenceLSTMOptionsT *UnidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UnidirectionalSequenceLSTMOptionsT()); + auto _o = std::unique_ptr(new UnidirectionalSequenceLSTMOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14058,7 +14287,7 @@ inline flatbuffers::Offset CreateUnidirection } inline BidirectionalSequenceLSTMOptionsT *BidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BidirectionalSequenceLSTMOptionsT()); + auto _o = std::unique_ptr(new BidirectionalSequenceLSTMOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14099,7 +14328,7 @@ inline flatbuffers::Offset CreateBidirectional } inline ResizeBilinearOptionsT *ResizeBilinearOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ResizeBilinearOptionsT()); + auto _o = std::unique_ptr(new ResizeBilinearOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14128,7 +14357,7 @@ inline flatbuffers::Offset CreateResizeBilinearOptions(fl } inline ResizeNearestNeighborOptionsT *ResizeNearestNeighborOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ResizeNearestNeighborOptionsT()); + auto _o = std::unique_ptr(new ResizeNearestNeighborOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14157,7 +14386,7 @@ inline flatbuffers::Offset CreateResizeNearestNeig } inline CallOptionsT *CallOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new CallOptionsT()); + auto _o = std::unique_ptr(new CallOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14183,7 +14412,7 @@ inline flatbuffers::Offset CreateCallOptions(flatbuffers::FlatBuffe } inline PadOptionsT *PadOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new PadOptionsT()); + auto _o = std::unique_ptr(new PadOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14206,7 +14435,7 @@ inline flatbuffers::Offset CreatePadOptions(flatbuffers::FlatBufferB } inline PadV2OptionsT *PadV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new PadV2OptionsT()); + auto _o = std::unique_ptr(new PadV2OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14229,7 +14458,7 @@ inline flatbuffers::Offset CreatePadV2Options(flatbuffers::FlatBuf } inline ReshapeOptionsT *ReshapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ReshapeOptionsT()); + auto _o = std::unique_ptr(new ReshapeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14255,7 +14484,7 @@ inline flatbuffers::Offset CreateReshapeOptions(flatbuffers::Fla } inline SpaceToBatchNDOptionsT *SpaceToBatchNDOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SpaceToBatchNDOptionsT()); + auto _o = std::unique_ptr(new SpaceToBatchNDOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14278,7 +14507,7 @@ inline flatbuffers::Offset CreateSpaceToBatchNDOptions(fl } inline BatchToSpaceNDOptionsT *BatchToSpaceNDOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BatchToSpaceNDOptionsT()); + auto _o = std::unique_ptr(new BatchToSpaceNDOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14301,7 +14530,7 @@ inline flatbuffers::Offset CreateBatchToSpaceNDOptions(fl } inline SkipGramOptionsT *SkipGramOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SkipGramOptionsT()); + auto _o = std::unique_ptr(new SkipGramOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14333,7 +14562,7 @@ inline flatbuffers::Offset CreateSkipGramOptions(flatbuffers::F } inline SpaceToDepthOptionsT *SpaceToDepthOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SpaceToDepthOptionsT()); + auto _o = std::unique_ptr(new SpaceToDepthOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14359,7 +14588,7 @@ inline flatbuffers::Offset CreateSpaceToDepthOptions(flatbu } inline DepthToSpaceOptionsT *DepthToSpaceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DepthToSpaceOptionsT()); + auto _o = std::unique_ptr(new DepthToSpaceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14385,7 +14614,7 @@ inline flatbuffers::Offset CreateDepthToSpaceOptions(flatbu } inline SubOptionsT *SubOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SubOptionsT()); + auto _o = std::unique_ptr(new SubOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14414,7 +14643,7 @@ inline flatbuffers::Offset CreateSubOptions(flatbuffers::FlatBufferB } inline DivOptionsT *DivOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DivOptionsT()); + auto _o = std::unique_ptr(new DivOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14440,7 +14669,7 @@ inline flatbuffers::Offset CreateDivOptions(flatbuffers::FlatBufferB } inline TopKV2OptionsT *TopKV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new TopKV2OptionsT()); + auto _o = std::unique_ptr(new TopKV2OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14463,7 +14692,7 @@ inline flatbuffers::Offset CreateTopKV2Options(flatbuffers::FlatB } inline EmbeddingLookupSparseOptionsT *EmbeddingLookupSparseOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new EmbeddingLookupSparseOptionsT()); + auto _o = std::unique_ptr(new EmbeddingLookupSparseOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14489,7 +14718,7 @@ inline flatbuffers::Offset CreateEmbeddingLookupSp } inline GatherOptionsT *GatherOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new GatherOptionsT()); + auto _o = std::unique_ptr(new GatherOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14518,7 +14747,7 @@ inline flatbuffers::Offset CreateGatherOptions(flatbuffers::FlatB } inline TransposeOptionsT *TransposeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new TransposeOptionsT()); + auto _o = std::unique_ptr(new TransposeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14541,7 +14770,7 @@ inline flatbuffers::Offset CreateTransposeOptions(flatbuffers: } inline ExpOptionsT *ExpOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ExpOptionsT()); + auto _o = std::unique_ptr(new ExpOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14564,7 +14793,7 @@ inline flatbuffers::Offset CreateExpOptions(flatbuffers::FlatBufferB } inline CosOptionsT *CosOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new CosOptionsT()); + auto _o = std::unique_ptr(new CosOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14587,7 +14816,7 @@ inline flatbuffers::Offset CreateCosOptions(flatbuffers::FlatBufferB } inline ReducerOptionsT *ReducerOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ReducerOptionsT()); + auto _o = std::unique_ptr(new ReducerOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14613,7 +14842,7 @@ inline flatbuffers::Offset CreateReducerOptions(flatbuffers::Fla } inline SqueezeOptionsT *SqueezeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SqueezeOptionsT()); + auto _o = std::unique_ptr(new SqueezeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14639,7 +14868,7 @@ inline flatbuffers::Offset CreateSqueezeOptions(flatbuffers::Fla } inline SplitOptionsT *SplitOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SplitOptionsT()); + auto _o = std::unique_ptr(new SplitOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14665,7 +14894,7 @@ inline flatbuffers::Offset CreateSplitOptions(flatbuffers::FlatBuf } inline SplitVOptionsT *SplitVOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SplitVOptionsT()); + auto _o = std::unique_ptr(new SplitVOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14691,7 +14920,7 @@ inline flatbuffers::Offset CreateSplitVOptions(flatbuffers::FlatB } inline StridedSliceOptionsT *StridedSliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new StridedSliceOptionsT()); + auto _o = std::unique_ptr(new StridedSliceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14729,7 +14958,7 @@ inline flatbuffers::Offset CreateStridedSliceOptions(flatbu } inline LogSoftmaxOptionsT *LogSoftmaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LogSoftmaxOptionsT()); + auto _o = std::unique_ptr(new LogSoftmaxOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14752,7 +14981,7 @@ inline flatbuffers::Offset CreateLogSoftmaxOptions(flatbuffer } inline CastOptionsT *CastOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new CastOptionsT()); + auto _o = std::unique_ptr(new CastOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14781,7 +15010,7 @@ inline flatbuffers::Offset CreateCastOptions(flatbuffers::FlatBuffe } inline DequantizeOptionsT *DequantizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DequantizeOptionsT()); + auto _o = std::unique_ptr(new DequantizeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14804,7 +15033,7 @@ inline flatbuffers::Offset CreateDequantizeOptions(flatbuffer } inline MaximumMinimumOptionsT *MaximumMinimumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new MaximumMinimumOptionsT()); + auto _o = std::unique_ptr(new MaximumMinimumOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14827,7 +15056,7 @@ inline flatbuffers::Offset CreateMaximumMinimumOptions(fl } inline TileOptionsT *TileOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new TileOptionsT()); + auto _o = std::unique_ptr(new TileOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14850,7 +15079,7 @@ inline flatbuffers::Offset CreateTileOptions(flatbuffers::FlatBuffe } inline ArgMaxOptionsT *ArgMaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ArgMaxOptionsT()); + auto _o = std::unique_ptr(new ArgMaxOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14876,7 +15105,7 @@ inline flatbuffers::Offset CreateArgMaxOptions(flatbuffers::FlatB } inline ArgMinOptionsT *ArgMinOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ArgMinOptionsT()); + auto _o = std::unique_ptr(new ArgMinOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14902,7 +15131,7 @@ inline flatbuffers::Offset CreateArgMinOptions(flatbuffers::FlatB } inline GreaterOptionsT *GreaterOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new GreaterOptionsT()); + auto _o = std::unique_ptr(new GreaterOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14925,7 +15154,7 @@ inline flatbuffers::Offset CreateGreaterOptions(flatbuffers::Fla } inline GreaterEqualOptionsT *GreaterEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new GreaterEqualOptionsT()); + auto _o = std::unique_ptr(new GreaterEqualOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14948,7 +15177,7 @@ inline flatbuffers::Offset CreateGreaterEqualOptions(flatbu } inline LessOptionsT *LessOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LessOptionsT()); + auto _o = std::unique_ptr(new LessOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14971,7 +15200,7 @@ inline flatbuffers::Offset CreateLessOptions(flatbuffers::FlatBuffe } inline LessEqualOptionsT *LessEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LessEqualOptionsT()); + auto _o = std::unique_ptr(new LessEqualOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -14994,7 +15223,7 @@ inline flatbuffers::Offset CreateLessEqualOptions(flatbuffers: } inline NegOptionsT *NegOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new NegOptionsT()); + auto _o = std::unique_ptr(new NegOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15017,7 +15246,7 @@ inline flatbuffers::Offset CreateNegOptions(flatbuffers::FlatBufferB } inline SelectOptionsT *SelectOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SelectOptionsT()); + auto _o = std::unique_ptr(new SelectOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15040,7 +15269,7 @@ inline flatbuffers::Offset CreateSelectOptions(flatbuffers::FlatB } inline SliceOptionsT *SliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SliceOptionsT()); + auto _o = std::unique_ptr(new SliceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15063,7 +15292,7 @@ inline flatbuffers::Offset CreateSliceOptions(flatbuffers::FlatBuf } inline TransposeConvOptionsT *TransposeConvOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new TransposeConvOptionsT()); + auto _o = std::unique_ptr(new TransposeConvOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15095,7 +15324,7 @@ inline flatbuffers::Offset CreateTransposeConvOptions(flat } inline ExpandDimsOptionsT *ExpandDimsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ExpandDimsOptionsT()); + auto _o = std::unique_ptr(new ExpandDimsOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15118,7 +15347,7 @@ inline flatbuffers::Offset CreateExpandDimsOptions(flatbuffer } inline SparseToDenseOptionsT *SparseToDenseOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SparseToDenseOptionsT()); + auto _o = std::unique_ptr(new SparseToDenseOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15144,7 +15373,7 @@ inline flatbuffers::Offset CreateSparseToDenseOptions(flat } inline EqualOptionsT *EqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new EqualOptionsT()); + auto _o = std::unique_ptr(new EqualOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15167,7 +15396,7 @@ inline flatbuffers::Offset CreateEqualOptions(flatbuffers::FlatBuf } inline NotEqualOptionsT *NotEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new NotEqualOptionsT()); + auto _o = std::unique_ptr(new NotEqualOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15190,7 +15419,7 @@ inline flatbuffers::Offset CreateNotEqualOptions(flatbuffers::F } inline ShapeOptionsT *ShapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ShapeOptionsT()); + auto _o = std::unique_ptr(new ShapeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15216,7 +15445,7 @@ inline flatbuffers::Offset CreateShapeOptions(flatbuffers::FlatBuf } inline RankOptionsT *RankOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new RankOptionsT()); + auto _o = std::unique_ptr(new RankOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15239,7 +15468,7 @@ inline flatbuffers::Offset CreateRankOptions(flatbuffers::FlatBuffe } inline PowOptionsT *PowOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new PowOptionsT()); + auto _o = std::unique_ptr(new PowOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15262,7 +15491,7 @@ inline flatbuffers::Offset CreatePowOptions(flatbuffers::FlatBufferB } inline FakeQuantOptionsT *FakeQuantOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new FakeQuantOptionsT()); + auto _o = std::unique_ptr(new FakeQuantOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15297,7 +15526,7 @@ inline flatbuffers::Offset CreateFakeQuantOptions(flatbuffers: } inline PackOptionsT *PackOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new PackOptionsT()); + auto _o = std::unique_ptr(new PackOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15326,7 +15555,7 @@ inline flatbuffers::Offset CreatePackOptions(flatbuffers::FlatBuffe } inline LogicalOrOptionsT *LogicalOrOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LogicalOrOptionsT()); + auto _o = std::unique_ptr(new LogicalOrOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15349,7 +15578,7 @@ inline flatbuffers::Offset CreateLogicalOrOptions(flatbuffers: } inline OneHotOptionsT *OneHotOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new OneHotOptionsT()); + auto _o = std::unique_ptr(new OneHotOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15375,7 +15604,7 @@ inline flatbuffers::Offset CreateOneHotOptions(flatbuffers::FlatB } inline AbsOptionsT *AbsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new AbsOptionsT()); + auto _o = std::unique_ptr(new AbsOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15398,7 +15627,7 @@ inline flatbuffers::Offset CreateAbsOptions(flatbuffers::FlatBufferB } inline HardSwishOptionsT *HardSwishOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new HardSwishOptionsT()); + auto _o = std::unique_ptr(new HardSwishOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15421,7 +15650,7 @@ inline flatbuffers::Offset CreateHardSwishOptions(flatbuffers: } inline LogicalAndOptionsT *LogicalAndOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LogicalAndOptionsT()); + auto _o = std::unique_ptr(new LogicalAndOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15444,7 +15673,7 @@ inline flatbuffers::Offset CreateLogicalAndOptions(flatbuffer } inline LogicalNotOptionsT *LogicalNotOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LogicalNotOptionsT()); + auto _o = std::unique_ptr(new LogicalNotOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15467,7 +15696,7 @@ inline flatbuffers::Offset CreateLogicalNotOptions(flatbuffer } inline UnpackOptionsT *UnpackOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UnpackOptionsT()); + auto _o = std::unique_ptr(new UnpackOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15496,7 +15725,7 @@ inline flatbuffers::Offset CreateUnpackOptions(flatbuffers::FlatB } inline FloorDivOptionsT *FloorDivOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new FloorDivOptionsT()); + auto _o = std::unique_ptr(new FloorDivOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15519,7 +15748,7 @@ inline flatbuffers::Offset CreateFloorDivOptions(flatbuffers::F } inline SquareOptionsT *SquareOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SquareOptionsT()); + auto _o = std::unique_ptr(new SquareOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15542,7 +15771,7 @@ inline flatbuffers::Offset CreateSquareOptions(flatbuffers::FlatB } inline ZerosLikeOptionsT *ZerosLikeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ZerosLikeOptionsT()); + auto _o = std::unique_ptr(new ZerosLikeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15565,7 +15794,7 @@ inline flatbuffers::Offset CreateZerosLikeOptions(flatbuffers: } inline FillOptionsT *FillOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new FillOptionsT()); + auto _o = std::unique_ptr(new FillOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15588,7 +15817,7 @@ inline flatbuffers::Offset CreateFillOptions(flatbuffers::FlatBuffe } inline FloorModOptionsT *FloorModOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new FloorModOptionsT()); + auto _o = std::unique_ptr(new FloorModOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15611,7 +15840,7 @@ inline flatbuffers::Offset CreateFloorModOptions(flatbuffers::F } inline RangeOptionsT *RangeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new RangeOptionsT()); + auto _o = std::unique_ptr(new RangeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15634,7 +15863,7 @@ inline flatbuffers::Offset CreateRangeOptions(flatbuffers::FlatBuf } inline LeakyReluOptionsT *LeakyReluOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new LeakyReluOptionsT()); + auto _o = std::unique_ptr(new LeakyReluOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15660,7 +15889,7 @@ inline flatbuffers::Offset CreateLeakyReluOptions(flatbuffers: } inline SquaredDifferenceOptionsT *SquaredDifferenceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SquaredDifferenceOptionsT()); + auto _o = std::unique_ptr(new SquaredDifferenceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15683,7 +15912,7 @@ inline flatbuffers::Offset CreateSquaredDifferenceOpti } inline MirrorPadOptionsT *MirrorPadOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new MirrorPadOptionsT()); + auto _o = std::unique_ptr(new MirrorPadOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15709,7 +15938,7 @@ inline flatbuffers::Offset CreateMirrorPadOptions(flatbuffers: } inline UniqueOptionsT *UniqueOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UniqueOptionsT()); + auto _o = std::unique_ptr(new UniqueOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15735,7 +15964,7 @@ inline flatbuffers::Offset CreateUniqueOptions(flatbuffers::FlatB } inline ReverseV2OptionsT *ReverseV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ReverseV2OptionsT()); + auto _o = std::unique_ptr(new ReverseV2OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15758,7 +15987,7 @@ inline flatbuffers::Offset CreateReverseV2Options(flatbuffers: } inline AddNOptionsT *AddNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new AddNOptionsT()); + auto _o = std::unique_ptr(new AddNOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15781,7 +16010,7 @@ inline flatbuffers::Offset CreateAddNOptions(flatbuffers::FlatBuffe } inline GatherNdOptionsT *GatherNdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new GatherNdOptionsT()); + auto _o = std::unique_ptr(new GatherNdOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15804,7 +16033,7 @@ inline flatbuffers::Offset CreateGatherNdOptions(flatbuffers::F } inline WhereOptionsT *WhereOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new WhereOptionsT()); + auto _o = std::unique_ptr(new WhereOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15827,7 +16056,7 @@ inline flatbuffers::Offset CreateWhereOptions(flatbuffers::FlatBuf } inline ReverseSequenceOptionsT *ReverseSequenceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ReverseSequenceOptionsT()); + auto _o = std::unique_ptr(new ReverseSequenceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15856,7 +16085,7 @@ inline flatbuffers::Offset CreateReverseSequenceOptions( } inline MatrixDiagOptionsT *MatrixDiagOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new MatrixDiagOptionsT()); + auto _o = std::unique_ptr(new MatrixDiagOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15879,7 +16108,7 @@ inline flatbuffers::Offset CreateMatrixDiagOptions(flatbuffer } inline QuantizeOptionsT *QuantizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new QuantizeOptionsT()); + auto _o = std::unique_ptr(new QuantizeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15902,7 +16131,7 @@ inline flatbuffers::Offset CreateQuantizeOptions(flatbuffers::F } inline MatrixSetDiagOptionsT *MatrixSetDiagOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new MatrixSetDiagOptionsT()); + auto _o = std::unique_ptr(new MatrixSetDiagOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15925,7 +16154,7 @@ inline flatbuffers::Offset CreateMatrixSetDiagOptions(flat } inline IfOptionsT *IfOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new IfOptionsT()); + auto _o = std::unique_ptr(new IfOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15954,7 +16183,7 @@ inline flatbuffers::Offset CreateIfOptions(flatbuffers::FlatBufferBui } inline CallOnceOptionsT *CallOnceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new CallOnceOptionsT()); + auto _o = std::unique_ptr(new CallOnceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -15980,7 +16209,7 @@ inline flatbuffers::Offset CreateCallOnceOptions(flatbuffers::F } inline WhileOptionsT *WhileOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new WhileOptionsT()); + auto _o = std::unique_ptr(new WhileOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16009,7 +16238,7 @@ inline flatbuffers::Offset CreateWhileOptions(flatbuffers::FlatBuf } inline NonMaxSuppressionV4OptionsT *NonMaxSuppressionV4Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new NonMaxSuppressionV4OptionsT()); + auto _o = std::unique_ptr(new NonMaxSuppressionV4OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16032,7 +16261,7 @@ inline flatbuffers::Offset CreateNonMaxSuppressionV4 } inline NonMaxSuppressionV5OptionsT *NonMaxSuppressionV5Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new NonMaxSuppressionV5OptionsT()); + auto _o = std::unique_ptr(new NonMaxSuppressionV5OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16055,7 +16284,7 @@ inline flatbuffers::Offset CreateNonMaxSuppressionV5 } inline ScatterNdOptionsT *ScatterNdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ScatterNdOptionsT()); + auto _o = std::unique_ptr(new ScatterNdOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16078,7 +16307,7 @@ inline flatbuffers::Offset CreateScatterNdOptions(flatbuffers: } inline SelectV2OptionsT *SelectV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SelectV2OptionsT()); + auto _o = std::unique_ptr(new SelectV2OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16101,7 +16330,7 @@ inline flatbuffers::Offset CreateSelectV2Options(flatbuffers::F } inline DensifyOptionsT *DensifyOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DensifyOptionsT()); + auto _o = std::unique_ptr(new DensifyOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16124,7 +16353,7 @@ inline flatbuffers::Offset CreateDensifyOptions(flatbuffers::Fla } inline SegmentSumOptionsT *SegmentSumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SegmentSumOptionsT()); + auto _o = std::unique_ptr(new SegmentSumOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16147,7 +16376,7 @@ inline flatbuffers::Offset CreateSegmentSumOptions(flatbuffer } inline BatchMatMulOptionsT *BatchMatMulOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BatchMatMulOptionsT()); + auto _o = std::unique_ptr(new BatchMatMulOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16179,7 +16408,7 @@ inline flatbuffers::Offset CreateBatchMatMulOptions(flatbuff } inline CumsumOptionsT *CumsumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new CumsumOptionsT()); + auto _o = std::unique_ptr(new CumsumOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16208,7 +16437,7 @@ inline flatbuffers::Offset CreateCumsumOptions(flatbuffers::FlatB } inline BroadcastToOptionsT *BroadcastToOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BroadcastToOptionsT()); + auto _o = std::unique_ptr(new BroadcastToOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16231,7 +16460,7 @@ inline flatbuffers::Offset CreateBroadcastToOptions(flatbuff } inline Rfft2dOptionsT *Rfft2dOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new Rfft2dOptionsT()); + auto _o = std::unique_ptr(new Rfft2dOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16254,7 +16483,7 @@ inline flatbuffers::Offset CreateRfft2dOptions(flatbuffers::FlatB } inline HashtableOptionsT *HashtableOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new HashtableOptionsT()); + auto _o = std::unique_ptr(new HashtableOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16286,7 +16515,7 @@ inline flatbuffers::Offset CreateHashtableOptions(flatbuffers: } inline HashtableFindOptionsT *HashtableFindOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new HashtableFindOptionsT()); + auto _o = std::unique_ptr(new HashtableFindOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16309,7 +16538,7 @@ inline flatbuffers::Offset CreateHashtableFindOptions(flat } inline HashtableImportOptionsT *HashtableImportOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new HashtableImportOptionsT()); + auto _o = std::unique_ptr(new HashtableImportOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16332,7 +16561,7 @@ inline flatbuffers::Offset CreateHashtableImportOptions( } inline HashtableSizeOptionsT *HashtableSizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new HashtableSizeOptionsT()); + auto _o = std::unique_ptr(new HashtableSizeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16355,7 +16584,7 @@ inline flatbuffers::Offset CreateHashtableSizeOptions(flat } inline VarHandleOptionsT *VarHandleOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new VarHandleOptionsT()); + auto _o = std::unique_ptr(new VarHandleOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16384,7 +16613,7 @@ inline flatbuffers::Offset CreateVarHandleOptions(flatbuffers: } inline ReadVariableOptionsT *ReadVariableOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ReadVariableOptionsT()); + auto _o = std::unique_ptr(new ReadVariableOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16407,7 +16636,7 @@ inline flatbuffers::Offset CreateReadVariableOptions(flatbu } inline AssignVariableOptionsT *AssignVariableOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new AssignVariableOptionsT()); + auto _o = std::unique_ptr(new AssignVariableOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16430,7 +16659,7 @@ inline flatbuffers::Offset CreateAssignVariableOptions(fl } inline RandomOptionsT *RandomOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new RandomOptionsT()); + auto _o = std::unique_ptr(new RandomOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16459,7 +16688,7 @@ inline flatbuffers::Offset CreateRandomOptions(flatbuffers::FlatB } inline BucketizeOptionsT *BucketizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BucketizeOptionsT()); + auto _o = std::unique_ptr(new BucketizeOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16485,7 +16714,7 @@ inline flatbuffers::Offset CreateBucketizeOptions(flatbuffers: } inline GeluOptionsT *GeluOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new GeluOptionsT()); + auto _o = std::unique_ptr(new GeluOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16511,7 +16740,7 @@ inline flatbuffers::Offset CreateGeluOptions(flatbuffers::FlatBuffe } inline DynamicUpdateSliceOptionsT *DynamicUpdateSliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new DynamicUpdateSliceOptionsT()); + auto _o = std::unique_ptr(new DynamicUpdateSliceOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16534,7 +16763,7 @@ inline flatbuffers::Offset CreateDynamicUpdateSliceOp } inline UnsortedSegmentProdOptionsT *UnsortedSegmentProdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UnsortedSegmentProdOptionsT()); + auto _o = std::unique_ptr(new UnsortedSegmentProdOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16557,7 +16786,7 @@ inline flatbuffers::Offset CreateUnsortedSegmentProd } inline UnsortedSegmentMaxOptionsT *UnsortedSegmentMaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UnsortedSegmentMaxOptionsT()); + auto _o = std::unique_ptr(new UnsortedSegmentMaxOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16580,7 +16809,7 @@ inline flatbuffers::Offset CreateUnsortedSegmentMaxOp } inline UnsortedSegmentSumOptionsT *UnsortedSegmentSumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UnsortedSegmentSumOptionsT()); + auto _o = std::unique_ptr(new UnsortedSegmentSumOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16603,7 +16832,7 @@ inline flatbuffers::Offset CreateUnsortedSegmentSumOp } inline ATan2OptionsT *ATan2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ATan2OptionsT()); + auto _o = std::unique_ptr(new ATan2OptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16626,7 +16855,7 @@ inline flatbuffers::Offset CreateATan2Options(flatbuffers::FlatBuf } inline UnsortedSegmentMinOptionsT *UnsortedSegmentMinOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new UnsortedSegmentMinOptionsT()); + auto _o = std::unique_ptr(new UnsortedSegmentMinOptionsT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16648,8 +16877,31 @@ inline flatbuffers::Offset CreateUnsortedSegmentMinOp _fbb); } +inline SignOptionsT *SignOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new SignOptionsT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void SignOptions::UnPackTo(SignOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; +} + +inline flatbuffers::Offset SignOptions::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SignOptionsT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateSignOptions(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateSignOptions(flatbuffers::FlatBufferBuilder &_fbb, const SignOptionsT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SignOptionsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + return tflite::CreateSignOptions( + _fbb); +} + inline OperatorCodeT *OperatorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new OperatorCodeT()); + auto _o = std::unique_ptr(new OperatorCodeT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16684,7 +16936,7 @@ inline flatbuffers::Offset CreateOperatorCode(flatbuffers::FlatBuf } inline OperatorT *Operator::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new OperatorT()); + auto _o = std::unique_ptr(new OperatorT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16697,7 +16949,7 @@ inline void Operator::UnPackTo(OperatorT *_o, const flatbuffers::resolver_functi { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = _e->Get(_i); } } } { auto _e = builtin_options_type(); _o->builtin_options.type = _e; } { auto _e = builtin_options(); if (_e) _o->builtin_options.value = tflite::BuiltinOptionsUnion::UnPack(_e, builtin_options_type(), _resolver); } - { auto _e = custom_options(); if (_e) { _o->custom_options.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->custom_options[_i] = _e->Get(_i); } } } + { auto _e = custom_options(); if (_e) { _o->custom_options.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->custom_options.begin()); } } { auto _e = custom_options_format(); _o->custom_options_format = _e; } { auto _e = mutating_variable_inputs(); if (_e) { _o->mutating_variable_inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->mutating_variable_inputs[_i] = _e->Get(_i) != 0; } } } { auto _e = intermediates(); if (_e) { _o->intermediates.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->intermediates[_i] = _e->Get(_i); } } } @@ -16733,8 +16985,27 @@ inline flatbuffers::Offset CreateOperator(flatbuffers::FlatBufferBuild _intermediates); } +inline SubGraphT::SubGraphT(const SubGraphT &o) + : inputs(o.inputs), + outputs(o.outputs), + name(o.name) { + tensors.reserve(o.tensors.size()); + for (const auto &tensors_ : o.tensors) { tensors.emplace_back((tensors_) ? new tflite::TensorT(*tensors_) : nullptr); } + operators.reserve(o.operators.size()); + for (const auto &operators_ : o.operators) { operators.emplace_back((operators_) ? new tflite::OperatorT(*operators_) : nullptr); } +} + +inline SubGraphT &SubGraphT::operator=(SubGraphT o) FLATBUFFERS_NOEXCEPT { + std::swap(tensors, o.tensors); + std::swap(inputs, o.inputs); + std::swap(outputs, o.outputs); + std::swap(operators, o.operators); + std::swap(name, o.name); + return *this; +} + inline SubGraphT *SubGraph::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SubGraphT()); + auto _o = std::unique_ptr(new SubGraphT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16742,10 +17013,10 @@ inline SubGraphT *SubGraph::UnPack(const flatbuffers::resolver_function_t *_reso inline void SubGraph::UnPackTo(SubGraphT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = tensors(); if (_e) { _o->tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tensors[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = tensors(); if (_e) { _o->tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->tensors[_i]) { _e->Get(_i)->UnPackTo(_o->tensors[_i].get(), _resolver); } else { _o->tensors[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = _e->Get(_i); } } } { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = _e->Get(_i); } } } - { auto _e = operators(); if (_e) { _o->operators.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->operators[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = operators(); if (_e) { _o->operators.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->operators[_i]) { _e->Get(_i)->UnPackTo(_o->operators[_i].get(), _resolver); } else { _o->operators[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } { auto _e = name(); if (_e) _o->name = _e->str(); } } @@ -16772,7 +17043,7 @@ inline flatbuffers::Offset CreateSubGraph(flatbuffers::FlatBufferBuild } inline BufferT *Buffer::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new BufferT()); + auto _o = std::unique_ptr(new BufferT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16780,7 +17051,7 @@ inline BufferT *Buffer::UnPack(const flatbuffers::resolver_function_t *_resolver inline void Buffer::UnPackTo(BufferT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = data(); if (_e) { _o->data.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->data[_i] = _e->Get(_i); } } } + { auto _e = data(); if (_e) { _o->data.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->data.begin()); } } } inline flatbuffers::Offset Buffer::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BufferT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -16799,7 +17070,7 @@ inline flatbuffers::Offset CreateBuffer(flatbuffers::FlatBufferBuilder & } inline MetadataT *Metadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new MetadataT()); + auto _o = std::unique_ptr(new MetadataT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16828,7 +17099,7 @@ inline flatbuffers::Offset CreateMetadata(flatbuffers::FlatBufferBuild } inline TensorMapT *TensorMap::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new TensorMapT()); + auto _o = std::unique_ptr(new TensorMapT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16856,8 +17127,25 @@ inline flatbuffers::Offset CreateTensorMap(flatbuffers::FlatBufferBui _tensor_index); } +inline SignatureDefT::SignatureDefT(const SignatureDefT &o) + : signature_key(o.signature_key), + subgraph_index(o.subgraph_index) { + inputs.reserve(o.inputs.size()); + for (const auto &inputs_ : o.inputs) { inputs.emplace_back((inputs_) ? new tflite::TensorMapT(*inputs_) : nullptr); } + outputs.reserve(o.outputs.size()); + for (const auto &outputs_ : o.outputs) { outputs.emplace_back((outputs_) ? new tflite::TensorMapT(*outputs_) : nullptr); } +} + +inline SignatureDefT &SignatureDefT::operator=(SignatureDefT o) FLATBUFFERS_NOEXCEPT { + std::swap(inputs, o.inputs); + std::swap(outputs, o.outputs); + std::swap(signature_key, o.signature_key); + std::swap(subgraph_index, o.subgraph_index); + return *this; +} + inline SignatureDefT *SignatureDef::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new SignatureDefT()); + auto _o = std::unique_ptr(new SignatureDefT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16865,8 +17153,8 @@ inline SignatureDefT *SignatureDef::UnPack(const flatbuffers::resolver_function_ inline void SignatureDef::UnPackTo(SignatureDefT *_o, const flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } - { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->inputs[_i]) { _e->Get(_i)->UnPackTo(_o->inputs[_i].get(), _resolver); } else { _o->inputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->outputs[_i]) { _e->Get(_i)->UnPackTo(_o->outputs[_i].get(), _resolver); } else { _o->outputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } { auto _e = signature_key(); if (_e) _o->signature_key = _e->str(); } { auto _e = subgraph_index(); _o->subgraph_index = _e; } } @@ -16891,8 +17179,36 @@ inline flatbuffers::Offset CreateSignatureDef(flatbuffers::FlatBuf _subgraph_index); } +inline ModelT::ModelT(const ModelT &o) + : version(o.version), + description(o.description), + metadata_buffer(o.metadata_buffer) { + operator_codes.reserve(o.operator_codes.size()); + for (const auto &operator_codes_ : o.operator_codes) { operator_codes.emplace_back((operator_codes_) ? new tflite::OperatorCodeT(*operator_codes_) : nullptr); } + subgraphs.reserve(o.subgraphs.size()); + for (const auto &subgraphs_ : o.subgraphs) { subgraphs.emplace_back((subgraphs_) ? new tflite::SubGraphT(*subgraphs_) : nullptr); } + buffers.reserve(o.buffers.size()); + for (const auto &buffers_ : o.buffers) { buffers.emplace_back((buffers_) ? new tflite::BufferT(*buffers_) : nullptr); } + metadata.reserve(o.metadata.size()); + for (const auto &metadata_ : o.metadata) { metadata.emplace_back((metadata_) ? new tflite::MetadataT(*metadata_) : nullptr); } + signature_defs.reserve(o.signature_defs.size()); + for (const auto &signature_defs_ : o.signature_defs) { signature_defs.emplace_back((signature_defs_) ? new tflite::SignatureDefT(*signature_defs_) : nullptr); } +} + +inline ModelT &ModelT::operator=(ModelT o) FLATBUFFERS_NOEXCEPT { + std::swap(version, o.version); + std::swap(operator_codes, o.operator_codes); + std::swap(subgraphs, o.subgraphs); + std::swap(description, o.description); + std::swap(buffers, o.buffers); + std::swap(metadata_buffer, o.metadata_buffer); + std::swap(metadata, o.metadata); + std::swap(signature_defs, o.signature_defs); + return *this; +} + inline ModelT *Model::UnPack(const flatbuffers::resolver_function_t *_resolver) const { - std::unique_ptr _o = std::unique_ptr(new ModelT()); + auto _o = std::unique_ptr(new ModelT()); UnPackTo(_o.get(), _resolver); return _o.release(); } @@ -16901,13 +17217,13 @@ inline void Model::UnPackTo(ModelT *_o, const flatbuffers::resolver_function_t * (void)_o; (void)_resolver; { auto _e = version(); _o->version = _e; } - { auto _e = operator_codes(); if (_e) { _o->operator_codes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->operator_codes[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } - { auto _e = subgraphs(); if (_e) { _o->subgraphs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->subgraphs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = operator_codes(); if (_e) { _o->operator_codes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->operator_codes[_i]) { _e->Get(_i)->UnPackTo(_o->operator_codes[_i].get(), _resolver); } else { _o->operator_codes[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = subgraphs(); if (_e) { _o->subgraphs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->subgraphs[_i]) { _e->Get(_i)->UnPackTo(_o->subgraphs[_i].get(), _resolver); } else { _o->subgraphs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } { auto _e = description(); if (_e) _o->description = _e->str(); } - { auto _e = buffers(); if (_e) { _o->buffers.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->buffers[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = buffers(); if (_e) { _o->buffers.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->buffers[_i]) { _e->Get(_i)->UnPackTo(_o->buffers[_i].get(), _resolver); } else { _o->buffers[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } { auto _e = metadata_buffer(); if (_e) { _o->metadata_buffer.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metadata_buffer[_i] = _e->Get(_i); } } } - { auto _e = metadata(); if (_e) { _o->metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } - { auto _e = signature_defs(); if (_e) { _o->signature_defs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->signature_defs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } + { auto _e = metadata(); if (_e) { _o->metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->metadata[_i]) { _e->Get(_i)->UnPackTo(_o->metadata[_i].get(), _resolver); } else { _o->metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = signature_defs(); if (_e) { _o->signature_defs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->signature_defs[_i]) { _e->Get(_i)->UnPackTo(_o->signature_defs[_i].get(), _resolver); } else { _o->signature_defs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } } inline flatbuffers::Offset Model::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -16964,6 +17280,7 @@ inline bool VerifyQuantizationDetailsVector(flatbuffers::Verifier &verifier, con } inline void *QuantizationDetailsUnion::UnPack(const void *obj, QuantizationDetails type, const flatbuffers::resolver_function_t *resolver) { + (void)resolver; switch (type) { case QuantizationDetails_CustomQuantization: { auto ptr = reinterpret_cast(obj); @@ -16974,6 +17291,7 @@ inline void *QuantizationDetailsUnion::UnPack(const void *obj, QuantizationDetai } inline flatbuffers::Offset QuantizationDetailsUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { + (void)_rehasher; switch (type) { case QuantizationDetails_CustomQuantization: { auto ptr = reinterpret_cast(value); @@ -17041,6 +17359,7 @@ inline bool VerifySparseIndexVectorVector(flatbuffers::Verifier &verifier, const } inline void *SparseIndexVectorUnion::UnPack(const void *obj, SparseIndexVector type, const flatbuffers::resolver_function_t *resolver) { + (void)resolver; switch (type) { case SparseIndexVector_Int32Vector: { auto ptr = reinterpret_cast(obj); @@ -17059,6 +17378,7 @@ inline void *SparseIndexVectorUnion::UnPack(const void *obj, SparseIndexVector t } inline flatbuffers::Offset SparseIndexVectorUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { + (void)_rehasher; switch (type) { case SparseIndexVector_Int32Vector: { auto ptr = reinterpret_cast(value); @@ -17611,6 +17931,10 @@ inline bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *ob auto ptr = reinterpret_cast(obj); return verifier.VerifyTable(ptr); } + case BuiltinOptions_SignOptions: { + auto ptr = reinterpret_cast(obj); + return verifier.VerifyTable(ptr); + } default: return true; } } @@ -17628,6 +17952,7 @@ inline bool VerifyBuiltinOptionsVector(flatbuffers::Verifier &verifier, const fl } inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, const flatbuffers::resolver_function_t *resolver) { + (void)resolver; switch (type) { case BuiltinOptions_Conv2DOptions: { auto ptr = reinterpret_cast(obj); @@ -18117,11 +18442,16 @@ inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, c auto ptr = reinterpret_cast(obj); return ptr->UnPack(resolver); } + case BuiltinOptions_SignOptions: { + auto ptr = reinterpret_cast(obj); + return ptr->UnPack(resolver); + } default: return nullptr; } } inline flatbuffers::Offset BuiltinOptionsUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { + (void)_rehasher; switch (type) { case BuiltinOptions_Conv2DOptions: { auto ptr = reinterpret_cast(value); @@ -18611,6 +18941,10 @@ inline flatbuffers::Offset BuiltinOptionsUnion::Pack(flatbuffers::FlatBuff auto ptr = reinterpret_cast(value); return CreateATan2Options(_fbb, ptr, _rehasher).Union(); } + case BuiltinOptions_SignOptions: { + auto ptr = reinterpret_cast(value); + return CreateSignOptions(_fbb, ptr, _rehasher).Union(); + } default: return 0; } } @@ -19105,6 +19439,10 @@ inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) : value = new tflite::ATan2OptionsT(*reinterpret_cast(u.value)); break; } + case BuiltinOptions_SignOptions: { + value = new tflite::SignOptionsT(*reinterpret_cast(u.value)); + break; + } default: break; } @@ -19722,6 +20060,11 @@ inline void BuiltinOptionsUnion::Reset() { delete ptr; break; } + case BuiltinOptions_SignOptions: { + auto ptr = reinterpret_cast(value); + delete ptr; + break; + } default: break; } value = nullptr; @@ -19745,6 +20088,11 @@ inline bool ModelBufferHasIdentifier(const void *buf) { buf, ModelIdentifier()); } +inline bool SizePrefixedModelBufferHasIdentifier(const void *buf) { + return flatbuffers::BufferHasIdentifier( + buf, ModelIdentifier(), true); +} + inline bool VerifyModelBuffer( flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(ModelIdentifier()); diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/base.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/base.h index 371b6fdb..5f2158e0 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/base.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/base.h @@ -150,7 +150,7 @@ #define FLATBUFFERS_VERSION_MAJOR 2 #define FLATBUFFERS_VERSION_MINOR 0 -#define FLATBUFFERS_VERSION_REVISION 5 +#define FLATBUFFERS_VERSION_REVISION 6 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { @@ -270,9 +270,12 @@ namespace flatbuffers { #endif // !FLATBUFFERS_HAS_NEW_STRTOD #ifndef FLATBUFFERS_LOCALE_INDEPENDENT - // Enable locale independent functions {strtof_l, strtod_l,strtoll_l, strtoull_l}. - #if ((defined(_MSC_VER) && _MSC_VER >= 1800) || \ - (defined(_XOPEN_VERSION) && (_XOPEN_VERSION>=700)) && (!defined(__ANDROID_API__) || (defined(__ANDROID_API__) && (__ANDROID_API__>=21)))) + // Enable locale independent functions {strtof_l, strtod_l,strtoll_l, + // strtoull_l}. + #if (defined(_MSC_VER) && _MSC_VER >= 1800) || \ + (defined(__ANDROID_API__) && __ANDROID_API__>= 21) || \ + (defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 700)) && \ + (!defined(__Fuchsia__) && !defined(__ANDROID_API__)) #define FLATBUFFERS_LOCALE_INDEPENDENT 1 #else #define FLATBUFFERS_LOCALE_INDEPENDENT 0 @@ -338,8 +341,17 @@ typedef uintmax_t largest_scalar_t; // In 32bits, this evaluates to 2GB - 1 #define FLATBUFFERS_MAX_BUFFER_SIZE ((1ULL << (sizeof(::flatbuffers::soffset_t) * 8 - 1)) - 1) +// The minimum size buffer that can be a valid flatbuffer. +// Includes the offset to the root table (uoffset_t), the offset to the vtable +// of the root table (soffset_t), the size of the vtable (uint16_t), and the +// size of the referring table (uint16_t). +#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(uoffset_t) + sizeof(soffset_t) + \ + sizeof(uint16_t) + sizeof(uint16_t) + // We support aligning the contents of buffers up to this size. -#define FLATBUFFERS_MAX_ALIGNMENT 16 +#ifndef FLATBUFFERS_MAX_ALIGNMENT + #define FLATBUFFERS_MAX_ALIGNMENT 32 +#endif /// @brief The length of a FlatBuffer file header. static const size_t kFileIdentifierLength = 4; diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h index 8be4efbe..aa02f50d 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffer_builder.h @@ -18,6 +18,7 @@ #define FLATBUFFERS_FLATBUFFER_BUILDER_H_ #include +#include #include "flatbuffers/allocator.h" #include "flatbuffers/array.h" @@ -42,14 +43,15 @@ inline voffset_t FieldIndexToOffset(voffset_t field_id) { return static_cast((field_id + fixed_fields) * sizeof(voffset_t)); } -template +template> const T *data(const std::vector &v) { // Eventually the returned pointer gets passed down to memcpy, so // we need it to be non-null to avoid undefined behavior. static uint8_t t; return v.empty() ? reinterpret_cast(&t) : &v.front(); } -template T *data(std::vector &v) { +template> +T *data(std::vector &v) { // Eventually the returned pointer gets passed down to memcpy, so // we need it to be non-null to avoid undefined behavior. static uint8_t t; @@ -285,9 +287,7 @@ class FlatBufferBuilder { FieldLoc fl = { off, field }; buf_.scratch_push_small(fl); num_field_loc++; - if (field > max_voffset_) { - max_voffset_ = field; - } + if (field > max_voffset_) { max_voffset_ = field; } } // Like PushElement, but additionally tracks the field this represents. @@ -443,6 +443,7 @@ class FlatBufferBuilder { // Aligns such that when "len" bytes are written, an object can be written // after it with "alignment" without padding. void PreAlign(size_t len, size_t alignment) { + if (len == 0) return; TrackMinAlign(alignment); buf_.fill(PaddingBytes(GetSize() + len, alignment)); } @@ -601,12 +602,14 @@ class FlatBufferBuilder { // This is useful when storing a nested_flatbuffer in a vector of bytes, // or when storing SIMD floats, etc. void ForceVectorAlignment(size_t len, size_t elemsize, size_t alignment) { + if (len == 0) return; FLATBUFFERS_ASSERT(VerifyAlignmentRequirements(alignment)); PreAlign(len * elemsize, alignment); } // Similar to ForceVectorAlignment but for String fields. void ForceStringAlignment(size_t len, size_t alignment) { + if (len == 0) return; FLATBUFFERS_ASSERT(VerifyAlignmentRequirements(alignment)); PreAlign((len + 1) * sizeof(char), alignment); } @@ -642,6 +645,27 @@ class FlatBufferBuilder { return Offset>(EndVector(len)); } + /// @brief Serialize an array like object into a FlatBuffer `vector`. + /// @tparam T The data type of the array elements. + /// @tparam C The type of the array. + /// @param[in] array A reference to an array like object of type `T` to + /// serialize into the buffer as a `vector`. + /// @return Returns a typed `Offset` into the serialized data indicating + /// where the vector is stored. + template Offset> CreateVector(const C &array) { + return CreateVector(array.data(), array.size()); + } + + /// @brief Serialize an initializer list into a FlatBuffer `vector`. + /// @tparam T The data type of the initializer list elements. + /// @param[in] v The value of the initializer list. + /// @return Returns a typed `Offset` into the serialized data indicating + /// where the vector is stored. + template + Offset> CreateVector(std::initializer_list v) { + return CreateVector(v.begin(), v.size()); + } + template Offset>> CreateVector(const Offset *v, size_t len) { StartVector(len, sizeof(Offset)); @@ -655,7 +679,7 @@ class FlatBufferBuilder { /// buffer as a `vector`. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset> CreateVector(const std::vector &v) { return CreateVector(data(v), v.size()); } @@ -706,15 +730,18 @@ class FlatBufferBuilder { return CreateVector(elems); } - /// @brief Serialize a `std::vector` into a FlatBuffer `vector`. + /// @brief Serialize a `std::vector` into a FlatBuffer `vector`. + /// whereas StringType is any type that is accepted by the CreateString() + /// overloads. /// This is a convenience function for a common case. /// @param v A const reference to the `std::vector` to serialize into the /// buffer as a `vector`. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset>> CreateVectorOfStrings( - const std::vector &v) { + const std::vector &v) { return CreateVectorOfStrings(v.cbegin(), v.cend()); } @@ -841,7 +868,7 @@ class FlatBufferBuilder { /// serialize into the buffer as a `vector`. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset> CreateVectorOfStructs( const std::vector &v) { return CreateVectorOfStructs(data(v), v.size()); @@ -857,7 +884,7 @@ class FlatBufferBuilder { /// to the FlatBuffer struct. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset> CreateVectorOfNativeStructs( const std::vector &v, T (*const pack_func)(const S &)) { return CreateVectorOfNativeStructs(data(v), v.size(), pack_func); @@ -871,7 +898,7 @@ class FlatBufferBuilder { /// serialize into the buffer as a `vector`. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset> CreateVectorOfNativeStructs( const std::vector &v) { return CreateVectorOfNativeStructs(data(v), v.size()); @@ -892,7 +919,7 @@ class FlatBufferBuilder { /// serialize into the buffer as a `vector`. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset> CreateVectorOfSortedStructs( std::vector *v) { return CreateVectorOfSortedStructs(data(*v), v->size()); @@ -906,7 +933,7 @@ class FlatBufferBuilder { /// serialize into the buffer as a `vector`. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset> CreateVectorOfSortedNativeStructs( std::vector *v) { return CreateVectorOfSortedNativeStructs(data(*v), v->size()); @@ -922,7 +949,7 @@ class FlatBufferBuilder { /// where the vector is stored. template Offset> CreateVectorOfSortedStructs(T *v, size_t len) { - std::sort(v, v + len, StructKeyComparator()); + std::stable_sort(v, v + len, StructKeyComparator()); return CreateVectorOfStructs(v, len); } @@ -941,7 +968,7 @@ class FlatBufferBuilder { extern T Pack(const S &); auto structs = StartVectorOfStructs(len); for (size_t i = 0; i < len; i++) { structs[i] = Pack(v[i]); } - std::sort(structs, structs + len, StructKeyComparator()); + std::stable_sort(structs, structs + len, StructKeyComparator()); return EndVectorOfStructs(len); } @@ -973,7 +1000,7 @@ class FlatBufferBuilder { template Offset>> CreateVectorOfSortedTables(Offset *v, size_t len) { - std::sort(v, v + len, TableKeyComparator(buf_)); + std::stable_sort(v, v + len, TableKeyComparator(buf_)); return CreateVector(v, len); } @@ -984,7 +1011,7 @@ class FlatBufferBuilder { /// offsets to store in the buffer in sorted order. /// @return Returns a typed `Offset` into the serialized data indicating /// where the vector is stored. - template + template> Offset>> CreateVectorOfSortedTables( std::vector, Alloc> *v) { return CreateVectorOfSortedTables(data(*v), v->size()); @@ -1074,7 +1101,7 @@ class FlatBufferBuilder { void SwapBufAllocator(FlatBufferBuilder &other) { buf_.swap_allocator(other.buf_); } - + /// @brief The length of a FlatBuffer file header. static const size_t kFileIdentifierLength = ::flatbuffers::kFileIdentifierLength; diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffers.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffers.h index c903d646..64217889 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffers.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flatbuffers.h @@ -226,27 +226,13 @@ struct TypeTable { }; // String which identifies the current version of FlatBuffers. -// flatbuffer_version_string is used by Google developers to identify which -// applications uploaded to Google Play are using this library. This allows -// the development team at Google to determine the popularity of the library. -// How it works: Applications that are uploaded to the Google Play Store are -// scanned for this version string. We track which applications are using it -// to measure popularity. You are free to remove it (of course) but we would -// appreciate if you left it in. +inline const char *flatbuffers_version_string() { + return "FlatBuffers " FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MAJOR) "." + FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MINOR) "." + FLATBUFFERS_STRING(FLATBUFFERS_VERSION_REVISION); +} -// Weak linkage is culled by VS & doesn't work on cygwin. // clang-format off -#if !defined(_WIN32) && !defined(__CYGWIN__) - -extern volatile __attribute__((weak)) const char *flatbuffer_version_string; -volatile __attribute__((weak)) const char *flatbuffer_version_string = - "FlatBuffers " - FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MAJOR) "." - FLATBUFFERS_STRING(FLATBUFFERS_VERSION_MINOR) "." - FLATBUFFERS_STRING(FLATBUFFERS_VERSION_REVISION); - -#endif // !defined(_WIN32) && !defined(__CYGWIN__) - #define FLATBUFFERS_DEFINE_BITMASK_OPERATORS(E, T)\ inline E operator | (E lhs, E rhs){\ return E(T(lhs) | T(rhs));\ diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flexbuffers.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flexbuffers.h index a51fcc92..1a109bbd 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flexbuffers.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/flexbuffers.h @@ -156,6 +156,7 @@ inline uint64_t ReadUInt64(const uint8_t *data, uint8_t byte_width) { // TODO: GCC apparently replaces memcpy by a rep movsb, but only if count is a // constant, which here it isn't. Test if memcpy is still faster than // the conditionals in ReadSizedScalar. Can also use inline asm. + // clang-format off #if defined(_MSC_VER) && defined(_M_X64) && !defined(_M_ARM64EC) // This is 64-bit Windows only, __movsb does not work on 32-bit Windows. @@ -371,10 +372,7 @@ void AppendToString(std::string &s, T &&v, bool keys_quoted) { class Reference { public: Reference() - : data_(nullptr), - parent_width_(0), - byte_width_(0), - type_(FBT_NULL) {} + : data_(nullptr), parent_width_(0), byte_width_(0), type_(FBT_NULL) {} Reference(const uint8_t *data, uint8_t parent_width, uint8_t byte_width, Type type) @@ -590,7 +588,23 @@ class Reference { auto keys = m.Keys(); auto vals = m.Values(); for (size_t i = 0; i < keys.size(); i++) { - keys[i].ToString(true, keys_quoted, s); + bool kq = keys_quoted; + if (!kq) { + // FlexBuffers keys may contain arbitrary characters, only allow + // unquoted if it looks like an "identifier": + const char *p = keys[i].AsKey(); + if (!flatbuffers::is_alpha(*p) && *p != '_') { + kq = true; + } else { + while (*++p) { + if (!flatbuffers::is_alnum(*p) && *p != '_') { + kq = true; + break; + } + } + } + } + keys[i].ToString(true, kq, s); s += ": "; vals[i].ToString(true, keys_quoted, s); if (i < keys.size() - 1) s += ", "; @@ -1424,10 +1438,12 @@ class Builder FLATBUFFERS_FINAL_CLASS { template static Type GetScalarType() { static_assert(flatbuffers::is_scalar::value, "Unrelated types"); - return flatbuffers::is_floating_point::value ? FBT_FLOAT - : flatbuffers::is_same::value - ? FBT_BOOL - : (flatbuffers::is_unsigned::value ? FBT_UINT : FBT_INT); + return flatbuffers::is_floating_point::value + ? FBT_FLOAT + : flatbuffers::is_same::value + ? FBT_BOOL + : (flatbuffers::is_unsigned::value ? FBT_UINT + : FBT_INT); } public: @@ -1660,8 +1676,7 @@ class Verifier FLATBUFFERS_FINAL_CLASS { // comes at the cost of using additional memory the same size of // the buffer being verified, so it is by default off. std::vector *reuse_tracker = nullptr, - bool _check_alignment = true, - size_t max_depth = 64) + bool _check_alignment = true, size_t max_depth = 64) : buf_(buf), size_(buf_len), depth_(0), @@ -1704,18 +1719,16 @@ class Verifier FLATBUFFERS_FINAL_CLASS { auto o = static_cast(p - buf_); return VerifyBefore(o, len); } - + bool VerifyByteWidth(size_t width) { return Check(width == 1 || width == 2 || width == 4 || width == 8); } - bool VerifyType(int type) { - return Check(type >= 0 && type < FBT_MAX_TYPE); - } + bool VerifyType(int type) { return Check(type >= 0 && type < FBT_MAX_TYPE); } bool VerifyOffset(uint64_t off, const uint8_t *p) { return Check(off <= static_cast(size_)) && - off <= static_cast(p - buf_); + off <= static_cast(p - buf_); } bool VerifyAlignment(const uint8_t *p, size_t size) const { @@ -1723,16 +1736,16 @@ class Verifier FLATBUFFERS_FINAL_CLASS { return Check((o & (size - 1)) == 0 || !check_alignment_); } - // Macro, since we want to escape from parent function & use lazy args. - #define FLEX_CHECK_VERIFIED(P, PACKED_TYPE) \ - if (reuse_tracker_) { \ - auto packed_type = PACKED_TYPE; \ - auto existing = (*reuse_tracker_)[P - buf_]; \ - if (existing == packed_type) return true; \ - /* Fail verification if already set with different type! */ \ - if (!Check(existing == 0)) return false; \ - (*reuse_tracker_)[P - buf_] = packed_type; \ - } +// Macro, since we want to escape from parent function & use lazy args. +#define FLEX_CHECK_VERIFIED(P, PACKED_TYPE) \ + if (reuse_tracker_) { \ + auto packed_type = PACKED_TYPE; \ + auto existing = (*reuse_tracker_)[P - buf_]; \ + if (existing == packed_type) return true; \ + /* Fail verification if already set with different type! */ \ + if (!Check(existing == 0)) return false; \ + (*reuse_tracker_)[P - buf_] = packed_type; \ + } bool VerifyVector(Reference r, const uint8_t *p, Type elem_type) { // Any kind of nesting goes thru this function, so guard against that @@ -1742,19 +1755,19 @@ class Verifier FLATBUFFERS_FINAL_CLASS { if (!Check(depth_ <= max_depth_ && num_vectors_ <= max_vectors_)) return false; auto size_byte_width = r.byte_width_; - FLEX_CHECK_VERIFIED(p, PackedType(Builder::WidthB(size_byte_width), r.type_)); - if (!VerifyBeforePointer(p, size_byte_width)) - return false; + if (!VerifyBeforePointer(p, size_byte_width)) return false; + FLEX_CHECK_VERIFIED(p - size_byte_width, + PackedType(Builder::WidthB(size_byte_width), r.type_)); auto sized = Sized(p, size_byte_width); auto num_elems = sized.size(); - auto elem_byte_width = - r.type_ == FBT_STRING || r.type_ == FBT_BLOB ? uint8_t(1) : r.byte_width_; + auto elem_byte_width = r.type_ == FBT_STRING || r.type_ == FBT_BLOB + ? uint8_t(1) + : r.byte_width_; auto max_elems = SIZE_MAX / elem_byte_width; if (!Check(num_elems < max_elems)) return false; // Protect against byte_size overflowing. auto byte_size = num_elems * elem_byte_width; - if (!VerifyFromPointer(p, byte_size)) - return false; + if (!VerifyFromPointer(p, byte_size)) return false; if (elem_type == FBT_NULL) { // Verify type bytes after the vector. if (!VerifyFromPointer(p + byte_size, num_elems)) return false; @@ -1775,28 +1788,25 @@ class Verifier FLATBUFFERS_FINAL_CLASS { bool VerifyKeys(const uint8_t *p, uint8_t byte_width) { // The vector part of the map has already been verified. const size_t num_prefixed_fields = 3; - if (!VerifyBeforePointer(p, byte_width * num_prefixed_fields)) - return false; + if (!VerifyBeforePointer(p, byte_width * num_prefixed_fields)) return false; p -= byte_width * num_prefixed_fields; auto off = ReadUInt64(p, byte_width); - if (!VerifyOffset(off, p)) - return false; + if (!VerifyOffset(off, p)) return false; auto key_byte_with = - static_cast(ReadUInt64(p + byte_width, byte_width)); - if (!VerifyByteWidth(key_byte_with)) - return false; + static_cast(ReadUInt64(p + byte_width, byte_width)); + if (!VerifyByteWidth(key_byte_with)) return false; return VerifyVector(Reference(p, byte_width, key_byte_with, FBT_VECTOR_KEY), p - off, FBT_KEY); } - bool VerifyKey(const uint8_t* p) { + bool VerifyKey(const uint8_t *p) { FLEX_CHECK_VERIFIED(p, PackedType(BIT_WIDTH_8, FBT_KEY)); while (p < buf_ + size_) if (*p++) return true; return false; } - #undef FLEX_CHECK_VERIFIED +#undef FLEX_CHECK_VERIFIED bool VerifyTerminator(const String &s) { return VerifyFromPointer(reinterpret_cast(s.c_str()), @@ -1814,37 +1824,26 @@ class Verifier FLATBUFFERS_FINAL_CLASS { } // All remaining types are an offset. auto off = ReadUInt64(r.data_, r.parent_width_); - if (!VerifyOffset(off, r.data_)) - return false; + if (!VerifyOffset(off, r.data_)) return false; auto p = r.Indirect(); - if (!VerifyAlignment(p, r.byte_width_)) - return false; + if (!VerifyAlignment(p, r.byte_width_)) return false; switch (r.type_) { case FBT_INDIRECT_INT: case FBT_INDIRECT_UINT: - case FBT_INDIRECT_FLOAT: - return VerifyFromPointer(p, r.byte_width_); - case FBT_KEY: - return VerifyKey(p); + case FBT_INDIRECT_FLOAT: return VerifyFromPointer(p, r.byte_width_); + case FBT_KEY: return VerifyKey(p); case FBT_MAP: - return VerifyVector(r, p, FBT_NULL) && - VerifyKeys(p, r.byte_width_); - case FBT_VECTOR: - return VerifyVector(r, p, FBT_NULL); - case FBT_VECTOR_INT: - return VerifyVector(r, p, FBT_INT); + return VerifyVector(r, p, FBT_NULL) && VerifyKeys(p, r.byte_width_); + case FBT_VECTOR: return VerifyVector(r, p, FBT_NULL); + case FBT_VECTOR_INT: return VerifyVector(r, p, FBT_INT); case FBT_VECTOR_BOOL: - case FBT_VECTOR_UINT: - return VerifyVector(r, p, FBT_UINT); - case FBT_VECTOR_FLOAT: - return VerifyVector(r, p, FBT_FLOAT); - case FBT_VECTOR_KEY: - return VerifyVector(r, p, FBT_KEY); + case FBT_VECTOR_UINT: return VerifyVector(r, p, FBT_UINT); + case FBT_VECTOR_FLOAT: return VerifyVector(r, p, FBT_FLOAT); + case FBT_VECTOR_KEY: return VerifyVector(r, p, FBT_KEY); case FBT_VECTOR_STRING_DEPRECATED: // Use of FBT_KEY here intentional, see elsewhere. return VerifyVector(r, p, FBT_KEY); - case FBT_BLOB: - return VerifyVector(r, p, FBT_UINT); + case FBT_BLOB: return VerifyVector(r, p, FBT_UINT); case FBT_STRING: return VerifyVector(r, p, FBT_UINT) && VerifyTerminator(String(p, r.byte_width_)); @@ -1859,12 +1858,10 @@ class Verifier FLATBUFFERS_FINAL_CLASS { case FBT_VECTOR_FLOAT4: { uint8_t len = 0; auto vtype = ToFixedTypedVectorElementType(r.type_, &len); - if (!VerifyType(vtype)) - return false; + if (!VerifyType(vtype)) return false; return VerifyFromPointer(p, r.byte_width_ * len); } - default: - return false; + default: return false; } } @@ -1874,8 +1871,7 @@ class Verifier FLATBUFFERS_FINAL_CLASS { auto end = buf_ + size_; auto byte_width = *--end; auto packed_type = *--end; - return VerifyByteWidth(byte_width) && - Check(end - buf_ >= byte_width) && + return VerifyByteWidth(byte_width) && Check(end - buf_ >= byte_width) && VerifyRef(Reference(end - byte_width, byte_width, packed_type)); } @@ -1890,27 +1886,14 @@ class Verifier FLATBUFFERS_FINAL_CLASS { std::vector *reuse_tracker_; }; -// Utility function that contructs the Verifier for you, see above for parameters. +// Utility function that contructs the Verifier for you, see above for +// parameters. inline bool VerifyBuffer(const uint8_t *buf, size_t buf_len, std::vector *reuse_tracker = nullptr) { Verifier verifier(buf, buf_len, reuse_tracker); return verifier.VerifyBuffer(); } - -#ifdef FLATBUFFERS_H_ -// This is a verifier utility function that works together with the -// FlatBuffers verifier, which should only be present if flatbuffer.h -// has been included (which it typically is in generated code). -inline bool VerifyNestedFlexBuffer(const flatbuffers::Vector *nv, - flatbuffers::Verifier &verifier) { - if (!nv) return true; - return verifier.Check( - flexbuffers::VerifyBuffer(nv->data(), nv->size(), - verifier.GetFlexReuseTracker())); -} -#endif - } // namespace flexbuffers #if defined(_MSC_VER) diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/stl_emulation.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/stl_emulation.h index 75d13b29..97652b17 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/stl_emulation.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/stl_emulation.h @@ -26,16 +26,20 @@ #include #include -// Detect C++17 compatible compiler. -// __cplusplus >= 201703L - a compiler has support of 'static inline' variables. -#if defined(FLATBUFFERS_USE_STD_OPTIONAL) \ - || (defined(__cplusplus) && __cplusplus >= 201703L) \ - || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L)) +#ifndef FLATBUFFERS_USE_STD_OPTIONAL + // Detect C++17 compatible compiler. + // __cplusplus >= 201703L - a compiler has support of 'static inline' variables. + #if (defined(__cplusplus) && __cplusplus >= 201703L) \ + || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) + #define FLATBUFFERS_USE_STD_OPTIONAL 1 + #else + #define FLATBUFFERS_USE_STD_OPTIONAL 0 + #endif // (defined(__cplusplus) && __cplusplus >= 201703L) ... +#endif // FLATBUFFERS_USE_STD_OPTIONAL + +#if FLATBUFFERS_USE_STD_OPTIONAL #include - #ifndef FLATBUFFERS_USE_STD_OPTIONAL - #define FLATBUFFERS_USE_STD_OPTIONAL - #endif -#endif // defined(FLATBUFFERS_USE_STD_OPTIONAL) ... +#endif // The __cpp_lib_span is the predefined feature macro. #if defined(FLATBUFFERS_USE_STD_SPAN) @@ -128,7 +132,7 @@ namespace flatbuffers { }; #endif // defined(FLATBUFFERS_TEMPLATES_ALIASES) -#ifdef FLATBUFFERS_USE_STD_OPTIONAL +#if FLATBUFFERS_USE_STD_OPTIONAL template using Optional = std::optional; using nullopt_t = std::nullopt_t; @@ -284,13 +288,13 @@ FLATBUFFERS_CONSTEXPR std::size_t dynamic_extent = static_cast(-1); namespace internal { // This is SFINAE helper class for checking of a common condition: // > This overload only participates in overload resolution - // > Check whether a pointer to an array of U can be converted - // > to a pointer to an array of E. - // This helper is used for checking of 'U -> const U'. - template + // > Check whether a pointer to an array of From can be converted + // > to a pointer to an array of To. + // This helper is used for checking of 'From -> const From'. + template struct is_span_convertable { using type = - typename std::conditional::value + typename std::conditional::value && (Extent == dynamic_extent || N == Extent), int, void>::type; }; @@ -362,13 +366,9 @@ class span FLATBUFFERS_FINAL_CLASS { #if !defined(FLATBUFFERS_SPAN_MINIMAL) using Iterator = internal::SpanIterator; - using ConstIterator = internal::SpanIterator; Iterator begin() const { return Iterator(data()); } Iterator end() const { return Iterator(data() + size()); } - - ConstIterator cbegin() const { return ConstIterator(data()); } - ConstIterator cend() const { return ConstIterator(data() + size()); } #endif // Returns a reference to the idx-th element of the sequence. @@ -462,45 +462,45 @@ class span FLATBUFFERS_FINAL_CLASS { private: // This is a naive implementation with 'count_' member even if (Extent != dynamic_extent). pointer const data_; - const size_type count_; + size_type count_; }; #endif // defined(FLATBUFFERS_USE_STD_SPAN) #if !defined(FLATBUFFERS_SPAN_MINIMAL) -template +template FLATBUFFERS_CONSTEXPR_CPP11 -flatbuffers::span make_span(U(&arr)[N]) FLATBUFFERS_NOEXCEPT { - return span(arr); +flatbuffers::span make_span(ElementType(&arr)[Extent]) FLATBUFFERS_NOEXCEPT { + return span(arr); } -template +template FLATBUFFERS_CONSTEXPR_CPP11 -flatbuffers::span make_span(const U(&arr)[N]) FLATBUFFERS_NOEXCEPT { - return span(arr); +flatbuffers::span make_span(const ElementType(&arr)[Extent]) FLATBUFFERS_NOEXCEPT { + return span(arr); } -template +template FLATBUFFERS_CONSTEXPR_CPP11 -flatbuffers::span make_span(std::array &arr) FLATBUFFERS_NOEXCEPT { - return span(arr); +flatbuffers::span make_span(std::array &arr) FLATBUFFERS_NOEXCEPT { + return span(arr); } -template +template FLATBUFFERS_CONSTEXPR_CPP11 -flatbuffers::span make_span(const std::array &arr) FLATBUFFERS_NOEXCEPT { - return span(arr); +flatbuffers::span make_span(const std::array &arr) FLATBUFFERS_NOEXCEPT { + return span(arr); } -template +template FLATBUFFERS_CONSTEXPR_CPP11 -flatbuffers::span make_span(U *first, std::size_t count) FLATBUFFERS_NOEXCEPT { - return span(first, count); +flatbuffers::span make_span(ElementType *first, std::size_t count) FLATBUFFERS_NOEXCEPT { + return span(first, count); } -template +template FLATBUFFERS_CONSTEXPR_CPP11 -flatbuffers::span make_span(const U *first, std::size_t count) FLATBUFFERS_NOEXCEPT { - return span(first, count); +flatbuffers::span make_span(const ElementType *first, std::size_t count) FLATBUFFERS_NOEXCEPT { + return span(first, count); } #endif // !defined(FLATBUFFERS_SPAN_MINIMAL) diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/table.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/table.h index 42470693..11b29247 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/table.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/table.h @@ -112,20 +112,22 @@ class Table { // Verify a particular field. template - bool VerifyField(const Verifier &verifier, voffset_t field) const { + bool VerifyField(const Verifier &verifier, voffset_t field, + size_t align) const { // Calling GetOptionalFieldOffset should be safe now thanks to // VerifyTable(). auto field_offset = GetOptionalFieldOffset(field); // Check the actual field. - return !field_offset || verifier.Verify(data_, field_offset); + return !field_offset || verifier.VerifyField(data_, field_offset, align); } // VerifyField for required fields. template - bool VerifyFieldRequired(const Verifier &verifier, voffset_t field) const { + bool VerifyFieldRequired(const Verifier &verifier, voffset_t field, + size_t align) const { auto field_offset = GetOptionalFieldOffset(field); return verifier.Check(field_offset != 0) && - verifier.Verify(data_, field_offset); + verifier.VerifyField(data_, field_offset, align); } // Versions for offsets. @@ -163,4 +165,4 @@ inline flatbuffers::Optional Table::GetOptional( } // namespace flatbuffers -#endif // FLATBUFFERS_TABLE_H_ \ No newline at end of file +#endif // FLATBUFFERS_TABLE_H_ diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/util.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/util.h index e0392a95..5a4bfe52 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/util.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/util.h @@ -17,8 +17,8 @@ #ifndef FLATBUFFERS_UTIL_H_ #define FLATBUFFERS_UTIL_H_ -#include #include +#include #include "flatbuffers/base.h" #include "flatbuffers/stl_emulation.h" @@ -30,8 +30,8 @@ #endif #ifndef FLATBUFFERS_PREFER_PRINTF -# include # include +# include #else // FLATBUFFERS_PREFER_PRINTF # include # include @@ -454,6 +454,9 @@ std::string StripPath(const std::string &filepath); // Strip the last component of the path + separator. std::string StripFileName(const std::string &filepath); +std::string StripPrefix(const std::string &filepath, + const std::string &prefix_to_remove); + // Concatenates a path with a filename, regardless of whether the path // ends in a separator or not. std::string ConCatPathFileName(const std::string &path, @@ -691,6 +694,32 @@ bool ReadEnvironmentVariable(const char *var_name, // MSVC specific: Send all assert reports to STDOUT to prevent CI hangs. void SetupDefaultCRTReportMode(); +enum class Case { + kUnknown = 0, + // TheQuickBrownFox + kUpperCamel = 1, + // theQuickBrownFox + kLowerCamel = 2, + // the_quick_brown_fox + kSnake = 3, + // THE_QUICK_BROWN_FOX + kScreamingSnake = 4, + // THEQUICKBROWNFOX + kAllUpper = 5, + // thequickbrownfox + kAllLower = 6, + // the-quick-brown-fox + kDasher = 7, + // THEQuiCKBr_ownFox (or whatever you want, we won't change it) + kKeep = 8, + // the_quick_brown_fox123 (as opposed to the_quick_brown_fox_123) + kSnake2 = 9, +}; + +// Convert the `input` string of case `input_case` to the specified `output_case`. +std::string ConvertCase(const std::string &input, Case output_case, + Case input_case = Case::kSnake); + } // namespace flatbuffers #endif // FLATBUFFERS_UTIL_H_ diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/vector.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/vector.h index f8a5d88e..6bcdfe26 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/vector.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/vector.h @@ -19,6 +19,7 @@ #include "flatbuffers/base.h" #include "flatbuffers/buffer.h" +#include "flatbuffers/stl_emulation.h" namespace flatbuffers { @@ -326,6 +327,24 @@ FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span make_bytes_span( return span(vec.Data(), vec.size() * sizeof(U)); } +// Convenient helper functions to get a span of any vector, regardless +// of whether it is null or not (the field is not set). +template +FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span make_span(Vector *ptr) + FLATBUFFERS_NOEXCEPT { + static_assert(Vector::is_span_observable, + "wrong type U, only LE-scalar, or byte types are allowed"); + return ptr ? make_span(*ptr) : span(); +} + +template +FLATBUFFERS_CONSTEXPR_CPP11 flatbuffers::span make_span( + const Vector *ptr) FLATBUFFERS_NOEXCEPT { + static_assert(Vector::is_span_observable, + "wrong type U, only LE-scalar, or byte types are allowed"); + return ptr ? make_span(*ptr) : span(); +} + // Represent a vector much like the template above, but in this case we // don't know what the element types are (used with reflection.h). class VectorOfAny { diff --git a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/verifier.h b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/verifier.h index dfa3da8a..0241223e 100644 --- a/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/verifier.h +++ b/code/components/tflite-lib/third_party/flatbuffers/include/flatbuffers/verifier.h @@ -18,7 +18,6 @@ #define FLATBUFFERS_VERIFIER_H_ #include "flatbuffers/base.h" -#include "flatbuffers/util.h" #include "flatbuffers/vector.h" namespace flatbuffers { @@ -26,22 +25,24 @@ namespace flatbuffers { // Helper class to verify the integrity of a FlatBuffer class Verifier FLATBUFFERS_FINAL_CLASS { public: - Verifier(const uint8_t *buf, size_t buf_len, uoffset_t _max_depth = 64, - uoffset_t _max_tables = 1000000, bool _check_alignment = true) + Verifier(const uint8_t *const buf, const size_t buf_len, + const uoffset_t _max_depth = 64, + const uoffset_t _max_tables = 1000000, + const bool _check_alignment = true) : buf_(buf), size_(buf_len), - depth_(0), max_depth_(_max_depth), - num_tables_(0), max_tables_(_max_tables), - upper_bound_(0), check_alignment_(_check_alignment), + upper_bound_(0), + depth_(0), + num_tables_(0), flex_reuse_tracker_(nullptr) { FLATBUFFERS_ASSERT(size_ < FLATBUFFERS_MAX_BUFFER_SIZE); } // Central location where any verification failures register. - bool Check(bool ok) const { + bool Check(const bool ok) const { // clang-format off #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE FLATBUFFERS_ASSERT(ok); @@ -55,7 +56,7 @@ class Verifier FLATBUFFERS_FINAL_CLASS { } // Verify any range within the buffer. - bool Verify(size_t elem, size_t elem_len) const { + bool Verify(const size_t elem, const size_t elem_len) const { // clang-format off #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE auto upper_bound = elem + elem_len; @@ -66,48 +67,52 @@ class Verifier FLATBUFFERS_FINAL_CLASS { return Check(elem_len < size_ && elem <= size_ - elem_len); } - template bool VerifyAlignment(size_t elem) const { - return Check((elem & (sizeof(T) - 1)) == 0 || !check_alignment_); + bool VerifyAlignment(const size_t elem, const size_t align) const { + return Check((elem & (align - 1)) == 0 || !check_alignment_); } // Verify a range indicated by sizeof(T). - template bool Verify(size_t elem) const { - return VerifyAlignment(elem) && Verify(elem, sizeof(T)); + template bool Verify(const size_t elem) const { + return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T)); } - bool VerifyFromPointer(const uint8_t *p, size_t len) { - auto o = static_cast(p - buf_); - return Verify(o, len); + bool VerifyFromPointer(const uint8_t *const p, const size_t len) { + return Verify(static_cast(p - buf_), len); } // Verify relative to a known-good base pointer. - bool Verify(const uint8_t *base, voffset_t elem_off, size_t elem_len) const { - return Verify(static_cast(base - buf_) + elem_off, elem_len); + bool VerifyFieldStruct(const uint8_t *const base, const voffset_t elem_off, + const size_t elem_len, const size_t align) const { + const auto f = static_cast(base - buf_) + elem_off; + return VerifyAlignment(f, align) && Verify(f, elem_len); } template - bool Verify(const uint8_t *base, voffset_t elem_off) const { - return Verify(static_cast(base - buf_) + elem_off, sizeof(T)); + bool VerifyField(const uint8_t *const base, const voffset_t elem_off, + const size_t align) const { + const auto f = static_cast(base - buf_) + elem_off; + return VerifyAlignment(f, align) && Verify(f, sizeof(T)); } // Verify a pointer (may be NULL) of a table type. - template bool VerifyTable(const T *table) { + template bool VerifyTable(const T *const table) { return !table || table->Verify(*this); } // Verify a pointer (may be NULL) of any vector type. - template bool VerifyVector(const Vector *vec) const { + template bool VerifyVector(const Vector *const vec) const { return !vec || VerifyVectorOrString(reinterpret_cast(vec), sizeof(T)); } // Verify a pointer (may be NULL) of a vector to struct. - template bool VerifyVector(const Vector *vec) const { + template + bool VerifyVector(const Vector *const vec) const { return VerifyVector(reinterpret_cast *>(vec)); } // Verify a pointer (may be NULL) to string. - bool VerifyString(const String *str) const { + bool VerifyString(const String *const str) const { size_t end; return !str || (VerifyVectorOrString(reinterpret_cast(str), 1, &end) && @@ -116,24 +121,24 @@ class Verifier FLATBUFFERS_FINAL_CLASS { } // Common code between vectors and strings. - bool VerifyVectorOrString(const uint8_t *vec, size_t elem_size, - size_t *end = nullptr) const { - auto veco = static_cast(vec - buf_); + bool VerifyVectorOrString(const uint8_t *const vec, const size_t elem_size, + size_t *const end = nullptr) const { + const auto veco = static_cast(vec - buf_); // Check we can read the size field. if (!Verify(veco)) return false; // Check the whole array. If this is a string, the byte past the array // must be 0. - auto size = ReadScalar(vec); - auto max_elems = FLATBUFFERS_MAX_BUFFER_SIZE / elem_size; + const auto size = ReadScalar(vec); + const auto max_elems = FLATBUFFERS_MAX_BUFFER_SIZE / elem_size; if (!Check(size < max_elems)) return false; // Protect against byte_size overflowing. - auto byte_size = sizeof(size) + elem_size * size; + const auto byte_size = sizeof(size) + elem_size * size; if (end) *end = veco + byte_size; return Verify(veco, byte_size); } // Special case for string contents, after the above has been called. - bool VerifyVectorOfStrings(const Vector> *vec) const { + bool VerifyVectorOfStrings(const Vector> *const vec) const { if (vec) { for (uoffset_t i = 0; i < vec->size(); i++) { if (!VerifyString(vec->Get(i))) return false; @@ -143,7 +148,8 @@ class Verifier FLATBUFFERS_FINAL_CLASS { } // Special case for table contents, after the above has been called. - template bool VerifyVectorOfTables(const Vector> *vec) { + template + bool VerifyVectorOfTables(const Vector> *const vec) { if (vec) { for (uoffset_t i = 0; i < vec->size(); i++) { if (!vec->Get(i)->Verify(*this)) return false; @@ -153,29 +159,40 @@ class Verifier FLATBUFFERS_FINAL_CLASS { } __supress_ubsan__("unsigned-integer-overflow") bool VerifyTableStart( - const uint8_t *table) { + const uint8_t *const table) { // Check the vtable offset. - auto tableo = static_cast(table - buf_); + const auto tableo = static_cast(table - buf_); if (!Verify(tableo)) return false; // This offset may be signed, but doing the subtraction unsigned always // gives the result we want. - auto vtableo = tableo - static_cast(ReadScalar(table)); + const auto vtableo = + tableo - static_cast(ReadScalar(table)); // Check the vtable size field, then check vtable fits in its entirety. - return VerifyComplexity() && Verify(vtableo) && - VerifyAlignment(ReadScalar(buf_ + vtableo)) && - Verify(vtableo, ReadScalar(buf_ + vtableo)); + if (!(VerifyComplexity() && Verify(vtableo) && + VerifyAlignment(ReadScalar(buf_ + vtableo), + sizeof(voffset_t)))) + return false; + const auto vsize = ReadScalar(buf_ + vtableo); + return Check((vsize & 1) == 0) && Verify(vtableo, vsize); } template - bool VerifyBufferFromStart(const char *identifier, size_t start) { + bool VerifyBufferFromStart(const char *const identifier, const size_t start) { + // Buffers have to be of some size to be valid. The reason it is a runtime + // check instead of static_assert, is that nested flatbuffers go through + // this call and their size is determined at runtime. + if (!Check(size_ >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false; + + // If an identifier is provided, check that we have a buffer if (identifier && !Check((size_ >= 2 * sizeof(flatbuffers::uoffset_t) && BufferHasIdentifier(buf_ + start, identifier)))) { return false; } // Call T::Verify, which must be in the generated code for this type. - auto o = VerifyOffset(start); - return o && reinterpret_cast(buf_ + start + o)->Verify(*this) + const auto o = VerifyOffset(start); + return Check(o != 0) && + reinterpret_cast(buf_ + start + o)->Verify(*this) // clang-format off #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE && GetComputedSize() @@ -185,9 +202,14 @@ class Verifier FLATBUFFERS_FINAL_CLASS { } template - bool VerifyNestedFlatBuffer(const Vector *buf, - const char *identifier) { + bool VerifyNestedFlatBuffer(const Vector *const buf, + const char *const identifier) { + // An empty buffer is OK as it indicates not present. if (!buf) return true; + + // If there is a nested buffer, it must be greater than the min size. + if(!Check(buf->size() >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false; + Verifier nested_verifier(buf->data(), buf->size()); return nested_verifier.VerifyBuffer(identifier); } @@ -195,19 +217,20 @@ class Verifier FLATBUFFERS_FINAL_CLASS { // Verify this whole buffer, starting with root type T. template bool VerifyBuffer() { return VerifyBuffer(nullptr); } - template bool VerifyBuffer(const char *identifier) { + template bool VerifyBuffer(const char *const identifier) { return VerifyBufferFromStart(identifier, 0); } - template bool VerifySizePrefixedBuffer(const char *identifier) { + template + bool VerifySizePrefixedBuffer(const char *const identifier) { return Verify(0U) && - ReadScalar(buf_) == size_ - sizeof(uoffset_t) && + Check(ReadScalar(buf_) == size_ - sizeof(uoffset_t)) && VerifyBufferFromStart(identifier, sizeof(uoffset_t)); } - uoffset_t VerifyOffset(size_t start) const { + uoffset_t VerifyOffset(const size_t start) const { if (!Verify(start)) return 0; - auto o = ReadScalar(buf_ + start); + const auto o = ReadScalar(buf_ + start); // May not point to itself. if (!Check(o != 0)) return 0; // Can't wrap around / buffers are max 2GB. @@ -218,7 +241,8 @@ class Verifier FLATBUFFERS_FINAL_CLASS { return o; } - uoffset_t VerifyOffset(const uint8_t *base, voffset_t start) const { + uoffset_t VerifyOffset(const uint8_t *const base, + const voffset_t start) const { return VerifyOffset(static_cast(base - buf_) + start); } @@ -255,23 +279,23 @@ class Verifier FLATBUFFERS_FINAL_CLASS { // clang-format on } - std::vector *GetFlexReuseTracker() { - return flex_reuse_tracker_; - } + std::vector *GetFlexReuseTracker() { return flex_reuse_tracker_; } - void SetFlexReuseTracker(std::vector *rt) { + void SetFlexReuseTracker(std::vector *const rt) { flex_reuse_tracker_ = rt; } private: const uint8_t *buf_; - size_t size_; - uoffset_t depth_; - uoffset_t max_depth_; - uoffset_t num_tables_; - uoffset_t max_tables_; + const size_t size_; + const uoffset_t max_depth_; + const uoffset_t max_tables_; + const bool check_alignment_; + mutable size_t upper_bound_; - bool check_alignment_; + + uoffset_t depth_; + uoffset_t num_tables_; std::vector *flex_reuse_tracker_; }; diff --git a/code/components/tflite-lib_20220924.zip b/code/components/tflite-lib_20220924.zip new file mode 100644 index 0000000000000000000000000000000000000000..065929875d4412f1fd59da702fd8af966a089075 GIT binary patch literal 872006 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 z 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

-(6ZAeJ9OypjKY)(W zG3OKYv^0C^4Gb!fRkwA#-fA{8`EP${`oiracNh~X^X4>V)mo^f+VvSFSLZqW&SVzo z5hPbta8>G7m-3Y`o~X@3N7zB)|_JZ zCI$uLu)N6n=4hO9i_+RVsD_OF^=kXLwTC}c1(&;zemA0ub$6o`mi6f?=0?4B{elVz zyvGi5S48R}#&1SL+M>{`L6>&)mFlPeEvl6?|>_!Y8tCAjF?hAofP6Q9>RTmcx)z2V0N;8z|^p>kwL z5brc)(^pt<$}pqkjy0oviyi2f`*&pdT)sA?wtv1cHkNj#hED$prr6pa zupxcd=rc|OmE&;xZFB>llhAc(f?M01Z?4&)cNZX7WVD1%B*~>1m#=)jz)_A9*^Vd9 z&XlUHhLSpQJn&@iC1h`npl){R9co9L0$iDOf+mxOLb|43@ULEjd0iNsy;s5UZiFGC z8#5HdywAF*tu%>GifD2LH!~OVfpD~)AR_xG1u zBLyCS)tRB7YQP--kqrzZdjhJ%Vc1GF*B)Y|w5c+nj3J>qU!RQxa>qhQA*Hz5ThaLg zgk*uW+Xw?xyJ%s#G+G3fY%m1wmdA18|mocHZ+`zGOl1$c)L zE?E*WLx%0(O8}i`q`&KwjlBa!W3C8%JQECiSI*X`v8%o4`d3CF3Myj)h(mNJFnSvU z>;U?86&rqp_3Fal{_SiO(&s8xtb5O74u5bF;yN!Z4=lNV5uq3FFZ(BE4@_8|m4Kty z90V+Hp0RiUS{~PRIb(6uT|0KLAs%aWyD1T|c|9346!c5RI~)>V{5y5D;|XI3+oFxN zDJTiTj?{1c zjKAyVV8i1!ujkJ3mILG2oA{tHzgrmfkFfkwkO9u3-Ymr?lJ{OgWm;v;l0}U~oeGu) zLu0mp9n!;SM^a6+KvffG4GYX*0Gr=nc`2Lqu7nS<+u$QlO?yulhnWh3XUZL8rm$Ly zVO8PFi4NK~IqRE?oNpBLqyujlZ|2dePerb-b(p8&k)Z)xo7`-3=#D?pb0*W)5CjCk zRWd-Xr!wpznHf^n@=z4@-4JnUjrCyCs`Fr@kQFwD@-Gu+IcRC86*iY1p{c)W2QgW| z8FerNlW~stNf%I#=_$568qoi9xA~+vn3|(^l^NVO&vX;qfmAq@d+s2Oisj-bU7a8w zXl4HcEW8V#BL^)e&OcdD2a4t}ti{Rf)WMyWvQf_zYFk_Y-0V0)(KzWQYre$AO3g&U<%pzZxh=2+9LAA! zFx|XY9YhD0>6nn}`+^hqY4U)+OFoTHQ!XuZ`;LA!8K&!hf|2jSi^go>399I>x7Xwlf>Y1zRgj>+0vh~5fyWe#N^h6yru};g1QCBVm z4EB^0+uOJvI-!hST^?YRL3bu+t6k=SR`eiX+nG{03tlDT+w#BO@t^Nq^J>a1e2C{4 zKvF=7rciUijQ8c;nS7GxfR9^sxMAD{#ua`Ztb}_0bj{2h#Cp~RLkhftN(JT0@iP+k zImfpG71T2^h~ND&G?O2-9+7KGPM>SYv6KShab%Lo<-cX;G1w!yxW@`NlVyyD1uE`n zr7h>E+Ub|uW#~>N?yfiUFquKLqaI-9v8IO?^zMbe@|}{4E&J|$+O#l9pRt~si0t1- ztS%I9ipRUd6E8zfgeXbQe)VUs{JLk!W5&9yMCFtDR`Huw%zixp>87nwmv+C$C_}`D zxlXB8fpBsCtsR|Hz}&V$g*2$WKr~9ix}){jA1@&Q9XL9g>2gaHb+Y1&3s`NL@2ENN zl>7Wv!jiZIha6@6bXPQqrG$9nxO`}YuAv-6ospH7pYam)Z9?3EvLoM;8#MysAE3WA zd*aeuv4VA<#iy8u!_RBcCcurag6z+s~0>8g4g3HlBUQr`?b8 ze7Cin-1kr-uSk*Zgvb;-eOW}oLBi}vz0E5pZF?Xzks|Vzbs(5mPwMa(L0@=VhqtN* zq-EK06-C27Tna?hQw5Z{q>l@@V%f3m`S_fIhg(ts>iCK-y%o^R0?{VsNe=c@WmqdG2)?yZiLDmt9c-iElSkBDbwLaGBc_c zZnqLbp`h9NHKqd8`qzdBzfBnN$OFr3YL)hQ1$u&tC3+_F?0av|$g`0Lz z^iQ6~dhP3#!r%AkKCWCde$%t6{ymd^6&gLJcd*?5s?E7|Gq;fK{^8cN4WFn1DnT#g z9HRm=c2-EKsroOU2f&zvE6BzE%~U6r*fo`U7F}SL;T#H|fB>?mlPix{5L)%tHHlBb1K5DlyyuhejL^sL2)nJ2cH!si5*))6(HXoa0>{ZCuS9&*pORk<)f~8L!EbF zWbCJeI>%h8%VXUCLb-iIH5YhsHQG}`44s>lZ)L+VlzDD*G7?E>xdCcAsP zP2#WR&22}JIqJ6O`j5jq@_${s+^REblYes;R|o(A^8bUi>wn)&{&Ooa{Wb2|nOd4# z7}@{cP^y1zMEhd@X9p`@7$@N)7=MEHEa%wQnNzgrUpdvvsT!^_R6TI*mJU#RyUE#N zHG?H_k2IpZo1B^AdzhMpi#0yIb;+qelNr!_sDk{C36e+dZ`??y&+krP&W+@1I=~2% zlIcr;%H*As?A9t*^P&;4s1wSP)`1A|$s3C$B@85uXKa(U1`_lfqrGY%p^#DJ?rWPw z113Vz?y@E`*|K6y9yQ3ZEO5=1#IBA-iq&r1y%XQ?7N}zBC#6FHVt$$TGr2f-fh7^8 zC&VBc$^7YKCRmKw&pd>>WHL@7RYnJiKTI-d(#l{UWM&QBc=PaFw)Q}*`5rmiArHbQX2!r{1A7y^yXFQouiJ3vA~wiwXSCFf9>c43d+x%W z#|O*x=P{^fWrQ66W=q~3AAE3^PQckBn)I=Hiqc0CgPsh9PLk&+9k}tW`HM9hnX{8l z5>Has0uc@CIIk$SH_;9&8cdpmFR=}=q+F?THcqdIY=sh4t6WR+*M~Xf4C7T)wAXvT z5+lY^sG$WYAF630Syd+Jd}1CLBCqmHd0gLz?H0f|n~iW#L#6yx42{W?;3251tUs$C zTEb@A1p4v9I^jd8pU->D1BTRSi4=n4IXNVqYEBXtlu~VhW6(i-R8ZovF=n6>0fLBh z39pX5C}%0|@iHR@zv7_PDEJ99^9R!-zH$yA|C|;^i0H6*`(VA^wri(;zG3XErp0Q= z^phtFB-O#SPdj9#>IY{JZrY1^A(NYM{w$zFNKUJoQ#u>A4hh;c-Zr4U-Fh_ME4@KD zj&{VcN+mcM#{f1C_FpsZ34G?F#~lCE?u{mOk`Xz=$QDF4c_RQ^qk!6spv-ipwh{w3 zPlZ2bYBUXH^>3btN>Q>t54q}CTJ@qLv%i;)>Lsu-lB)#q(e4N?9e?~GJK{B`A=*W0YVCJ8r zuK$W}dPa%yU z?>8w)MQ1{sLepC1r5Jmd|CrBFFGGYmO2dcJY=WHk0nZv69zn>b)|^jg+~;%bb!=Fw z3^j2_ZWG`;ydHQniVxi<5^g-u;9;dpEAQ+)vTC z`yljH;jUg&q0y_Z)MoUj?ZXe*o30}B{HTk|xZZ^Ez=tX8M<3dA?4)=OCe4RtRW7!) zHs}9oKE^zkFKpW>1ZlbCshEY<-2WO*=V7NB{$V|KV8!9W0-|T3dvtCdK7wXv$3*Aq zL)66XVu4BvD(qhfZO*I+l;dDDEZb4OY&CS_XKGEUHr>8Yp5Qs#(&BJD)3Lch4XpI@ z9i6`od2}LE7wRCiF@e;yfSgyUd{)zZOTpB@F}JNVl+m`4deh&2(_(xo!qK9slcL$m z$;ZrkqZ-$6=7gWEuN^mAXE{COh9|?RvB%@|n%&r`4vwcH(yHN43;Q+h>ZDS+F!!Ab z9x1lAko(zP(q|=#{74N9f}YT9ne802umAkt`Tw8I^no+vGXod^K6)E&`fAb5TgB7))?jYID|eGP~^mag3^Oqv$|mz*fw^j;u|hvDv^2VOg*y z0oUa3vjX{1)-m>hqBt!sWk&)Tj!t(#Gqv4j%LfCuv&7WJ%)#bVD5EeOa0tww;ZDihF6s>C<7=Cfy4x%6u5x&f?1}>WtUQT_j*k2 zQc5Hd%oH$$iUPevzYM(juDLq0l&W^I>e&m+xc-#o%yoY05)^A~ zkT81~R_2RuVE92GbL5bJpqM$OPCt?4fKF!UfqyW$!{9%>aXyKGY45{tDDEpL+d$fD zS!HPSb0@;guw$djgtfv6{x&Cqw!U&UJdOU>v<5{WRtXvhlZskNB86INezT!tn9&eWLt0i`soW`P0M|lUPv0G=HGB(4 zfwYzi$VJJ+nWX_hFYv-GKs()wU)}iiy%`&oW9;S{Z1|0{ZC%el5nU!ro9Z>^W8Vgb zzh4y`Fa852kcy=msTP|r=OuYwdY#$0oqcyhzd2#jzNbR zZ0;fkTlIJ|ugqU?mnB`8%p^=UOeh}T@5wZq>Bz?ZX@VxdcP4LXqF{uWxlj5cCO#(R zD$6i45^2f99;wSEXLorwEZvLX zS8D(7pLu5+%m0`kr`4?G4>(Z1a`hdDCCUVLX!W%WmS_c4RIVzZqA@zA*_L2-|6*`) zU}?<~g|d2wX;?_0CIP4;+(Q87`N*)`V))d{5zQFk8xB5EWfdh@XyHQx-u=Zi#LP#w z3N=Mxu+W-iY+({n;J3vZ%+H-i*BJ^8q|~yL8%@J7%`h?YDSFv?FVr zx@0cD(RasbFLUE9&=9sYQ9TU*bMd>7C9k>KT8+-&b?q9TDsG)$(q2`69>|Tgon^E> z)%9NHCc4M)kCH|n^-BS3Qgu~>Bvb{mMUJiJAIFMOi5|_|)>x7XSuzv%;B08;dPQvU zlT*NqLv3WGT2F40%I_cGKjModlq!O{6)BiX5Yy5St79fM4A|Av;E9u&i4OwbO}Ev3 zu&j0=4vyb(}44e zGmxyXnHQKd6zuMx4N2P3i$jn0Kc^9M?{#mB!QEy+cT)#r@SdG0<;QZsRjo>xY!v*Q{bK*`}|{4{YtFbIQVDI+%8)*{FnwaWTvg*3na3oi%1EL?_q<^=Sj5uiEH@80~ zwj88;JU;_Rtrgu&ZA2;YUlG&Vjee2s^lP5qsqvrYh3)N+_ComVcxJ);5B3lLpBGy( z!CIOBcM>i9YUBTXc%`$wnTxHV$A2_&Z~Nc!&L4h(9^gb^FQxt0M4JU7dIH&GUE{@~ z=B(9piI6j_zp;xdkH(cX{ggcO-^C#4g#@WFgAE$w{=4(9Ap`!Sc6anYn1&^#H^ zwToxH=UQVh$`8c!33BD8e-r-jCXw_SJSc6vDVkXtk}ssc+7$% zGW_!8@cL#&qTl@@BgyHP&7DJnLA1H-@8PGCMesUI2Lmw}AqA(XRB*9Y=hW|y{J9UQ= zEn0)IZQHhO+qP}nwr$(ClO5Z(wUeEsbNY6V@!ftrJ?f=K{eU%BO=2WNLUAMOJbEk= zX(CNvqS`qBdhaOTed(y(s6>E$ZGjq4VkcMsCOn60AK(0K;J2~0^SO=p>-=IN%Krl% z{FJTu<0N4Reth_Ps_Vbp-y2v??d11_{kPTssZJC_15(W}zEa>qP$Ujb#hcBfrpYJ4 z!m%mkFV8+71**Igm!U}#4+CN_9f>K?A?B?S*ibAxyAYnEWT{tU2_lWtN4j4dcQ&^F z5nv5+0^;@D&Hm-bYqR?fzOGll9-JLreYoC_8A$(JeedAO%E|uY>ER;wu3qeJ{?F3q zXz&F?`uKI}lH=Dp{1YQFIZF;n!}!wqj9)cPQm(2*JJ9#UnB|c1hUPyT`F0zu$|BkT z3t;k;nkQ77xuF{1l>6u~-1~2e$hExGGQ`v+*YdBtC5=b^|n*$*hC=E94nbZ6r$ya9pxIjPVkcwR2v%4X~>Qi>zTqUv zE_i9^&q$di`;EGakH8~)D<4{gLsaLiHY;dpC%)*__?`)PBg*1eQnB6#U5J|eHfB95nAH)H^bL+ z7&-R!ryuvZ<=SS&ZV`T@2fwrxsRetXD|!ulfezbk6Av)c?ZB_3OhA!0$Dg48&U4I3 zZ468bdZgR1gX`WT8#+Gn=9?{M%r8(D`2Hc-gc6O!4SoTYZ}lLhwCYjz-7ul3=iR6~rP`=0)*IsK4MVo^MpOzGuc&yW|+cOu$wg(H|2 zfXh5r7LHClF7E`P8Gv*zu*yjzb}5+w9*7QjNkfiek3x8j1LQS`050UDVw(HD1cE2E zUyciaM8ao)&_yy~te*(P_T@3Z%WZ>gmrv-ARe{a)5%8Qa97#8iDIQYyXb(0+&}V*+ zR0R{M66^@izys_-N%lVMu)VVv444p#Xk5;DsyVO``@6{{FX~c##=>xoi-aZ63vkUF zHW#{0l4R+q(7D52C$tR#4rmn8^|Y^`K+ZU%A2rI(*i&(L*3ibJ9Sy*@M&lJ;HydC+ z#lv-`k^STfp&AyuHyHN}h$oxj0Zob9cDdh?`Ms@G$5q^3UUrPRc?wl{3?7mc4T=`( zF;oOmCF%-hM?*c$epxFbVzPyg@VYpit%yfwdjyfw11TO@u+t23Z@=Q;b^a5IU`dfNza&Jrw zChXmY72AOohhZumF#vq10iBbZ2DzD3(g{Q%G_gppY6bba z9GBV`=6NPLm9k=xteP+4w%{pt1Ehn8L0+A?ys9`9zkkICQx_3vwmaOFmxuqssp2BkOHqrZp(Kly+y28N$F zT_$TU)xFj3~qSlDqdYCs!{I%PXYd^ zXgucq;BiL=E7CyY11=U&li2N5ZY#o3q0o)h(5fn%m2s?IuF9OWS$N9w)r&kEI~&p{ zIyp@xtD~4#pjBA47A|@uyfqhHFTEa+#HL`}sz_*NGjK=dGmkWHVKh3H0kYD0l*@Hn zIYd_j_U+g5owqKk${%@rdh_$+B2#pRn;$n;H_Bc_bcz>pR|5~9@2Ep+jc5%E`l3^I zQft+W8%}IsPZtcd+9I%?q#a09F2gvLGe-ERm|#9_?FKZQTs>w|bGlsHN2K4e+j&}Pht#(Z9dN+&>}5YNu!Q?$wV0Tf8JMDY$j%yzD&e7-LE^pty?n(7D+(HLnonBu#RHLPX^p@+ zA&`Xn9bCnmAhW#Iz42VMqtDk&?b$)t6mnMvRj|R5KdHY2z`P0JY>T zKmaAjTPfhy@)0m}x9vt$u6soD6-G5q$9si8e%I@(ilTg~rmMXQU+W*ftcCfY(M^kU zOP*soHYMSr(LP?lNHi%rA;Dt8WE3(x&PSPIdN5h#0QTcXbNUo)OxD{5GcNo`R-^kF#*h2sRW(w7RoUw*FHCfTi z^IlW*%AJ=C5z-oz4Jc^{U$cI`cIhezvdC<66%)RC-uUjW=spl(G+LrAV#f=&ZrcX$ zAuvc}G<;5)VLm9|G;%EF-+ohm8bHoT3GZnfSw%7xu^NX0SX?AvaYJ7dO%F;nE&KRL zv6uEZ$R5r3f0-5SZaCgcSi~`%3u$oz0RXfnf&C1do-dn;=Y6yp|;j zg_L*Dpf;1VBU%x0_xajlfupFP_eYL+xffn(rdgz#Ry2JJUpT4f$qxoBx-ohL%A%gw zA0(0lWcf;1#lh348ik56vQ|3?9fs{Ba0`eL z5;*fBB=mw-afeF*PSMjptnMr)hv9y4E+?3-3sKNuW~OZYSu?wt$&HLm`ther3nqqf z+W__2~!Pd@PEcLP{m{f&?f9-fBC|bUj2_5Xf(cb8! z<*^*Q7K<|?H)CC~jP#ZQLOeTI>H!O`_Qz-f_z^Udj+)kVu32eBOj72dB!WicF5E%UzNvYmBBhOja!s2k22nvJv6>HLbT4z0)BC>{ z`F#I2d4l;HN*>o@BH)0-sR2W)14<*WUru%ZN!zKWWO){yIJ2Cv6hO;EMa0-4v=`r{ z4~ZDm)7*Yl!G?}fFZe@9oVhZQJBy{lAJ8YbIr6tjh3n^XVa7zE z?YGFKpoCJ*uWGB=HfX(A9wm);>U(g`GRJ31IqPm$S;{!s8)AeiX82yP1*pidZ0!^we)pT zH3F)cOC?sb6T#NTHtybUTmN(16sjC0E7Na>q zS_V;g<~3P}wW*oWWwfF)lmx#hUuEj13~31cQ9(^wCp$XC^;^{TvlpiG!G}g2oqS2R zDh_(&l&?;;tzKBZhl=QvXbo2ID^>?&)a5B7_29P#u&;!$sPWxZWBV&dy&h}(-qv>R zrVTZ=t*O&As0AD9uHA*UT9PWjI72e$LN&HAo|wO*)AX9qo3p!OnH;RAHSw=6I}ct9QCgo>=qq86;&F}NgYmbCVwy= zEA)HPlDUnJpf9`j{-K)SK}z>NA)9IT;0F=fnbup8`T{~mJ-4W|B7B#+CrrkKLq zTBeL8hU-D(DfLJ1dOb!v(ldGQFV(eY_fQ|c(8f93l4zpte7wK$|2MFJMXLhS{8G@; zFu&5%|9@aHF?DdU_|>1(w(Pbz5PZ+nVRUQ`Nc5<)Un$dp^t1(IFx*y^*eTFL1*B6% zRnSxuqmpPJ?{F2HgeKjvZPekr63%9FIulY{VT=>`Onq=EIkjBCOpl7q3u{>m^=!j}b-W*Brse+A2Es7|O zkb9tJQ4~NW3{Wpo@v_qtRfMTj<3!omjG|6yFo&X9z}{LFfS0oM8b zMN$lxSFfNe1C4+==Q8Ff7pZKX=s2A80#FL6D!?QLOs6`k)@em*Q4LMZ0+2zJEns&t zxP0FKlgR7}cIVy|16(f`RNBGuQWRk1g8qE4(pa}#xFvS#`Zu(F%1uY@NzN1LW z|1N}?ME&Q=)h3ahM}(fRLnC$c(W|ZF%}jai)$ZnGJCAeM<@RvP;*|Er+S~Hac-z@_ z?ENiWPo(eJt_M4wXE2(_kl!qXl;l4ScnqBnB~Ttk{FuhP#VgX0m!R2_j2BSk2_s8F zxIGJ-%JP&+!)0QULTs|ew+1Z3$WZ$+g)yNtMjIFT5+w5oBMttjis?lmNRT(+14$jR zX95oZIZ2mMkTt30w??KaHXlDbxt)a=yJKyH%Jj>%Ks^NS`l%@pk)<9Pet%$+^_ zNr#{~8>FT?cEBJ{MCU&O&g*+`+IKVT;feVvlk+&kIte`A463{L_@wth+XxZa8b%UjL=O zS213IyWME$B!9)eP1PhwKEKvfJ(GRDDsHTH4SZx{|zc#3j>f(kLN}zqw8Ab=BfI)0u?Ou79|z~fa_x$wtZk1gmpXQ-$ZCEen0`?~y1`NL&DiT> z=f=ouI`Z^a^pKe`|Kux^2l)}kK+|F0-N?M{Lv~;fWBbvwg53WC|APB}pGO*K6wM>Q z7v09+3PaKV{ycJVvNSO@(f@y>u^kP=|Cpb?Zh!6Bl8KX!2r!DIPMoPg3x&cZLpsIE zsG87v!&PHfw{(PxslRG?JuF!peMu!%s}I0YuIJO~>@`i9CzvlDKUA9zrNf*y|B#KS zp&0SxsOv=g{8j}jdJ|wTLr5iCGDB%nl=me&jr9zgg|zRw2p?*}d?$J`s9y=S>w7BH zqz8!H5srHB6D2PMp8c?xn2R7#n?Ov_X;@7qjYn@PA{h`P zs#TfGL&=g;Z9;8kQI*Hu1i9g^4{?2S*(+RV1}OmMnyJ}mFCXWtSn=k+;6E#^&wRgH8HfR*FESWXB-+8)_$q4lxEW2yt-^u{ zqMChkSt4R-BNw0r8zF)ZEPtWtoIEKv)c|hjO_{}$drC$a5+RCSVnd{CpB#bS1&Z-G z=kUq6`p1|K#m-b-qfcqOop%05-g5Rh^xq^}y~qMQW2)A8)I`?Q4%|jTU|VSa(>q8k z1wqFrZ=N(SNyTf+ATxZ{5VnvF@@UaQx+h+9zK*b*>dp=5YqeA&_wK)?`Vj=yo=`lm zhsRBMFp-Ptf|+(iqpQohi5Yo^Xa(>YWodz;4`QB5dq1B9KE-i@j*diz(~L-2jK0yv z;ZgC;^5&BuMMYs$fO5*cq41Z>H*uWtpFEG5w`)ar`Ajthf?umL`a)S=mYcOFBhZdyB5BfN&r_J|H~bbSKMD;30gg#Q3E0a{SOel1w#+bLb*CryHv@ zMr_q|4G)Rr^RX(PT~ZC0Hvxk98Iu%{RFdWnu|nneAu0N z5aluvzG0C`-eRt#R>6gmPB&wwdzIFAo@3lH(3YNcKE3DW= z0eFGqp5-f8t41tSp-yg)YmzEYPb^cVSGuN)uU95Ou1tkcNu3-s+1`{mNh#a%%dbSJ zhRk>W(+CMEP$o=Qrc&q5w@EdKL;PKDn(5>oS+7i#JiR8Rj#`~Fy}lN)PA}W0EVD78 z4m!_t;Sm#R)+N;GR_T~CTvT0bjdi(ky4ZC8qv%#;a@hKGhpnKi_)AEAd7p8_Zi*6{F?GVU*f5nt6F@D z$D&v5eCq}+%Sz$QFBLxPl2^uO@3y5ICvxG{-Q3mmi` z(R}uGZ-O#M&skOGpg--_Unx9YD*uEPHCRR4YTPj*K_?HjzoS2(|2It3-){|5{c4r! zY5)M-|2<5&8vUm<%GP<43+>k{HDAK4xrjhvx7jPaII|eC%_Lh0>%#5Mg)6pBWU;#5 zmxNQm{dMO}(!bB%;CV5XhVdg6>QwG3;cX)Vb*2bmAQ0`iHN)XQC1KyP80BrD zEg#G(sjzYX#Kprn^KwmWsETRirf%nK3)F7gzKnGb-hb&pKp8od4rKY-O^Rmd)quOt~)^qm?p25)6 zs_EF`xdb8?#;#`V&IvF)Z~!agacFJbYW5g7Bb3}xA}u{i;yc<0f(mvPv=K) zKIlg>10F>R!*%}BqUb3^K0gftOGx$gxz+t$zM$*A zj@f&&{l?`Utk}*T^3!@J_LjRf=UeW+g9*#mhu4d#niqi4Isun7Us;-6Cpb@v4%RB- z>xJ4IISY<`$djupYF8C_u;3;>qsxY4Hmza?YbBVmgW1@#P%R&iV8t>YvcddJZ-JSJ zY;`GXa4Dz4-`!Hky@bMSLUv9uAK1~H+jP31lU6(7S?wAB7;+5Hj#>2 zwKAtj{d@z|N2l(iQ=q(jxfw_l_EV-`;Hr)8yf_QLy{>fnk9-2|UBwF=eN|y~VuWO4 z^SQ%NY*xOY>&Z7nIF~rHRV|o}Epd;6olmvTXX_Js*n212#{wqK-OJ~h!}{JHYxIu` zW6ZX?(XpwM+pq;2@Gi_J``2a1g3p4F-}m9)=BH$|50M188sS9{Rt*Xn#|aNf$+26I zDX#PwsAfh~nC8-DQvn`YN!W%E6cOH`(H;R|4*)HgYyf)!93eu?WLs_tCFpr6wL_)! z45PrZ0fqp_LPvuD6M_utR^yq{TmdE&Ue!(f2vH0)gv!pFtT3DMl)rC~4MUo#2Vyj;PrW3xOB_T(_(zZ#hrgL92Pre&Xw!&U5vk zbo-LEY66v7wSWk|PT}JtAeT@-YVk>k))cbhR!}hZs6XAEeoLKx++9~Amx5np6Jmb0 z!5b^dSeLd4OKoV;UHy7B<}H}R)7V2V)4Qll`^}xFeQA#T7>w^(9#i(Vr|QF;CnliA z*;R*)m;B@!2c=rpQ?Q){Aozdh(|py7Bj>GL(F8bPjVkI_^orhv>JjM$v_%n5>Q3k- zNo8v*lMv7lC>Ui>8MlI3GcAX-kSHnxtBfImiKla8A*%_&g7TPl*sLYOoqpRexKyO2 zh-!mUYsp1CU}Yn9uBOJrGFA;{a2a8>gn#m=D#8XT3gtpqDMsNRS7*W`2O5N787eQ| z#tUaWNn`&Es8vWw&;h_6Zh`4+xfex7pf@CUd7;3GDD1(w)It%igKQSS4Kb;YW!Ixk zCNdgcsRF*Z$WjE~s;5a$BdLjYgOwxzLq8auBQjH^59-uK6_QU8JtRK;Ai{v> zvIf96R!!s$=5c8zo-kB8#dK85^I{~pDPvHTjmZa&Wf4NBHRSa*`V>^>hBIa!id!*T z^12z?&h0!{09n9@em^~+!><#9qlft4`c4WtQ4r{uFCz+fQ)8)Q z+ihf}CZ9dXg8tiw1qYm>qz;)vs*on231kYH^6Lr+b%d2D!@q@2cnmF@$|1EDVgW`7yRtrKibjtN<_Rxvq}ua zjTCQ-_JkOC*IpDqR=`M;{zTeN*(p0|>vqO=029#+=*@H>Qm{0vls_}qB4X~%NIXe} zv`le%tE^&MG(BD5pDZ&%c8I)^W?;{4u{E%{+gVl+*Xh&y55WQI2aVLGKq(m3FztnQ zQIq3=Hl^iHs|bU6VbyW6(JEQ7JA-v=OY5eV^%DoNOo%Upaf%z>i1J?9JY@f?c?Wt? zhzoo!nR(>TdN!#)eH}Ls$aE;s^!=>`yi)G|=+@I3ja!y02)XNr z+3;g0K+C+&HAN8ShL)59g`jbpvhrGs4_=dxbX#>h|uRl@v;v=<}ZQB@8+j};pATCx<%}*dre5a&2$UF zuL3f@O3zTafAhTXK7#Zio5ka9ZV(FIVg`I4yEpq82zNf@R`%iqfw2`I;OXLT7Bjh( zMKCFto=g02$|}E_`v{pJ!<)W3wa?_||J8FfL-pY78CjuvEa+O;)p}Zf`Ezx0;jbPa zHpj@wu&g4*!e@nVNDmiTX6A=g-+Rb5rw51bhK`_GV55vA*_IMmlVa{H^Xoq$?elz+ z4#e-A%70$i7Go0%zjQ%3dn`o(_Ey{n~dyYzvSix8R@E7Q$ z^_0|O;c(Ca*m?qO#9uFWw5^8icGWo~q6|Uz6!J(kbKWxy_@~b+d24C1J?F}IiCp3YT8-Q>Qdn~z!c1VH2M zK(%R5S+Hu$X3$d3SWtAHfBL}gXwY^hxSoIT$*^RGK&GnHocGvi3ZD|u<_hD?RRV<0 z>_l|DC+Dr-gQF%rAZWdiEwc>jd9}3rTkSkz069Susv}580cC*1|3x{El_mzI0Z9i> z{3CI$q`}-OlTt!-xw@tT(60t!38^IhevDcfKrs!}lO`of9y{jMTbDdC#f2UnW?x}q z%+YZkTh=Wqotz}$5Sn=f9yk@YT!{>gL|SD#BY=KWRI7xfKATMMtoouSO_1ePCr z?#=!fv%BCqqE(6cY3tvjN~kRI;IYB0r4_~UGiEKP!;*|}AF?;(0pszdQAV{e#vd!S zBc{S19V8+nsNaWdLrDsdwn3o9mQU{A4N(j7Qc=7X4--d{qe1)PUZa{jXCyjkIyZ`- z$Q&v(2FRt86#Z!wF4Evs;$Js_n1?FTDM3ea&R=AE{2W4{cG_i znbG|i>&r)rYh*OmCk$12N=7aX4#oKlE7=EXB1|k?4R>G7HD$$$SUrdelM%;Pqim`o zg(BlCQ`wB{eGW6&E9QpAQW8Yah0}?fbWfD9YUwJ|Qo~^?fxDNirGyo{0##;GrCe#p zk0c26vD?eeGGeJt>db!4H}_OmQ{7x>lpZ9GKw_3pT0kO_vPJ zU+{V|s(N?W`&6gC#WoXWw#aQdbl@8jUY4H^hB_bUr)*Dyl%<8CyU)^N2E|P8kf8ML z<`6;EzXp3FQ_uP?|3_MI;ep|TxwqUx1)LsEms#EPnl6xlbTtK*Pk%pbKxZpLlb$oq zu2=vXCfdrV(wt3eWv~q%NF@0DxTHROS)8|I4rxGg8fe%p@3du)&8~%do1^XEy*pPU zZ-j(*05`ac>#Dtp3Fp-TF@bi zh2Z$4NvlcyX2Ecn19mTaxM>Hj-2Fa?~D4@BJTVv}xPhLrqkF1E#44#P*J-WTZP{ z!=4&uSn$9%AH=P+IIA!@TE-Df{e{%c-23D)p zNfR*@RVy5NM^YP5r~+`5_(nmrVZz_SWlwsMQPw0GwUZoh7Kx-Ttk?e8^iEl`dnc=( zfO#(>Hf3Upt2UFojD!_GQSDAKb{yE+dB}Q1c{z*o*oqujc-Nr}cj%KgXi6j>rOHk- za;&r`CfR;^9SG&#S8CehU*3EvUsZgU={fPFr^|*(w;4HS&4kMAt1Vf(Hth&m-yT$^ z(y-mz3tw4yE0_rBxw$o(6r)pnYnRilu6bhKO;DpWXL4AIkfmHqML9$-S|g1e$HKm| zhUBw5_ac;jWr>=b2hvneu8!+29?(%@xx~Lsmg~ULSAIXy-VUADzsV$dAj_oLU(I3j*IXm`-y@lmp`EjXz4LDrXY~Kr zYzSPI)8(A)Dw0@)%PS@jgXwHuK@~NCh!NQcF;)DXDc()^=_4lHc)Yr-5q%k4o$lp% z+fH=1$rH#fcODco1~o4?FW--)^k7NU(HZvvtCflEOkis{#Q4yX5z3dM!n3f@R!aw^ zkQSauN`O+R*p`wE@E=VF`zIM{!V}2+iDIR-U-9mu(%*2(6HJ*YJcMeJR0K#yXv7Hm zfibTFC{3`x#9~GQNimawg-sp`x%HuivHuoTKqGj8l3!GXf?%o{u%=P@+_RB0YsSV% zVM`}A%aNWmYgc~L0er?v)LQdLQszHm!&Jrqz}=aE(gO?f}x?4wfr8{IU38=atX@#>XeI<*n<1M?G{s{dVyundcjda+qSpY?E3$8>=Jj=D zcNe{P;}Pe7^{iXYea~GN?p|BB=U$iFchrWvC!7YB?*%;G|4@rwF@yAB;|r1i;)rH6 zN!3h5q=TqI7sW;{ff#F=ObT@;u{}bR`#6G!k6To7N|~xPE;W%NMI$MrRAPFNf5|OK zOhrKlkYBFkuY~d>rEsm3Js-5s+5m>yfnN(gCv*=YX);B6Q(!_nkWzWlEiaN#$rHBx zk9}rSquVLgFO7n&G?-EHg7Gwm&q#(4);Fyr^Rd*gUwnr^KTwQ{if4R*Qjm3!`{ zS^})Yk8&4~QFq7FxZDHJQ=8s_U%_DQXcn>H4wD$Vo_)EqYP~~~c4Lr`b(f(u1XF(z zQ-=$G+DeeTHeXsKUEgJ2D2#Nxb)Z&j*xaAop?uGp&RAT^dV9*MBhrYEpGW1|(AqdE zz(R5q3pUx$6-_|hKV70Jr!L8vNT|nO^y;Iy_}v&yXp7?iU_nNMl*=?vR$C}CFaKSp zVL-;QQ$h;&cBAtyia>h~7A46Y5&^*;&*563x%5|LP7UPb>Fw{4cA(#1qE4gZ)>t+Y zPFWVVMyeg=H4OO=etxV)Ynei8*v1xVUv9?)fC_;EXDhVpJ zJh7nDnI!5h8+W7$cagB2^0XH6mJO1~&w<#Q2GK#GMvIxxo5(Wjp`i7(u~%==jIMm> zJMc|%=BMPyOU<#bel7;sJ{BJDSm}`sAFRfrR83nKa${zZ0$iO_0ddXl?Ynei@_y~l zhGjl}sWF=h=?>vB2%9Q1{}t$KXuq6`I8wn=Y~*nWU`#HVv&!>*>Z?;0WSYrmE4g`B zOap;9yYvCVfCW|li4>@ z?zt>|3>%|}GHt%JBL$h+UfPueH2&x6tHt4<#9<)yUY59@;Amidx5j;5MDXYdO--10 z^jPMVLEdqkl&BX2PcnC(%I86{kphJiSm~!e)6O$ln+eNS;AkT(-kU-oDKgs=-;%YX zw#Jg77mi&8BO&8JBUU9ln0W-V>clWvD@!5!1S{bvY7~QhCQ@uOM;9UgID*5#BGXJL z&GSSMl9hI-I9r{rih%(0FzYFJFxBH8`PcW(*n0qolF5DIUac2|b%_d(A|)Pg<)mn> zI5;`J)s(5dwPWQfVX)52)l=%dLrWc7R#Ms1i5lacjYs8j9AKF$6OoI`7Eg`2_Mwu}N-q7xW zoG=FTRigJAPI-N}@a$Q$fYQ=n5^Y#v)_7R@GV|mOqeq+?)Cm2<1corCM{zl3jZ@b^ z2dFWRcPts02QX61q3W0c4Ed18>=-AkdYqA@0DA{9IC!5a53zb@yT6qzu&dT`0P+VI zu4B+Fx-RqaN24wWICwg;>Gt&gnnl$QK74t!<;kF3ImOM>8`&35UYx<*&MbLfVY{;C z_BbK~(gmS5OEMbpWJ(8un9ZPsX&(fNrwu6{ECqNpRC*^KqVrUpgqkqcg1>ETQz9ss z7-#r+AuL5W&VLIUi4-0$qy6H-!om0E0iHoDAQw7w^7VD}I?b|B#_WyK`v| zt-KHA%FmHMOZHOdj=fLy>QBO*MwVXMC3Ky2Rq=*E+n(I~Qk$_At7!Jk|4-teC<^g8J{`%vW zl^9?G;uf1-A_Kd~fim4MSrMOx8K;@W;FLDPuG`AV13@8vI4I9CjOZPv^!MgG(G$-Z zD{&O7{20^3JIgse5_^0k_$ved!Vuqi8!lWIu6i?m?dTI!M|tLT_~hKrA?c~>1*<~* zRoK$ykhCyNty&cxw2C}OR|~jM*vS2JWJdwNYK{74De$k$GL#0gX66;dO9z-_qrN&o zyw7^yEi9b#L>8MUkm{OJFy?03nNxcYr#CmJ_nDmEEfyw&2QXZeX)K5IfbLFSaNk|) z@XW*>xcS&MnvVLh`yYr2h#+npAxl_j$BFkMIdV#oly69Oy~F4%)nQ4}V(xvLa6Mx< zb0}c@K6Lec@rI@69NNA~^Q-sh8xNwmyo8iH_m`i35&Qe zOoC9&bO8kuqT&djp%zKuJGHPJI@OtHUeB^+SjlbX1rg zfo2A2yBcf`G8>K>mE>%Ao-V4eQAjU0&BZD7)7MioyN-$55!#}yldFXyaX54YZ4TUm z>ZlF4d{^$M4Qx)tGXYYlgVNtkS2_k;QF_iGt-c^5uImOlY+xr0uI^z0)hHd`=^CI{ zPjIXciEYRuj+T3#f7)5#-=r^V7)9Y`oGL8EIcl-*5MNWrO})HbrrR0fJkgkCmDSXi zUUeg{j#A@XMlgjyhHe2e=i_L#x~iZP@%!)vUMP|jdyzp)^X>U)gSY;!eaj@tN3~B7yz1@km#v8LsnXCoxJF)kq;x)l3(HRZov%pdyn)4pd1>vf zrabL?5BTuLH4?j-a59RX%)gAcg0Im&D(hNCf0X{VB-e-M3b1l5T~|#JBZ_x9pxBI0 zc3QLc@WoC&_p(EOBv{N$okl8@Wre!Ck>$Zc_lI4ke3Q%wxc_jkZws;MC1Y0(9I zM<>4x#zITABkpmx&|DrEi*9Oe4)e^EfPCYE4_M=GWy#aRlBbRR(UKmfQt;}HFhAQ?ni0Avw4?BRQ~@R_)Ai(VlhMboE)eU772BJJ+swOYiuQt+h&AH&4Pq zu`Mv>cw$7xC3;xWDfF8iQrvL-tLC287b-*sg@?njD-IYSKsn`K>{plq%1o3N*-&y;M{)Et;7Fo^G0iV{9`V~s?6a{D83O^>_1S-V7md|^qhQSBY7H=Q4i zA06byXOsdv6r92D65i3ym^WsE6}LI8=~om9mQBAY9!S6^y*^O#&23(rlP=bssv1<` z!&yj5Naw#4P3QVKty&2dD-dM?ysV+^x7}|)%_Z7@;kt1B9W=Bx{hux2-y6>_%a*Ok#X zNen-G;iP}QK+Ksw){D$;4YTXs3LMQE4jQjiNl)A!qFA!7Tttg0f-n4ZQTLUcHA2b5=lzzE`$ED|&d7+yPXO+5M_K2?ub|EKz!&F{6?FJB8zRJ<{x*Q5LS`VX!f2%Z z+gTHP*ilYO*{v!R{ayxH3GaMvOezvxZFmVEi$s$)3%6 zpA4EkoqqiR@WmT8EV?pd&K-G!e_x)Bnlg0cAFhzZmh|^;OuQCA;`D?l|IsOy@K#Yw z1e2LL&ru%=TdqhV<3%WdSg80UH)6xFKc-b<*an7F$4XE}QBt*6tr0aMW?42n7$8Dn z`YoNEx9EM!g;0=(fQp@Yxp}&N4fbczjD2rC*l_h_eI{Q3`N!7%+wgYz)7{AL&-~$d z-T&}Fk%!FqLoR;Rnqlh^#UWT8nmCW+SFSp{kPp+Z7pXD)?AjX!I0FQWZj_7!31C}t z$e#Dj^~JGHYmlM-ckv9c5sD~`Fw3+N4VzEDc_bo$M4M=8?%crhj#B~#Y)J{WcPbM= zxGCNaTXlyuDo1z6=Ht$WQALznIsXanNu2~ogOg=I|diDD} z6Ni6$vJ;m<@*-V+JgdZ_{>r+;RB;U24peeD2sCEpv_n996WFJh$`Nbep>cfyXr@!F z#Ixvv1O9r<+>5tttq)T6YF=lYm`LIab*UyX+H=TDn&~J54Dcu5o( zdNck~TGZ<3-|UCK+CTipP=4I-KCVwzg4to-a{DA%5&x+8PR#(er5ZN}BS+K(w%*wm zof{!+O|)JMrEjESvGxoXG#*p|cQWk1l(cX|P6p2ibuh_dc_mbbI>@K;EQHDxJ8aS! zK%=5Eu#|OW-X5z(`oKf_9nXE666opkxVoavI4S#?9-RMl{Nv)dJk-pQX_YTeY-yN7 zyg_21;X~+fmCw=NS5w z{tBFSsSdhxrNlYq`(p6Yz9NW&pAO}(8Ch&d$n?h&d;zyj`k7RpOlte^+37ULA#&03 zHSO2*g>1(P*eJ3n6D_@5=g6W0BYU*3iAY}e+x>F${veSNi60*ObaXWLHYyTm2(!N=O5d)ZQFLzvDvYcj&0i=+qP}n&h%Y()|z|Y=6gOb=Vh<6Pwih-)i4Jpj&S-y zH*-yloTT)BscoiIikBPWYrLh%PJVdM7kE5JLMNw|em1Oh*}l(7VV!BxUWpS_$`YiYgL;-aqO_BlbBt@wk8jn3u?dL2u!79-eNgE1iv%-#z z&a<$=6{(W~Lu&j>9|vRa9TBY&OdSC2BjI7HM4i7C7$IblvMS2b31TYV#4JViqc|b! zIDsQ|eYPHkyloh->cYbM!Uy}7R8zi8YZIgg-5Z7xQuSuLQbEeL=W z{bwP@t$QFI?IS9kr04rjXAjW-*1HuaPv*b>X&8k#|GD1n{6EQhgJ1R*Rwn_hgC#KVnRQj`yf8H1U)5{^TOwGgPZY`=CsvaywMt);Ra z`4<_GEvCD3rB3Md2FIAy60O8?Xo#phgZpqLs zw85?CxEK2Lj{DzJ#!;CGUX%5Y2n@+ZeG{ov?}u;y{ZrNlc|1hXC%r!NbP{3KJ zD}$t%F-)CAn(LcxT10$*poKz>{FZ=0oe3ZZk7$085hC;(2QviEL-mQ#qeMwRLH;h$ zO2KvKjv6YUi%z=Y%ytomE#~3)imKe`TOuNT>Qqpo{9B^>&7wht=A)e;Nf^eEL#RiI zfmTXNUOuRY(U=vbYDS&WBsp^Mi%9tlT-u`CYrHWdK)O7y92N*QBK+A4^c?Z|)YpEN zps6$L`*vWfl!))~`o_Cu;Cspc`uc4D`nf^ia%XG*BEzetXLjWK$}Ea>5|sR&OG?WP zs%+KevOFM(?f767rV#b4vi?3_iFIs9be=S4f;EshY1E~Jl}ACOsTX!h){K~C2j{%0 zt8wS?#&+akyNqcy+6t;=bIV|7lP}uteV}q~r1E2Bp%vaQ0So{mbD0PBBG$Jsuz$BCpL*al4|;;PXLiw z84vaNtxPZ;f*IDW)SlN`&b2S1U9)VFIW7YVOF44S?P;3P+0HaFq$*)h{BhlI%*xp; z1t;$xX7qh_PX1>RCK-Snf*=znH7hco`~kKeF0RYZ;QMQcELGG z^j2-Tbs)jq?K;-m{rEBj*LzPvioji9L$>i-UMsv9E{{S z5Qrlb(gL(1_FGs13P%3N5kFLhI-4rDQI!$;HL0YVin>g3<>G#dcFxi?gsr@D4!^y|zEc#cF8BVRB2LgF)h{KY1EF!YI zpBP3zw75a+FR$VbuKW)N1yGw zUOL{3If;@PJAzSsV7f$-nB5e|1h=ANNRu+!PC=5QBy|v=GQNrC&Lsrej1vbx%=C87|-j@7TczB>xnu?VoTt?)7%w?3UM5OqjgMj!(6WaT zW@~`pjE4hFPQ*bK#-=mG+q&UsMmfjY&=Rm>8qxoaxr~^kmNswNv(mf2pKpypmVP8O z+T(?@q(*wxHkb7n4)8MNej881y}=r$aiRr-lFByHZIJuH?(yduXf|R;=*pThO`)$2 zfs}k_&dL0TcbVzH87T25mfuUb$!swOm_k2m9nnV0gDvU~Jjd>kl zljrixYpa*n<$hHUDz&sJ=Z%tqwie^w6e|aN+o)mF1*gu8%kjXl{E3sbM}(3cAT+Ur zLo+KWIDI#w`2I4X;SAZFwKNu%FJ512$40TibE!gc^E?r z3?U0Oj|X>UxEc&$Ah&?KSE0J!-c-+5t(}Z($*+TIQ?x0Q+o}~Lsj*!n^Pa()|Q}h%t&o(BGC&cFD9Ve8q$U% z^Q#a*u}Q9+{Vm{vdxK7AG4xFpE3!hYTf2PKXdr8xOgfC?XdIczvbC(eG=PR0Q#{1< z=WNi!Be}p0MwkJ&r~~QZaVwmaXq9?RMO%K zcj{xwN2>d8UhDhJwLna)O&#MW%6{S5Bh#GG@I+KlKnQb2ucaRI29IUMXw@TIQ~7L4 z7F4`)A4-ETGxBGKji1E6a+7}dh8cLxWXExj+?;M$&AxZ_UG21u-McN|cXhR|#tuWQ zhSGfo#;Y$~3x85)%8qvGi~f$QQ0ubG-B)Ce4f9;eA@i+m3pHR&9FvO8I^RkVYZcXz zGu=3}Wf6o8zc7;!^eYgym^h=CBtTX$2hn(A;_?=;vRe2CGNY&7Vy&ia;M3z`hwv$5 zn1JHCFp)}w!!b*DF#c-6P0Av%S>3h#b7;M0J2sSRJdlczu_|3SzU@1yrP$h%vLY#+ zyA;f;bG7vjCvW(m#fQS zyN-1~J%cKmymt|$yVxUL4UrTcJvE>wiz4_>y2h2`Sv9guR5r!qp~Jgai{~jDoS2-K z(8~SQWq*QCh43Gc|Giwn5|{^Wg8%`!{zK#bQ)kM5b8`kJE}jl%&i`E0NjnM~j7TFp zUmBa^GCIk@^;-DiG7vi~Pymg|J;@5)#QYw5apFJg#WM9( z?AM+pO7wF?QoT%i!E)ZM1Q8lI=MK3nRxyhBs2QS5N?HPq zDQtcW%0oY|^lVBbu`gvFnj#j9XuU2F180Ye zh+k*H>K40lHGBQJS47Z#nr{NR2U=zE`A$UA*23c8OpWznYnw!4LL*%a1RnU& zz4vL3J}>Nf<52~)wecr&y^JBI6m7?)d~F5rUKbUXqOOCg_?k>OzfX}cKK%meb|?9; z$H@G*c=R|Zn8DPp60gZdMqMwTZ=})PdPPDSJC=%ujgge{{M~5 ze@TnC%Xc!5_&`9KaX>&U{~?3(f5+vD&&nBxBV|YL=*NFfbtp+ziL}^*H{ps-Orju? z)>G8HQ!6#q$}PyWHe*YcfIH#t_l`S|SwwU8Qa)%J%be$IQv?=ic?3pXRfY;~gs(b$5M^Owf zW(+Eq9X(F^PbD_nJ9}&jKeR}{QX1`5Lov1Ls%u_97d$iLYuzYDX|WVZ|6K~>eMsd| z8V!2oy|Dh6(&{f$er8E<*yf04;MzHQVZjoN7Elm4;L?x9)zLmu|NACg^6FyalK?% zV)}H(gZPS%@j;}G0ZAcy6v%~%v_%&RKA7P!rRglm#sIxhPB863;bCV1Au4kJte01% z-I=dNsq#EwWVri#ApsklKLlS}xxJjIOkihOIe7TF-FSEe@QC6&1Xye@+A4wpVhVUAH=Dt*pARuHY}CjIes2Je~TI^>oZY z-#$sk3`Elk1&YmQ8|iQj7H=#1-%odih&&;{+no4ycG?hSc@Yo5hETu1;dLLto_#-| zurk}quc6t}WwF3dx4a>?7jxKG! zMEfoxN^ft-I7eWVV4BIn+DNjB6fJyA-@&Rrh0}>xfU?GMAHhgh%bh5~^hQpmzIdFq zF+KgKFJW&|55Dk>Q0;L9RrItffPBOE&}Svj~QWB`oy@k;`VRa63NK{ zy3z>G^0+)JV9+2HB;;C1y0sljSkkG1OCWpVj+uJ}s`VTYPL>KpL(qBX9wfKH_`u53 z&_xN;3G!p$z^{DpUvvi!l4Z$yNI>fhyY$+qvov!%VL%X4V(a9xKK|g^n0;{zwBrd` zzHQ2Hd&DvlgF@F}U1W`=H6(5U7$q~*p1dKlIx=jTGuf|RJf(X1Vz@b+Qq<4epN1X* zds-kqvE_hpP_-QB$zCH#e&u@aXTS&fD_(uJ#A>}kkhB zPWq15Vfqc#hD~0T`)K!clEc8L3I+Ymdn@P}QL6$QzVNDH_*~o}=UAHP7J{k)eXrOO zaT>(T2=9U!?6QTUI!c>h%RyI!>q-)cI~)U<-0`LduFOIXB5`oF3Z!*-n~UsGqf&T> zFxJPKfVW*pfQpWBCkm?#oh! zzCo1h+jFUumUtJ42JZZgHdF8!y4shS;Dk6( zSAhx}25CeBgB+Pj3|LtNnCy^i?}j+=3`)MQgg=7~S@Lcrg3m=aZkCgi@ziw0FsK`! z76?sH|5lfN$|F!@d{;s6K!|yTmK8D%iunyyB2(}k_&&JavTou)D2FKh@oQX)(tr9KLl!Ghe_729%BF|RBd4y3GT0e$PZfP)X z8BK46supo68>N-n=nlL|qDld?A0YtG#cCuj3-5v=9(nn2j|tw2MzLwlCmVzd8l@P5 zlC9<*>=<`w%{#gLca3yZExWQ}2?B(I!r$2%3-R~Q$78hhyd@Fi#J(e{?Q|73b>N{R zC|8N(_!|O(_&RK$W!5g3lfhr8EJZqDvB^6Mv2OndhnZYLhvcY=-pWR4v2iz{3gM&` zjrq|S_LBO>v>3vwVCV_xkuCoeEn105(V^;!O1 z{&Q1x#758MC0Y`UDl{CFGB4uKv@dG&aUA)9yP-?YULy{%U>cPWbqSwJ)IB{8)Vg6C zMH^KfvS`qBl1e1JJgSL9T%5A8t{As!mOBaKf+;c;&H!f=jNG^9MiW}_L^%3;u_RCf znoWV(u!h>jJ|?yVi8Q`LvZkv5O!7qsSP-QCVT?a9T368eP@7@|DXdVl2Rc^-hn|@b zZy0eAtw*^ug5h^iQH+@vber+^hOrwzR0KtVs%Se>W*;}Tta;ulim+*|Ns7_0wH~3l z6B?#WUqzd!%hUoHSZMtuBlf{o5u;KYb>L6NUbR_AG;s6o?|ZYTgrbc6ZWI9q5A@n+ zXB7^p-C&AS$U`-#Qj@}Wl+0B!gE>vS5LS%^#KA9fo?TaBmjwD?7{=;MxF8_4Rs+`P z*xryk!1RIOsr>-ey+#QjCu9P|1n~_ndCp;)?uvaCbz_ZFAPKxn<#v0=T)HH`nX2oW z;()KlN|`T&q%cS~#OIf+o@=p2n+)}3Pas7`*a zL>_1qx!)3dkP*G#s81}tfvpexQH_jkT%S<0#Rah`sD_#&h1D@I*y_js2OiOiz~uK$ zM^M*|&fPyX_j0ohhCy(kg3}39K zLD&t149I{;-n@{&(*<6W7emfH7SCp@|JvyWXn!uC*_N=fg6n>`N$_~pmKCIcGtVuu zmmXM1gPpz6@G6Zwl0Z*|86t{j1t6t7&eFn_rwNg6B6;?GB0Iob81ofSOc$i@j!~a;%g3 z;*6OXRJYL$4f=RA)bQ_ow5aX;DnHmm({ zfJXpJk)T&;lfJjKe=76B@T-My6~AaPcnBfM?`s&S584a#_Lo~I+7u_8A=cuSbqHzx z{E67zkiG3#kM~74$SU1sQ+lo!%&ZX-&&_b%(p;oOAj|8$GzaSD*$KH-!yq|v2(pKZ zkUhTr;wZX*t~*yBsjclZ@f+Cc;1K*l(iptozjFO^5#KK$Clqcaf2$bM?uPcA!-{g~ zzPU@#%VO!*q3Ivl*{ktZmnrE%qENqBI%&Ki#5<{i5+uSme+8$GddQM56j0I`$^u=;fSYk73Vq*!2PU z$G7OljXnI5IlRzZ_Cm0YSA^J`F7lq1kJAIp#aY%$;CV`sjbXrM^>DM=j+pU5rgHRA zyd%@AW7!A3tKZ_E2J8RodZ$J_@4u<&;d^SS{kEeX!=$S_av!T;f)yvkOESK%`Osf` z|NX7vinn@_d=6@0fW}j^jO{gXvjo4;;hCn-FI&qgTWgi(x5fCC8FqFu@EA4lm>IfO zg=7A3Y{dRx#2z*9>)a^G6G&x6)fe!AKXE|CoUgiBxbN47b^2EhJ(PxR)u-0h-g8QM zub8t<+1G`H_4C^MtJKAVBH-My(96fTk>PbIeB*_& zH#%Z_7xj~_5`?9noC6Rc2hI%nUzA}yqqo)K=}*%qX1}N>z0l5Qmfjan`!2QFyI!v_ z*}2@-s>cfR6CyOPV-#2T=>$CPyEq$hWl|REI^s0vsEde4T9tCQw~yb93NSe7?OQRveux|r7v28$ zjo@Un(8=WBALQmRgiy(mN<1oxxeAHM>CKKTL=PPvc$WT6b#vP7*`X?(DJd^8aQ@t# zTI<`szBTOmdmrlN12>$VyaYmKajvv)ZwU#Z)4P~us)YIz#k9j1P+^S%P1gqMmquC7 zsa~icGbwlRt}J^jAtT`>pP}GmMIWfJbk|tg7VK`l{^STh4549HyPA2yB4l5=E!J34 zApoX=4$qFD44bgS(Cuh)`77}-gO=Gjm1}6V8Q@`RlVdUrI`$2mY)xb)uw5I zRxn>W_jQyVSnZV|pcQr(URtR+G#FIQ*L+v3b2vS4=_6c{p-)^?h< zyGoz^%t3rm%W7nb0w1qUhxBGlu6*7-B!$$fG|aY_-=~)!r#W8&><1fSx<8%9uctYg zxrsm!KzgSOtD3X!Gp4*$za2#9a9qb zzumrwXg#Lj)JERY9c;&(663q)_Wa~P+{N`)RN6iZ-%l+vn~|B2m8b_hTL^YR9I>z7 z3Ccw+{5Fr^Bdzovy4=RrQ(y)YLrkea(hf{mI8Q4s`x55kiE z;xa9QNKJ3}iE;C%GFAW72+M2Xr}?bQ`~ztBGLvuDw}(+F?+_kfNLiyZXLTn1@GFvv z@lR>e-?M{fZXJGp_T+5Nee~pq z?9&?P1fUDTr0$fK5@hcl2vLhNN;xM!4Gkdzvj3zneYY> zf5eWs>;}57t9oo3{Uk~$_?8AZ7y!9zuDx;~_~H_^;YMi5P0 z`q1T;9}!-$vGV2y5- zSJv0~EZ}`@gP&B6SiUl>xCk{*%BF>rLO)5@#c>#l4GpXXp7x zP@nE}a}c?wMPsU$*SvGY8S>_A0i*|6TcYRwq)XyDm9Qp*cf#wgjo13l6|6R+sC*>> zXSB5O>AB#ISf-d<2f5Q6HQHdsK#PHQS$U(fxOsJDpu3oO^OsMpeo(M6c?b*}S8%s0 z%q558p~tH+OHRFC`zq+aO3G)Q2cpH>DHrS1B=CFn>a@TaX~Lns1BDsHFHWgHb*n&< z2(@)mwq z|9rSKY!O2uN)C-4BkxDLR}Pp@PMnM?!&H1>1ajJ&zUUSpGaJSs@;e-L56(STDh77k zD4R?}BtAHiw?LQ4;p@UBb{p1%7JH14pX11M7>sfYQ!#Mmp&-0Yx_jMp7;BujTM!kj zru;7}+%Z}jWedKUHjhlk%*%h<$!XN&z zaLSObDYUtGQjMmNh$qJfOcU2Gtt1~y zXo9lK^g1vu{E`$SPAgebcH5i5hC^a{9QkKkpTDTFM#v*>;L@Kd5J@ zL{Ps_aVGy|oc!j9PCfL#Z25u_Q? z;-F=`TQ{GCxxuVXB0twzf!&Kj-`5uCpJx7BF=DX26(-d``Cf2KCS~~czLu5ko4U}; z9dxox!+NhXXKsM?U&=U=nz%j&H7ko%3RAagT%|jU5Hn*y(e6OinSx65tlRy~I>Yzl zG2MO!v0C0r;qsJKuu7JTE|Kux?9O2P_t7Mn_&zDQ-otW>Mpm1I0?hxyd#<7LVE7cu z?nK4Xs+QK#&l2Av(IzoH=sk{_TD{+k$$#FJ@GIA}cCIJvV)(cMJTK?MaIoRakUvAF z7(cAhe04&`Dk58QPp$cz6-^|&F^u(muKhEMMW7h6ML!K7xa<4dUSaT7Wt}OSUAe=* z%G>KfxU>9fLqsb2yTq4l1XRVgt_b{k8y>Uhw07IDeclU}yJNAr~r!ueoh!AzS?VSHDW3&C&U`H*4oiokL_}+KHpi zlPdM=U99{XqX|;jsk6|+mcAom%u_8#G7p@3ZM#MF^SSJOfPiE?88v54&zN#-*Y(4dPr}5&a-}k^r(HSB--~3 zGZB!ZHiT)R+9DJ9Fc$uegu324H1V2sV%Z88RGP{Iz4Iohp?D4oe-}JVyV%H@hj$~S zJUQ(=ZwS%WbKPMQc_4i!$Khy&EPraDbF-I zsa6Exh3w-f{}RUvl!y+06iza(EFJD&xLL5#j3;!Wr<}bbc+?+huM0RNhN5WU^q}eL zc)NQo+FO_$Nm-I^APP2()~ZQCgJqL)J8hFc(2dCar3QNV#%f1#XQO4`Ki`FPkLh`E zj449R2)}3p)-PQ+*gt+eo^^Scd{?aQyx2$yQ$=ZoJWT^=pztd$6~(d$#iPrTj}tqM zOMU@$ERVseVITSD&z>@}$0dodIqzivv+d3Z6G~5%-SK%EOrh}8T~r=uWifEUbqV4&;2-KTq>L|0;m<^!d_8+5_QNs+iAdWG)nYId(wWUrcORssh z5)K!-#f$D_KEf_MGy5R4x!4E1zk%1R$8Kn#H|c9JUgEVdZ@+I+?7rUZzF^eiZdOI< zT85;0Z}?KXJp&3`6PWIT&_=1*)QUY91XS8})~Acb9smP-C;S!GwJ(s?guqNYudkAc zDw48PFCk6#0FYMBqizl|!GGJk+KAjVPxX zpAHOfa{I>R!L&zOl+Q-qpN?5dL2+q#ju}@Q<&*H1CQ6gCuO1Ab_Th^e|yZXvCP>?r051A{a259%R_6|?^803x$V*Oul^HhR^@C6TGf27S>hBU+Tvq4F+Sdx`8Ot^z9^Px>tj=(e437hU}z2Oj`oY;Y}Y z0a1lrx#s1Z_n;`?D|`+AQXdK7kGE`8B0&n zS&u&t$S1!tBnqwTYS=%ZqI;_Q(l8OXeTv1IKlN!Ge#1*Br`0lrQr~nqUjH4|++Ka$ zqf&&{sJWV2<&Zy%OyiKd!bhIJ6f$v;(a5( zoZ|0pmL0E;hFgOby$ko+6bg5Z7W{p$6uqkeFWQ6_g~P4xmsf;6mTz++#@**#TYr2L zm-&WTfsdaBCqIMmM`0)Sv^xI=aatZB7P7D~k;rF*4@)hCm^LwuvnAd_8U6@!c5^0zspa=4am$VTm9^dEMLFLIi5tARY0$ zMY><(CGV1d(Q#t4IE?g+C+K$l;$fEDZzB-5Wp>bW3Ya2x>LbS3W-isM>^eZToWM=+ zK!BBk%Z3Eb?j>+774tJU8ub11xQ?eh0-<)HUZU< zTSrK~NrL(txi!lRRs7n67c+=5-0eyOeD{wDj4f3Y!tToAFELBqO61qc1J2W%>+P+r zzvX!iS7D8M8qJYzJMe!LX6O~%{pYo>3QzvU-Vk+2c|f7!3LpW1@KCuS&UL*cKI3M! zMtAiuNwVFE{r@lL~RP(+-62rPd7EivI#d7Dq42_R}m zX2EI&A@^xvv-&H<87ve=~<* zZAF)V*k)MleA)+T)5oY8je6vIO2+s;-qWlP!|&B!qog;Qs?CeXi=&epPfs7dCUm6m zrSxWo!S8PZ|9iOm->Zk~aC43Rd)0P+sWdodtLsS1E6W5*t0Y$MZ}bB^dRQcwxZ zIkm7fQQ21xJ8IyMgn3-Eie4%*GZ-yGqM1I;D!KHc;MRBy#CqXV;Ws1 zDX`*)$nCwwAr?44Yzt0+b&vs^E)ftxTsByDOq;|2Wa|e`qn0OhENO%?5?6&GIgs8w zl{ZFC34v)%ny`$I-s}hRd=pbFDGXr-gh?;3I1b4XqpYV4osS6j;mc04G(KJlt4+Mk z&fUV<(ArtYT*m_e>4Z2cV95SgH=dOzyY$&6z-u0YRL**{_TOZz!ZCj@TJ_C{AKYxK z%iJ}<(U3j$E;iUmEm&c_=c|%(>1D>}7F8q+h-~fg#x2vk9u}7{%n_-Ln)^u*g;w-I zgIPHO2hwB;c8aqn1(*#t7~kI-EZmEP6~&>hu0wG3@GG)=K!3*oDY?K2>BLd$h?|zu z2=l%)nZTlqZgMh)D?vUKN&y?Mn^XlJy&gQW?7#5u&=9b<2AcprAHQa0^y!_vz%s%l>I1Em;z3mQJ!! zQGf~FCf-Q#2}Yr8f%Ix_R+Z7+B_NI}$+_X9^@(%JxDm3_?v=&88Dm$c`WI;;YyU7z zM^VO8tevT`!uHe@or9jpn2;|WLz5F)%`>dpv^z+qpP>ASYRS zC1y7POr^TdHX~KQ4ZNa-UxetnMBpq#Co>9reo@JFsPuU_C(9`w)2kQT4O4vO z&lF2cWjohIp46JItHv={ZdEB!-*6A9QLT_b?@h$(U2;q6mk!bevxeXdD7KXL+<>*uV;xL)|28BN(PSDk*=(jq+NX|FaoV%iO4-gyD z8_5!Hn~WM|HOIcOMPagFjCiZgbIY84>`)x;+J>UkBek1!bf-nb%p}ctC>NH&86y(M z?zQZbiwpdC3;OAg|vcb&32SCUHIp#-*NuO;@Z2a_QCm z#0{q}Sf7a}GI3{0oxrNBOKDxF z-Y3So3vQQPcM_?sw5}xFfNCU}y80o%r(ljp10p^U-cha`Y)f-^Z)vYC;ClK)5QxIy zr)Mq|6F6&vpkitM2M_Y=Zuz$OQ76Hc}vktnKE zk?UxbXAQ_c9aeYzhRYDQ;^p{XmGyx(~!-`^8NF2U1k)?S0Q(DU7_}C{?(%rnkvr;&fa16Ih(}olkYU35Q0`_ zFo`WBb9?7-=PZH&K2PkT$?VhO0Nrnu0M>FA70uI_Rell0r}(%w9%4x(8Dk$+3E74) zK5>D6e=<(L4m-xL6oNn^g9M~jOAiBcI?LrRVE?aiG)|+oHGh7f9J$Xnm(0@S6jG_} zh>P;rUj@eZJWqxY7dPSpbY!1v!5>4E8ccZwEZXoK-U^KTx3cGDhBq|2l&K|Rv z%vjW~7SY25coM!QSsM~O{kzek=r4y2GZt=7%8S4ZznBr~5N`<`z{1!Q9z0$|$jNrz zOj-x8pXG&v(rKUoj6eo<2Ha3_x&-}M97F*cv+3d?F~F@uonpMU~@WP+-X5)>Dv`ijflZm6WcGSL%s)p9Q?daluYNTi_4@*z9R5Yud{>Xy4 zSzSt9nd!4$t)>L3n;#U{RCR0qj(=QpFMdioOVgU_fQ_lGA&bcl&nQ2 zNEPWXqPtt`hY3+8uhEldbQc%i)clEfwi!L(z3;m6WjL7dJ599-8q9I5ausg7BIntm z{Zb>>tWcl|m*Uu5VumrFgb=j5ZfrIA=(UezVzOIBB~VqsQ|@Sn3<{?@uKW1DeDM+m zVx4lvM_)xvxC9~KkGsxbqgKBV`_>Z?0hX*t)QQ9)@q&OnuRQ%I(*TL@J{Dto|3a%& zz}wf9MWam=W5!1WEKK$}7}*?1_yCv>oFl>m^tsWZDGNrkD@{2|4gvk3sA*(gzGz(% zML4)>_#N@py9{?3uiG0`0ZU4sAy=Rtf^4vEp~dmV_`9fmSwo46k*|D@!iZ9rVh|i1 z-FVB&XhYO^ap*YbI0h^nh_i|x2}+qhKcTvKSA(gQ^NU^UOq1 z#AapVa2PGF6ORF8H-K~(B$u_k5ZMAQ$CSo5M?e|DH5k!+Plc_}>Xac;gY6>R$CL+~ z=}<}UmC?b6HW=sLs)QqQxX_QFK%#4oaAU)380ztuN$?ThU%g^XTLlG*qqjJ^4QWiy z=`oG-WL{2j;|W&-opL~Iw`RMEYEyt}ou7!qYA!)9|LwrU%3r>P8;H6kh`2`aq6(zO zzSKs#5_3aTB`8AXs?oc@g0;SPX%4>MFd<`VrVPsH8*@@l+FICzrh70_S*FQEd!m6N z+>}l#s%AVhQiPkna2Q&@(%hUTvXnFKiWp;DBDdmLMg7ok54sDE?SpI)YFNs;mql`D zs!S^}(PE3H=c8eB^X$8PRZDzI`|{Hw$ET=WH&cc;hZi+Bv`>z2m&MFr$?x9LUqL1( zrR#D5s7ZxguX{DMY)xLEi=E7hztNiSX;^Vbw@41?#TBCgQT0Q%Z+yeVbXv{Zx(Hr4_qd(?eSIRqFHe@^>ko$?c`A!Wh54zxSTU`KGga?iBbfs z;XGGmQhs9Z&-iU-AIV!Mc~A^3iqEQyvW|UL=^1Xi?8tuw6OVgn8v3Shv&kK)6)>k` z1~GsCC@^I2OGNGnt8yv@rpf*At7F^Zb7=-7$E|^sKjw$)ovrV7a@ml zv4mYag~HVDnnytuset#aw<@JJ>zqCI=4&l$n`2D|=|cFn4VyG$HGaAW5hJ+4zH#fh za((XE+VI{wE!=aezl**Rk?M>H&mmMCT{H3VX<1EjNT%7V0VNSrv^@ar$piTi@MXy9 z4KqkYDz`#*n{e=*RWQHzr9MN#HMl}HS`_CeGUN>lRLg4~V|dMm04_B8_XqaJkqFB# zGQ{?jdVPE9?u#xQX6S`Y^+Wy?GG0>#q7_XqW;LOf2>E8%AHjrokHOI#jvR@!X5#kE zEO>-s4w=?a9=86Fc4#$6dp!l!WfBvyX-UXA-_x4Vfu+AMtImDMM$ z_@UONYASBI48m!`JT@*sfrL{#byiHUgx;I(`r3aqGQ_Y+MJ6=vl%kuD#rM z+QKXjt4LMDurK1~3te=dQ6R?r*aquW>x54mbwH1c?J=y{6lgVo_MHFfMs` zkZ=IM8PNlI)egaV?Ks=h2l>jRRVOzZNi7Rvm!1`~=th?D=t*^PSrw#G3v*&*6~)DU zTTL{X-)k5D+Fg@_u)1i{HH+cn@`xr0vzb1iO9xX^XZNaOxFOMQoyKl`g6)ZABsWFJ zxF|(5-sYd3>zUx>A$fo!77m+MP~A~iHqqxJ)%=_QRfwc_DT zKI-*VzxUEb8qxrM)wYy=j!?c;#Cdnx>GRBdkHU7X*Jd^^6;@h3Xi+|YPk-5A#_n}f z=~93yfe*su26+zYrxr%1TofS(qx>ILgIq1$okFepmsDD66>%uU6@0T#nnC*32tD#9 zOO!>4XphKnwBVNoW^MS0u<8>88RBE5g+@3~J%-^&q^osqyf`xK0e6bicT-J@GLEpb zj;RgJ%-MAxiZ$6O31iQTZ;O44vSI7-isnBG^x|4$8Xi*=oT!Uf*efKl(%%>ETxZkV zk7~1PTUxh%h)%JGO8BcJ4iY_0*ADDg@OwRg-4l+!_xiVr*wr@&%#$nf`Gv7HjbY-* zE=+_P(1ZywP9Oe6ONTm8lwhSkSY<3fuX&Q4{ogO0fif0`d7Mkk_8?!+J|mTkR>x_0 zm!it$%AbMLE`ekE51?e=L$fIEcfJR<%Am%?sE54>sO{lOjUzRmH|t2;Ff7RLeqH_h zgk`EWfbOS*7aPFu_3jf+_w)8^#676;0d`QmWtw4W%S`tULF0*{i;7)maw__?FqOY7 z(acaRIY9d%e5mE`Z{YuJX(<>{oAmzIQMAqu1jP8Ct8tcBI^Om;94J3K{yhVv zkcXxtDJCcME8G!?kpwaShqkwjZM2P&M8nL?%-ms4hnYI*Ff%hVGcz+YGc$vebUMt; z%*p1PxjVZ%qkCuWO5-1vWy!W=z0WyS=hRz;G%7`2END-qY?0a!cFw>-w%kxN?b?g| zEy7(|iv{a05kgv%cG$ejByL|_3o%TONp8c#;dE>GVmwCRa&j*y=8pWbyyk~$ z&T?>!FbAeZ6URd^Psaz$F(DyC`ruzL`biMQ+2cT`fZ>S^z|mvMg9bmZD8+dX+A$BF zP=B&f$%C3mX!Om_rQO@v+Opy-r6)HrEFI|VAD(pI9p0RX9ywta7o%S#hFQW#_)Y`~ zvAr4UQNy6t@ke0QBTImv|FXwpNeIHH))#ST2h~8B3Zw36M~1OZIyNmaDAi(JY~=-} zA4YNed;GKU4oQcNdwOQ(a3s{^$@$D1lb?0E1vo}Uh~b_4HyK|9)mXqEQ~Vj)b4WmVp%OuuKa@iGKC@ve9>W2;D)cD`wQBv` zzG(D7a3*eiSg`&Gf7(1$dRN!-?BnL)$kq_h3tV30rg`)1j3%MS(e$PH)wKEB?tRyu z@8hOx=27=DUsi0Q=)iK0JYE9Pgb)H_6SSzo>0sfhVPz9P&A7v%nM+5s&0X8mHY?B=dPbGZaLF^ zp&6X_3~Cm7e)L(2+JXYvWNZ>dKaycs>evp8)HVN;^v|~YD69#BC~FN(8t->UES86Q z%*i-$cJ8eS{@s3Xj_bc)pQlY5^Y6;X4=;#z2xN03X%6BB<1}$K>AOo0M1WCv8v39ZJE5E+E_$zB0vK*8Z z6BSDlb^CO&FrEP256MV>wMf-E#&Disd!w5RIhD`gPO-m?w5Aa!CF8da!Azc52gNID zQ~)m>RjmAW%xeB3DK|tP86@og36)k@+r}a)2Odsq!(?6#lsZYQ$(@HnJ87BgluR618XY6 zKjDX({5Tk`YT3L(GSCPSP0|^hF-C9_0DH-oW+4iWr2&k}=9NU>0#4(7xnolz{H2D0 z+CEF0TTO_WuMl8h%Xs@e-lo#h*1qumzE?nHs2_9eFgFclk-^JSoiB0rxA1ylY-P-6 zLXXu-(^pFNF}*ah!F8B{NcvRXJJzWZ)4qmz90oK=) z8()JUMi5xX%AfsrhrxY-SE=DVBu8UDHHm|-a=EE8PfsYd^aomMuLlEw$h7j5uzy@d zFY!+`1@wx;He;;k*$FeXI!i{$>rse^h_WpRwW;4PkA8x=$@&c#$-#Z~GwIeo8R2-0 z4bLKaOe;#a5f1LxY4p$2p=4Jmo&e!Ue3JRI>QzzjfEyui=CQu7p zH@?@)x(dm&jSZ`p)ig&#A-@yujh-a_f?qfIQ9X0;`VUT&sg5#NH8^@kWL`T`cf{or zGB|3jpv!6M!SpSo$s{c&ziiRz<$M&H4s%9x3M%{tNvh6A!?jHeY)&Q7MH_=-bAx`H zJ)yRCv1H%BnNK`=-UCk(KD#m8Sq{`~|3HxIUK`e_%R~I@)sYCi$Jsm$;|dIZx6}iLGT~#5GPH_Y7Jl8uM^j| zE#I%%E5sHAVC@Q{H1J0l5PoAk{{>a;Q?aIG-cpe2mf}RfM!6V+iK;!uu(fk)=bP(QdQ_!Gv86I7t^rSax#Mfot>b)pkWd}{)NlUd1nk|EWU7B3}ZFj z+O#k=-S0_dTE2OW8p+T31E@<{r6O%cUa13&jMu-kdqRdjP0t8L0eX)sm&g-Tpq{u3 zEPF|)NY9@K)>D9%ESN&-68eXlx(#^nw0Pd!`?ss&fM1&QMlz$!U8<)orp+^; zDo&1SEAu-}o(D`}wjDn7NA+Bz_7D$l)U9u+CP_JbU(n--OB9ps)) zoV#7B$ePny@j`jD)Iu5i&o0HK3YsMFyVpXHd}$cPenG(lvlBWwHnm3RxPpom4s_~y zJ7m??(i%mN2Fa88POjaw{_QQd2fsO5`m)kovnd02+G-Uv(+3y|;$q#o({V%+u&<-V z2~KmFWn`+Xh@;xPiH#}jbTvJyoouEwEF5bCc)Kk)mn|+&F6Wiedc}Fa5Ric}q86?( zcs-PD1nIBR(@l#G76O@n;;ns{r*Zf_{zNb^IrhNaBTqIL<2ag=lApU~&qi*jIp2ns zpSB}oeOOdoh<@hjO&Bpsicj=)dTc`Q9Yu?Do*wVYW68DTHeKqfnTbIZ3A)VfZDCBy z;f8yBYvcl(HKPUmH0o>s5dcwnx5*4Dh2%?O8TAoD9*r$>uf6?!#VfrcxdaI$;;vO5Viyq;3C*FtGoOLHqjvBVKdV15kL;O0%}X zA}DQn@({Gf>(+qYD4d30t7UXBy_orPWs_>s>B0E`g`Rs3Bo!h1Dzm?SsHk%Pw)Q*X zvCU`(s&fR{dSFnPE>bHz?`Sj7d!CP*cW8b!#qt3-l3aKEW2O49Kqqu$-(o5AjUpse$RQN(n73ZSD?EtiVITe zfripWoNxez<8li!J`fj4os^)b$1)`1t~aYOXl&v8joCpiCe&NNFy$i(LE4EHB&~>V z)aIt`%_$1;B^^aRP=Hlb+xDF(^+%yoHmaPas z4N_=yHj*ZCE9aJ5hq=W|OVq3Pgw-U5V#DM2O9AQk_8-pQXtr=|zzvomKT|pRX zTOE7B`=Lu8ORJ;Uso0{+r4*opCKt#F%TG#83_H(UEm*J1r>eH?0NNxRlfV#PQw%Br z-lPa;Ev7LeXg?^*0!(koqA)Bm+^p!elF0$@kv|}X2>zFZMsME~$%M4+wvj0_?v1He z5`$~~&HQxK9m^=Lh)H%=JuOr+s+Q~d26R2-#tH;(El~2WQYjq|h{M{qe@|3B$GByC z;5(Zvi)9^Pm(bn}-CT#J?~*MqkGHDA6_0ncI8cuQeFLqVs__x4&G8rP&?V8&d3iiJrhAVD5R?QmS4O)-l!*o$%aBtbUj4t!$y=^KBAI(8`W zB_8!saznYstcVPsX_GSs4{5&M@LbWs0=m-P6fyh?FZw16idMDMCZvyy-a)$QOcKSv}<~FAPIJ9nkd(tEMEbH1!)J;F4 zOpZs;OT@wJoU@AYb=Ga*c%ytf(ua*DNd2lCp*=2P4r@0P=77^Lm;#e2%X?4vu%5(W# z_dAx$bx+Zj2{%fdvm^BK7_|#G%ER5b}TQ}vpvw?>Qegct8{D7J|)Z#!Yk z(Tp9_8PC;gqM|RS^QNn3cmHwq-L_h(*(ixe6!n0ZO_~RlNV)T6;fx|!!fMS&S_4wz z@lg04vgB(2IKdrd6e@i1G)cHESrc^F2YZRBRuvJ=P zG`mQRHAv4IG3eN4CR8Z{<`Wc&3z}dwwbUZ!Bho{C2UdM1&pqpH9sr*T6Q`7ZYZmxI z>$KfEeT>7+@h8%Fg&l4mQOFerjfN7->9+^)N<)7H%Gp5z325Nk>goKpGVBOY~dGPQP^)GA8fuA>(cG4mW>snZ{$*mT}0Dm$+9* z7)WpF1UYM9nTABC3mD-V@1Ooi*ENvlOKV?Ex>`i*@Vv1w7e$L2vRcRGAh?LE%-!m0 z@95~V(%EwbQbE-j2N`5c>+t&B__Q$g8wv^OcLdTItZ6W2T@(wI-0yzi1H8&f@&K9~ ze%2@w8{7PaDVBx#BiOE`4Imr}yL8LErvWAE7NzrwWr`Sxg8FDCZX<;G%T*JnM%W8d z=yX>+E$g^S@ojVwfPxBAvx08YZj@gI-Y+=&_I6%{hio>}95@`6n%HwP$~jBXU`|?N zwZg=87f?kVdaFSLy4~HnIy2syfOK=iwoWjO4p;Q;M(A!vX=h6ou@x1mO1~t+-~4T8 zfuPg%BVUKIazuu0xq_FXTx7|Mc&BsDTo$K7WlAAjo9=%GyWnkKb5vAUO0qo-!p^(e zXd)_>((r2M zjA6uZ&NP=-T=0d3M~www6GI$+^uJ9JQit`O-|AV?{YY_^B1P==dEj{5@s)jt|DV7B2*@&t>i2g={kI44 z_pASp2t;f1Z#3}lvP1}(M3cTifq;l%fPh&4D<9XlveLD+bJTS(cC@u}F?RS?>{YAC zek=Bnx-G@N^hdinu~ns<$DGzr{1eVal+qm}S99(Y{Kt~Ren2q+nW>-b_qqyFFC|Rm zhn|vjhk{=}qT=)hrnbMgib<>tgKK;2VtBw)%?2-gN;0J8aKF5vCe zgLm`7g>;?4|F$5n`Bi~W)Mw*nqy?ryVOj3s751C>(J{GKj zW&EEmXaiRjkMdU4?WvKgpy8doxEalM8!t+^t>XCJbw3hvRxJ@~Isj~%*a=BD&i5pJ zWpqgxLS8XJ#J;6XQa`!R3VjxH#Q+_(Bbe$F%$IKW1)WGV+@^nd72<(RF$AiGOB$JH z*>*}Wrt(KBZhE4U$66Tuz@M(XrG3~%Gujg&4E%7~5Kwa3lVIC$me}Kjt*_E*kb1H6QGklpLB|~3oOGN;NR``H9$4IH+ zDq1n|B|HZvH#J>S7|6ioWD!Skf54r4>%(tmDm+V3Ol7et%RYxVDT3JiP7IpInmrR~ z+}FL(QLx;yvRb&;uAgOae=38 z7aN9VG9#s3Ar8bb)!_mBw9-@GwdDrzqPC-YeWGo#!J0W0?pk1Wr{>{IUDO7<)Wx{4 z>}~uFp-39C_mtyDKMD9|4l-XVKa6G(+Q_X4J$vcaq@%^^mL<#bqxUuAMIo}Dl%GNPo+hg>$DeD_+k-LBB{zve5-Mk9|$l{BrdqyjyjU4ym&Gml~5@+NAlq#>i~mXKU)ga@qnj>(A0147EW@B zP0H(eHT@fpaT4Vw*|_L}fgqL&^JvAnqZ)A4pH%P326HqPv1MwmsOL#!(^t4h|2Nu; z*gE{G%5VCt&#@jL-P}o33fXH%tHzk!+K~NG36ZUy4@d=S3Zq>mLpNRu@sX^k>d=c- z|0r*(J^4XBX{2dtE-EUyJp4#e*=P{CKu^9ldvDp&-A?5HNEGhI&Ta=Oh^>K1@f-Sv z<|QxIC<{3o&nPrv(dLjxkmrM}N{HAfD7y%D&@t~%qoN$Zu{Woen$kevqjt74tvepH z0Z!SFM$|nMGgdZd$=oqjJ5@As-(Bflh0Rz4{Y6-VJs0N@!mfPC_xdNwQnVwY`s?op zP-R3(H)Q#SMs9>t;pyt3R^g_t_rk%~HJL_4A@e44CRo0L(*AU6erU)GeH>xC0>-G} zn+|8xEqw%w91SN7518o(5YT-;Y@3~vz~SnYaDhqloEbMNolHIdKghL#Ng7bSSFyK4 zj~FA#rW8ppEMQA&{ev)*{%DJE%?bq`8BLnP*~-3no?(dck#p5KAMxR7O?*EUS8-{R zM^kod)V`w++eaUre0YN%5OywwJTGH5sHf5u=P)l`5}|mmzkRn~-&;`U+wFJL2PxL6 zRf!spV%A^LF@=0nI-QWu#A24*HV`{VSX#$kIL>|E?Otw7Wln=S28?gH`!uzT>oi`# zLi)9~2!d5hT!)2Md5w&{bN8oZGfJH&dO$vsq3*wEAdeNx2oj-2d~0_F{>>!&Klb+j zL`(nwoTcwTV}0H46J=|t?_}%n?|Oad_+uvNwehCzrb&CvErlPrU8YR{w%;oV(+O5YvZwQi- zDeuWH*?xV<&hA(3sYgC_Pgyp~ElURVO->KDrx7F4a)u1i0N3(Wg`~A&K#8YrA!D}VLZ#E05k=w-`@ms@P2DP%Ic2-_8Ia%G#x5k;aoSTPO=+j-)#3Kov9Vf_ zrD7%hOML=96hhyO;g{UI;{c1a(60g&b(%C8PU|3T587Y^zh`AL1*J)%DWaSmYaL8d z6MT(<#wK>prL*rg!*D0jDaGhv9>>!C_I%hP(BTc-WHTBl)BdCAWvhM8&as0$1z2XF z#4oJ@o?6x_pQ}gxpwFhMPKbfqXmQ;p?eOA{3|8eZYil%T^4zwqHc-4l0z(1va3O3* zjMz=tf{l07s4pDB$o&r-gu+kG9{hPd368+ePB%QnSGUf>vaj&ZsJAQbA!Ks3om`fS zInV+-6J=0lAE%!xJ~=smf4p!KQ^sbMKKlaB#^ zai-ftU+*a2bHt$VuzaUu@-`4P8_~kF|u3TJA5$BD6FUcg7QP)Rge> z4U=`JR7^RI26PTRvKZ6LpkvF{D4wN2k2Y>Z`sxeeALkbaj z9z_D3EG6-tU{pH}GH&{<-@!u9tEbF+;!t4(vl2GtxZ1Ie$A4TU^LoteZ;Z^opu zf_1oI2wVPCLem;_VG3;UieSE~fBZXiKqwV?S zvG$<73)D_))O>gTXZkSgq89b7>sM#&E+CB2%V7M&smx8kTx|^9C}$qmhvqiJuO_joZmg{QKUf_;VREE&jZJXRz$tn;zsND&?1PkSL?e~C`;A*@68+{^q=2Wg~EG2 zh)_#a9BzlJ^{Y{3K^sL8PE91fAuX7U7hBTB{<4mtv6)j-lNYwp($`_mqC0AsQ+b-9 zoDk~gU|LHTJXh3-cOY>Fg?tKxa}8C~Q@InGc30t9W}U4(#eNpk9Kg)S&1YT`d=2CR$2lj)h86_yWE6t(A>k>Zd7s+_} zgVcduPBzY>$mOI!D*skDS@w}f=z6^WVmdL4v9tUDW4Fq|I4Oke%4oAHXCDh)$1}zh zPggG0vA)ruHK-qsZaK>dV_2L!K2DaQZbfy6u*q-WbtIvkWly(!I*+TBMU{IT6zI3z z4T&^ua(P>~4C5-|;M!*b%kNY`wRd2U*VD_JvK%9{MO~!dy9HV5)MoT!fr;$^`YwDr zzfl>hNv(8*gppSU&X$}qLP~YGY12&@Ilv@&P20U3dEx+;L9!E%S|I4RY=|jb=+4NX zW4-_t6_iY27~9O=?P%h`@tsjPXI6EL9Gy+ogzQ4$hQiYI-lCTCP|=jC(y_}^d^I8b zADJS4b?<(YCL~MN92oEZxVmayn#Zw^#nA+j0~@TQwLSbRu;((?)hI7|qtJyN4qJ~e zgdD99G}3!R0{h=Gb;kE2AQ!Y)Cq+usZ{ZKz%~(5ka6U7PX~Opsf*c z6SZmAqP582_cRSz7cl?5Vm@~|kg1(8$iiakGX|G4kSy7%La&OT!|QtkQbG%@RL){p zi`wX~f2lHJ;*CWCy$)!CvoWT)=+?TImzR^@EQ2zg1mE`{rsve+mk|w$Wda1|7ELG3 zUl)Agb+G26hH#s1W#?GQB3RagTjTAgi$K!^s*$7Yhf0(nB!!GsEr>wlf2$Q+ceMlH zz;2}D^bX~=jrcBx{PM0uZnQ#3)AiBA0=+B&AI=k6_;41jm ztvHi3!d1P~t70r=*$NgxQJ^>mrG>$NGgNc(7%pKw4i&EARK78pbM}FWg~Z^AtlxL* zZ0E{9g}u*E=Y9zZn{xWk7lAT{Ce9bRdfeWbz4m54DLuQpdGg@Ni`P=xIl`)P?5P%> z9GgVhE;HeMfqW50>puJ}NVda#A#M&LAf{;`db1)iHhlZ*#;Hz2ie3qo44BlSBd440 zZo+Z)S6*$N7>mRX(9Fsqv#8Fpd)JpIUEjZr{LDd+lkfS(Ep-dtF#3bfu!z!Qdc0pl z^bg$JoW_($LYf4pA>`_@y42L9T~FrAjyu69K&A1u5`pU_?YvnFw==uiNC?G!exCf^ zm7#l+a6Dsk9GqslmBN|&7Mi-so3nLpDlEI zuN1Q4{b-(RLugeGXs1vl0mRy@s&37%HMSg{l-|t$s~{+FKHsNQLTn;Mg{R|SShRi~ zjpGF33{bfE!r~(sC9(Lc*8YfPS9CfZc|-#%1$JLKg%W{5(e(X#W}D7@t8`=HZ+Ax7 zl|%xjf|X;e9Qm|q&N@~3r8Vc)N;r8LR);5SuW39meV-=DCr_l?u8nc@3|q}DH8WVQ z5u!gPV6@;?lVN^0684$zO3idSyFqz+EHAFV0 z!Z`&2LvWjW)dF1?ylgN47`fW-KB>)Bnxz{fb8<|_AVsY%A zxSr(4NSnE&0zErp~qQ>Y9FI)#xJj~E+fdu%FLLTW)Svd;oURWdZ=@AOGL zqCtzSJ3T&{NBzg`aeY4?MP$-)BXraq+VoGN7o1Bd7`sFyeR-BtDpIK+jY38}kB>uo zA33+`2`>;|j(}+?3k8JBrj@1$`mQPA347a-a!?fz)UKoq<0brA>kB|w(79Bmo`fDv zglG}UsUg{uc!Gm*pQQl?vxS{;C`DCL@?vv{#NH(>Q5&vRm&;-DR8wbsIlql@FVO{TP6F>k&T_m>e)Q58L2&8RdpHXy z7b2fU%eBNEP&<2!5zt!_@x2l-Yl_lFC}#v@C`{t9k`~_M9uRoCVsqtQcH>2?d;}1J zq*r$+-NO2?k`4X-iX4cw-)Lpx*Tp6QFU+43a?B8s%+oi%S=PRhi0E_CW^yER`7Zl8k3 zO<)MWuh`qGi5Icw3DmIsWBrD?EU(sY>fR;QDw-sJRz$7#eE26Ix0Gh-7(Zw4zaUB6 zyY1T-Ogk0lf8FE<45wsm^2xr#Qii#VE@l0Z%X!t`wM(u#$ZO$tkAC0|EREgYZ%zMcQ@;r6L(FcHyTK{ zF1nh=w{7)0?;eT;Y`E#!VlUg(|J+m9e>3|~Yy8Rg#wLxkacQDsyz5grvcp~ce4NSL zgTcUnroKwt{BEHWOk~xDJ%)ojZA{kIddPaPW}mY2*AuG>PO(ZF5GpKY{^{X*HVZ_x zykB$ttyC6bty6nT0fuhiKVlV)_O zLbZf0<_>I{KU#9OQb%Cpf`!LY_Vhc5+l^MgnqOgT{d?Dx(B(oH!qrvtO5E4M>pR=( zm8kXyfqxxZ&7ifIb{I7IgL#(5KJ@I^mxP4h(QwRmO@27`x0jlp`JO~H1{)7v8~^^8 z+tk4hF&C7X_zZ31JotFqGa-q(@Q6F8#!jaEI>Dt*T5ire`2UF_g8Z+?T)wGn>o=8E z`|m>$-}H9v8$=*^W9Io{wK2MEtC{D(ltS0F6pNM7fdjbBb1)Vo5}<0w=*N=_&`w&P z;yhCir2UVLo7Z=y(s$BfJ!_9OiaqI7ETwI?y1b=#GL*)O6+Pn0@WIoyX{{NkBv3NA ze+Vntv~AuFi?%LYM2Wze_vFbiv{6J}2u>LAMlc@Tr(2RH6}4j89xp;?q2O3QOJTN{wU3^v$QRq14hz?g}1Q54#FN%>Y~py z7^)JMey*;TW%TUcuyO6@1;7@oc9W&DbkARR2;@BIf>y8DQ=;0ynSZ)cu&!rag%<;% zHgXYBScyxaYMRH`s&Liu&{xG(Ix<_ByUN_zm=Z@V8RV>}WJ#G_w^I8_{E(#Vj|yo- z?SL^ETybx`Gsg1CS`WS_Pm>F@=RBV^V=g`$e>TBFpfv1)r^50r76{$TbleR?sk*i; zcR2=DY=e4b$+X{O?p5Z(OT1O16NM|?r!l0JqisI;X17x9n^6D4ZVT2Vhs6G2x1h0l z`ycWj-KWkxygq|-{p^vkp7t6^%D1XwicLkS|oQ#2c(@Tt-@XUUl6 z_S7)^Q{aCdeZ*TyS3+=$u%26-3hrYyFCNUGm~Y`zQ$h^M1=?Tr^8Ve#YJmMqB}X;g6kWYf z?klYWJm>D_{+u(oU%69ug@gq~x*iHqU`0 zUu^tp*L%HufCB8V zfOhQY{q88xWD|WUWhqg=S+XHNq^D?CNyJ?G_#{*P--v2c?1PK`SZE`IX*%|#tdPp5 zG%8L2NGW%crt=ki4FU~-a9z$}vUSt0POXg#0xYKA&@+p}hJvjfmNQ|G;M;jxYs&mG zbj1OV=AI9NW$WsxpEMiMd#Xuh+I?!BjOS=hoo1@}AKr(_E7LTZ051w%4sv=bxHSH* zfG|zt2&qJ6r7&I$8PdW{K7sgBK{2QllDI9AV`%TIz=ag2LTQ0Nax&?-cYH+-t%UwM zVoqRvXR|#cb19aOwQugS&_VCx#t zwIkV5AwcLHm2<@oH%tbmPkh^(-UD)1z_A?dK&~oe2nzHv%YL+_%zc|b+F|X26`Pm! zT||7-AzNY)d@%-Qs*(g?)xK|3X1v*zC**~hADP(nV(I@eYnbmG?cEbf5phn-UfR$g zuUW0us`ujx^bGIZZ@+C+0xQr^DzMV94?p~BV-ma1@DUwos~<>8mX_SYi%C)}v#<(w zL){Eq=W&*)yw7TOtUs`1A!H{IwNBn9pW_Nd`_f z1xtnJ=EDdh8<##BlEgZAMLIRmU%->-3DXkNEsE=Q@$!O`Q>-#Oc5x2YXj_YiWpaFM z08gkqsUN_k0s%xg{mq2n^G=-4cvW9od^J0bgdv{}_;e&{!FG)rn-FJu%|%Q2&y$ST zs&!r2Ait8SV0|i+jOEeVtM%3zp>C+WDe&>N^#@pT;;7=6>BPqlP-z4;@`QdnSa+6% zYjNYDb?t|wyX^6ZChed4de3z4Y)3^Fl__NqEX0_K?MZ6094GTC0t$s-F&Ycvpjm#o zCueiZs-f~Ml*}+Idk$IgG{Eztw+{WP(C!)@5VOjb>-g&$B_)YYTUEsT*A%r%L{>?h zeyj?TcWon7wWg=oV}tp@v*7M!_QH^3nGN&s>2Fpbs?^=+SN~t9$-gxe2wYcBEn@(; zbBx4t79rcBLFIcfH&?Vn^i>16l;4O>I;d_wFX-A|IY@s--IHBt^q#^!vjUySPiYK% zbtVU4av~GrP}d>@nJHM;vayv;3u|CORl6OwE(Ih&3Okacv96?nuR7u0=2HJen=<*J zUd9&6HNnlei5*b~K4^OpR$014ms-gm+GNGzM7b_7CUGe|$BI(b#Z@ZkJ(C<1ukHSm?%>jiS))t`#KfZ;OV`hyKr(Q=Vj9* zoIfXyy-#)RW+^il(aScameshlnX;0IM}S{jZbsi2d= zHOA$M-uVr?abh8qFjKN(%vFHEb2201#xJP)IwH85RV~6Wj9l#m0T+H+IC-$)SvkQr z|MdePXhiM{YET&m`)xT`;YonE*JMh;B$GM;s=bpoA>*G{J?Eq;q3EDC=X!6EAO?PD z=FP6QA2LIA)ZoI-I#o^6l(lf;%IsyDwS;XVYqqrgM%RFa_%bWbXHCULf{z~`PM}gL z0JZ*E1qaApkZEB7NH%jrR!T2J2M!7nSF<>*bQE%5lqvRv0#zg_Fu`CVF^bvYGwcq( z*x3=5<{q|EuZK#a%m6qw`gr{_U(OA)M((gbGJkTu!Ss$c#vb`8lSc$>;S8RK7wp5l za%d6}1T#LQ#8@+>7Ee)AH(LzD=ob^tQB8p3ur@cnN2H9Q4+@f7o&?=N&N3Ge_4b?` z(P1I@#E}nE6BjS1Qzo9g^Jk8jCwa%%Cb(lz%+pN`oH+TQmfVrOp^z(c43vBm!sFU!%Aq8a>%be0Hj26C&_)YIv2>Po8CB2L$8@5#T=Pj)?>s#X2L9k|`Q(cl%%MHe$ zKMI?M1wBB0T;VxVJ`kwqnyhYrEEw;76%x+%rVUx*rAoO9nzRL^Q0{T$X7e>Yzo1AO zq0O2g7l-;6=a!b5LZ^de{9ay)CRXpa5nN#nX!FiV@@ruv$(WdiTu?g6FgehRX$ zq^hpBkk@$Z2}fA@Y@g%5gGpC4X{h(q%K;X`AVHolj!peG%*}RMNvlbV_t~L)A$`2q} zD*~D>Ek8qeb_xGa6am6wTmk=GhQ{H5fWEES{{N#02V+B9hksuGDllN*B zZO7g3ov>-hmtAHLl8_yRJpM24JtTnf_xgxvV}&xdu2vA0xIFDrC9M*rwsqOe1ppRbsHAg5t4;TJn$8} z(5G|BhVMFV4oi@RbWzW|BeyQjW;m1JJ!aL8e5b<~93PUCRwp}qt4Y%{c_8INkOsC~ zFrp8BNQ-DY6$uqqOQ@_Rd|M_2ipPdSJ%t1!{#i>zfp!vV3Myxgs%F4XeH7z(RV@>a z*S2--L4BmD_I?$WYsL*Rao(*1OBY3xV^0x=6@v9M-a&R!>%yO0gu;lnfa)(o5=6@% ziK{9HBi9T~hGjk`niigt`i+RT`i$CNp30>OIMuB%-)I8b^b>?4lBMkdGf}j5_OPM|)QC zhBP%_g7h|a8V)B>P?95ZGbL2RUD;wBgdzwg{rBnu77ae~N8em*9}#2~fK%)Pv8I=c zC*relXoKeP08;NmCoA9C6$} z9%y+(!r-cr(}RAZHCD5+1#Bv{3;K*a$KQ~7*|Ziwi%6%3#;f4@QpL`*J7>~+fX^kM zrI(Pf4Y9I*y`p&a^R8Oe_8t?}>b5P6f)VJM5}?Vq&~XR6^=SSmaYFf`P{I%*C1R9H zZBPMl)xTXr>{RG~tw9DU#^l=njLdY6&-w}PAn@gx!6cv<6gWH&2Gqtt1vd>VomovP&qtJGjnl8XZV3av!W zRhG_6fyiE1%Hg14Mjx6Ve-zeFg;;yyf6(+0-1Qvxjgmr%IxvZ{|WPj%WA+Fn&g2%zV_)&R5SBRJ2(_ zM?1MC?qrgn&C|la!$ZfE>!_6X*!Oj+L&C=(-bF^L4(y9a>FYGKxV@S$*?jz)TJ>MI zf1|2LFm&HlNa$N`s`1}hh0K~&wB`52(7a=lzU)MGf#$K|TGj$u5}-}KC$?H#2xhre z_1@W0`%`Uqg6!2Tz1^-O2w)Q+wALSf={M<)vmaStp-d?kVmHHpzLT4iA4bwaaKS03 z74eo()#_5k;z;c9MF=ItqS2=qmGgE?crtF1W>tL=Fz8s^1T9rXs$U0CHHzj8;8`&- z`dh${ukxOdM}z%h8fx|MQ09FWWDqs^hwvai)b(tA;7JZk>{;O``qR?@%@Zz(p`#o@ zj1c5BagTs``5YIQ*r+!ly(KYBC(2Wj@-=G~CUVPrG)Og1G>JY_B1VOUFoA#>X3_YH7` zqBOs5JBS-AM1}!%ULG6-o85C^=GkounFYIy;d!_Ow2|?9=9yh1sY+U?(%c?hcy`odTOb~%XbjSbUP3#{gH*=27`iYFsWhfV$>TGk``=a3!IUl_LEJjFdO3eRg7 z5WrK>p@J(+G-#Eb%r^TV9)q|2#nv>lRHBXkAUq7Gp)jzW zP}eDJe;WP8_Hc$$i_zEp1Z53_ryhy!d7mD`BPQZ2Dp1o6sDF#XZDD|!&aDP?++)u( zfbpG9$%d%TU5ZOdCL7Qu3pzs`r?j6gi*Id3&Ue(coadGfqvr%vP_v zf#oR}jT<-Uf>GLTemdM9?zgr=nljnML9YR-P+7UHBu||bb{>6~i+!^GOwn`jDO!u3 zuy8xzeszr;fZ8ejyn&hRgs#xuO09*))MkL8&VF0#<0b65ijclih!~-vQQ+_n(neK6#3DjT$5=%?Xy6p zU90sJRP$%UTMU!ddGhK?3zV0v*ENqt2|4E{eWliVr{Ht$oAnL>KZ?|`^j#) zEvWmFwz&B{b$iV18Rzuj4q0y$g(3z#q%PlirTp0**Oe_18hUM~;O!t|+rRhB_~37` z-uj-kh!Fw-DgNKosQ(NfEvZ}E?usFO5>S8X$5fz@fdMROo7WG>7#QhK(MgD^UyJ`3 z)b>YTI4_^stv|f3@ica_vwuq}l$$@1b~oH}O-)Vmy+Kk*)W`I=m9B5!54fUC@kV&% zg1exH@jB8opwnCOa6_2L8qh*`4{rTEtM>}`3SIpp7uN&n9^1fz&o_eFpY>fcu3=Nn zi45FUxI?*-7td9yZ%&`hh?&Fwf*9lzNpnd-{kjf}1NFVS6%j-Vq%9zWQ#*G^gS04V zR>L+MvQ-I4qY4><8%OoJn>6Y}Q-^(?N|NHfc=Y18{b6k`J!a0s>SX?=eRbO*(7`Wk z8NSDW;GPk%?`z^O!a)hE2aU7W0G)x=zy$?uMZ8l?PeF+(Q6e;c4Y zu9r|QmF2K7x5W%B7BQ@F7L&(O(Z6BhG|1aFFM_ zg!=^H?bYdT^TqL8zT9g8GD?+?@yQ==#Fv4k0OmX+mZiG*HjtJ`u@3*_|6uJM+e7QxEYa-Pwr$(CZSL5%ZQJIKZQHh;?AT7{sXBGl z+ua|kx~}sF)~7Y^ImWyPaPWc!kjYCP`ZL7J4)-;36IqM*Bk^4ZCWSu8VdU|CMYt<< z;($~mTSGffVxxxi8%vJ5M5KgnGE5{+KDTLKHJda=Os?2eaL2yes;&g6t1SQK^=;U| zY`Ns5hQMwTcdK~3C_+&n-X9qaIq||n13_wy zxcl^5&Lo~4Vc>@MIDAZCkca?nIw}-Aok!!erlGIypfF8@dx$B*?=c*Rcm7=bq)E!$ z`%lCARO0%X)y|*H1z#DD5Y;IN&z=zNU9E@e*_A4=bnwOJ~(^qJNp=zA3sxH!KaJRZqW$@WJ=g*DJiCly__OKL0D zineWG$twV&agf8pwmz0#j8ZK`Z&=q(u3j0&%b2d}qm2CGj}UJ`&ZM-es)i+}pJ>^N zNWuMGD{II$ESypPYXpr+$Igx^TpKd&SuExENE0B$Yg@Y@4~OnUl%Q^;dPEV*d-GT? zNL`b|h>iJ&08bsG%kn+DB7TtG&Xss!czvLGXXYp|98PP)mjT6Zjj~Df!{4E*jE>Hz zAjE`Yf{=#WNX(0MGV#!3Dx`)uZEqDy(K_a0u455m6a70}M)=Jvz6i@Y0e7qW{y4 zceg#%cl8s&t1gr0G{YJ8B-3e673fD* zpt4^ukT+~xD+r|ZR4<{)j66xb8o<7e?TnZd{bSNe=Vxgdg&TN>s0h(yqeSYqS;#IA z#6`U*DhwM7c5%#^a4agwlRm7?uBD)8WFCFcl=29z(JIh)yzvX?9NUftdOa7T6ru=7 z&t$52>P=>+<$%I^Npk+;RhMBo%hSQe*f5rRwd0ql8OcYfW*I5dXcv8wi_4z~?9G$p z<2=xAV|LE6?koRnDu&p<9006I;!yq-VJo$rx4SrW!)=f*+SgG>D9G#BvJE$g%zp8oci8l=$Kl^#3V?xnSy+#hI`-Bl zcIb-9?-zTw7b1uY2&YKvn*V)XG*e{=e zcDPFzGV=Zh^~zntYJ^I*s^?K%y~#sugptXP9&ha9c*47v9Hy30X!?^&8sOYp>4LMY zY}3;YhGc?4T+x@sFM=+#RZr*3f&sVfc9=QS=0)p!0P)D;-|5}foylfBdgt3sKBzKw z#E3rrdNTm4VbTabx<4vH^6{V`bNTZL#}c-QRc*Eg2)bshRzQ*5UK^leh5TNBckWiqMY7A(lO5mt%atAPcW)rFL3KQC?+1ZQaHNzBJrY)9u(a6L+B>_Z z7tYXA{b5|Y^*!!kKahDQzHMcM^wOuH<4wL4w!`v6hyv)phe3fgzVUSn6jK#R)l;{t zrs_I){=AL=Z~kg@DLOL)i85;p#b1UJLhct+$*Zb2VG-jZPq6ndDcw37WyC7FrAT$p zk6xnXup7gl=N1R_hEGj{6{A`iU)<74Y;;dg^WEF&QkpFfrqLBV9rvsV%wE=5!Yy03 zRFkGCj<8VuSNOJ5BNP|CQwFGMO$hT>i6=7TJAcU$Mid2Tw?_RxhvIPl{)T>wN|S3J zulgc)_IiN(-``#QsMh~pf&&07{OBF!|Nlo5W>p$HjvK8AKF?9#V2kc$+4e=mOe>bz z$0o>Hvdqp!SQ4@xa+qPjB#XqofO$?9CvPp!TJS~U5-A5Ary{6r+8435JzK>cbZbr1 zY@)O&FHud8IO=Hi^DGJbTVscgVb11RFjf}*$asaiCh>0nuC?{ zb@Y>ax4P3rUcp?c7m@U;7DL-Ex($wq>`*P!wA(*AN2fl= zofTz8Jy=NItjKMDrfv@Edqh3s9x2u?FUU{ddg?RkfxQB>xM1K6@6BE zYGT8E4p|WJ?H4t4;lbR7{t*~{52>j0)NYr2{OaU zJ)OtSj1(tj3{bLAxCz#W>OvIlLrZ~5l#tSBq^ITOkuWC3asBGg5o166bp7nSP^8oy z1tuf0iui~cZgDNFY3TUTDZF#H;>MbE+54_$K3-jku5_K5ac4q@;9bA%-G#nyY<#ua zKQBPPy<(@Xjbc%fI=aGr%!EdzLm?$ zA`{Mv3{VlSqYycmG8Y#0lmlRm~x zvqAc3;~KyURemRLtzw;eeUrXaH=qjnw-Tiv$9=7lS2fg#VmdgPf$|VoF*=j%qS_^>l&tKcfpVgr*%5STR^>e7z#{q}Xx!i0YU$M&_*v0D7Ym$NLm)NAXF~BD!jJm`DWKR7z zPF)bO5OPiQE^O~Xng1ihCb6h#oTfOk0DH0my_d_WTP~K9oTmA?;Tz^pC}goWq4z_z-j@auUvNiF%F7nCwV?BbVrh4>iw%^>$v1JY@IQ67Z6X zTW)aRunz68B*=-qpB|l~T#2sSA&`9Y3{7^zTpCYcy|$J_Dwhw{c5`aGavdo~490AY zGpsqqb2TX8GsILXdrXl`EGX3_TT=w^pRmpTS2=oG_`H>rLQBs+>zOjr+Js`Fos~@D z%kZAQMW0yP+79a+40SG{o%_$djhA$oglsDtYugu2GzghVx$?qotVL@qIrA_|GUTM- zrd8QkptbkA3&yNn+|oRF1#G_}V(k2eir~Cxk-@xU2UoLO7eyko>c@dUU<3|5!f2pj zh~2bUorZ(`*HpvLl9Pn#VIV5$C zgE+w^L>ikl0*f;rkw2TSDzlo#D6Gv(!!2xp*d}Q!Ginn#m+WcnC3nG?-Y zq7n)$b#+-V+bR4`92=7#ZZYlB#*- zX5d5XzThK7a+)31%NSb}H8*h^1}Lnu6$J-~P^7&wZZh&Pemdtn-Ut`5zsb1$Mm-p~ z6I5LScNcAZD)U-(ub|9&wB*JF`(>(RT`h!P{DL#wQSbI`{=b_p6XdeK-{I6mSjDXD zJ6Aer79*G^40=d2dl8Qe1#+qM*!U?UnAbyn=j`FLxJ;fa2KpE4W~^o$^J{%j9SUG^ zYg~p>wwi`i7`PX%y70jUN?MLQTkOB@Po;dHjOlZ>pRY{VK0Ce|uSFaRaTF=`|KNx{ zjTcjHZGDzdhp?`u8pm2>+(|Ft8igt^L^q#rj-rU4SKuT#j8jt85qtsyzn0!z8hPmk zn=<0S`Q$u~7}vkqq^eNP$B6yYwSaWy$M$lb2y6P~1bAp>fq}Vy5`S{n(`af1

c`N>mRFe%8%9fzX&(|cYCCv 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¬EOSN&Reki@LN5NyZwKjVF8f)`w` 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�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

>uVJNGk6S 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%0D`J-QKOANUmA!NotJ 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 z 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

*=v>)v%?GckzKyo~^JLP< zVQIPJI-rtmF4d!4EX4hc(c&GDwbRcckL^>E9Wce&M3Low%=WM3I!`m#>;CyrcOG3Z zpnsb+72UXM|C9dKX{wSvT{gcC@8ROfG|@B$_5I}jtbyhFYW^*HVh`c7)-M1eE&cqhoG=DwQZplIj9#? zo6KVx+?)L+CvvmOkcp~;72>1F{H>G_)^x-j9rN;R43w(uq$N`0#u85sl6zv37`3KL z#gi(#$S#V6TJ2ISdFUK$^k(OPcl2($n_4M`o*d3yy3B*i%8$RlLD%ory`IkR952Q5 zuh5nirW8K^LJ~)p(-<`Si*z4=pIzT@jiy=3poUqhHwndIx_4gcr)`R^>9kw@KdRm_ zyz;I0AFge?QyWv;Hm0_1+nCz6tzEmFsm-ZvPVM%;&$-X2| z^P2#)<;p&vG7Jq`Yx25B^h4W)4n|SKli!O

gT}jAgO;vYI)= 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