text:
Exception in findAdvField

Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC      : 0x400ef260  PS      : 0x00060030  A0      : 0x800ef4b3  A1      : 0x3ffe2610
A2      : 0x00000000  A3      : 0x00000016  A4      : 0x00000000  A5      : 0x00000000
A6      : 0x00ff0000  A7      : 0xff000000  A8      : 0x801a9a10  A9      : 0xad567800
A10     : 0x000000ba  A11     : 0x00000001  A12     : 0x00000014  A13     : 0x3f404860
A14     : 0xad567800  A15     : 0x00000000  SAR     : 0x00000010  EXCCAUSE: 0x0000001c
EXCVADDR: 0xad567800  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffff5

ELF file SHA256: 0000000000000000

Backtrace: 0x400ef260:0x3ffe2610 0x400ef4b0:0x3ffe2630 0x400f3d8e:0x3ffe2650 0x400f565a:0x3ffe28b0 0x400d2448:0x3ffe28d0 0x400dfff1:0x3ffe28f0 0x400e3552:0x3ffe2930 0x400e842d:0x3ffe29a0 0x400e84d9:0x3ffe29e0 0x400e8725:0x3ffe2a00 0x400e6fdd:0x3ffe2a20 0x400ee14e:0x3ffe2a40 0x400df617:0x3ffe2a60 0x400908e6:0x3ffe2a80
  #0  0x400ef260:0x3ffe2610 in NimBLEAdvertisedDevice::findAdvField(unsigned char, unsigned char, unsigned char*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEAdvertisedDevice.cpp:753
  #1  0x400ef4b0:0x3ffe2630 in NimBLEAdvertisedDevice::getServiceDataCount() at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEAdvertisedDevice.cpp:753
  #2  0x400f3d8e:0x3ffe2650 in BleFingerprint::fingerprint(NimBLEAdvertisedDevice*) at .pio/libdeps/esp32-verbose/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #3  0x400f565a:0x3ffe28b0 in BleFingerprint::seen(NimBLEAdvertisedDevice*) at .pio/libdeps/esp32-verbose/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #4  0x400d2448:0x3ffe28d0 in BleFingerprintCollection::onResult(NimBLEAdvertisedDevice*) at .pio/libdeps/esp32-verbose/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #5  0x400dfff1:0x3ffe28f0 in NimBLEScan::handleGapEvent(ble_gap_event*, void*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEScan.cpp:413
  #6  0x400e3552:0x3ffe2930 in ble_gap_disc_report at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_gap.c:6168
      (inlined by) ble_gap_rx_adv_report at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_gap.c:1499
  #7  0x400e842d:0x3ffe29a0 in ble_hs_hci_evt_le_adv_rpt at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_hs_hci_evt.c:501
  #8  0x400e84d9:0x3ffe29e0 in ble_hs_hci_evt_le_meta at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_hs_hci_evt.c:301
  #9  0x400e8725:0x3ffe2a00 in ble_hs_hci_evt_process at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_hs_hci_evt.c:859
  #10 0x400e6fdd:0x3ffe2a20 in ble_hs_event_rx_hci_ev at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/nimble_npl_os.h:109
  #11 0x400ee14e:0x3ffe2a40 in ble_npl_event_run at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/porting/nimble/src/nimble_port.c:130
      (inlined by) nimble_port_run at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/porting/nimble/src/nimble_port.c:81
  #12 0x400df617:0x3ffe2a60 in NimBLEDevice::host_task(void*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEDevice.cpp:855 (discriminator 1)
  #13 0x400908e6:0x3ffe2a80 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

Got another one:
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC      : 0x400ef260  PS      : 0x00060230  A0      : 0x800ef4b3  A1      : 0x3ffe2b50
A2      : 0x00000000  A3      : 0x00000016  A4      : 0x00000000  A5      : 0x00000000
A6      : 0x00ff0000  A7      : 0xff000000  A8      : 0x801a9a10  A9      : 0xad567800
A10     : 0x000000ba  A11     : 0x00000001  A12     : 0x00000014  A13     : 0x3f404860
A14     : 0xad567800  A15     : 0x00000000  SAR     : 0x00000010  EXCCAUSE: 0x0000001c
EXCVADDR: 0xad567800  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xfffffff5

ELF file SHA256: 0000000000000000

Backtrace: 0x400ef260:0x3ffe2b50 0x400ef4b0:0x3ffe2b70 0x400f3d8e:0x3ffe2b90 0x400f565a:0x3ffe2df0 0x400d2448:0x3ffe2e10 0x400dfff1:0x3ffe2e30 0x400e3552:0x3ffe2e70 0x400e842d:0x3ffe2ee0 0x400e84d9:0x3ffe2f20 0x400e8725:0x3ffe2f40 0x400e6fdd:0x3ffe2f60 0x400ee14e:0x3ffe2f80 0x400df617:0x3ffe2fa0 0x400908e6:0x3ffe2fc0
  #0  0x400ef260:0x3ffe2b50 in NimBLEAdvertisedDevice::findAdvField(unsigned char, unsigned char, unsigned char*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEAdvertisedDevice.cpp:753
  #1  0x400ef4b0:0x3ffe2b70 in NimBLEAdvertisedDevice::getServiceDataCount() at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEAdvertisedDevice.cpp:753
  #2  0x400f3d8e:0x3ffe2b90 in BleFingerprint::fingerprint(NimBLEAdvertisedDevice*) at .pio/libdeps/esp32-verbose/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #3  0x400f565a:0x3ffe2df0 in BleFingerprint::seen(NimBLEAdvertisedDevice*) at .pio/libdeps/esp32-verbose/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #4  0x400d2448:0x3ffe2e10 in BleFingerprintCollection::onResult(NimBLEAdvertisedDevice*) at .pio/libdeps/esp32-verbose/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #5  0x400dfff1:0x3ffe2e30 in NimBLEScan::handleGapEvent(ble_gap_event*, void*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEScan.cpp:413
  #6  0x400e3552:0x3ffe2e70 in ble_gap_disc_report at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_gap.c:6168
      (inlined by) ble_gap_rx_adv_report at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_gap.c:1499
  #7  0x400e842d:0x3ffe2ee0 in ble_hs_hci_evt_le_adv_rpt at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_hs_hci_evt.c:501
  #8  0x400e84d9:0x3ffe2f20 in ble_hs_hci_evt_le_meta at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_hs_hci_evt.c:301
  #9  0x400e8725:0x3ffe2f40 in ble_hs_hci_evt_process at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/host/src/ble_hs_hci_evt.c:859
  #10 0x400e6fdd:0x3ffe2f60 in ble_hs_event_rx_hci_ev at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/nimble_npl_os.h:109
  #11 0x400ee14e:0x3ffe2f80 in ble_npl_event_run at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/porting/nimble/src/nimble_port.c:130
      (inlined by) nimble_port_run at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/porting/nimble/src/nimble_port.c:81
  #12 0x400df617:0x3ffe2fa0 in NimBLEDevice::host_task(void*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEDevice.cpp:855 (discriminator 1)
  #13 0x400908e6:0x3ffe2fc0 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

A user thinks the issue started in 1.3.5:
https://github.com/ESPresense/ESPresense/issues/241#issuecomment-1037249329

I'm still unable to reproduce this. I'm not sure what the error could be as that code has not been changed in a very long time.

I've opened PR #354, it may or may not help with this. If you want to give it a test and let me know, I'd appreciate it.

