You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am having a heck of a time getting a fresh project outside of the "examples" directory to build and run. Does anyone have an example as a stand alone with libpeer included as a idf component and git submodule?
build/out
FAILED: esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj /home/USER/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/bin/riscv32-esp-elf-gcc -DESP_PLATFORM -DHAVE_CONFIG_H -DIDF_VER=\"v5.3.2\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -I/home/USER/projects/esp/PROJECTNAME/build/config -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/src -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreHTTP/source/include -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreHTTP/source/interface -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreHTTP/source/dependency/3rdparty/llhttp/include -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreMQTT/source/include -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreMQTT/source/interface -I/home/USER/projects/esp-idf/components/newlib/platform_include -I/home/USER/projects/esp-idf/components/freertos/config/include -I/home/USER/projects/esp-idf/components/freertos/config/include/freertos -I/home/USER/projects/esp-idf/components/freertos/config/riscv/include -I/home/USER/projects/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/home/USER/projects/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -I/home/USER/projects/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -I/home/USER/projects/esp-idf/components/freertos/esp_additions/include -I/home/USER/projects/esp-idf/components/esp_hw_support/include -I/home/USER/projects/esp-idf/components/esp_hw_support/include/soc -I/home/USER/projects/esp-idf/components/esp_hw_support/include/soc/esp32c6 -I/home/USER/projects/esp-idf/components/esp_hw_support/dma/include -I/home/USER/projects/esp-idf/components/esp_hw_support/ldo/include -I/home/USER/projects/esp-idf/components/esp_hw_support/port/esp32c6/. -I/home/USER/projects/esp-idf/components/esp_hw_support/port/esp32c6/include -I/home/USER/projects/esp-idf/components/esp_hw_support/port/esp32c6/private_include -I/home/USER/projects/esp-idf/components/heap/include -I/home/USER/projects/esp-idf/components/log/include -I/home/USER/projects/esp-idf/components/soc/include -I/home/USER/projects/esp-idf/components/soc/esp32c6 -I/home/USER/projects/esp-idf/components/soc/esp32c6/include -I/home/USER/projects/esp-idf/components/hal/platform_port/include -I/home/USER/projects/esp-idf/components/hal/esp32c6/include -I/home/USER/projects/esp-idf/components/hal/include -I/home/USER/projects/esp-idf/components/esp_rom/include -I/home/USER/projects/esp-idf/components/esp_rom/include/esp32c6 -I/home/USER/projects/esp-idf/components/esp_rom/esp32c6 -I/home/USER/projects/esp-idf/components/esp_common/include -I/home/USER/projects/esp-idf/components/esp_system/include -I/home/USER/projects/esp-idf/components/esp_system/port/soc -I/home/USER/projects/esp-idf/components/esp_system/port/include/riscv -I/home/USER/projects/esp-idf/components/esp_system/port/include/private -I/home/USER/projects/esp-idf/components/riscv/include -I/home/USER/projects/esp-idf/components/lwip/include -I/home/USER/projects/esp-idf/components/lwip/include/apps -I/home/USER/projects/esp-idf/components/lwip/include/apps/sntp -I/home/USER/projects/esp-idf/components/lwip/lwip/src/include -I/home/USER/projects/esp-idf/components/lwip/port/include -I/home/USER/projects/esp-idf/components/lwip/port/freertos/include -I/home/USER/projects/esp-idf/components/lwip/port/esp32xx/include -I/home/USER/projects/esp-idf/components/lwip/port/esp32xx/include/arch -I/home/USER/projects/esp-idf/components/lwip/port/esp32xx/include/sys -I/home/USER/projects/esp-idf/components/mbedtls/port/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/library -I/home/USER/projects/esp-idf/components/mbedtls/esp_crt_bundle/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/3rdparty/everest/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -I/home/USER/projects/esp/PROJECTNAME/components/srtp/esp-port -I/home/USER/projects/esp/PROJECTNAME/components/srtp/libsrtp/include -I/home/USER/projects/esp/PROJECTNAME/components/srtp/libsrtp/crypto/include -I/home/USER/projects/esp-idf/components/json/cJSON -march=rv32imac_zicsr_zifencei -DESP32 -DHTTP_DO_NOT_USE_CUSTOM_CONFIG -DMQTT_DO_NOT_USE_CUSTOM_CONFIG -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Og -fno-shrink-wrap -fmacro-prefix-map=/home/USER/projects/esp/PROJECTNAME=. -fmacro-prefix-map=/home/USER/projects/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj -MF esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj.d -o esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj -c /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c: In function 'dtls_srtp_init': /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:149:16: error: unknown type name 'mbedtls_ssl_srtp_profile' 149 | static const mbedtls_ssl_srtp_profile default_profiles[] = { | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:150:7: error: 'MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80' undeclared (first use in this function) 150 | MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:150:7: note: each undeclared identifier is reported only once for each function it appears in /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:151:7: error: 'MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32' undeclared (first use in this function) 151 | MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:152:7: error: 'MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80' undeclared (first use in this function) 152 | MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:153:7: error: 'MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32' undeclared (first use in this function) 153 | MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:154:7: error: 'MBEDTLS_TLS_SRTP_UNSET' undeclared (first use in this function); did you mean 'MBEDTLS_TLS_EXT_SCT'? 154 | MBEDTLS_TLS_SRTP_UNSET}; | ^~~~~~~~~~~~~~~~~~~~~~ | MBEDTLS_TLS_EXT_SCT /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:197:5: error: implicit declaration of function 'mbedtls_ssl_conf_dtls_cookies'; did you mean 'mbedtls_ssl_conf_dn_hints'? [-Werror=implicit-function-declaration] 197 | mbedtls_ssl_conf_dtls_cookies(&dtls_srtp->conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, &dtls_srtp->cookie_ctx); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | mbedtls_ssl_conf_dn_hints /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:210:3: error: implicit declaration of function 'mbedtls_ssl_conf_dtls_srtp_protection_profiles' [-Werror=implicit-function-declaration] 210 | mbedtls_ssl_conf_dtls_srtp_protection_profiles(&dtls_srtp->conf, default_profiles); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:212:3: error: implicit declaration of function 'mbedtls_ssl_conf_srtp_mki_value_supported' [-Werror=implicit-function-declaration] 212 | mbedtls_ssl_conf_srtp_mki_value_supported(&dtls_srtp->conf, MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c: In function 'dtls_srtp_handshake_server': /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:384:5: error: implicit declaration of function 'mbedtls_ssl_set_client_transport_id'; did you mean 'mbedtls_ssl_conf_transport'? [-Werror=implicit-function-declaration] 384 | mbedtls_ssl_set_client_transport_id(&dtls_srtp->ssl, client_ip, sizeof(client_ip)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I am having a heck of a time getting a fresh project outside of the "examples" directory to build and run. Does anyone have an example as a stand alone with libpeer included as a idf component and git submodule?
build/out
FAILED: esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj /home/USER/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/bin/riscv32-esp-elf-gcc -DESP_PLATFORM -DHAVE_CONFIG_H -DIDF_VER=\"v5.3.2\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -I/home/USER/projects/esp/PROJECTNAME/build/config -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/src -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreHTTP/source/include -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreHTTP/source/interface -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreHTTP/source/dependency/3rdparty/llhttp/include -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreMQTT/source/include -I/home/USER/projects/esp/PROJECTNAME/libs/libpeer/third_party/coreMQTT/source/interface -I/home/USER/projects/esp-idf/components/newlib/platform_include -I/home/USER/projects/esp-idf/components/freertos/config/include -I/home/USER/projects/esp-idf/components/freertos/config/include/freertos -I/home/USER/projects/esp-idf/components/freertos/config/riscv/include -I/home/USER/projects/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/home/USER/projects/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -I/home/USER/projects/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -I/home/USER/projects/esp-idf/components/freertos/esp_additions/include -I/home/USER/projects/esp-idf/components/esp_hw_support/include -I/home/USER/projects/esp-idf/components/esp_hw_support/include/soc -I/home/USER/projects/esp-idf/components/esp_hw_support/include/soc/esp32c6 -I/home/USER/projects/esp-idf/components/esp_hw_support/dma/include -I/home/USER/projects/esp-idf/components/esp_hw_support/ldo/include -I/home/USER/projects/esp-idf/components/esp_hw_support/port/esp32c6/. -I/home/USER/projects/esp-idf/components/esp_hw_support/port/esp32c6/include -I/home/USER/projects/esp-idf/components/esp_hw_support/port/esp32c6/private_include -I/home/USER/projects/esp-idf/components/heap/include -I/home/USER/projects/esp-idf/components/log/include -I/home/USER/projects/esp-idf/components/soc/include -I/home/USER/projects/esp-idf/components/soc/esp32c6 -I/home/USER/projects/esp-idf/components/soc/esp32c6/include -I/home/USER/projects/esp-idf/components/hal/platform_port/include -I/home/USER/projects/esp-idf/components/hal/esp32c6/include -I/home/USER/projects/esp-idf/components/hal/include -I/home/USER/projects/esp-idf/components/esp_rom/include -I/home/USER/projects/esp-idf/components/esp_rom/include/esp32c6 -I/home/USER/projects/esp-idf/components/esp_rom/esp32c6 -I/home/USER/projects/esp-idf/components/esp_common/include -I/home/USER/projects/esp-idf/components/esp_system/include -I/home/USER/projects/esp-idf/components/esp_system/port/soc -I/home/USER/projects/esp-idf/components/esp_system/port/include/riscv -I/home/USER/projects/esp-idf/components/esp_system/port/include/private -I/home/USER/projects/esp-idf/components/riscv/include -I/home/USER/projects/esp-idf/components/lwip/include -I/home/USER/projects/esp-idf/components/lwip/include/apps -I/home/USER/projects/esp-idf/components/lwip/include/apps/sntp -I/home/USER/projects/esp-idf/components/lwip/lwip/src/include -I/home/USER/projects/esp-idf/components/lwip/port/include -I/home/USER/projects/esp-idf/components/lwip/port/freertos/include -I/home/USER/projects/esp-idf/components/lwip/port/esp32xx/include -I/home/USER/projects/esp-idf/components/lwip/port/esp32xx/include/arch -I/home/USER/projects/esp-idf/components/lwip/port/esp32xx/include/sys -I/home/USER/projects/esp-idf/components/mbedtls/port/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/library -I/home/USER/projects/esp-idf/components/mbedtls/esp_crt_bundle/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/3rdparty/everest/include -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m -I/home/USER/projects/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -I/home/USER/projects/esp/PROJECTNAME/components/srtp/esp-port -I/home/USER/projects/esp/PROJECTNAME/components/srtp/libsrtp/include -I/home/USER/projects/esp/PROJECTNAME/components/srtp/libsrtp/crypto/include -I/home/USER/projects/esp-idf/components/json/cJSON -march=rv32imac_zicsr_zifencei -DESP32 -DHTTP_DO_NOT_USE_CUSTOM_CONFIG -DMQTT_DO_NOT_USE_CUSTOM_CONFIG -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Og -fno-shrink-wrap -fmacro-prefix-map=/home/USER/projects/esp/PROJECTNAME=. -fmacro-prefix-map=/home/USER/projects/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj -MF esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj.d -o esp-idf/libpeer/CMakeFiles/__idf_libpeer.dir/__/__/libs/libpeer/src/dtls_srtp.c.obj -c /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c: In function 'dtls_srtp_init': /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:149:16: error: unknown type name 'mbedtls_ssl_srtp_profile' 149 | static const mbedtls_ssl_srtp_profile default_profiles[] = { | ^~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:150:7: error: 'MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80' undeclared (first use in this function) 150 | MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:150:7: note: each undeclared identifier is reported only once for each function it appears in /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:151:7: error: 'MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32' undeclared (first use in this function) 151 | MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:152:7: error: 'MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80' undeclared (first use in this function) 152 | MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:153:7: error: 'MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32' undeclared (first use in this function) 153 | MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:154:7: error: 'MBEDTLS_TLS_SRTP_UNSET' undeclared (first use in this function); did you mean 'MBEDTLS_TLS_EXT_SCT'? 154 | MBEDTLS_TLS_SRTP_UNSET}; | ^~~~~~~~~~~~~~~~~~~~~~ | MBEDTLS_TLS_EXT_SCT /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:197:5: error: implicit declaration of function 'mbedtls_ssl_conf_dtls_cookies'; did you mean 'mbedtls_ssl_conf_dn_hints'? [-Werror=implicit-function-declaration] 197 | mbedtls_ssl_conf_dtls_cookies(&dtls_srtp->conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, &dtls_srtp->cookie_ctx); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | mbedtls_ssl_conf_dn_hints /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:210:3: error: implicit declaration of function 'mbedtls_ssl_conf_dtls_srtp_protection_profiles' [-Werror=implicit-function-declaration] 210 | mbedtls_ssl_conf_dtls_srtp_protection_profiles(&dtls_srtp->conf, default_profiles); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:212:3: error: implicit declaration of function 'mbedtls_ssl_conf_srtp_mki_value_supported' [-Werror=implicit-function-declaration] 212 | mbedtls_ssl_conf_srtp_mki_value_supported(&dtls_srtp->conf, MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c: In function 'dtls_srtp_handshake_server': /home/USER/projects/esp/PROJECTNAME/libs/libpeer/src/dtls_srtp.c:384:5: error: implicit declaration of function 'mbedtls_ssl_set_client_transport_id'; did you mean 'mbedtls_ssl_conf_transport'? [-Werror=implicit-function-declaration] 384 | mbedtls_ssl_set_client_transport_id(&dtls_srtp->ssl, client_ip, sizeof(client_ip)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Beta Was this translation helpful? Give feedback.
All reactions