What am I doing wrong?
Linking .pio/build/m5atom-matrix/firmware.elf
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClientCallbacks::onConnParamsUpdateRequest(NimBLEClient*, ble_gap_upd_params const*)':
/Users/dturner/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/vector.tcc:444: multiple definition of `NimBLEClientCallbacks::onConnParamsUpdateRequest(NimBLEClient*, ble_gap_upd_params const*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):/Users/dturner/Code/ESPresense/.pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/NimBLEClient.cpp:1192: first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClientCallbacks::onPassKeyRequest()':
NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks16onPassKeyRequestEv+0x0): multiple definition of `NimBLEClientCallbacks::onPassKeyRequest()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks16onPassKeyRequestEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClientCallbacks::onAuthenticationComplete(ble_gap_conn_desc*)':
NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks24onAuthenticationCompleteEP17ble_gap_conn_desc+0x0): multiple definition of `NimBLEClientCallbacks::onAuthenticationComplete(ble_gap_conn_desc*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks24onAuthenticationCompleteEP17ble_gap_conn_desc+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClientCallbacks::onAuthenticationComplete(ble_gap_conn_desc*)':
NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks24onAuthenticationCompleteEP17ble_gap_conn_desc+0x0): multiple definition of `NimBLEClientCallbacks::onConnect(NimBLEClient*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks24onAuthenticationCompleteEP17ble_gap_conn_desc+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClientCallbacks::onAuthenticationComplete(ble_gap_conn_desc*)':
NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks24onAuthenticationCompleteEP17ble_gap_conn_desc+0x0): multiple definition of `NimBLEClientCallbacks::onDisconnect(NimBLEClient*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks24onAuthenticationCompleteEP17ble_gap_conn_desc+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClientCallbacks::onConfirmPIN(unsigned int)':
NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks12onConfirmPINEj+0x0): multiple definition of `NimBLEClientCallbacks::onConfirmPIN(unsigned int)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN21NimBLEClientCallbacks12onConfirmPINEj+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::dcTimerCb(ble_npl_event*)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient9dcTimerCbEP13ble_npl_event+0x0): multiple definition of `NimBLEClient::dcTimerCb(ble_npl_event*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient9dcTimerCbEP13ble_npl_event+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::handleGapEvent(ble_gap_event*, void*)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient14handleGapEventEP13ble_gap_eventPv+0x0): multiple definition of `NimBLEClient::handleGapEvent(ble_gap_event*, void*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient14handleGapEventEP13ble_gap_eventPv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::NimBLEClient(NimBLEAddress const&)':
NimBLEClient.cpp:(.text._ZN12NimBLEClientC2ERK13NimBLEAddress+0x0): multiple definition of `NimBLEClient::NimBLEClient(NimBLEAddress const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClientC2ERK13NimBLEAddress+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::NimBLEClient(NimBLEAddress const&)':
NimBLEClient.cpp:(.text._ZN12NimBLEClientC2ERK13NimBLEAddress+0x0): multiple definition of `NimBLEClient::NimBLEClient(NimBLEAddress const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClientC2ERK13NimBLEAddress+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::deleteServices()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient14deleteServicesEv+0x0): multiple definition of `NimBLEClient::deleteServices()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient14deleteServicesEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::~NimBLEClient()':
NimBLEClient.cpp:(.text._ZN12NimBLEClientD2Ev+0x0): multiple definition of `NimBLEClient::~NimBLEClient()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClientD2Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::~NimBLEClient()':
NimBLEClient.cpp:(.text._ZN12NimBLEClientD2Ev+0x0): multiple definition of `NimBLEClient::~NimBLEClient()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClientD2Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::deleteService(NimBLEUUID const&)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient13deleteServiceERK10NimBLEUUID+0x0): multiple definition of `NimBLEClient::deleteService(NimBLEUUID const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient13deleteServiceERK10NimBLEUUID+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::secureConnection()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient16secureConnectionEv+0x0): multiple definition of `NimBLEClient::secureConnection()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient16secureConnectionEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::disconnect(unsigned char)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient10disconnectEh+0x0): multiple definition of `NimBLEClient::disconnect(unsigned char)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient10disconnectEh+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::connect(NimBLEAddress const&, bool)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient7connectERK13NimBLEAddressb+0x0): multiple definition of `NimBLEClient::connect(NimBLEAddress const&, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient7connectERK13NimBLEAddressb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::connect(bool)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient7connectEb+0x0): multiple definition of `NimBLEClient::connect(bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient7connectEb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::connect(NimBLEAdvertisedDevice*, bool)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient7connectEP22NimBLEAdvertisedDeviceb+0x0): multiple definition of `NimBLEClient::connect(NimBLEAdvertisedDevice*, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient7connectEP22NimBLEAdvertisedDeviceb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::setConnectionParams(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient19setConnectionParamsEtttttt+0x0): multiple definition of `NimBLEClient::setConnectionParams(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient19setConnectionParamsEtttttt+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::updateConnParams(unsigned short, unsigned short, unsigned short, unsigned short)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient16updateConnParamsEtttt+0x0): multiple definition of `NimBLEClient::updateConnParams(unsigned short, unsigned short, unsigned short, unsigned short)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient16updateConnParamsEtttt+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getConnInfo()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient11getConnInfoEv+0x0): multiple definition of `NimBLEClient::getConnInfo()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient11getConnInfoEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::setConnectTimeout(unsigned char)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient17setConnectTimeoutEh+0x0): multiple definition of `NimBLEClient::setConnectTimeout(unsigned char)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient17setConnectTimeoutEh+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getConnId()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient9getConnIdEv+0x0): multiple definition of `NimBLEClient::getConnId()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient9getConnIdEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getPeerAddress()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient14getPeerAddressEv+0x0): multiple definition of `NimBLEClient::getPeerAddress()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient14getPeerAddressEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::setPeerAddress(NimBLEAddress const&)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient14setPeerAddressERK13NimBLEAddress+0x0): multiple definition of `NimBLEClient::setPeerAddress(NimBLEAddress const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient14setPeerAddressERK13NimBLEAddress+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getRssi()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient7getRssiEv+0x0): multiple definition of `NimBLEClient::getRssi()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient7getRssiEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::begin()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient5beginEv+0x0): multiple definition of `NimBLEClient::begin()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient5beginEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::end()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient3endEv+0x0): multiple definition of `NimBLEClient::end()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient3endEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::serviceDiscoveredCB(unsigned short, ble_gatt_error const*, ble_gatt_svc const*, void*)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient19serviceDiscoveredCBEtPK14ble_gatt_errorPK12ble_gatt_svcPv+0x0): multiple definition of `NimBLEClient::serviceDiscoveredCB(unsigned short, ble_gatt_error const*, ble_gatt_svc const*, void*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient19serviceDiscoveredCBEtPK14ble_gatt_errorPK12ble_gatt_svcPv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::retrieveServices(NimBLEUUID const*)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient16retrieveServicesEPK10NimBLEUUID+0x0): multiple definition of `NimBLEClient::retrieveServices(NimBLEUUID const*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient16retrieveServicesEPK10NimBLEUUID+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getService(NimBLEUUID const&)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient10getServiceERK10NimBLEUUID+0x0): multiple definition of `NimBLEClient::getService(NimBLEUUID const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient10getServiceERK10NimBLEUUID+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getService(char const*)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient10getServiceEPKc+0x0): multiple definition of `NimBLEClient::getService(char const*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient10getServiceEPKc+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getServices(bool)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient11getServicesEb+0x0): multiple definition of `NimBLEClient::getServices(bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient11getServicesEb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::discoverAttributes()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient18discoverAttributesEv+0x0): multiple definition of `NimBLEClient::discoverAttributes()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient18discoverAttributesEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getCharacteristic(unsigned short)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient17getCharacteristicEt+0x0): multiple definition of `NimBLEClient::getCharacteristic(unsigned short)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient17getCharacteristicEt+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getMTU()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient6getMTUEv+0x0): multiple definition of `NimBLEClient::getMTU()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient6getMTUEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::isConnected()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient11isConnectedEv+0x0): multiple definition of `NimBLEClient::isConnected()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient11isConnectedEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::setClientCallbacks(NimBLEClientCallbacks*, bool)':
NimBLEClient.cpp:(.text._ZN12NimBLEClient18setClientCallbacksEP21NimBLEClientCallbacksb+0x0): multiple definition of `NimBLEClient::setClientCallbacks(NimBLEClientCallbacks*, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient18setClientCallbacksEP21NimBLEClientCallbacksb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::toString[abi:cxx11]()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient8toStringB5cxx11Ev+0x0): multiple definition of `NimBLEClient::toString[abi:cxx11]()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient8toStringB5cxx11Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLEClient.cpp.o): In function `NimBLEClient::getLastError()':
NimBLEClient.cpp:(.text._ZN12NimBLEClient12getLastErrorEv+0x0): multiple definition of `NimBLEClient::getLastError()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLEClient.cpp.o):NimBLEClient.cpp:(.text._ZN12NimBLEClient12getLastErrorEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::nextCharCB(unsigned short, ble_gatt_error const*, ble_gatt_chr const*, void*)':
/Users/dturner/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/vector.tcc:444: multiple definition of `NimBLERemoteCharacteristic::nextCharCB(unsigned short, ble_gatt_error const*, ble_gatt_chr const*, void*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):/Users/dturner/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/functional:1830: first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::onReadCB(unsigned short, ble_gatt_error const*, ble_gatt_attr*, void*)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic8onReadCBEtPK14ble_gatt_errorP13ble_gatt_attrPv+0x0): multiple definition of `NimBLERemoteCharacteristic::onReadCB(unsigned short, ble_gatt_error const*, ble_gatt_attr*, void*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic8onReadCBEtPK14ble_gatt_errorP13ble_gatt_attrPv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::onWriteCB(unsigned short, ble_gatt_error const*, ble_gatt_attr*, void*)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9onWriteCBEtPK14ble_gatt_errorP13ble_gatt_attrPv+0x0): multiple definition of `NimBLERemoteCharacteristic::onWriteCB(unsigned short, ble_gatt_error const*, ble_gatt_attr*, void*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9onWriteCBEtPK14ble_gatt_errorP13ble_gatt_attrPv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::NimBLERemoteCharacteristic(NimBLERemoteService*, ble_gatt_chr const*)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicC2EP19NimBLERemoteServicePK12ble_gatt_chr+0x0): multiple definition of `NimBLERemoteCharacteristic::NimBLERemoteCharacteristic(NimBLERemoteService*, ble_gatt_chr const*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicC2EP19NimBLERemoteServicePK12ble_gatt_chr+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::NimBLERemoteCharacteristic(NimBLERemoteService*, ble_gatt_chr const*)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicC2EP19NimBLERemoteServicePK12ble_gatt_chr+0x0): multiple definition of `NimBLERemoteCharacteristic::NimBLERemoteCharacteristic(NimBLERemoteService*, ble_gatt_chr const*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicC2EP19NimBLERemoteServicePK12ble_gatt_chr+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::canBroadcast()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic12canBroadcastEv+0x0): multiple definition of `NimBLERemoteCharacteristic::canBroadcast()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic12canBroadcastEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::canIndicate()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic11canIndicateEv+0x0): multiple definition of `NimBLERemoteCharacteristic::canIndicate()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic11canIndicateEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::canNotify()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9canNotifyEv+0x0): multiple definition of `NimBLERemoteCharacteristic::canNotify()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9canNotifyEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::canRead()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic7canReadEv+0x0): multiple definition of `NimBLERemoteCharacteristic::canRead()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic7canReadEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::canWrite()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic8canWriteEv+0x0): multiple definition of `NimBLERemoteCharacteristic::canWrite()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic8canWriteEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::canWriteNoResponse()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic18canWriteNoResponseEv+0x0): multiple definition of `NimBLERemoteCharacteristic::canWriteNoResponse()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic18canWriteNoResponseEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::descriptorDiscCB(unsigned short, ble_gatt_error const*, unsigned short, ble_gatt_dsc const*, void*)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic16descriptorDiscCBEtPK14ble_gatt_errortPK12ble_gatt_dscPv+0x0): multiple definition of `NimBLERemoteCharacteristic::descriptorDiscCB(unsigned short, ble_gatt_error const*, unsigned short, ble_gatt_dsc const*, void*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic16descriptorDiscCBEtPK14ble_gatt_errortPK12ble_gatt_dscPv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::retrieveDescriptors(NimBLEUUID const*)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic19retrieveDescriptorsEPK10NimBLEUUID+0x0): multiple definition of `NimBLERemoteCharacteristic::retrieveDescriptors(NimBLEUUID const*)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic19retrieveDescriptorsEPK10NimBLEUUID+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::getDescriptor(NimBLEUUID const&)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic13getDescriptorERK10NimBLEUUID+0x0): multiple definition of `NimBLERemoteCharacteristic::getDescriptor(NimBLEUUID const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic13getDescriptorERK10NimBLEUUID+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::begin()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic5beginEv+0x0): multiple definition of `NimBLERemoteCharacteristic::begin()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic5beginEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::end()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic3endEv+0x0): multiple definition of `NimBLERemoteCharacteristic::end()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic3endEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::getHandle()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9getHandleEv+0x0): multiple definition of `NimBLERemoteCharacteristic::getHandle()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9getHandleEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::getDefHandle()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic12getDefHandleEv+0x0): multiple definition of `NimBLERemoteCharacteristic::getDefHandle()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic12getDefHandleEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::getRemoteService()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic16getRemoteServiceEv+0x0): multiple definition of `NimBLERemoteCharacteristic::getRemoteService()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic16getRemoteServiceEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::getUUID()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic7getUUIDEv+0x0): multiple definition of `NimBLERemoteCharacteristic::getUUID()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic7getUUIDEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::readUInt16()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic10readUInt16Ev+0x0): multiple definition of `NimBLERemoteCharacteristic::readUInt16()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic10readUInt16Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::readUInt32()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic10readUInt32Ev+0x0): multiple definition of `NimBLERemoteCharacteristic::readUInt32()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic10readUInt32Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::readUInt8()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9readUInt8Ev+0x0): multiple definition of `NimBLERemoteCharacteristic::readUInt8()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9readUInt8Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::readFloat()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9readFloatEv+0x0): multiple definition of `NimBLERemoteCharacteristic::readFloat()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9readFloatEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::deleteDescriptors()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic17deleteDescriptorsEv+0x0): multiple definition of `NimBLERemoteCharacteristic::deleteDescriptors()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic17deleteDescriptorsEv+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::getDescriptors(bool)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic14getDescriptorsEb+0x0): multiple definition of `NimBLERemoteCharacteristic::getDescriptors(bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic14getDescriptorsEb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::~NimBLERemoteCharacteristic()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicD2Ev+0x0): multiple definition of `NimBLERemoteCharacteristic::~NimBLERemoteCharacteristic()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicD2Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::~NimBLERemoteCharacteristic()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicD2Ev+0x0): multiple definition of `NimBLERemoteCharacteristic::~NimBLERemoteCharacteristic()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristicD2Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::deleteDescriptor(NimBLEUUID const&)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic16deleteDescriptorERK10NimBLEUUID+0x0): multiple definition of `NimBLERemoteCharacteristic::deleteDescriptor(NimBLEUUID const&)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic16deleteDescriptorERK10NimBLEUUID+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::toString[abi:cxx11]()':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic8toStringB5cxx11Ev+0x0): multiple definition of `NimBLERemoteCharacteristic::toString[abi:cxx11]()'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic8toStringB5cxx11Ev+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::writeValue(unsigned char const*, unsigned int, bool)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic10writeValueEPKhjb+0x0): multiple definition of `NimBLERemoteCharacteristic::writeValue(unsigned char const*, unsigned int, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic10writeValueEPKhjb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::setNotify(unsigned short, std::function<void (NimBLERemoteCharacteristic*, unsigned char*, unsigned int, bool)>, bool)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9setNotifyEtSt8functionIFvPS_PhjbEEb+0x0): multiple definition of `NimBLERemoteCharacteristic::setNotify(unsigned short, std::function<void (NimBLERemoteCharacteristic*, unsigned char*, unsigned int, bool)>, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9setNotifyEtSt8functionIFvPS_PhjbEEb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::unsubscribe(bool)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic11unsubscribeEb+0x0): multiple definition of `NimBLERemoteCharacteristic::unsubscribe(bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic11unsubscribeEb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::subscribe(bool, std::function<void (NimBLERemoteCharacteristic*, unsigned char*, unsigned int, bool)>, bool)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9subscribeEbSt8functionIFvPS_PhjbEEb+0x0): multiple definition of `NimBLERemoteCharacteristic::subscribe(bool, std::function<void (NimBLERemoteCharacteristic*, unsigned char*, unsigned int, bool)>, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic9subscribeEbSt8functionIFvPS_PhjbEEb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(NimBLERemoteCharacteristic.cpp.o): In function `NimBLERemoteCharacteristic::registerForNotify(std::function<void (NimBLERemoteCharacteristic*, unsigned char*, unsigned int, bool)>, bool, bool)':
NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic17registerForNotifyESt8functionIFvPS_PhjbEEbb+0x0): multiple definition of `NimBLERemoteCharacteristic::registerForNotify(std::function<void (NimBLERemoteCharacteristic*, unsigned char*, unsigned int, bool)>, bool, bool)'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(NimBLERemoteCharacteristic.cpp.o):NimBLERemoteCharacteristic.cpp:(.text._ZN26NimBLERemoteCharacteristic17registerForNotifyESt8functionIFvPS_PhjbEEbb+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_eventq_get':
/Users/dturner/Code/ESPresense/.pio/libdeps/m5atom-matrix/NimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd/src/nimble/porting/npl/freertos/src/npl_os_freertos.c:93: multiple definition of `npl_freertos_eventq_get'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):/Users/dturner/Code/ESPresense/.pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/porting/npl/freertos/src/npl_os_freertos.c:37: first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_eventq_put':
npl_os_freertos.c:(.text.npl_freertos_eventq_put+0x0): multiple definition of `npl_freertos_eventq_put'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_eventq_put+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_eventq_remove':
npl_os_freertos.c:(.text.npl_freertos_eventq_remove+0x0): multiple definition of `npl_freertos_eventq_remove'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_eventq_remove+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_mutex_init':
npl_os_freertos.c:(.text.npl_freertos_mutex_init+0x0): multiple definition of `npl_freertos_mutex_init'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_mutex_init+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_mutex_deinit':
npl_os_freertos.c:(.text.npl_freertos_mutex_deinit+0x0): multiple definition of `npl_freertos_mutex_deinit'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_mutex_deinit+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_mutex_pend':
npl_os_freertos.c:(.text.npl_freertos_mutex_pend+0x0): multiple definition of `npl_freertos_mutex_pend'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_mutex_pend+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_mutex_release':
npl_os_freertos.c:(.text.npl_freertos_mutex_release+0x0): multiple definition of `npl_freertos_mutex_release'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_mutex_release+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_sem_init':
npl_os_freertos.c:(.text.npl_freertos_sem_init+0x0): multiple definition of `npl_freertos_sem_init'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_sem_init+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_sem_deinit':
npl_os_freertos.c:(.text.npl_freertos_sem_deinit+0x0): multiple definition of `npl_freertos_sem_deinit'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_sem_deinit+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_sem_pend':
npl_os_freertos.c:(.text.npl_freertos_sem_pend+0x0): multiple definition of `npl_freertos_sem_pend'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_sem_pend+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_sem_release':
npl_os_freertos.c:(.text.npl_freertos_sem_release+0x0): multiple definition of `npl_freertos_sem_release'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_sem_release+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_callout_init':
npl_os_freertos.c:(.text.npl_freertos_callout_init+0x0): multiple definition of `npl_freertos_callout_init'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_callout_init+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_callout_deinit':
npl_os_freertos.c:(.text.npl_freertos_callout_deinit+0x0): multiple definition of `npl_freertos_callout_deinit'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_callout_deinit+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_callout_reset':
npl_os_freertos.c:(.text.npl_freertos_callout_reset+0x0): multiple definition of `npl_freertos_callout_reset'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_callout_reset+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_callout_remaining_ticks':
npl_os_freertos.c:(.text.npl_freertos_callout_remaining_ticks+0x0): multiple definition of `npl_freertos_callout_remaining_ticks'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_callout_remaining_ticks+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_time_ticks_to_ms':
npl_os_freertos.c:(.text.npl_freertos_time_ticks_to_ms+0x0): multiple definition of `npl_freertos_time_ticks_to_ms'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_time_ticks_to_ms+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o): In function `npl_freertos_time_ms_to_ticks':
npl_os_freertos.c:(.text.npl_freertos_time_ms_to_ticks+0x0): multiple definition of `npl_freertos_time_ms_to_ticks'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):npl_os_freertos.c:(.text.npl_freertos_time_ms_to_ticks+0x0): first defined here
.pio/build/m5atom-matrix/lib1d1/libNimBLE-Arduino@src-4e14b22c5ba97577051470b05d0d81bd.a(npl_os_freertos.c.o):(.data.ble_port_mutex+0x0): multiple definition of `ble_port_mutex'
.pio/build/m5atom-matrix/libaef/libNimBLE-Arduino.a(npl_os_freertos.c.o):(.data.ble_port_mutex+0x0): first defined here
collect2: error: ld returned 1 exit status
*** [.pio/build/m5atom-matrix/firmware.elf] Error 1```

bool BleFingerprint::query()
{
    if (!(allowQuery || rmAsst) || didQuery) return false;
    if (rssi < -90) return false;
    auto now = millis();

    if (now - lastSeenMillis > 5) return false;

    if (now - lastQryMillis < qryDelayMillis) return false;
    didQuery = true;
    lastQryMillis = now;

    bool success = false;

    Serial.printf("%d Query | MAC: %s, ID: %-60s rssi %d\n", xPortGetCoreID(), getMac().c_str(), getId().c_str(), rssi);

    NimBLEClient *pClient = NimBLEDevice::getClientListSize() ? NimBLEDevice::getClientByPeerAddress(address) : nullptr;
    if (!pClient) pClient = NimBLEDevice::getDisconnectedClient();
    if (!pClient) pClient = NimBLEDevice::createClient();
    pClient->setConnectTimeout(5);
    if (pClient->connect(address))
    {
        bool iphone = true;
        if (allowQuery)
        {
            std::string sMdl = pClient->getValue(deviceInformationService, modelChar);
            std::string sName = pClient->getValue(genericAccessService, nameChar);
            iphone = sMdl.find("iPhone") == 0;
            if (!sName.empty() && !sMdl.empty() && sMdl.find(sName) == std::string::npos && sName.compare("Apple Watch") != 0)
            {
                Serial.printf("%d Name  | MAC: %s, ID: %-60s %s\n", xPortGetCoreID(), getMac().c_str(), getId().c_str(), sName.c_str());
                setId(String("name:") + kebabify(sName).c_str(), ID_TYPE_APPLE_NAME);
                success = true;
            }
            else if (!sMdl.empty())
            {
                if (name.isEmpty()) name = sMdl.c_str();
                Serial.printf("%d Model | MAC: %s, ID: %-60s %s\n", xPortGetCoreID(), getMac().c_str(), getId().c_str(), sMdl.c_str());
                setId(String("apple:") + kebabify(sMdl).c_str(), ID_TYPE_APPLE_MODEL);
                success = true;
            }
            else if (!sName.empty())
            {
                if (name.isEmpty()) name = sName.c_str();
            }
        }

        if (rmAsst || iphone) // For some reason we often don't get room asssistants service advertisement
        {
            std::string sRmAst = pClient->getValue(roomAssistantService, rootAssistantCharacteristic);
            if (!sRmAst.empty())
            {
                setId(String("roomAssistant:") + kebabify(sRmAst).c_str(), ID_TYPE_RM_ASST);
                Serial.printf("%d RmAst | MAC: %s, ID: %-60s %s\n", xPortGetCoreID(), getMac().c_str(), getId().c_str(), sRmAst.c_str());
                success = true;
            }
        }
    }

    NimBLEDevice::deleteClient(pClient);

    if (success) return true;

    qryAttempts++;
    Serial.printf("%d QryErr| MAC: %s, ID: %-60s rssi %d, try %d, retry after %dms\n", xPortGetCoreID(), getMac().c_str(), getId().c_str(), rssi, qryAttempts, qryDelayMillis);

    if (qryDelayMillis < 30000)
        qryDelayMillis += (1000 * qryAttempts * qryAttempts);
    else
        qryDelayMillis = 30000;
    didQuery = false;

    return true;
}

This bit of code seems to be the root cause of it.

This one is in findAdvField:
1 Query | MAC: 3d09c843b0bd, ID: exp:20                                                       rssi -57
Guru Meditation Error: Core  0 panic'ed (LoadStoreError). Exception was unhandled.
Core 0 register dump:
PC      : 0x400efd6e  PS      : 0x00060330  A0      : 0x800efff2  A1      : 0x3ffea580
A2      : 0x0000005a  A3      : 0x00000002  A4      : 0x00000000  A5      : 0x00000000
A6      : 0x3ffea748  A7      : 0xff000000  A8      : 0x7aad5616  A9      : 0x000000b3
A10     : 0x40000062  A11     : 0x00000001  A12     : 0x00010ee6  A13     : 0x00000000
A14     : 0x3f403d58  A15     : 0x3ffef17c  SAR     : 0x00000008  EXCCAUSE: 0x00000003
EXCVADDR: 0x40000062  LBEG    : 0x4000c349  LEND    : 0x4000c36b  LCOUNT  : 0xffffffff

ELF file SHA256: 0000000000000000

Backtrace: 0x400efd6e:0x3ffea580 0x400effef:0x3ffea5a0 0x400f4456:0x3ffea5c0 0x400f5be2:0x3ffea7d0 0x400d2758:0x3ffea7f0 0x400e0b89:0x3ffea810 0x400e40a6:0x3ffea850 0x400e8fc9:0x3ffea8c0 0x400e9075:0x3ffea900 0x400e92c1:0x3ffea920 0x400e7bc5:0x3ffea940 0x400eec82:0x3ffea960 0x400e015f:0x3ffea980 0x40090c76:0x3ffea9a0
  #0  0x400efd6e:0x3ffea580 in NimBLEAdvertisedDevice::findAdvField(unsigned char, unsigned char, unsigned int*) at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/NimBLEAdvertisedDevice.cpp:753
  #1  0x400effef:0x3ffea5a0 in NimBLEAdvertisedDevice::getServiceUUIDCount() at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/NimBLEAdvertisedDevice.cpp:753
  #2  0x400f4456:0x3ffea5c0 in BleFingerprint::fingerprint(NimBLEAdvertisedDevice*) at .pio/libdeps/m5atom-matrix/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #3  0x400f5be2:0x3ffea7d0 in BleFingerprint::seen(NimBLEAdvertisedDevice*) at .pio/libdeps/m5atom-matrix/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #4  0x400d2758:0x3ffea7f0 in BleFingerprintCollection::onResult(NimBLEAdvertisedDevice*) at .pio/libdeps/m5atom-matrix/ArduinoJson/src/ArduinoJson/Misc/SafeBoolIdiom.hpp:15
  #5  0x400e0b89:0x3ffea810 in NimBLEScan::handleGapEvent(ble_gap_event*, void*) at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/NimBLEScan.cpp:412
  #6  0x400e40a6:0x3ffea850 in ble_gap_disc_report at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/nimble/host/src/ble_gap.c:6359
      (inlined by) ble_gap_rx_adv_report at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/nimble/host/src/ble_gap.c:1523
  #7  0x400e8fc9:0x3ffea8c0 in ble_hs_hci_evt_le_adv_rpt at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/nimble/host/src/ble_hs_hci_evt.c:501
  #8  0x400e9075:0x3ffea900 in ble_hs_hci_evt_le_meta at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/nimble/host/src/ble_hs_hci_evt.c:301
  #9  0x400e92c1:0x3ffea920 in ble_hs_hci_evt_process at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/nimble/host/src/ble_hs_hci_evt.c:859
  #10 0x400e7bc5:0x3ffea940 in ble_hs_event_rx_hci_ev at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h:120
  #11 0x400eec82:0x3ffea960 in ble_npl_event_run at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/porting/nimble/src/nimble_port.c:128
      (inlined by) nimble_port_run at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/nimble/porting/nimble/src/nimble_port.c:79
  #12 0x400e015f:0x3ffea980 in NimBLEDevice::host_task(void*) at .pio/libdeps/m5atom-matrix/NimBLE-Arduino/src/NimBLEDevice.cpp:923 (discriminator 1)
  #13 0x40090c76:0x3ffea9a0 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

1 Query | MAC: fc039f4cfaeb, ID: samsung:fc039f4cfaeb                                         rssi -76
***ERROR*** A stack overflow in task BLE Scan has been detected.
abort() was called at PC 0x4008fc7c on core 1
ets Jun  8 2016 00:22:57

Thanks, looks like there are a few things to deal with. Looking at your repo I see:
build_flags =
	-D CONFIG_BT_NIMBLE_PINNED_TO_CORE=1

Any particular reason to set this to core 1? It would be better in my opinion to change the tasks that make calls into the BLE stack run on core 0 and leave this on core 0 so that the wifi and ble core tasks don't have as many sync issues.
me-no-dev/AsyncTCP@^1.1.1

This is a red flag, async and BLE do not work well together, known and ongoing issue. Not certain it could cause your issues but it is a factor to consider.
It appears that your "BLE scan" task is overflowing it's stack in these logs, bumping that up a bit should resolve a few of these.

Are you stopping and restarting scanning? Are you running an active scan? If so, you may be running into the issue that I had, which resulted in a similar stack trace to the heap corruption one you quoted.

Just found a bug in the getService/characteristic/descriptor calls that can cause the stack overflow. Working on a fix for that.

You're amazing! I was pretty sure I didn't have any recursion in my code so I'm glad you found it!
But the pin to CORE 0 and getting rid of AsyncTCP has so far made everything but the stack overflow go away!  (It's only been an hour though so I reserve the right to find some more GURU's)

Well I did get one of these:
E (276316) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (276316) task_wdt:  - IDLE0 (CPU 0)
E (276316) task_wdt: Tasks currently running:
E (276316) task_wdt: CPU 0: btController
E (276316) task_wdt: CPU 1: IDLE1
E (276316) task_wdt: Aborting.
abort() was called at PC 0x4018b9fc on core 0

ELF file SHA256: 0000000000000000

Backtrace: 0x4008f658:0x3ffbff60 0x4008f8d5:0x3ffbff80 0x4018b9fc:0x3ffbffa0 0x4008dd01:0x3ffbffc0 0x4000bfed:0x3ffb60b0 0x40091a59:0x3ffb60c0 0x40081c7b:0x3ffb60e0 0x4008d95a:0x3ffb6100 0x40192025:0x3ffb6120 0x40192615:0x3ffb6140 0x400908e6:0x3ffb6170
  #0  0x4008f658:0x3ffbff60 in invoke_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
  #1  0x4008f8d5:0x3ffbff80 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/panic.c:715
  #2  0x4018b9fc:0x3ffbffa0 in task_wdt_isr at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/task_wdt.c:252
  #3  0x4008dd01:0x3ffbffc0 in _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
  #4  0x4000bfed:0x3ffb60b0 in ?? ??:0
  #5  0x40091a59:0x3ffb60c0 in vTaskExitCritical at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c:4813
  #6  0x40081c7b:0x3ffb60e0 in interrupt_restore at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/bt/bt.c:1707
  #7  0x4008d95a:0x3ffb6100 in r_global_int_restore at ??:?
  #8  0x40192025:0x3ffb6120 in r_rw_schedule at ??:?
  #9  0x40192615:0x3ffb6140 in btdm_controller_task at ??:?
  #10 0x400908e6:0x3ffb6170 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

Here's one where the canary stack hit so you can see where the recursion is:
Guru Meditation Error: Core  0 panic'ed (Unhandled debug exception)
Debug exception reason: Stack canary watchpoint triggered (BLE Scan)
Core 0 register dump:
PC      : 0x4008dc7c  PS      : 0x00060936  A0      : 0x3ffdcc10  A1      : 0x3ffdcb50
A2      : 0x00000000  A3      : 0x40123d84  A4      : 0x00000000  A5      : 0x3f403de8
A6      : 0x00000078  A7      : 0x00000000  A8      : 0x00000009  A9      : 0x0000005a
A10     : 0x00000024  A11     : 0x0000002a  A12     : 0xffffffff  A13     : 0x3f40d414
A14     : 0x00ff0000  A15     : 0xff000000  SAR     : 0x00000019  EXCCAUSE: 0x00000001
EXCVADDR: 0x00000000  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xffffffff

ELF file SHA256: 0000000000000000

Backtrace: 0x4008dc7c:0x3ffdcb50 0x3ffdcc0d:0x3ffdcf20 0x400edc65:0x3ffdcfe0 0x400e6624:0x3ffdd030 0x400f1661:0x3ffdd090 0x400f16e1:0x3ffdd0c0 0x400f1742:0x3ffdd100 0x400f1742:0x3ffdd140 0x400f1742:0x3ffdd180 0x400f1742:0x3ffdd1c0 0x400f1742:0x3ffdd200 0x400f1742:0x3ffdd240 0x400f1742:0x3ffdd280 0x400f1742:0x3ffdd2c0 0x400f1742:0x3ffdd300 0x400f1742:0x3ffdd340 0x400f1742:0x3ffdd380 0x400f1742:0x3ffdd3c0 0x400f1742:0x3ffdd400 0x400f1742:0x3ffdd440 0x400f1742:0x3ffdd480 0x400f1742:0x3ffdd4c0 0x400f1742:0x3ffdd500 0x400f1742:0x3ffdd540 0x400f1742:0x3ffdd580 0x400f1742:0x3ffdd5c0 0x400f1742:0x3ffdd600 0x400f1742:0x3ffdd640 0x400f1742:0x3ffdd680 0x400f1742:0x3ffdd6c0 0x400f1742:0x3ffdd700 0x400f1742:0x3ffdd740 0x400f1742:0x3ffdd780 0x400f1742:0x3ffdd7c0 0x400f1742:0x3ffdd800 0x400f1742:0x3ffdd840 0x400f1742:0x3ffdd880 0x400f1742:0x3ffdd8c0 0x400f1742:0x3ffdd900 0x400f1742:0x3ffdd940 0x400f1742:0x3ffdd980 0x400f1742:0x3ffdd9c0 0x400f1742:0x3ffdda00 0x400f1742:0x3ffdda40 0x400f1742:0x3ffdda80 0x400f1742:0x3ffddac0 0x400f1742:0x3ffddb00 0x400f1742:0x3ffddb40 0x400f1742:0x3ffddb80 0x400f1742:0x3ffddbc0 0x400f1742:0x3ffddc00
  #0  0x4008dc7c:0x3ffdcb50 in _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1118
  #1  0x3ffdcc0d:0x3ffdcf20 in ?? ??:0
  #2  0x400edc65:0x3ffdcfe0 in ble_uuid_to_str at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/nimble/host/src/ble_uuid.c:120
  #3  0x400e6624:0x3ffdd030 in ble_gattc_log_uuid at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/nimble/host/src/ble_gattc.c:4778
      (inlined by) ble_gattc_log_disc_svc_uuid at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/nimble/host/src/ble_gattc.c:507
      (inlined by) ble_gattc_disc_svc_by_uuid at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/nimble/nimble/host/src/ble_gattc.c:1749
  #4  0x400f1661:0x3ffdd090 in NimBLEClient::retrieveServices(NimBLEUUID const*) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #5  0x400f16e1:0x3ffdd0c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #6  0x400f1742:0x3ffdd100 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #7  0x400f1742:0x3ffdd140 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #8  0x400f1742:0x3ffdd180 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #9  0x400f1742:0x3ffdd1c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #10 0x400f1742:0x3ffdd200 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #11 0x400f1742:0x3ffdd240 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #12 0x400f1742:0x3ffdd280 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #13 0x400f1742:0x3ffdd2c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #14 0x400f1742:0x3ffdd300 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #15 0x400f1742:0x3ffdd340 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #16 0x400f1742:0x3ffdd380 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #17 0x400f1742:0x3ffdd3c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #18 0x400f1742:0x3ffdd400 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #19 0x400f1742:0x3ffdd440 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #20 0x400f1742:0x3ffdd480 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #21 0x400f1742:0x3ffdd4c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #22 0x400f1742:0x3ffdd500 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #23 0x400f1742:0x3ffdd540 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #24 0x400f1742:0x3ffdd580 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #25 0x400f1742:0x3ffdd5c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #26 0x400f1742:0x3ffdd600 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #27 0x400f1742:0x3ffdd640 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #28 0x400f1742:0x3ffdd680 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #29 0x400f1742:0x3ffdd6c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #30 0x400f1742:0x3ffdd700 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #31 0x400f1742:0x3ffdd740 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #32 0x400f1742:0x3ffdd780 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #33 0x400f1742:0x3ffdd7c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #34 0x400f1742:0x3ffdd800 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #35 0x400f1742:0x3ffdd840 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #36 0x400f1742:0x3ffdd880 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #37 0x400f1742:0x3ffdd8c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #38 0x400f1742:0x3ffdd900 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #39 0x400f1742:0x3ffdd940 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #40 0x400f1742:0x3ffdd980 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #41 0x400f1742:0x3ffdd9c0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #42 0x400f1742:0x3ffdda00 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #43 0x400f1742:0x3ffdda40 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #44 0x400f1742:0x3ffdda80 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #45 0x400f1742:0x3ffddac0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #46 0x400f1742:0x3ffddb00 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #47 0x400f1742:0x3ffddb40 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #48 0x400f1742:0x3ffddb80 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #49 0x400f1742:0x3ffddbc0 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496
  #50 0x400f1742:0x3ffddc00 in NimBLEClient::getService(NimBLEUUID const&) at .pio/libdeps/esp32-verbose/NimBLE-Arduino/src/NimBLEClient.cpp:496

Thanks, PR #355 fixes the recursion issue, give that a try and let me know.

Should we maybe have some sanity checking on the sizes of stuff in findAdvField so at least it doesn't explode?

The code should never have reached that point. Somehow the data vector got corrupted. I don't know why this is happening for you.

I found Framework 3.2 + -D CONFIG_BT_NIMBLE_PINNED_TO_CORE=1 (which WASN'T actually turned on before) made 1.3.3 work perfectly so I'm sticking w/ that for now.

Interesting, thanks for the update. I wish it were easier to pin down the issue but there are so many factors involved. Let me know if you come across any further data that may help.

authors: DTTerastar h2zero thorrak


text:
Corrupted headers when serialising using dask.distributed client

What happened: Files created with corrupted header information
What you expected to happen: The files to be correctly output
MCVE Code Sample
I haven't managed to produce a MCVE that reproduces this behaviour, but thought it was better to report even without this. So the code loads UM data files using the the Iris package and then outputs the data to a netCDF file.
cube = iris.load(ifiles, constraints=stash_const)
engine = 'h5netcdf'
for c in cube:
    ds = xr.DataArray.from_iris(c)
    ds.to_netcdf(ofile, engine=engine)

Expected Output
When engine = 'netdf4' or when engine = 'h5netcdf' and there is no dask.distributed client enabled the header looks like this:
netcdf test_netcdf4 {
dimensions:
	time = 120 ;
	latitude = 459 ;
	longitude = 798 ;

When engine = 'h5netcdf' and there is a dask.distributed client enabled the header looks like this:
netcdf test_h5netcdf {
dimensions:
	time = 120 ;
	time = 120 ;
	longitude = 798 ;

Anything else we need to know?:
It looks like when there is a dask.distributed client enabled more than one process is trying to define the netCDF header leading to it being corrupted.
This does not happen with an older version of h5netcdf. It serialises without error with or without a dask client enabled. tThe version details for this older working config:
Output of print(h5py.version.info, f"\nh5netcdf {h5netcdf.__version__}") for working version
Summary of the h5py configuration
---------------------------------
h5py    3.6.0
HDF5    1.10.6
Python  3.9.9 | packaged by conda-forge | (main, Dec 20 2021, 02:41:03)
[GCC 9.4.0]
sys.platform    linux
sys.maxsize     9223372036854775807
numpy   1.22.0
cython (built with) 0.29.24
numpy (built against) 1.16.6
HDF5 (built against) 1.10.6
h5netcdf 0.12.0

Version
Output of print(h5py.version.info, f"\nh5netcdf {h5netcdf.__version__}")

Summary of the h5py configuration
h5py    3.6.0
HDF5    1.12.1
Python  3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:25:59)
[GCC 10.3.0]
sys.platform    linux
sys.maxsize     9223372036854775807
numpy   1.21.6
cython (built with) 0.29.24
numpy (built against) 1.19.5
HDF5 (built against) 1.12.1
h5netcdf 1.0.0

@aidanheerdegen Thanks for raising this. A MCVE would be really great to help this tracking down. Could be a file locking issue, but that's just guesswork.

I'd love to, but am very busy right now, and find trying to make MCVEs reproduce errors can be a time consuming process in some cases. When I have a chance I'll try and come back to it. I hoped the fact that it worked in previous versions might be enough of a clue to zero in on changes since then that could be the culprit.

There has been a lot of changes to the dimension handling since version 0.12. It will be a hard undertaking to figure this out without example code. I'd have a look into this, but I need at least something I can work with.

An example data file would be nice, or at least information about the CubeList you are iterating over
How is dask distributed enabled?
Is your above example code exactly like this? Without specifying mode='a' ofile gets overwritten for every iteration.

As you said, creating a MCVE can be a time consuming process. If this behavior shows up more frequently, good chance that others will report similar problems.

Point taken. It's not my code, I was just alerted to the problem by someone and thought I should report it.
The client is just a default local dask.distributed client.
    client       = dask.distributed.Client()

The data was someone else's but here is the dataset being converted:
<xarray.DataArray 'surface_downward_northward_stress' (time: 120, latitude: 459, longitude: 798)>
dask.array<filled, shape=(120, 459, 798), dtype=float32, chunksize=(1, 459, 798), chunktype=numpy.ndarray>
Coordinates:
  * time                     (time) datetime64[ns] 2012-09-01T03:00:00 ... 20...
  * latitude                 (latitude) float32 -55.35 -55.2 ... 15.25 15.41
  * longitude                (longitude) float32 86.34 86.49 ... 209.3 209.5
    forecast_reference_time  datetime64[ns] ...
    forecast_period          (time) timedelta64[ns] ...
Attributes:
    standard_name:  surface_downward_northward_stress
    units:          Pa
    source:         Data from Met Office Unified Model
    um_version:     11.9
    STASH:          m01s03i461
    cell_methods:   time: mean (interval: 1 hour)

There are 120 individual files each with a single timestep. I'll try and reduce the data to as few files as possible, and maybe try uploading them somewhere if I can get it small enough when I have time.

Reporting issues is a good idea anyway, so thanks for taking time reporting this. Looking forward to anything you can provide to narrow this down. I'll try searching through the code for possible points of failure in the meantime (when I can free some time).

@aidanheerdegen Did you come any further with that issue? I would try to look into this if you could provide more information, MCVE would be nice.

Sorry, I am snowed under with work right now. I won't have time to look into this further as I am changing roles soon.

Thanks for coming back to this. Would you be able to provide a test UM file which broke with your setup?

I'm closing this now. Feel free to re-open with additional detail or open a new issue.

source: gharchive/issue

authors: aidanheerdegen kmuehlbauer

license_type: permissive

license_source: github-api


text:
feat: [+] #66 math functions

Description

New math functions and testing methods
Related Issue

#66
How Has This Been Tested?

This pull request contains appropriate tests?: YES/NO

source: gharchive/pull-request

authors: alfonsorr eruizalo

repo: hablapps/doric


text:
Ajax Requests to get Address

Loaded pins onto map
Display window with address of resource appears on click through ajax requests

Note: All these weird bower files seemed to appear from installing async. Unsure why.

r @nnarang7

authors: armant ehamp

license: mit

license_source: bigquery


text:
Create new public Facebook Group for all hackEDU leaders and those clubs' members

From @hellyeah on August 27, 2015 22:13
Leaders should be heavily encouraged to add their members to this group once we get it going. Will be cool for them to be part of a broader community.
Think HS Hackers but we emphasize core values, specifically inclusion and mentorship, from the start.
We should adopt a Code of Conduct before we launch this group. Here's the one we're developing openly for HH: http://hh.gd/conduct
Copied from original issue: hackedu/hackedu#109

Created https://www.facebook.com/groups/1647912265454317/ and added @jonleung, @MaxWofford, and @hellyeah as admins.
Still need to adopt a code of conduct before we start adding members. @hellyeah can you take point on that?

From @jonleung on August 28, 2015 16:16
Dependent on https://github.com/hackedu/meta/issues/117, which tracks the code of conduct.

From @hellyeah on August 31, 2015 18:35
Blocking on hackedu/meta#117

Moved to the ideas column because we've decided to prioritize getting the main leaders Facebook group going before starting this group as well.

Thoughts on continuing this @MaxWofford, @jkwok91, @remixz? I'm thinking about closing it for now.

:+1: to closing the leaders group... we should keep all of our communication in one place. Slack seems to be the best choice for now.

Gonna close. Happy to reopen if anyone has any objections.

authors: remixz zachlatta

repo: hackclub/meta


text:
Exporter: disable the translation of UserTy for now

@franziskuskiefer found the following bug:
pub const MY_VAL: u16 = 5;
pub type Alias = MyStruct<MY_VAL>; // Using the literal 5, it goes through

pub struct MyStruct<const VAL: u16> {}

impl<const VAL: u16> MyStruct<VAL> {
    pub const MY_CONST: u16 = VAL;
}

pub fn do_something() -> u32 {
    u32::from(Alias::MY_CONST)
}

The Alias::MY_CONST in do_something yields a UserTy node in the translated AST, which contains a Debruijn index, that we don't handle properly. Since we never use UserTy, this PR just disable its translation, thus fixing the issue.

Oh, that's odd! To me, that sounds like the generated OCaml module for parsing the types from Rust is outdated. Sometimes dune misses changes... can you try removing the hax-engine binary (somewhere under .opam I guess?), dune clean in engine and recompile everything?
(also: if you used rebuild.sh, it's installing hax-engine under ~/.cargo/bin, so maybe it's picking that old one)


text:
Frontend: add support for GATs

https://blog.rust-lang.org/2022/10/28/gats-stabilization.html

Related:

https://github.com/hacspec/hax/pull/970

Still relevant

repo: hacspec/hax


text:
私人制定群组任务好像不支持ntwork？

私人制定群组任务好像不支持ntwork？企微个人号私聊和群聊可以制定任务，但私聊去制定群组任务一直提示：
⏰定时任务指令格式异常😭，未找到群名为【xxxxx】的群聊，请核查！
感觉好像群名获取有点问题吧？
config.json文件是不是可以优化为不存在时从模板来获取，不是直接放一个json文件在目录哈？

私人制定群组任务，需要通过群名查询群ID； 目前 支持的通道 为 itchat 和 ntchat;
ntwork 是什么，自己写的一个通道吗？

私人制定群组任务，需要通过群名查询群ID； 目前 支持的通道 为 itchat 和 ntchat;
ntwork 是什么，自己写的一个通道吗？

https://github.com/zhayujie/chatgpt-on-wechat/pull/1385   这里的，企微个人号的

看起来是另一套通道
wework = ntwork.WeWork()  如果 wework对象在cow项目里面没有暴露； 那么定时插件里面获取不到该对象，应该无法使用通过 wework 查询 群ID； 得看下cow项目是否有暴露这个对象了

看起来是另一套通道
wework = ntwork.WeWork() 如果 wework对象在cow项目里面没有暴露； 那么定时插件里面获取不到该对象，应该无法使用通过 wework 查询 群ID； 得看下cow项目是否有暴露这个对象了

应该是可以的吧，等老哥空了看看能否支持

已适配，使用最新的2.6版本即可

已适配，使用最新的2.6版本即可

给力👍👍👍

话说，那个config.json文件每次更新被覆盖是不是可以移除，我们从模板生成？

还一个问题哈，我看扩展功能判断那里，是检测以key_word开头，有使用一个apilot插件，它是关键词是识别的，比如天气查询，他是“city+天气”来识别的，这种插件有没有好办法来路由啊？

authors: default-userr haikerapples peichenwangg

repo: haikerapples/timetask

license: MIT


text:
How Golang call this?

my colleague use this function to generate a int64, could you please add a demo how Go call this function to get the same number? thank you in advance

close since no any response


text:
Example on pluncker

I have made a plunker for remote example for help
http://plnkr.co/edit/vTnxfF5hz3w74V5SMY7q?p=preview

Hey man,
Not sure exactly what is the problem you are refereeing to here but i can see that this is clunky so i've edited your plunker with several modification

Starting at 0.2.3 i've added a smooth transition between suggestions cycles. Meaning the suggestion box will not disappear while the directive is waiting for results. I changed the import to use the latest MassAutocomplete version from rawgithub.
Your resource is very slow. I suggest adding a simple cache. I've implemented a simple cache based on the first latter of the term. You can see now that when searching for more then one latter the cache is being used (This is under the assumption that you implement a simple startsWith matching in the server side as well).

You can check out my modified version here:
http://plnkr.co/edit/AC4HjHx9yj2SGqwgkbUD?p=preview

Hi
Thanks, my plunker was just for help others because I am not familiar with promise.

authors: fipartners hakib

repo: hakib/MassAutocomplete


text:
How can i pinch-to-zoom?

How can i pinch-to-zoom or double tap to zoom image?
Any suggest? Thank you.

I have created a PR for this: https://github.com/halilb/react-native-photo-browser/pull/73

I have opened a PR for this: https://github.com/halilb/react-native-photo-browser/pull/74
A thumbs up on that PR might help get it pulled in 😉

repo: halilb/react-native-photo-browser


text:
Rails 4.1.9 sees all email input as invalid.

When I set the rails version back to 4.1.5 it works.
Maybe other versions also work.
class ContactMessage < ActiveRecord::Base
validates :email, email: true
end

I was using version 0.0.5 -.-


text:
React 16

Error in ./~/semantic-react/lib/animation/animation.js
Module not found: 'react-transition-group/TransitionGroup' in ...
@ ./~/semantic-react/lib/animation/animation.js 18:23-72

npm install react-transition-group@1 must help

On 27 Sep 2017, at 03:44, Andres Silva Gomez notifications@github.com wrote:
Error in ./~/semantic-react/lib/animation/animation.js
Module not found: 'react-transition-group/TransitionGroup' in ...
@ ./~/semantic-react/lib/animation/animation.js 18:23-72
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/hallister/semantic-react/issues/141, or mute the thread https://github.com/notifications/unsubscribe-auth/AIeGCqB5LGL3BX3AoLnL5u4nszueyi2Kks5smaiPgaJpZM4PlGqe.

authors: andresilvagomez asvetliakov

repo: hallister/semantic-react


text:
Completion from type annotation should take into account '|>'

The completion from type annotation is really useful, but when you are piping in the last parameter, you have to just delete that part of the auto completion
[] |> Lists.Extra.Find  (a -> Bool) List a
You don't really want the last 'List a'
Not sure how feasible it is, but would be nice

Great idea!  Let's add that special case.  Thanks for the suggestion!

authors: halohalospecial mandrolic

repo: halohalospecial/atom-elmjutsu


text:
Custom className on input field

I would like to add a custom className to the input field, I'm using bootstrap so I would like it to be form-control but currently it defaults to: rrui__input react-phone-number-input__phone
When trying to add className="form-control" it'll add that class to the outer div and not the input field.

Added inputClassName. Install the latest version.

Awesome, thanks!
Thanks for the speedy response BTW

authors: halt-hammerzeit odannyc


text:
⚠ ClamAV has degraded performance

In 55cd9e1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 251 ms

Resolved: ClamAV performance has improved in 15ea901 after 1 hour, 17 minutes.

repo: hamboneZA/caffeine


text:
⚠ ClamAV has degraded performance

In c27c8ff, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 93 ms

Resolved: ClamAV performance has improved in 7b8e9f0.


text:
⚠ ClamAV has degraded performance

In 1ab1a79, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 214 ms

Resolved: ClamAV performance has improved in 948d737.


text:
kwargs does not work with single-function on dict

Currently, if on is specified as a cohort in e.g. plot_benefit, a kwargs are not supported when collecting multiple functions is raised; however, if on just has a single key/value item, this error should be avoidable.

This should be resolved with PR #169 , since that PR did away with the kwargs are not supported when collecting multiple functions message.

authors: jburos tavinathanson

repo: hammerlab/cohorts


text:
Improve the README to include some examples of working with Varcode in IPython

@iskandr you recently got @armish and @nickscaglione up to speed on Varcode so perhaps you could work with them to get some of your code examples into the README?

One thing that was really helpful for me was the iPython notebook from our walk-through session with @iskandr. I can help by creating a polished one and highlight a few basic concepts (such as importing variants from MAF/VCF, annotating and accessing them) in the notebook for people to kickstart with the library.
Will that be helpful?

@armish That would be great, let me know if you need help with anything.
@hammer What do you think of https://github.com/hammerlab/varcode/tree/examples-in-README?

authors: armish hammer iskandr

repo: hammerlab/varcode


text:
WikiFile: generalize property getters for revisions

See proposal (no, I hadn't forgotten, just been busy with other projects and real life :wink:). The first commit updates code and Doxygen comments of all get methods, the other updates the documentation files.

Great work, @Xymph, as always. I've went through the changes, and have nothing to point out (I do feel some of the docstrings could be slightly clearer, e.g. "of this image, or of its specified revision", but I couldn't come up with anything better, and that's pretty minor anyway). Feel free to merge whenever you're ready.

authors: Xymph waldyrious

repo: hamstar/Wikimate


text:
Pre-trained NN examples

Hello!
I'm working on porting this project completely to Raspberry pi. Can you provide pre-trained NN examples to allow me quickly evaluate performance on the Pi board?  This will save me a lot of time because I have to use another approach to control RC car and getting training data for NN.

Hi, I think a quick way to test your components is to generate random data with labels, and then do the training. It's more flexible in this way in case of different image size or parameters.

@hamuchiwa  how to generate random data with labels?

authors: AiBuddy hamuchiwa romansavrulin

repo: hamuchiwa/AutoRCCar


text:
Implement lazy variable caching and dynamic resolvers

This resolves #16 and #25.
I evaluated a number of approaches here and settled on one that should (hopefully) hit as many use cases as possible.
Background on caching
I decided against using the existing cache mechanism for a number of reasons. The existing caching mechanism is inherently a global cache, one seemingly intended to be shared by many requests. This works great for partials, but doesn't really fit the context of avoiding duplicate lazy variable work in the context of a render very well. Identifiers and state are both often heavily render dependent, so it didn't seem right or useful to share this cache globally.
For global caching of work that is not sensitive to specific request details/context/user session/etc, I felt it better left to the application layer:
Context.new(%{
  latest_products: fn -> Products.fetch() end)
})

where Products.fetch() is a function decorated by Nebulex or similar.
Instead, I wanted to focus on avoiding duplicate request-specific work in the context of a single render. So it seemed to make the most sense to keep the variable cache in the context itself, and have lazy executions store the data in there.
Changes made
The bulk of the work here was changing the signature of every Argument and Expression call to return both the evaluated variable and the updated context, along with updating any affected tags, so we can keep track of the context (and thus cache) over time. This is a largely backwards compatible change, with the exception of custom tags that might rely on the original Argument/Expression behavior of returning only the value and not a {value, context} tuple.
The lazy caching is done through adding a new lazy resolver signature (parent, context) and a number of helper functions which store the variable in the context by setting the evaluated variable in the scope, thus skipping execution in following runs.
import Liquex.ValueCache

products_resolver = fn _parent, context ->
  products = Product.all()
  {products, context |> cache_result(products)}
end

or
products_resolver = fn _parent, context ->
  return_cached_result(context, Product.all())
end

I initially evaluated and even implemented an approach that used a parallel results cache structure in the context which allows us to cache results for more complex scenarios, instead of replacing the variable in the scope, but ran into issues with:

Cache reuse for copied variables ({% assign b = a %})
Cache invalidation for reassigned variables (say 'a' is an already-executed cached lazy resolver that we assign with {% assign a = 2 %} or {% assign a = b %} where b is also a lazy resolver). Though I may have overthought this one, and perhaps it's less of an issue than I thought.
Child scopes (e.g. for i in list where i was the identifier for a previously cached resolver)

Basically, maintaining the parallel structure would mean mirroring every write to the scopes which seemed somewhat brittle. That said, not having a parallel structure comes with these downsides:

Can't automatically cache execution for lazy resolvers inside non-maps

what this means is that if you have {{ a.b }} and a is a lazy resolver function that itself returns %{b => fn ...}, but a decides not to cache its own execution, we can't cache the execution of b because there's nowhere to store it - a remains a function in the scope.

Related to the first one, can't automatically cache execution for dynamic resolvers (discussed later)

These are somewhat annoying downsides, so if these aren't tolerable, I can dig into making the parallel-structure approach work instead.
That said, as a workaround, we have "manual cache".
Manual cache
import Liquex.ValueCache

products_resolver = fn _parent, context ->
  products = get_cache(context, :products)
  if products do
    {products, context}
  else
    products = Product.all()
    {products, context |> cache(:products, products)}
  end
end

We can use this for any arbitrary data. This allows for more complex caching scenarios that aren't fully satisfied by automatic results caching, for example user.first_name and user.last_name
might be two separate resolver functions, both of which pull the name from the
DB, but we only want to pull the name from the DB one time. This also allows us to work around the two downsides above.
The manual cache allows specifying the level and global of the cache item, see the ValueCache docs for more discussion there.
Dynamic resolvers
To implement #25, I added another function signature:
products_resolver = fn _parent, context, product_id ->
  Product.fetch(product_id)
end

This works for {{ product.product_id }}, {{ product['product_id'] }} and {{ assign a = 'product_id }} {{ product[a] }}.
return_cached_result() cannot be used here for the above discussed reasons, but the manual cache key is correctly set in this environment, so we can do:
products_resolver = fn _parent, context, product_id ->
  cached = get_cached(context, param)
  if cached do
    {cached, context}
  else
    fetched_product = Product.fetch(product_id)
    {fetched_product, cache(context, product_id, fetched_product)}
  end
end

That's about all, though the docs go into more detail on rationale/usage.
I'm still not 100% confident on the overall results cache design, but it's what I ended up on after a number of iterations and running into some issues, so I'm definitely open to feedback/design changes as needed to make things better.

Closing for now to rearchitect.

repo: handlecommerce/liquex


text:
expose TLS configuration

specifically:

minimum / maximum protocol version
(prioritised) list of ciphersuites
supported hashes (for digitally signed struct)
disallow renegotiation

and maybe client authentication

Requiring ephemeral keys (EDH/DHE) suites (of a certain size) as a default would be nice, too.

authors: cfcs hannesm

repo: hannesm/tlstunnel


text:
add classes to sensors

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
All sensor types are equal currently
Describe the solution you'd like
add a sensor class to created sensors
Describe alternatives you've considered
manually creating sensor templates
Additional context
none

resolved with release 0.3.0


text:
编辑器前面会渲染一个textarea

会渲染一个textarea出来


text:
does it work for RNN model

does it work for RNN+CNN model whose task is text classification

Is it CNN+RNN model? @ran337287
I found some resources that may be helpful for your reference. Once Grad-CAM applies, so does Score-CAM.
https://discuss.pytorch.org/t/cam-grad-cnn-lstm/88679
https://github.com/OverLordGoldDragon/see-rnn/issues/4

Not active. Closed.

repo: haofanwang/Score-CAM


text:
首页网站名称描述

参考设计图的 Home 画布

https://lanhuapp.com/url/aHRL9

repo: happypeter/nrocks